]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
2
3 PR c++/106654
4 * value-query.cc (get_range_global): Handle non integer ranges for
5 default def SSA names.
6
7 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
8
9 * range-op-float.cc (foperator_unordered_lt::op1_range): New.
10 (foperator_unordered_lt::op2_range): New.
11
12 2022-10-20 Artem Klimov <jakmobius@gmail.com>
13 Alexander Monakov <amonakov@gcc.gnu.org>
14
15 PR middle-end/99619
16 * ipa-visibility.cc (function_and_variable_visibility): Promote
17 TLS access model afer visibility optimizations.
18 * varasm.cc (have_optimized_refs): New helper.
19 (optimize_dyn_tls_for_decl_p): New helper. Use it ...
20 (decl_default_tls_model): ... here in place of 'optimize' check.
21
22 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
23
24 * range-op-float.cc (foperator_unordered_le::op1_range): Adjust
25 false side with a NAN operand.
26 (foperator_unordered_le::op2_range): Same.
27 (foperator_unordered_gt::op1_range): Same.
28 (foperator_unordered_gt::op2_range): Same.
29 (foperator_unordered_ge::op1_range): Same.
30 (foperator_unordered_ge::op2_range): Same.
31 (foperator_unordered_equal::op1_range): Same.
32
33 2022-10-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
34
35 PR tree-optimization/107326
36 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Change
37 vectype when widening container.
38
39 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
40
41 * value-range.h (frange::set_varying): Do not set NAN flags for
42 !HONOR_NANS.
43 * value-range.cc (frange::normalize_kind): Adjust for no NAN when
44 !HONOR_NANS.
45 (frange::verify_range): Same.
46 * range-op-float.cc (maybe_isnan): Remove flag_finite_math_only check.
47
48 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
49
50 * range-op-float.cc (finite_operand_p): Remove.
51 (finite_operands_p): Rename to...
52 (maybe_isnan): ...this.
53 (frelop_early_resolve): Use maybe_isnan instead of finite_operands_p.
54 (foperator_equal::fold_range): Same.
55 (foperator_equal::op1_range): Same.
56 (foperator_not_equal::fold_range): Same.
57 (foperator_lt::fold_range): Same.
58 (foperator_le::fold_range): Same.
59 (foperator_gt::fold_range): Same.
60 (foperator_ge::fold_range): Same.
61
62 2022-10-20 Jakub Jelinek <jakub@redhat.com>
63
64 * passes.cc (pass_manager::register_pass): Fix a comment
65 typo - copmilation -> compilation.
66
67 2022-10-20 Richard Biener <rguenther@suse.de>
68
69 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
70 Disallow latch PHI defs.
71 (vectorizable_recurr): Revert previous change.
72
73 2022-10-20 Julian Brown <julian@codesourcery.com>
74
75 PR target/105421
76 * config/gcn/gcn.cc (gcn_detect_incoming_pointer_arg): Any pointer
77 argument forces FLAT addressing mode, not just
78 pointer-to-non-aggregate.
79
80 2022-10-20 Thomas Schwinge <thomas@codesourcery.com>
81
82 * configure.ac (AC_CONFIG_MACRO_DIRS): Instantiate.
83 * configure: Regenerate.
84
85 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
86
87 * config/aarch64/aarch64-sve-builtins.h
88 (gimple_folder::fold_to_cstu): New member function.
89 * config/aarch64/aarch64-sve-builtins.cc
90 (gimple_folder::fold_to_cstu): Define.
91 * config/aarch64/aarch64-sve-builtins-base.cc
92 (svcnt_bhwd_impl::fold): Use it.
93
94 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
95
96 * config/aarch64/aarch64-sve-builtins-functions.h (quiet)
97 (rtx_code_function, rtx_code_function_rotated, unspec_based_function)
98 (unspec_based_function_rotated, unspec_based_function_exact_insn)
99 (unspec_based_fused_function, unspec_based_fused_lane_function):
100 Replace constructors with using directives.
101 * config/aarch64/aarch64-sve-builtins-base.cc (svcnt_bhwd_pat_impl)
102 (svcreate_impl, svdotprod_lane_impl, svget_impl, svld1_extend_impl)
103 (svld1_gather_extend_impl, svld234_impl, svldff1_gather_extend)
104 (svset_impl, svst1_scatter_truncate_impl, svst1_truncate_impl)
105 (svst234_impl, svundef_impl): Likewise.
106 * config/aarch64/aarch64-sve-builtins-sve2.cc
107 (svldnt1_gather_extend_impl, svmovl_lb_impl): Likewise.
108 (svstnt1_scatter_truncate_impl): Likewise.
109
110 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
111
112 * config/aarch64/aarch64-sve-builtins-base.cc: Replace CONSTEXPR
113 with constexpr throughout.
114 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
115 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
116 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
117 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
118
119 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
120
121 * config/aarch64/aarch64-sve.md (*aarch64_brk<brk_op>_cc): Remove
122 merging alternative.
123 (*aarch64_brk<brk_op>_ptest): Likewise.
124
125 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
126
127 * config/aarch64/iterators.md (SVE_BRKP): New iterator.
128 * config/aarch64/aarch64-sve.md (*aarch64_brkn_cc): New pattern.
129 (*aarch64_brkn_ptest): Likewise.
130 (*aarch64_brk<brk_op>_cc): Restrict to SVE_BRKP.
131 (*aarch64_brk<brk_op>_ptest): Likewise.
132
133 2022-10-20 Richard Biener <rguenther@suse.de>
134
135 PR c/107305
136 PR c/107306
137 * tree-cfg.h (verify_gimple_in_seq): Add parameter to
138 indicate whether to emit an ICE. Add return value.
139 (verify_gimple_in_cfg): Likewise.
140 * tree-cfg.cc (verify_gimple_in_seq): Likewise.
141 (verify_gimple_in_cfg): Likewise.
142
143 2022-10-20 Richard Biener <rguenther@suse.de>
144
145 PR tree-optimization/107240
146 * tree-vect-patterns.cc (vect_recog_bit_insert_pattern): Attempt to
147 simplify shifted value first.
148
149 2022-10-20 Andrew MacLeod <amacleod@redhat.com>
150
151 * gimple-range-gori.h (compute_operand_range): Make public.
152 * gimple-range-infer.cc (gimple_infer_range::check_assume_func): New.
153 (gimple_infer_range::gimple_infer_range): Check for assume calls.
154 * gimple-range-infer.h (check_assume_func): Add prototype.
155 * gimple-range.cc (assume_query::assume_range_p): New.
156 (assume_query::range_of_expr): New.
157 (assume_query::assume_query): New.
158 (assume_query::calculate_op): New.
159 (assume_query::calculate_phi): New.
160 (assume_query::check_taken_edge): New.
161 (assume_query::calculate_stmt): New.
162 (assume_query::dump): New.
163 * gimple-range.h (class assume_query): New.
164 * tree-vrp.cc (pass_assumptions::execute): Add processing.
165
166 2022-10-19 Aldy Hernandez <aldyh@redhat.com>
167
168 * range-op-float.cc (build_le): Document result.
169 (build_lt): Same.
170 (build_ge): Same.
171 (foperator_ge::op2_range): Check result of build_*.
172 (foperator_unordered_le::op1_range): Same.
173 (foperator_unordered_le::op2_range): Same.
174 (foperator_unordered_gt::op1_range): Same.
175 (foperator_unordered_gt::op2_range): Same.
176 (foperator_unordered_ge::op1_range): Same.
177 (foperator_unordered_ge::op2_range): Same.
178
179 2022-10-19 Marek Polacek <polacek@redhat.com>
180
181 PR c++/85043
182 * doc/invoke.texi: Update documentation of -Wuseless-cast.
183
184 2022-10-19 Andrew MacLeod <amacleod@redhat.com>
185
186 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
187 Value_Range not int_range_max.
188
189 2022-10-19 Aldy Hernandez <aldyh@redhat.com>
190
191 PR tree-optimization/107312
192 * range.h (range_true_and_false): Special case 1-bit signed types.
193 * value-range.cc (range_tests_misc): New test.
194
195 2022-10-19 LIU Hao <lh_mouse@126.com>
196
197 * config/i386/mingw-mcfgthread.h: New file
198 * config/i386/mingw32.h: Add builtin macro and default libraries
199 for mcfgthread when thread model is `mcf`
200 * config.gcc: Include 'i386/mingw-mcfgthread.h' when thread model
201 is `mcf`
202 * configure.ac: Recognize `mcf` as a valid thread model
203 * config.in: Regenerate
204 * configure: Regenerate
205
206 2022-10-19 Lewis Hyatt <lhyatt@gmail.com>
207
208 * gengtype.cc (output_escaped_param): Add missing const.
209 (get_string_option): Add missing check for option type.
210 (walk_type): Support new "string_length" GTY option.
211 (write_types_process_field): Likewise.
212 * ggc-common.cc (gt_pch_note_object): Add optional length argument.
213 * ggc.h (gt_pch_note_object): Adjust prototype for new argument.
214 (gt_pch_n_S2): Declare...
215 * stringpool.cc (gt_pch_n_S2): ...new function.
216 * doc/gty.texi: Document new GTY((string_length)) option.
217
218 2022-10-19 Martin Liska <mliska@suse.cz>
219
220 * doc/extend.texi: Remove useless @tie{} directives.
221
222 2022-10-19 Martin Jambor <mjambor@suse.cz>
223
224 PR tree-optimization/107206
225 * tree-sra.cc (struct access): New field grp_result_of_prop_from_lhs.
226 (analyze_access_subtree): Do not create replacements for accesses with
227 this flag when not toally scalarizing.
228 (propagate_subaccesses_from_lhs): Set the new flag.
229
230 2022-10-19 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
231
232 PR target/106355
233 * config/s390/s390.cc (s390_call_saved_register_used): For a
234 parameter with BLKmode fix determining number of consecutive
235 registers.
236
237 2022-10-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
238
239 * config/xtensa/xtensa-protos.h
240 (xtensa_split1_finished_p, xtensa_split_DI_reg_imm): New prototypes.
241 * config/xtensa/xtensa.cc
242 (xtensa_split1_finished_p, xtensa_split_DI_reg_imm, xtensa_lra_p):
243 New functions.
244 (TARGET_LRA_P): Replace the dummy hook with xtensa_lra_p.
245 (xt_true_regnum): Rework.
246 * config/xtensa/xtensa.h (CALL_REALLY_USED_REGISTERS):
247 Switch from CALL_USED_REGISTERS, and revise the comment.
248 * config/xtensa/constraints.md (Y):
249 Use !xtensa_split1_finished_p() instead of can_create_pseudo_p().
250 * config/xtensa/predicates.md (move_operand): Ditto.
251 * config/xtensa/xtensa.md: Add two new split patterns:
252 - splits DImode immediate load into two SImode ones
253 - puts out-of-constraint SImode constants into the constant pool
254 * config/xtensa/xtensa.opt (-mlra): New target-specific option
255 for testing purpose.
256
257 2022-10-19 Robin Dapp <rdapp@linux.ibm.com>
258
259 * config/s390/s390.md: Move reload_completed and check operands for REG_P.
260
261 2022-10-19 Jakub Jelinek <jakub@redhat.com>
262
263 PR middle-end/107262
264 * expr.cc (convert_mode_scalar): For BFmode -> SFmode conversions
265 of constants, use simplify_unary_operation if fromi has VOIDmode
266 instead of recursive convert_mode_scalar.
267
268 2022-10-19 Jakub Jelinek <jakub@redhat.com>
269
270 PR tree-optimization/106990
271 * match.pd ((~X - ~Y) -> Y - X, -x & 1 -> x & 1): Guard with
272 !TYPE_OVERFLOW_SANITIZED (type).
273
274 2022-10-19 Jakub Jelinek <jakub@redhat.com>
275
276 * config/i386/i386-builtins.cc (ix86_bf16_ptr_type_node): Remove.
277 (ix86_bf16_type_node): New variable.
278 (ix86_register_bf16_builtin_type): If bfloat16_type_node is NULL
279 from generic code, set only ix86_bf16_type_node to a new REAL_TYPE
280 rather than bfloat16_type_node, otherwise set ix86_bf16_type_node
281 to bfloat16_type_node. Register __bf16 on ix86_bf16_type_node
282 rather than bfloat16_type_node. Don't initialize unused
283 ix86_bf16_ptr_type_node.
284 * config/i386/i386-builtin-types.def (BFLOAT16): Use
285 ix86_bf16_type_node rather than bfloat16_type_node.
286
287 2022-10-19 Richard Biener <rguenther@suse.de>
288
289 PR tree-optimization/106781
290 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Copy
291 LHS removal from fixup_noreturn_call.
292
293 2022-10-19 liuhongt <hongtao.liu@intel.com>
294
295 PR target/107271
296 * config/i386/i386-expand.cc (ix86_vec_perm_index_canon): New.
297 (expand_vec_perm_shufps_shufps): Call
298 ix86_vec_perm_index_canon
299
300 2022-10-18 Martin Jambor <mjambor@suse.cz>
301
302 * ipa-prop.h (ipa_agg_value): Remove type.
303 (ipa_agg_value_set): Likewise.
304 (ipa_copy_agg_values): Remove function.
305 (ipa_release_agg_values): Likewise.
306 (ipa_auto_call_arg_values) Add a forward declaration.
307 (ipa_call_arg_values): Likewise.
308 (class ipa_argagg_value_list): New constructors, added member function
309 value_for_index_p.
310 (class ipa_auto_call_arg_values): Removed the destructor and member
311 function safe_aggval_at. Use ipa_argagg_values for m_known_aggs.
312 (class ipa_call_arg_values): Removed member function safe_aggval_at.
313 Use ipa_argagg_values for m_known_aggs.
314 (ipa_get_indirect_edge_target): Removed declaration.
315 (ipa_find_agg_cst_for_param): Likewise.
316 (ipa_find_agg_cst_from_init): New declaration.
317 (ipa_agg_value_from_jfunc): Likewise.
318 (ipa_agg_value_set_from_jfunc): Removed declaration.
319 (ipa_push_agg_values_from_jfunc): New declaration.
320 * ipa-cp.cc (ipa_agg_value_from_node): Renamed to
321 ipa_agg_value_from_jfunc, made public.
322 (ipa_agg_value_set_from_jfunc): Removed.
323 (ipa_push_agg_values_from_jfunc): New function.
324 (ipa_get_indirect_edge_target_1): Removed known_aggs parameter, use
325 avs for this purpose too.
326 (ipa_get_indirect_edge_target): Removed the overload working on
327 ipa_auto_call_arg_values, use ipa_argagg_value_list in the remaining
328 one.
329 (devirtualization_time_bonus): Use ipa_argagg_value_list and
330 ipa_get_indirect_edge_target_1 instead of
331 ipa_get_indirect_edge_target.
332 (context_independent_aggregate_values): Removed function.
333 (gather_context_independent_values): Work on ipa_argagg_value_list.
334 (estimate_local_effects): Likewise, define some iterator variables
335 only in the construct where necessary.
336 (ipcp_discover_new_direct_edges): Adjust the call to
337 ipa_get_indirect_edge_target_1.
338 (push_agg_values_for_index_from_edge): Adjust the call
339 ipa_agg_value_from_node which has been renamed to
340 ipa_agg_value_from_jfunc.
341 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Work on
342 ipa_argagg_value_list.
343 (evaluate_properties_for_edge): Replace manual filling in aggregate
344 values with call to ipa_push_agg_values_from_jfunc.
345 (estimate_calls_size_and_time): Work on ipa_argagg_value_list.
346 (ipa_cached_call_context::duplicate_from): Likewise.
347 (ipa_cached_call_context::release): Likewise.
348 (ipa_call_context::equal_to): Likewise.
349 * ipa-prop.cc (ipa_find_agg_cst_from_init): Make public.
350 (ipa_find_agg_cst_for_param): Removed function.
351 (ipa_find_agg_cst_from_jfunc_items): New function.
352 (try_make_edge_direct_simple_call): Replace calls to
353 ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with
354 ipa_find_agg_cst_from_init and ipa_find_agg_cst_from_jfunc_items.
355 (try_make_edge_direct_virtual_call): Replace calls to
356 ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with
357 simple query of constant jump function and a call to
358 ipa_find_agg_cst_from_jfunc_items.
359 (ipa_auto_call_arg_values::~ipa_auto_call_arg_values): Removed.
360
361 2022-10-18 Martin Jambor <mjambor@suse.cz>
362
363 * ipa-prop.h (IPA_PROP_ARG_INDEX_LIMIT_BITS): New.
364 (ipcp_transformation): Added forward declaration.
365 (ipa_argagg_value): New type.
366 (ipa_argagg_value_list): New type.
367 (ipa_agg_replacement_value): Removed type.
368 (ipcp_transformation): Switch from using ipa_agg_replacement_value
369 to ipa_argagg_value_list.
370 (ipa_get_agg_replacements_for_node): Removed.
371 (ipa_dump_agg_replacement_values): Removed declaration.
372 * ipa-cp.cc: Define INCLUDE_ALGORITHM.
373 (values_equal_for_ipcp_p): Moved up in the file.
374 (ipa_argagg_value_list::dump): New function.
375 (ipa_argagg_value_list::debug): Likewise.
376 (ipa_argagg_value_list::get_elt): Likewise.
377 (ipa_argagg_value_list::get_elt_for_index): Likewise.
378 (ipa_argagg_value_list::get_value): New overloaded functions.
379 (ipa_argagg_value_list::superset_of_p): New function.
380 (new ipa_argagg_value_list::push_adjusted_values): Likewise.
381 (push_agg_values_from_plats): Likewise.
382 (intersect_argaggs_with): Likewise.
383 (get_clone_agg_value): Removed.
384 (ipa_agg_value_from_node): Make last parameter const, use
385 ipa_argagg_value_list to search values coming from clones.
386 (ipa_get_indirect_edge_target_1): Use ipa_argagg_value_list to search
387 values coming from clones.
388 (ipcp_discover_new_direct_edges): Pass around a vector of
389 ipa_argagg_values rather than a link list of replacement values.
390 (cgraph_edge_brings_value_p): Use ipa_argagg_value_list to search
391 values coming from clones.
392 (create_specialized_node): Work with a vector of ipa_argagg_values
393 rather than a link list of replacement values.
394 (self_recursive_agg_pass_through_p): Make the pointer parameters
395 const.
396 (copy_plats_to_inter): Removed.
397 (intersect_with_plats): Likewise.
398 (agg_replacements_to_vector): Likewise.
399 (intersect_with_agg_replacements): Likewise.
400 (intersect_aggregates_with_edge): Likewise.
401 (push_agg_values_for_index_from_edge): Likewise.
402 (push_agg_values_from_edge): Likewise.
403 (find_aggregate_values_for_callers_subset): Rewrite.
404 (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
405 (ipcp_val_agg_replacement_ok_p): Use ipa_argagg_value_list to search
406 aggregate values.
407 (decide_about_value): Work with a vector of ipa_argagg_values rather
408 than a link list of replacement values.
409 (decide_whether_version_node): Likewise.
410 (ipa_analyze_node): Check number of parameters, assert that there
411 are no descriptors when bailing out.
412 * ipa-prop.cc (ipa_set_node_agg_value_chain): Switch to a vector of
413 ipa_argagg_value.
414 (ipa_node_params_t::duplicate): Removed superfluous handling of
415 ipa_agg_replacement_values. Name of src parameter removed because
416 it is no longer used.
417 (ipcp_transformation_t::duplicate): Replaced duplication of
418 ipa_agg_replacement_values with copying vector m_agg_values.
419 (ipa_dump_agg_replacement_values): Removed.
420 (write_ipcp_transformation_info): Stream the new data-structure
421 instead of the old.
422 (read_ipcp_transformation_info): Likewise.
423 (adjust_agg_replacement_values): Work with ipa_argagg_values instead
424 of linked lists of ipa_agg_replacement_values, copy the items and
425 truncate the vector as necessary to keep it sorted instead of marking
426 items as invalid. Return one bool if CFG should be updated.
427 (ipcp_modif_dom_walker): Store ipcp_transformation instead of
428 linked list of ipa_agg_replacement_values.
429 (ipcp_modif_dom_walker::before_dom_children): Use
430 ipa_argagg_value_list instead of walking a list of
431 ipa_agg_replacement_values.
432 (ipcp_transform_function): Switch to the new data structure, adjust
433 dumping.
434
435 2022-10-18 Richard Biener <rguenther@suse.de>
436
437 PR tree-optimization/107302
438 * tree-vect-loop.cc (vectorizable_recurrence): Fix vec_perm
439 placement for a PHI latch def.
440
441 2022-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
442
443 PR tree-optimization/107275
444 * tree-if-conv.cc (if_convertible_loop_p_1): Move
445 find_data_references_in_loop call from here...
446 (if_convertible_loop_p): And move data-reference vector initialization
447 from here...
448 (tree_if_conversion):... to here.
449
450 2022-10-18 Jakub Jelinek <jakub@redhat.com>
451
452 PR c++/106654
453 * gimple.def (GIMPLE_ASSUME): New statement kind.
454 * gimple.h (struct gimple_statement_assume): New type.
455 (is_a_helper <gimple_statement_assume *>::test,
456 is_a_helper <const gimple_statement_assume *>::test): New.
457 (gimple_build_assume): Declare.
458 (gimple_has_substatements): Return true for GIMPLE_ASSUME.
459 (gimple_assume_guard, gimple_assume_set_guard,
460 gimple_assume_guard_ptr, gimple_assume_body_ptr, gimple_assume_body):
461 New inline functions.
462 * gsstruct.def (GSS_ASSUME): New.
463 * gimple.cc (gimple_build_assume): New function.
464 (gimple_copy): Handle GIMPLE_ASSUME.
465 * gimple-pretty-print.cc (dump_gimple_assume): New function.
466 (pp_gimple_stmt_1): Handle GIMPLE_ASSUME.
467 * gimple-walk.cc (walk_gimple_op): Handle GIMPLE_ASSUME.
468 * omp-low.cc (WALK_SUBSTMTS): Likewise.
469 (lower_omp_1): Likewise.
470 * omp-oacc-kernels-decompose.cc (adjust_region_code_walk_stmt_fn):
471 Likewise.
472 * tree-cfg.cc (verify_gimple_stmt, verify_gimple_in_seq_2): Likewise.
473 * function.h (struct function): Add assume_function bitfield.
474 * gimplify.cc (gimplify_call_expr): If the assumption isn't
475 simple enough, expand it into GIMPLE_ASSUME wrapped block or
476 for -O0 drop it.
477 * gimple-low.cc: Include attribs.h.
478 (create_assumption_fn): New function.
479 (struct lower_assumption_data): New type.
480 (find_assumption_locals_r, assumption_copy_decl,
481 adjust_assumption_stmt_r, adjust_assumption_stmt_op,
482 lower_assumption): New functions.
483 (lower_stmt): Handle GIMPLE_ASSUME.
484 * tree-ssa-ccp.cc (pass_fold_builtins::execute): Remove
485 IFN_ASSUME calls.
486 * lto-streamer-out.cc (output_struct_function_base): Pack
487 assume_function bit.
488 * lto-streamer-in.cc (input_struct_function_base): And unpack it.
489 * cgraphunit.cc (cgraph_node::expand): Don't verify assume_function
490 has TREE_ASM_WRITTEN set and don't release its body.
491 (symbol_table::compile): Allow assume functions not to have released
492 body.
493 * internal-fn.cc (expand_ASSUME): Remove gcc_unreachable.
494 * passes.cc (execute_one_pass): For TODO_discard_function don't
495 release body of assume functions.
496 * cgraph.cc (cgraph_node::verify_node): Don't verify cgraph nodes
497 of PROP_assumptions_done functions.
498 * tree-pass.h (PROP_assumptions_done): Define.
499 (TODO_discard_function): Adjust comment.
500 (make_pass_assumptions): Declare.
501 * passes.def (pass_assumptions): Add.
502 * timevar.def (TV_TREE_ASSUMPTIONS): New.
503 * tree-inline.cc (remap_gimple_stmt): Handle GIMPLE_ASSUME.
504 * tree-vrp.cc (pass_data_assumptions): New variable.
505 (pass_assumptions): New class.
506 (make_pass_assumptions): New function.
507
508 2022-10-18 Richard Biener <rguenther@suse.de>
509
510 PR tree-optimization/107301
511 * gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg):
512 Check whether we can duplicate the block.
513 (find_implicit_erroneous_behavior): Likewise.
514
515 2022-10-18 Andrew MacLeod <amacleod@redhat.com>
516
517 PR tree-optimization/107273
518 * value-relation.cc (equiv_oracle::add_partial_equiv): Merge
519 instead of copying precison of each member.
520
521 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
522
523 PR target/101697
524 * config/h8300/combiner.md: Replace '<' preincment constraint with
525 ZA/Z1..ZH/Z7 combinations.
526 * config/h8300/movepush.md: Similarly
527
528 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
529
530 * config/h8300/constraints.md (Za..Zh): New constraints for
531 autoinc addresses using a specific register.
532 * config/h8300/h8300.cc (pre_incdec_with_reg): New function.
533 * config/h8300/h8300-protos.h (pre_incdec_with_reg): Add prototype.
534
535 2022-10-17 Jeff Law <jlaw@ventanamicro.com>
536
537 * config/i386/cet.c: Remove accidental commit.
538 * config/i386/driver-mingw32.c: Likewise.
539 * config/i386/i386-builtins.c: Likewise.
540 * config/i386/i386-d.c: Likewise.
541 * config/i386/i386-expand.c: Likewise.
542 * config/i386/i386-features.c: Likewise.
543 * config/i386/i386-options.c: Likewise.
544 * config/i386/t-cet: Likewise.
545 * config/i386/x86-tune-sched-atom.c: Likewise.
546 * config/i386/x86-tune-sched-bd.c: Likewise.
547 * config/i386/x86-tune-sched-core.c: Likewise.
548 * config/i386/x86-tune-sched.c: Likewise.
549
550 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
551
552 * common/config/h8300/h8300-common.cc (h8300_option_optimization_table):
553 Enable redundant extension elimination at -O2 and above.
554 * config/i386/cet.c: New file.
555 * config/i386/driver-mingw32.c: New file.
556 * config/i386/i386-builtins.c: New file.
557 * config/i386/i386-d.c: New file.
558 * config/i386/i386-expand.c: New file.
559 * config/i386/i386-features.c: New file.
560 * config/i386/i386-options.c: New file.
561 * config/i386/t-cet: New file.
562 * config/i386/x86-tune-sched-atom.c: New file.
563 * config/i386/x86-tune-sched-bd.c: New file.
564 * config/i386/x86-tune-sched-core.c: New file.
565 * config/i386/x86-tune-sched.c: New file.
566
567 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
568
569 * config/h8300/extensions.md (CCZN setting zero extended load): Add
570 missing splitter.
571
572 2022-10-17 Aldy Hernandez <aldyh@redhat.com>
573
574 PR tree-optimization/107293
575 * tree-ssa-dom.cc
576 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
577 Check that condition post-dominates the definition point.
578
579 2022-10-17 Aldy Hernandez <aldyh@redhat.com>
580
581 PR tree-optimization/107286
582 * value-range.cc (range_tests_floats): Do not test for -Inf when
583 flag_finite_math_only.
584
585 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
586
587 * gimple-range-fold.cc (fold_using_range::range_of_range_op):
588 Provide relation_trio class.
589 * gimple-range-gori.cc (gori_compute::refine_using_relation):
590 Provide relation_trio class.
591 (gori_compute::refine_using_relation): Ditto.
592 (gori_compute::compute_operand1_range): Provide lhs_op2 and
593 op1_op2 relations via relation_trio class.
594 (gori_compute::compute_operand2_range): Ditto.
595 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
596 relation_trio instead of relation_kind.
597 (gimple_range_op_handler::calc_op2): Ditto.
598 (*::fold_range): Ditto.
599 * gimple-range-op.h (gimple_range_op::calc_op1): Adjust prototypes.
600 (gimple_range_op::calc_op2): Adjust prototypes.
601 * range-op-float.cc (*::fold_range): Use relation_trio instead of
602 relation_kind.
603 (*::op1_range): Ditto.
604 (*::op2_range): Ditto.
605 * range-op.cc (*::fold_range): Use relation_trio instead of
606 relation_kind.
607 (*::op1_range): Ditto.
608 (*::op2_range): Ditto.
609 * range-op.h (class range_operator): Adjust prototypes.
610 (class range_operator_float): Ditto.
611 (class range_op_handler): Adjust prototypes.
612 (relop_early_resolve): Pickup op1_op2 relation from relation_trio.
613 * value-relation.cc (VREL_LAST): Adjust use to be one past the end of
614 the enum.
615 (relation_oracle::validate_relation): Use relation_trio in call
616 to fold_range.
617 * value-relation.h (enum relation_kind_t): Add VREL_LAST as
618 final element.
619 (class relation_trio): New.
620 (TRIO_VARYING, TRIO_SHIFT, TRIO_MASK): New.
621
622 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
623
624 * range-op-float.cc (foperator_not_equal::op1_range): Check for
625 VREL_EQ after singleton.
626 (foperator_unordered::op1_range): Set VARYING before calling
627 clear_nan().
628 (foperator_ordered::op1_range): Set rather than clear NAN if both
629 operands are the same.
630
631 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
632
633 * value-relation.cc (value_relation::dump): Change message.
634 * value-relation.h (value_relation::set_relation): If op1 is the
635 same as op2 do not create a relation.
636
637 2022-10-17 Thomas Schwinge <thomas@codesourcery.com>
638
639 * config/gcn/gcn.cc (VnMODE): Use 'case E_QImode:' instead of
640 'case QImode:', etc.
641
642 2022-10-17 Thomas Schwinge <thomas@codesourcery.com>
643
644 * gimple-expr.cc (mark_addressable_2): Tag as 'static'.
645
646 2022-10-17 Richard Biener <rguenther@suse.de>
647 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
648
649 PR tree-optimization/99409
650 PR tree-optimization/99394
651 * tree-vectorizer.h (vect_def_type::vect_first_order_recurrence): Add.
652 (stmt_vec_info_type::recurr_info_type): Likewise.
653 (vectorizable_recurr): New function.
654 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p): New
655 function.
656 (vect_analyze_scalar_cycles_1): Look for first order
657 recurrences.
658 (vect_analyze_loop_operations): Handle them.
659 (vect_transform_loop): Likewise.
660 (vectorizable_recurr): New function.
661 (maybe_set_vectorized_backedge_value): Handle the backedge value
662 setting in the first order recurrence PHI and the permutes.
663 * tree-vect-stmts.cc (vect_analyze_stmt): Handle first order
664 recurrences.
665 (vect_transform_stmt): Likewise.
666 (vect_is_simple_use): Likewise.
667 (vect_is_simple_use): Likewise.
668 * tree-vect-slp.cc (vect_get_and_check_slp_defs): Likewise.
669 (vect_build_slp_tree_2): Likewise.
670 (vect_schedule_scc): Handle the backedge value setting in the
671 first order recurrence PHI and the permutes.
672
673 2022-10-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
674
675 * config/riscv/t-riscv: Change Tab into 2 space.
676
677 2022-10-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
678
679 * config/riscv/riscv-vector-builtins.cc (mangle_builtin_type): Move down the function.
680
681 2022-10-17 Arsen Arsenovic <arsen@aarsen.me>
682
683 * config.gcc: --target=*-elf --without-{newlib,headers} should
684 provide stdint.h.
685
686 2022-10-17 Hu, Lin1 <lin1.hu@intel.com>
687
688 * common/config/i386/cpuinfo.h:
689 (get_intel_cpu): Handle Meteorlake.
690 * common/config/i386/i386-common.cc:
691 (processor_alias_table): Add Meteorlake.
692
693 2022-10-17 Haochen Jiang <haochen.jiang@intel.com>
694
695 * common/config/i386/cpuinfo.h:
696 (get_intel_cpu): Handle Raptorlake.
697 * common/config/i386/i386-common.cc:
698 (processor_alias_table): Add Raptorlake.
699
700 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
701
702 * config/h8300/constraints.md (Z0..Z7): New register
703 constraints.
704 * config/h8300/h8300.h (reg_class): Add new classes.
705 (REG_CLASS_NAMES): Similarly.
706 (REG_CLASS_CONTENTS): Similarly.
707
708 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
709
710 * config/h8300/constraints.md (Zz constraint): Renamed
711 from "z".
712 * config/h8300/movepush.md (movqi_h8sx, movhi_h8sx): Adjust
713 constraint to use Zz instead of Z.
714
715 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
716
717 * config/h8300/h8300.cc (h8300_register_move_cost): Fix typo.
718
719 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
720
721 * value-range.cc (frange::set): Implement distinction between
722 HONOR_SIGNED_ZEROS and MODE_HAS_SIGNED_ZEROS.
723
724 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
725
726 * gimple-range-op.cc (class cfn_copysign): New.
727 (gimple_range_op_handler::maybe_builtin_call): Add
728 CFN_BUILT_IN_COPYSIGN*.
729
730 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
731
732 * real.h (real_isdenormal): Check rvc_normal.
733 * value-range.cc (range_tests_floats): New test.
734
735 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
736
737 * gimple-range-op.cc
738 (gimple_range_op_handler::maybe_builtin_call): Replace
739 CFN_BUILTIN_SIGNBIT* cases with CASE_FLT_FN.
740
741 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
742
743 * value-range.cc (frange::set): Normalize ranges for both bounds.
744
745 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
746
747 * value-range.cc (frange::set): Drop -0.0 for !HONOR_SIGNED_ZEROS.
748
749 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
750
751 * gimple-range-op.cc
752 (gimple_range_op_handler::maybe_builtin_call): Add
753 CFN_BUILT_IN_SIGNBIT[FL]* entries.
754
755 2022-10-14 Richard Biener <rguenther@suse.de>
756
757 PR tree-optimization/107254
758 * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
759 For permutes also analyze live lanes.
760 (vect_schedule_slp_node): For permutes also code generate
761 live lane extracts.
762
763 2022-10-14 Eric Botcazou <ebotcazou@adacore.com>
764
765 PR target/107248
766 * config/sparc/sparc.cc (sparc_expand_prologue): Emit a frame
767 blockage for leaf functions.
768 (sparc_flat_expand_prologue): Emit frame instead of full blockage.
769 (sparc_expand_epilogue): Emit a frame blockage for leaf functions.
770 (sparc_flat_expand_epilogue): Emit frame instead of full blockage.
771
772 2022-10-14 Jakub Jelinek <jakub@redhat.com>
773
774 * tree-core.h (enum tree_index): Add TI_BFLOAT16_TYPE.
775 * tree.h (bfloat16_type_node): Define.
776 * tree.cc (excess_precision_type): Promote bfloat16_type_mode
777 like float16_type_mode.
778 (build_common_tree_nodes): Initialize bfloat16_type_node if
779 BFmode is supported.
780 * expmed.h (maybe_expand_shift): Declare.
781 * expmed.cc (maybe_expand_shift): No longer static.
782 * expr.cc (convert_mode_scalar): Don't ICE on BF -> HF or HF -> BF
783 conversions. If there is no optab, handle BF -> {DF,XF,TF,HF}
784 conversions as separate BF -> SF -> {DF,XF,TF,HF} conversions, add
785 -ffast-math generic implementation for BF -> SF and SF -> BF
786 conversions.
787 * builtin-types.def (BT_BFLOAT16, BT_FN_BFLOAT16_CONST_STRING): New.
788 * builtins.def (BUILT_IN_NANSF16B): New builtin.
789 * fold-const-call.cc (fold_const_call): Handle CFN_BUILT_IN_NANSF16B.
790 * config/i386/i386.cc (classify_argument): Handle E_BCmode.
791 (ix86_libgcc_floating_mode_supported_p): Also return true for BFmode
792 for -msse2.
793 (ix86_mangle_type): Mangle BFmode as DF16b.
794 (ix86_invalid_conversion, ix86_invalid_unary_op,
795 ix86_invalid_binary_op): Remove.
796 (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP,
797 TARGET_INVALID_BINARY_OP): Don't redefine.
798 * config/i386/i386-builtins.cc (ix86_bf16_type_node): Remove.
799 (ix86_register_bf16_builtin_type): Use bfloat16_type_node rather than
800 ix86_bf16_type_node, only create it if still NULL.
801 * config/i386/i386-builtin-types.def (BFLOAT16): Likewise.
802 * config/i386/i386.md (cbranchbf4, cstorebf4): New expanders.
803
804 2022-10-14 Jakub Jelinek <jakub@redhat.com>
805
806 PR middle-end/323
807 PR c++/107097
808 * doc/invoke.texi (-fexcess-precision=standard): Mention that the
809 option now also works in C++.
810
811 2022-10-13 Eric Botcazou <ebotcazou@adacore.com>
812
813 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Return
814 early for calls made from thunks.
815
816 2022-10-13 Eric Botcazou <ebotcazou@adacore.com>
817
818 * expr.cc (emit_group_stote): Fix handling of modes of different
819 sizes for big-endian targets in latest change and add commentary.
820
821 2022-10-13 Martin Liska <mliska@suse.cz>
822
823 * output.h (assemble_vtv_preinit_initializer): Remove.
824 * varasm.cc (assemble_vtv_preinit_initializer): Remove.
825
826 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
827
828 PR tree-optimization/102540
829 PR tree-optimization/102872
830 * gimple-range-cache.cc (ranger_cache::fill_block_cache):
831 Handle partial equivs.
832 (ranger_cache::range_from_dom): Cleanup dump output.
833
834 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
835
836 * range-op.cc (operator_cast::lhs_op1_relation): New.
837 (operator_bitwise_and::lhs_op1_relation): New.
838
839 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
840
841 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Use
842 iterator.
843 * value-relation.cc
844 (equiv_relation_iterator::equiv_relation_iterator): New.
845 (equiv_relation_iterator::next): New.
846 (equiv_relation_iterator::get_name): New.
847 * value-relation.h (class relation_oracle): Privatize some methods.
848 (class equiv_relation_iterator): New.
849 (FOR_EACH_EQUIVALENCE): New.
850 (FOR_EACH_PARTIAL_EQUIV): New.
851 (FOR_EACH_PARTIAL_AND_FULL_EQUIV): New.
852
853 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
854
855 * value-relation.cc (equiv_chain::dump): Don't print empty
856 equivalences.
857 (equiv_oracle::equiv_oracle): Allocate a partial equiv table.
858 (equiv_oracle::~equiv_oracle): Release the partial equiv table.
859 (equiv_oracle::add_partial_equiv): New.
860 (equiv_oracle::partial_equiv_set): New.
861 (equiv_oracle::partial_equiv): New.
862 (equiv_oracle::query_relation): Check for partial equivs too.
863 (equiv_oracle::dump): Also dump partial equivs.
864 (dom_oracle::register_relation): Handle partial equivs.
865 (dom_oracle::query_relation): Check for partial equivs.
866 * value-relation.h (enum relation_kind_t): Add partial equivs.
867 (relation_partial_equiv_p): New.
868 (relation_equiv_p): New.
869 (class pe_slice): New.
870 (class equiv_oracle): Add prototypes.
871 (pe_to_bits): New.
872 (bits_to_pe): New.
873 (pe_min): New.
874
875 2022-10-13 Richard Biener <rguenther@suse.de>
876
877 PR tree-optimization/107247
878 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
879 Reduce multi vector SLP reduction accumulators. Check
880 the adjusted number of accumulator vectors against
881 one for the re-use in the epilogue.
882
883 2022-10-13 Jakub Jelinek <jakub@redhat.com>
884
885 * genmodes.cc (emit_mode_wider): Emit previous content of
886 mode_wider array into mode_next array and for mode_wider
887 emit always VOIDmode for !CLASS_HAS_WIDER_MODES_P classes,
888 otherwise skip through modes with the same precision.
889 * machmode.h (mode_next): Declare.
890 (GET_MODE_NEXT_MODE): New inline function.
891 (mode_iterator::get_next, mode_iterator::get_known_next): New
892 function templates.
893 (FOR_EACH_MODE_IN_CLASS): Use get_next instead of get_wider.
894 (FOR_EACH_MODE): Use get_known_next instead of get_known_wider.
895 (FOR_EACH_MODE_FROM): Use get_next instead of get_wider.
896 (FOR_EACH_WIDER_MODE_FROM): Define.
897 (FOR_EACH_NEXT_MODE): Define.
898 * expmed.cc (emit_store_flag_1): Use FOR_EACH_WIDER_MODE_FROM
899 instead of FOR_EACH_MODE_FROM.
900 * optabs.cc (prepare_cmp_insn): Likewise. Remove redundant
901 !CLASS_HAS_WIDER_MODES_P check.
902 (prepare_float_lib_cmp): Use FOR_EACH_WIDER_MODE_FROM instead of
903 FOR_EACH_MODE_FROM.
904 * config/i386/i386-expand.cc (get_mode_wider_vector): Use
905 GET_MODE_NEXT_MODE instead of GET_MODE_WIDER_MODE.
906
907 2022-10-13 Wilco Dijkstra <wdijkstr@arm.com>
908
909 PR target/105773
910 * config/aarch64/aarch64.cc (aarch64_select_cc_mode): Allow
911 GT/LE for merging compare with zero into AND.
912 (aarch64_get_condition_code_1): Add CC_NZVmode support.
913 * config/aarch64/aarch64-modes.def: Add CC_NZV.
914 * config/aarch64/aarch64.md: Use CC_NZV in cmp+and patterns.
915
916 2022-10-13 Richard Biener <rguenther@suse.de>
917
918 PR tree-optimization/107160
919 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
920 Do not register accumulator if we failed to reduce it
921 to a single vector.
922
923 2022-10-13 Aldy Hernandez <aldyh@redhat.com>
924
925 * range-op-float.cc (range_operator_float::op1_op2_relation): New.
926 (class foperator_equal): Add using.
927 (class foperator_not_equal): Same.
928 (class foperator_lt): Same.
929 (class foperator_le): Same.
930 (class foperator_gt): Same.
931 (class foperator_ge): Same.
932 * range-op.cc (range_op_handler::op1_op2_relation): New.
933 * range-op.h (range_operator_float::op1_op2_relation): New.
934
935 2022-10-13 Richard Biener <rguenther@suse.de>
936
937 * genmatch.cc (parser::parse_c_expr): Diagnose 'return'.
938 * match.pd: Replace 'return' statements in with expressions
939 with appropriate variants.
940
941 2022-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com>
942
943 PR tree-optimization/107229
944 * tree-if-conv.cc (get_bitfield_rep): Fix bitposition calculation.
945
946 2022-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com>
947
948 PR tree-optimization/107226
949 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Reject
950 BITFIELD_REF's with non integral typed first operands.
951
952 2022-10-13 Joseph Myers <joseph@codesourcery.com>
953
954 * ginclude/float.h (FLT_IS_IEC_60559, DBL_IS_IEC_60559)
955 (LDBL_IS_IEC_60559): Update comment.
956
957 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
958
959 * range-op-float.cc (class foperator_negate): New.
960 (floating_op_table::floating_op_table): Add NEGATE_EXPR
961 (range_op_float_tests): Add negate tests.
962
963 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
964
965 * config/riscv/riscv-vector-builtins.h: Remove unused macro.
966
967 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
968
969 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Apply
970 clang-format.
971 (add_vector_type_attribute): Ditto.
972 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Apply
973 clang-format.
974 * config/riscv/riscv-vector-builtins.h (DEF_RVV_TYPE): Apply
975 clang-format.
976
977 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
978
979 * config/riscv/riscv-vector-builtins.cc (builtin_types): Redefine
980 vector types.
981 (build_const_pointer): New function.
982 (register_builtin_type): Ditto.
983 (DEF_RVV_TYPE): Simplify macro.
984 (register_vector_type): Refine implementation.
985 * config/riscv/riscv-vector-builtins.h (rvv_builtin_types_t): New.
986
987 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
988
989 * config/riscv/riscv-vector-builtins.h (class rvv_switcher): Move to
990 this to ....
991 * config/riscv/riscv-vector-builtins.cc (class rvv_switcher):
992 here.
993
994 2022-10-12 Cui,Lili <lili.cui@intel.com>
995
996 * config/i386/driver-i386.cc (host_detect_local_cpu):
997 Move sapphirerapids out of AVX512_VP2INTERSECT.
998 * config/i386/i386.h: Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS
999 * doc/invoke.texi: Remove AVX512_VP2INTERSECT from SAPPHIRERAPIDS
1000
1001 2022-10-12 Martin Liska <mliska@suse.cz>
1002
1003 * gcov-io.cc (gcov_write_summary): Rename to ...
1004 (gcov_write_object_summary): ... this.
1005 * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY_LENGTH): Rename from ...
1006 (GCOV_TAG_SUMMARY_LENGTH): ... this.
1007
1008 2022-10-12 Martin Liska <mliska@suse.cz>
1009
1010 * configure: Regenerate.
1011
1012 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
1013
1014 * range-op-float.cc (frange_float): New.
1015 (range_op_float_tests): New.
1016 * range-op.cc (range_op_tests): Call range_op_float_tests.
1017
1018 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
1019
1020 * value-range.h (frange::nan_signbit_p): New.
1021
1022 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
1023
1024 * value-range.cc (frange::set_nonnegative): Pass bool to
1025 update_nan.
1026 * value-range.h: Disallow conversion to bool in update_nan().
1027
1028 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
1029
1030 * value-range.h (frange::frange): Add constructor taking type.
1031
1032 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
1033
1034 * range-op-float.cc: Add relation_kind = VREL_VARYING to all
1035 methods.
1036
1037 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
1038
1039 * gimple-range-gori.cc (gori_compute::logical_combine): Avoid
1040 calling tracer.trailer().
1041
1042 2022-10-11 Jakub Jelinek <jakub@redhat.com>
1043
1044 PR target/107185
1045 * config/i386/i386.md (*notxor<mode>_1): Use MASK_REG_P (x) instead of
1046 MASK_REGNO_P (REGNO (x)).
1047
1048 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
1049
1050 * range-op-float.cc (class foperator_abs): New.
1051 (floating_op_table::floating_op_table): Add ABS_EXPR entry.
1052
1053 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
1054
1055 * range-op-float.cc (foperator_unordered_le::op1_range): New.
1056 (foperator_unordered_le::op2_range): New.
1057 (foperator_unordered_gt::op1_range): New.
1058 (foperator_unordered_gt::op2_range): New.
1059 (foperator_unordered_ge::op1_range): New.
1060 (foperator_unordered_ge::op2_range): New.
1061 (foperator_unordered_equal::op1_range): New.
1062
1063 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
1064
1065 * range-op-float.cc (class foperator_unordered_lt): New.
1066 (class foperator_relop_unknown): Remove
1067 (class foperator_unordered_le): New.
1068 (class foperator_unordered_gt): New.
1069 (class foperator_unordered_ge): New.
1070 (class foperator_unordered_equal): New.
1071 (floating_op_table::floating_op_table): Replace all UN_EXPR
1072 entries with their appropriate fop_unordered_* counterpart.
1073
1074 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
1075
1076 * range-op.cc (operator_equal::op1_range): Move BRS_TRUE case up.
1077 (operator_lt::op2_range): Same.
1078 (operator_le::op2_range): Same.
1079 (operator_gt::op2_range): Same.
1080 (operator_ge::op2_range): Same.
1081
1082 2022-10-11 Richard Biener <rguenther@suse.de>
1083
1084 PR tree-optimization/107212
1085 * tree-vect-loop.cc (vectorizable_reduction): Make sure to
1086 set STMT_VINFO_REDUC_DEF for all live lanes in a SLP
1087 reduction.
1088 (vectorizable_live_operation): Do not pun to the SLP
1089 node representative for reduction epilogue generation.
1090
1091 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
1092
1093 * config/gcn/gcn-valu.md (neg<mode>2): New define_expand.
1094
1095 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
1096
1097 * config/gcn/gcn-valu.md (vec_init<V_ALL:mode><V_ALL_ALT:mode>): New.
1098 * config/gcn/gcn.cc (GEN_VN): Add andvNsi3, subvNsi3.
1099 (GEN_VNM): Add gathervNm_expr.
1100 (GEN_VN_NOEXEC): Add vec_seriesvNsi.
1101 (gcn_expand_vector_init): Add initialization of vectors from smaller
1102 vectors.
1103
1104 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
1105
1106 * config/gcn/gcn-protos.h (get_exec): Add prototypes for two variants.
1107 * config/gcn/gcn-valu.md
1108 (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): New define_expand.
1109 * config/gcn/gcn.cc (get_exec): Export the existing function. Add a
1110 new overload variant.
1111
1112 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
1113
1114 * config/gcn/gcn-valu.md
1115 (<cvt_name><VCVT_MODE:mode><VCVT_FMODE:mode>2<exec>): Use MODE_VF.
1116 (<cvt_name><VCVT_FMODE:mode><VCVT_IMODE:mode>2<exec>): Likewise.
1117 * config/gcn/gcn.h (MODE_VF): New macro.
1118
1119 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
1120
1121 * config/gcn/gcn-modes.def (VECTOR_MODE): Add new modes
1122 V32QI, V32HI, V32SI, V32DI, V32TI, V32HF, V32SF, V32DF,
1123 V16QI, V16HI, V16SI, V16DI, V16TI, V16HF, V16SF, V16DF,
1124 V8QI, V8HI, V8SI, V8DI, V8TI, V8HF, V8SF, V8DF,
1125 V4QI, V4HI, V4SI, V4DI, V4TI, V4HF, V4SF, V4DF,
1126 V2QI, V2HI, V2SI, V2DI, V2TI, V2HF, V2SF, V2DF.
1127 (ADJUST_ALIGNMENT): Likewise.
1128 * config/gcn/gcn-protos.h (gcn_full_exec): Delete.
1129 (gcn_full_exec_reg): Delete.
1130 (gcn_scalar_exec): Delete.
1131 (gcn_scalar_exec_reg): Delete.
1132 (vgpr_1reg_mode_p): Use inner mode to identify vector registers.
1133 (vgpr_2reg_mode_p): Likewise.
1134 (vgpr_vector_mode_p): Use VECTOR_MODE_P.
1135 * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF,
1136 V_QIHI, V_1REG, V_INT_1REG, V_INT_1REG_ALT, V_FP_1REG, V_2REG, V_noQI,
1137 V_noHI, V_INT_noQI, V_INT_noHI, V_ALL, V_ALL_ALT, V_INT, V_FP):
1138 Add additional vector modes.
1139 (V64_SI, V64_DI, V64_ALL, V64_FP): New iterators.
1140 (scalar_mode, SCALAR_MODE, vnsi, VnSI, vndi, VnDI, sdwa):
1141 Add additional vector mode mappings.
1142 (mov<mode>): Implement vector length conversions.
1143 (ldexp<mode>3<exec>): Use VnSI.
1144 (frexp<mode>_exp2<exec>): Likewise.
1145 (VCVT_MODE, VCVT_FMODE, VCVT_IMODE): Add additional vector modes.
1146 (reduc_<reduc_op>_scal_<mode>): Use V64_ALL.
1147 (fold_left_plus_<mode>): Use V64_FP.
1148 (*<reduc_op>_dpp_shr_<mode>): Use V64_1REG.
1149 (*<reduc_op>_dpp_shr_<mode>): Use V64_DI.
1150 (*plus_carry_dpp_shr_<mode>): Use V64_INT_1REG.
1151 (*plus_carry_in_dpp_shr_<mode>): Use V64_SI.
1152 (*plus_carry_dpp_shr_<mode>): Use V64_DI.
1153 (mov_from_lane63_<mode>): Use V64_2REG.
1154 * config/gcn/gcn.cc (VnMODE): New function.
1155 (gcn_can_change_mode_class): Support multiple vector sizes.
1156 (gcn_modes_tieable_p): Likewise.
1157 (gcn_operand_part): Likewise.
1158 (gcn_scalar_exec): Delete function.
1159 (gcn_scalar_exec_reg): Delete function.
1160 (gcn_full_exec): Delete function.
1161 (gcn_full_exec_reg): Delete function.
1162 (gcn_inline_fp_constant_p): Support multiple vector sizes.
1163 (gcn_fp_constant_p): Likewise.
1164 (A): New macro.
1165 (GEN_VN_NOEXEC): New macro.
1166 (GEN_VNM_NOEXEC): New macro.
1167 (GEN_VN): New macro.
1168 (GEN_VNM): New macro.
1169 (GET_VN_FN): New macro.
1170 (CODE_FOR): New macro.
1171 (CODE_FOR_OP): New macro.
1172 (gen_mov_with_exec): Delete function.
1173 (gen_duplicate_load): Delete function.
1174 (gcn_expand_vector_init): Support multiple vector sizes.
1175 (strided_constant): Likewise.
1176 (gcn_addr_space_legitimize_address): Likewise.
1177 (gcn_expand_scalar_to_vector_address): Likewise.
1178 (gcn_expand_scaled_offsets): Likewise.
1179 (gcn_secondary_reload): Likewise.
1180 (gcn_valid_cvt_p): Likewise.
1181 (gcn_expand_builtin_1): Likewise.
1182 (gcn_make_vec_perm_address): Likewise.
1183 (gcn_vectorize_vec_perm_const): Likewise.
1184 (gcn_vector_mode_supported_p): Likewise.
1185 (gcn_autovectorize_vector_modes): New hook.
1186 (gcn_related_vector_mode): Support multiple vector sizes.
1187 (gcn_expand_dpp_shr_insn): Add FIXME comment.
1188 (gcn_md_reorg): Support multiple vector sizes.
1189 (print_reg): Likewise.
1190 (print_operand): Likewise.
1191 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): New hook.
1192
1193 2022-10-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
1194
1195 * tree-if-conv.cc (if_convertible_loop_p_1): Move ordering of loop bb's from
1196 here...
1197 (tree_if_conversion): ... to here. Also call bitfield lowering when
1198 appropriate.
1199 (version_loop_for_if_conversion): Adapt to enable loop versioning when we only
1200 need to lower bitfields.
1201 (ifcvt_split_critical_edges): Relax condition of expected loop form as this is
1202 checked earlier.
1203 (get_bitfield_rep): New function.
1204 (lower_bitfield): Likewise.
1205 (bitfields_to_lower_p): Likewise.
1206 (need_to_lower_bitfields): New global boolean.
1207 (need_to_ifcvt): Likewise.
1208 * tree-vect-data-refs.cc (vect_find_stmt_data_reference): Improve diagnostic
1209 message.
1210 * tree-vect-patterns.cc (vect_recog_temp_ssa_var): Add default value for last
1211 parameter.
1212 (vect_recog_bitfield_ref_pattern): New.
1213 (vect_recog_bit_insert_pattern): New.
1214
1215 2022-10-11 liuhongt <hongtao.liu@intel.com>
1216
1217 PR target/107093
1218 * config/i386/i386.md (*notxor<mode>_1): New post_reload
1219 define_insn_and_split.
1220 (*notxorqi_1): Ditto.
1221
1222 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
1223
1224 PR tree-optimization/107195
1225 * value-range.cc (irange::set_range_from_nonzero_bits): Set range
1226 to [0,0] when nonzero mask is 0.
1227
1228 2022-10-11 Olivier Hainque <hainque@adacore.com>
1229 Olivier Hainque <hainque@adacore.com>
1230
1231 * configure: Regenerate.
1232
1233 2022-10-11 Olivier Hainque <hainque@adacore.com>
1234
1235 * config.gcc (*vxworks*): Add t-slibgcc fragment
1236 if enable_shared.
1237
1238 2022-10-11 Olivier Hainque <hainque@adacore.com>
1239
1240 * config/vxworks.h (VX_LGCC_EH_SO0, VX_LGCC_EH_SO1): New
1241 internal macros.
1242 (VXWORKS_LIBGCC_SPEC): Use them and document.
1243
1244 2022-10-11 Martin Liska <mliska@suse.cz>
1245
1246 * gimple-range-op.cc: Add override keyword.
1247
1248 2022-10-11 Eugene Rozenfeld <erozen@microsoft.com>
1249
1250 PR debug/107193
1251 * tree-cfg.cc (assign_discriminators): Move declaration of cur_locus_e
1252 out of the loop.
1253
1254 2022-10-11 Liwei Xu <liwei.xu@intel.com>
1255 liuhongt <hongtao.liu@intel.com>
1256
1257 PR tree-optimization/54346
1258 * match.pd: Merge the index of VCST then generates the new vec_perm.
1259
1260 2022-10-11 Jeff Law <jeffreyalaw@gmail.com>
1261
1262 PR rtl-optimization/107182
1263 * cfgrtl.cc (fixup_reorder_chain): When optimizing a jump to a
1264 return, clear EDGE_CROSSING on the appropriate edge.
1265
1266 2022-10-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1267
1268 * config/riscv/riscv-vector-builtins.cc (struct vector_type_info): Move
1269 from config/riscv/riscv-vector-builtins.h.
1270 (DEF_RVV_TYPE): Change USER_NAME to NAME.
1271 (register_vector_type): Change user_name to name.
1272 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Change
1273 USER_NAME to NAME.
1274 * config/riscv/riscv-vector-builtins.h (struct vector_type_info): Move
1275 to riscv-vector-builtins.cc.
1276 (DEF_RVV_TYPE): Change USER_NAME to NAME.
1277
1278 2022-10-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1279
1280 * config/riscv/riscv.md: Add vsetvl instruction type.
1281
1282 2022-10-10 Nathan Sidwell <nathan@acm.org>
1283
1284 * common.opt (-fabi-version=): Document 18.
1285 * doc/invoke.texi (-fabi-version): Document 18.
1286
1287 2022-10-10 Andrea Corallo <andrea.corallo@arm.com>
1288
1289 PR other/99723
1290 * toplev.cc (toplev::main): Don't run self tests in case of
1291 previous error.
1292
1293 2022-10-10 Kito Cheng <kito.cheng@sifive.com>
1294
1295 * config/riscv/riscv-c.cc: Add newline to the end of file.
1296
1297 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
1298
1299 * range-op-float.cc (class foperator_identity): Make members public.
1300 (class foperator_equal): Same.
1301 (class foperator_not_equal): Same.
1302 (class foperator_lt): Same.
1303 (class foperator_le): Same.
1304 (class foperator_gt): Same.
1305 (class foperator_ge): Same.
1306 (class foperator_unordered): Same.
1307 (class foperator_ordered): Same.
1308
1309 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
1310
1311 * value-range.h (frange::maybe_isnan): New.
1312
1313 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
1314
1315 * range-op-float.cc (foperator_not_equal::op1_range): Set NAN on
1316 TRUE side for x != x.
1317
1318 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
1319
1320 * range-op-float.cc (foperator_unordered::op1_range): Set NAN when
1321 operands are equal and result is TRUE.
1322
1323 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
1324
1325 * range.h (range_true): Return int_range<2>.
1326 (range_false): Same.
1327 (range_true_and_false): Same.
1328
1329 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
1330
1331 * gimple-range-op.cc: Add op1_range entry for __builtin_signbit.
1332
1333 2022-10-10 liuhongt <hongtao.liu@intel.com>
1334
1335 PR target/107185
1336 * config/i386/i386.md (lrint<MODEF:mode><SWI48:mode>2): Swap
1337 predicate of operands[0] and operands[1].
1338
1339 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
1340
1341 * common/config/arc/arc-common.cc (arc_option_optimization_table):
1342 Remove Rcq and Rcw options.
1343 * config/arc/arc.opt (mRcq): Ignore option, preserve it for
1344 backwards compatibility.
1345 (mRcw): Likewise.
1346 * doc/invoke.texi (mRcw, mRcq): Update document.
1347
1348 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
1349
1350 * config/arc/arc.cc (arc_check_short_reg_p): New function.
1351 (arc_address_cost): Replace satisfies_constraint_Rcq with the
1352 above new function.
1353 (arc_output_addsi): Likewise.
1354 (split_addsi): Likewise.
1355 (split_subsi): Likewise.
1356 * config/arc/arc.md (movqi_insn): Remove Rcq constraint.
1357 (movhi_insn): Likewise.
1358 (movsi_insn): Likewise.
1359 (tst_movb): Likewise.
1360 (tst): Likewise.
1361 (tst_bitfield): Likewise.
1362 (abssi2): Likewise.
1363 (addsi3_mixed): Likewise.
1364 (mulhisi3_reg): Likewise.
1365 (umulhisi3_reg): Likewise.
1366 (mulsi_600): Likewise.
1367 (mul64): Likewise.
1368 (subsi3_insn): Likewise.
1369 (bicsi3_insn): Likewise.
1370 (xorsi3): Likewise.
1371 (negsi2): Likewise.
1372 (one_cmplsi2): Likewise.
1373 (lshrsi3_insn): Likewise.
1374 (cmpsi_cc_insn_mixed): Likewise.
1375 (cmpsi_cc_zn_insn): Likewise.
1376 (btst): Likewise.
1377 (cmpsi_cc_z_insn): Likewise.
1378 (cmpsi_cc_c_insn): Likewise.
1379 (indirect_jump): Likewise.
1380 (casesi_jump): Likewise.
1381 (call_i): Likewise.
1382 (call_value_i): Likewise.
1383 (bbit): Likewise.
1384 (abssf2): Likewise.
1385 (ashlsi2_cnt1): Likewise.
1386 (lshrsi3_cnt1): Likewise.
1387 (ashrsi3_cnt1): Likewise.
1388 * config/arc/constraints.md (Rcq): Remove.
1389
1390 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
1391
1392 * config/arc/arc.md (smaxsi3): Remove Rcw.
1393 (sminsi3): Likewise.
1394 (addsi3_mixed): Likewise.
1395 (add_f_2): Likewise.
1396 (subsi3_insn): Likewise.
1397 (sub_f): Likewise.
1398 (sub_n): Likewise.
1399 (bset): Likewise.
1400 (bxor): Likewise.
1401 (bclr): Likewise.
1402 (bset_insn): Likewise.
1403 (bxor_insn): Likewise.
1404 (bclr_insn): Likewise.
1405 (bmsk_insn): Likewise.
1406 (bicsi3_insn): Likewise.
1407 (xorsi3): Likewise.
1408 (negsi2): Likewise.
1409 (lshrsi3_insn): Likewise.
1410 (abssf2): Likewise.
1411 (negsf2): Likewise.
1412 * config/arc/constraints.md(Rcw): Remove it.
1413
1414 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
1415
1416 * config/arc/arc.md(mulsi3_700): Remove Rcr.
1417 (mulsi3_highpart): Likewise.
1418 (umulsi3_highpart_i): Likewise.
1419 (umulsi3_highpart_int): Likewise.
1420 (macd): Likewise.
1421 (macdu): Likewise.
1422 * config/arc/constraints.md (Rcr): Remove it.
1423
1424 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
1425
1426 * config/arc/arc.cc (arc_save_callee_enter): Use negative offsets.
1427
1428 2022-10-09 Dimitar Dimitrov <dimitar@dinux.eu>
1429
1430 PR target/106562
1431 * config/pru/pru-protos.h (pru_noteq_condition): New
1432 function declaration.
1433 * config/pru/pru.cc (pru_noteq_condition): New function.
1434 * config/pru/pru.md (cbranchdi4): Define new pattern.
1435
1436 2022-10-09 Dimitar Dimitrov <dimitar@dinux.eu>
1437
1438 * config/pru/pru.md (lshrdi3): New expand pattern.
1439 (ashldi3): Ditto.
1440
1441 2022-10-09 YunQiang Su <yunqiang.su@cipunited.com>
1442
1443 * config.gcc: set with_arch to default_mips_arch if no defined.
1444 * config/mips/driver-native.cc (host_detect_local_cpu):
1445 try getauxval(AT_BASE_PLATFORM) and _MIPS_ARCH, too.
1446 pass -mnan=2008 if __mips_nan2008__ is defined.
1447 * config.in: define HAVE_SYS_AUXV_H and HAVE_GETAUXVAL.
1448 * configure.ac: detect sys/auxv.h and getauxval.
1449 * configure: regenerated.
1450
1451 2022-10-07 Eugene Rozenfeld <erozen@microsoft.com>
1452
1453 * tree-cfg.cc (assign_discriminators): Set discriminators for call stmts
1454 on the same line within the same basic block.
1455
1456 2022-10-07 Qing Zhao <qing.zhao@oracle.com>
1457
1458 PR tree-optimization/101836
1459 * tree-object-size.cc (addr_object_size): Use array_at_struct_end_p
1460 to determine a flexible array member reference.
1461
1462 2022-10-07 Qing Zhao <qing.zhao@oracle.com>
1463
1464 * doc/extend.texi: Document strict_flex_array attribute.
1465 * doc/invoke.texi: Document -fstrict-flex-arrays[=n] option.
1466 * print-tree.cc (print_node): Print new bit decl_not_flexarray.
1467 * tree-core.h (struct tree_decl_common): New bit field
1468 decl_not_flexarray.
1469 * tree-streamer-in.cc (unpack_ts_decl_common_value_fields): Stream
1470 in new bit decl_not_flexarray.
1471 * tree-streamer-out.cc (pack_ts_decl_common_value_fields): Stream
1472 out new bit decl_not_flexarray.
1473 * tree.cc (array_at_struct_end_p): Update it with the new bit field
1474 decl_not_flexarray.
1475 * tree.h (DECL_NOT_FLEXARRAY): New flag.
1476
1477 2022-10-07 Olivier Hainque <hainque@adacore.com>
1478
1479 * config/vxworks/_vxworks-versions.h: Use OS specific
1480 paths in #include of version.h.
1481
1482 2022-10-07 Martin Liska <mliska@suse.cz>
1483
1484 * opts.cc (finish_options): Print sorry message only
1485 for -flive-patching=inline-only-static.
1486
1487 2022-10-07 Jason Merrill <jason@redhat.com>
1488
1489 * gimplify.cc (gimplify_modify_expr_rhs): Don't optimize
1490 x = *(A*)&<expr> to x = <expr> for a TREE_ADDRESSABLE type.
1491
1492 2022-10-07 Richard Biener <rguenther@suse.de>
1493
1494 PR tree-optimization/107153
1495 * tree-cfg.cc (gimple_duplicate_sese_tail): Do not update
1496 SSA form here.
1497 * tree-parloops.cc (gen_parallel_loop): Update SSA form
1498 after to-exit-first transform, no PHI insertion is necessary.
1499 (pass_parallelize_loops::execute): Force re-write of the
1500 virtual operand SSA web.
1501
1502 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
1503
1504 * value-range.cc (irange::irange_contains_p): Fix comment typo.
1505
1506 2022-10-07 Eric Botcazou <ebotcazou@adacore.com>
1507
1508 * function.cc (thread_prologue_and_epilogue_insns): Update only
1509 entry and exit blocks when not optimizing. Remove dead statement.
1510
1511 2022-10-07 Aldy Hernandez <aldyh@redhat.com>
1512
1513 * value-range.cc (irange::irange_set): Convert nonzero mask to
1514 tree.
1515 (irange::irange_set_anti_range): Same.
1516 (irange::set): Same.
1517 (irange::verify_range): Same.
1518 (irange::contains_p): Same.
1519 (irange::invert): Same.
1520 (irange::set_range_from_nonzero_bits): Same.
1521 (irange::set_nonzero_bits): Same.
1522 (mask_to_wi): Same.
1523 (irange::intersect_nonzero_bits): Same.
1524 (irange::union_nonzero_bits): Same.
1525 * value-range.h (irange::varying_compatible_p): Same.
1526 (gt_ggc_mx): Same.
1527 (gt_pch_nx): Same.
1528 (irange::set_undefined): Same.
1529 (irange::set_varying): Same.
1530
1531 2022-10-07 Martin Liska <mliska@suse.cz>
1532
1533 * config/i386/i386-protos.h (ix86_binary_operator_ok): Add array
1534 size to function parameter.
1535 (ix86_unary_operator_ok): Likewise.
1536
1537 2022-10-07 Martin Liska <mliska@suse.cz>
1538
1539 * auto-profile.cc (get_inline_stack): Remove unused variable.
1540
1541 2022-10-07 Jakub Jelinek <jakub@redhat.com>
1542
1543 * ipa-prop.h (ipa_constant_data): Fix comment typo.
1544 * value-range.cc (irange::irange_contains_p): Likewise.
1545 * value-relation.cc (dom_oracle::set_one_relation): Likewise.
1546 * gimple-predicate-analysis.cc (predicate::simplify_4): Likewise.
1547 * tree-inline.cc (remap_ssa_name): Likewise.
1548
1549 2022-10-07 Jakub Jelinek <jakub@redhat.com>
1550
1551 * attribs.h (is_attribute_namespace_p): New inline function.
1552 (lookup_attribute): Document meaning of ATTR_NS equal to "".
1553 * attribs.cc (remove_attribute): Use is_attribute_namespace_p.
1554 (private_lookup_attribute): For ATTR_NS "" match either standard
1555 attribute or "gnu" namespace one.
1556
1557 2022-10-07 Olivier Hainque <hainque@adacore.com>
1558
1559 * config/vxworks.h (DWARF_VERSION_DEFAULT): Adjust from
1560 4 to 3 for VxWorks >= 7.
1561
1562 2022-10-07 Olivier Hainque <hainque@adacore.com>
1563
1564 * defaults.h (DWARF_DEFAULT_VERSION): Define if not
1565 defined already.
1566 * common.opt (gdwarf-): Use it.
1567 * doc/tm.texi.in (DWARF_DEFAULT_VERSION): Document.
1568 * doc/tm.texi: Update accordingly.
1569 * config/vxworks.h (DWARF_DEFAULT_VERSION): Redefine.
1570 * config/vxworks.cc: Remove code setting dwarf_version, now
1571 handled by the DWARF_DEFAULT_VERSION redefinition.
1572
1573 2022-10-07 Olivier Hainque <hainque@adacore.com>
1574
1575 * ginclude/stddef.h: #undef offsetof before #define.
1576
1577 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
1578
1579 PR tree-optimization/107170
1580 * vr-values.cc (vr_values::range_of_expr): Do not die on
1581 unsupported types.
1582
1583 2022-10-06 Joseph Myers <joseph@codesourcery.com>
1584
1585 * doc/invoke.texi (-fno-asm): Update description of effects on
1586 typeof keyword.
1587
1588 2022-10-06 Eric Botcazou <ebotcazou@adacore.com>
1589
1590 * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Bail out for a self
1591 dependency that is a write-after-write if the access function is not
1592 affine or constant.
1593
1594 2022-10-06 Eric Botcazou <ebotcazou@adacore.com>
1595
1596 * df-scan.cc (df_ref_create_structure): Minor cleanup.
1597
1598 2022-10-06 Richard Biener <rguenther@suse.de>
1599
1600 PR middle-end/107115
1601 * expr.cc (store_expr): Check mems_same_for_tbaa_p before
1602 eliding a seemingly redundant store.
1603
1604 2022-10-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1605
1606 * config/aarch64/atomics.md (*atomic_load<ALLX:mode>_zext<SD_HSDI:mode>):
1607 New pattern.
1608
1609 2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu>
1610
1611 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
1612 Ampere-1 core entry.
1613
1614 2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu>
1615
1616 * config/aarch64/driver-aarch64.cc (readline): Fix off-by-one.
1617
1618 2022-10-06 Richard Biener <rguenther@suse.de>
1619
1620 PR tree-optimization/107107
1621 * tree-ssa-sccvn.cc (visit_reference_op_store): Do not
1622 affect value-numbering when doing the tail merging
1623 MODIFY_EXPR lookup.
1624
1625 2022-10-06 Claudiu Zissulescu <claziss@synopsys.com>
1626
1627 * config/arc/linux.h (LINK_SPEC): Remove max-page-size and
1628 common-pave-size.
1629
1630 2022-10-06 Jakub Jelinek <jakub@redhat.com>
1631
1632 PR c++/106654
1633 * internal-fn.def (ASSUME): New internal function.
1634 * internal-fn.h (expand_ASSUME): Declare.
1635 * internal-fn.cc (expand_ASSUME): Define.
1636 * gimplify.cc (gimplify_call_expr): Gimplify IFN_ASSUME.
1637 * fold-const.h (simple_condition_p): Declare.
1638 * fold-const.cc (simple_operand_p_2): Rename to ...
1639 (simple_condition_p): ... this. Remove forward declaration.
1640 No longer static. Adjust function comment and fix a typo in it.
1641 Adjust recursive call.
1642 (simple_operand_p): Adjust function comment.
1643 (fold_truth_andor): Adjust simple_operand_p_2 callers to call
1644 simple_condition_p.
1645 * doc/extend.texi: Document assume attribute. Move fallthrough
1646 attribute example to its section.
1647
1648 2022-10-06 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1649
1650 PR rtl-optimization/107088
1651 * cselib.cc (new_cselib_val): Skip BImode while keeping track of
1652 subvalue relations.
1653
1654 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
1655
1656 * value-range.cc (frange::set): Call set_nan unconditionally.
1657 (range_tests_nan): Adjust tests.
1658 (range_tests_signed_zeros): Same.
1659 (range_tests_floats): Same.
1660 * value-range.h (frange::update_nan): Guard with HONOR_NANS.
1661 (frange::set_nan): Set undefined if !HONOR_NANS.
1662
1663 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
1664
1665 * range-op-float.cc (foperator_lt::fold_range): Remove extra check
1666 to finite_operands_p.
1667 (foperator_le::fold_range): Same.
1668 (foperator_gt::fold_range): Same.
1669 (foperator_ge::fold_range): Same.
1670
1671 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
1672
1673 * value-range-pretty-print.cc (vrange_printer::print_real_value):
1674 Avoid printing INF and NAN twice.
1675
1676 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
1677
1678 * config/rs6000/constraints.md (wD): Delete.
1679 * doc/md.texi (Machine Constraints): Adjust.
1680
1681 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
1682
1683 * config/rs6000/vsx.md (vsx_extract_<mode>): Replace define_insn by a
1684 define_expand. Split the contents to...
1685 (*vsx_extract_<mode>_0): ... this. Rewrite.
1686 (*vsx_extract_<mode>_1): ... and this. Rewrite.
1687
1688 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
1689
1690 * config/rs6000/vsx.md (*vsx_extract_<mode>_store): Use "n" instead of
1691 "wD" constraint.
1692
1693 2022-10-05 David Malcolm <dmalcolm@redhat.com>
1694
1695 PR analyzer/107060
1696 * doc/analyzer.texi (__analyzer_get_unknown_ptr): Document.
1697
1698 2022-10-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1699
1700 * config.gcc: Add riscv_vector.h.
1701 * config/riscv/riscv-builtins.cc: Add RVV builtin types support.
1702 * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): New function.
1703 (riscv_register_pragmas): Ditto.
1704 * config/riscv/riscv-protos.h (riscv_register_pragmas): Ditto.
1705 (init_builtins): Move declaration from riscv-vector-builtins.h to riscv-protos.h.
1706 (mangle_builtin_type): Ditto.
1707 (verify_type_context): Ditto.
1708 (handle_pragma_vector): New function.
1709 * config/riscv/riscv-vector-builtins.cc (GTY): New variable.
1710 (register_vector_type): New function.
1711 (init_builtins): Add RVV builtin types support.
1712 (handle_pragma_vector): New function.
1713 * config/riscv/riscv-vector-builtins.h (GCC_RISCV_V_BUILTINS_H): Change
1714 name according to file name.
1715 (GCC_RISCV_VECTOR_BUILTINS_H): Ditto.
1716 (init_builtins): Remove declaration in riscv-vector-builtins.h.
1717 (mangle_builtin_type): Ditto.
1718 (verify_type_context): Ditto.
1719 * config/riscv/riscv.cc: Adjust for RVV builtin types support.
1720 * config/riscv/riscv.h (REGISTER_TARGET_PRAGMAS): New macro.
1721 * config/riscv/t-riscv: Remove redundant file including.
1722 * config/riscv/riscv_vector.h: New file.
1723
1724 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
1725
1726 * range-op.cc (operator_cast::fold_range): Handle truncating casts
1727 for nonzero masks.
1728
1729 2022-10-05 Martin Liska <mliska@suse.cz>
1730
1731 PR c/107156
1732 * attribs.h (lookup_attribute_by_prefix): Support the attribute
1733 starting with underscore (_Noreturn).
1734
1735 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
1736
1737 PR tree-optimization/107052
1738 * gimple-range-op.cc (cfn_popcount::fold_range): Take into account
1739 nonzero bit mask.
1740
1741 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
1742
1743 PR tree-optimization/107052
1744 * range-op.cc (operator_cast::fold_range): Set nonzero mask.
1745
1746 2022-10-05 Eric Botcazou <ebotcazou@adacore.com>
1747
1748 PR tree-optimization/106698
1749 * pointer-query.cc (handle_array_ref): Fix handling of low bound.
1750
1751 2022-10-05 Vineet Gupta <vineetg@rivosinc.com>
1752
1753 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
1754 Remove __riscv_cmodel_pic, that deprecated in last version.
1755
1756 2022-10-05 David Malcolm <dmalcolm@redhat.com>
1757
1758 PR analyzer/107072
1759 * Makefile.in (ANALYZER_OBJS): Add analyzer/call-summary.o.
1760
1761 2022-10-04 Jakub Jelinek <jakub@redhat.com>
1762
1763 * attribs.h (remove_attribute): Declare overload with additional
1764 attr_ns argument.
1765 (private_lookup_attribute): Declare overload with additional
1766 attr_ns and attr_ns_len arguments.
1767 (lookup_attribute): New overload with additional attr_ns argument.
1768 * attribs.cc (remove_attribute): New overload with additional
1769 attr_ns argument.
1770 (private_lookup_attribute): New overload with additional
1771 attr_ns and attr_ns_len arguments.
1772
1773 2022-10-04 Jakub Jelinek <jakub@redhat.com>
1774
1775 * attribs.cc (handle_ignored_attributes_option, decl_attributes,
1776 common_function_versions): Use auto_diagnostic_group.
1777
1778 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
1779
1780 * value-range.cc (irange::set_nonzero_bits): Remove assert.
1781
1782 2022-10-04 Richard Sandiford <richard.sandiford@arm.com>
1783
1784 * config/aarch64/aarch64.h (AARCH64_ISA_RCPC): New macro.
1785 * config/aarch64/aarch64-arches.def (armv8.3-a): Include RCPC.
1786 * config/aarch64/aarch64-cores.def (thunderx3t110, zeus, neoverse-v1)
1787 (neoverse-512tvb, saphira): Remove RCPC from these Armv8.3-A+ cores.
1788 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
1789 __ARM_FEATURE_RCPC when appropriate.
1790
1791 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
1792
1793 * doc/invoke.texi (-fopenmp): Mention C++ attribut syntax.
1794 (-fopenmp-simd): Likewise; update permitted directives.
1795
1796 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
1797
1798 * doc/install.texi (Specific): Add missing items to bullet list.
1799 (amdgcn): Update LLVM requirements, use version not date for newlib.
1800 (nvptx): Use version not git hash for newlib.
1801
1802 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
1803
1804 * value-range-storage.cc (irange_storage_slot::set_irange): Remove
1805 special case.
1806 * value-range.cc (irange::irange_set): Adjust for nonzero mask
1807 being a wide int.
1808 (irange::irange_set_anti_range): Same.
1809 (irange::set): Same.
1810 (irange::verify_range): Same.
1811 (irange::legacy_equal_p): Same.
1812 (irange::operator==): Same.
1813 (irange::contains_p): Same.
1814 (irange::legacy_intersect): Same.
1815 (irange::legacy_union): Same.
1816 (irange::irange_single_pair_union): Call union_nonzero_bits.
1817 (irange::irange_union): Same.
1818 (irange::irange_intersect): Call intersect_nonzero_bits.
1819 (irange::intersect): Adjust for nonzero mask being a wide int.
1820 (irange::invert): Same.
1821 (irange::set_nonzero_bits): Same.
1822 (irange::get_nonzero_bits_from_range): New.
1823 (irange::set_range_from_nonzero_bits): New.
1824 (irange::get_nonzero_bits): Adjust for nonzero mask being a wide
1825 int.
1826 (irange::intersect_nonzero_bits): Same.
1827 (irange::union_nonzero_bits): Same.
1828 (range_tests_nonzero_bits): Remove test.
1829 * value-range.h (irange::varying_compatible_p): Adjust for nonzero
1830 mask being a wide int.
1831 (gt_ggc_mx): Same.
1832 (gt_pch_nx): Same.
1833 (irange::set_undefined): Same.
1834 (irange::set_varying): Same.
1835 (irange::normalize_kind): Same.
1836
1837 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
1838
1839 PR tree-optimization/107130
1840 * gimple-range-op.cc (class cfn_popcount): Call op_cfn_ffs.
1841 (class cfn_ffs): New.
1842 (gimple_range_op_handler::maybe_builtin_call): Separate out
1843 CASE_CFN_FFS into its own case.
1844
1845 2022-10-03 Sergei Trofimovich <siarheit@google.com>
1846
1847 * config/i386/t-i386: Add build-time dependencies against
1848 i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
1849 i386-features.o.
1850
1851 2022-10-03 Andrew Stubbs <ams@codesourcery.com>
1852
1853 * config/gcn/gcn-valu.md (while_ultsidi): Limit mask length using
1854 operand 3.
1855 * doc/md.texi (while_ult): Document new operand 3 usage.
1856 * internal-fn.cc (expand_while_optab_fn): Set operand 3 when lhs_type
1857 maps to a non-vector mode.
1858
1859 2022-10-03 Andrew MacLeod <amacleod@redhat.com>
1860
1861 PR tree-optimization/107109
1862 * range-op.cc (adjust_op1_for_overflow): Don't process undefined.
1863
1864 2022-10-03 Christophe Lyon <christophe.lyon@arm.com>
1865
1866 * config/arm/mve.md (mve_vrev64q_m_<supf><mode>): Add early
1867 clobber.
1868 (mve_vrev64q_m_f<mode>): Likewise.
1869
1870 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
1871
1872 * value-range.cc (irange::set_nonzero_bits): Do not pessimize range.
1873 (range_tests_nonzero_bits): New test.
1874
1875 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
1876
1877 * value-range.cc (irange::operator==): Early bail on m_num_ranges
1878 equal to 0.
1879
1880 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
1881
1882 * value-range.cc (irange::legacy_equal_p): Remove nonozero mask
1883 check when comparing VR_VARYING ranges.
1884
1885 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
1886
1887 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Do not compare
1888 incompatible ranges in ipa-prop.
1889
1890 2022-10-02 Jakub Jelinek <jakub@redhat.com>
1891
1892 PR tree-optimization/107121
1893 * tree-cfg.cc (verify_gimple_call): Fix a typo in diagnostics,
1894 DEFFERED_INIT -> DEFERRED_INIT.
1895
1896 2022-10-02 Marc Poulhiès <poulhies@adacore.com>
1897
1898 * config/vxworks-driver.cc: New.
1899 * config.gcc (*vxworks*): Add vxworks-driver.o in extra_gcc_objs.
1900 * config/t-vxworks: Add vxworks-driver.o.
1901 * config/vxworks.h (GCC_DRIVER_HOST_INITIALIZATION): New.
1902
1903 2022-10-02 Olivier Hainque <hainque@adacore.com>
1904
1905 * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC): If
1906 HAVE_INITFINI_ARRAY_SUPPORT, pick crtstuff objects regardless
1907 of ENABLE_SHARED_LIBGCC.
1908
1909 2022-10-01 Stafford Horne <shorne@gmail.com>
1910
1911 * config/or1k/or1k.cc (TARGET_HAVE_TLS): Only define if
1912 HAVE_AS_TLS is defined.
1913
1914 2022-10-01 Julian Brown <julian@codesourcery.com>
1915
1916 * gimplify.cc (omp_group_base): Fix IF_PRESENT (no_create)
1917 handling.
1918
1919 2022-10-01 Jeff Law <jeffreyalaw@gmail.com>
1920
1921 * config/h8300/h8300.md (HSI2): New iterator.
1922 (eqne_invert): Similarly.
1923 * config/h8300/testcompare.md (testhi_upper_z): New pattern.
1924 (cmpqi_z, cmphi_z, cmpsi_z): Likewise.
1925 (store_z_qi, store_z_i_qi, store_z_hi, store_z_hi_sb): New
1926 define_insn_and_splits and/or define_insns.
1927 (store_z_hi_neg, store_z_hi_and, store_z_<mode>): Likewise.
1928 (store_z_<mode>_neg, store_z_<mode>_and, store_z): Likewise.
1929
1930 2022-10-01 Jeff Law <jeffreyalaw@gmail.com>
1931
1932 * tree-ssa-dom.cc (record_edge_info): Install correct version of
1933 patch.
1934
1935 2022-10-01 Eugene Rozenfeld <erozen@microsoft.com>
1936
1937 * dwarf2out.cc (add_call_src_coords_attributes): Emit discriminators for inlined call sites.
1938
1939 2022-09-30 Jeff Law <jeffreyalaw@gmail.com>
1940
1941 * tree-ssa-dom.cc (single_block_loop_p): New function.
1942 (record_edge_info): Also record equivalences for the outgoing
1943 edge of a single block loop where the condition is an invariant.
1944
1945 2022-09-30 Jeff Law <jeffreyalaw@gmail.com>
1946
1947 * tree-ssa-dom.cc (free_dom_edge_info): Clear e->aux too.
1948 (free_all_edge_infos): Do not clear e->aux here.
1949
1950 2022-09-30 H.J. Lu <hjl.tools@gmail.com>
1951
1952 * target.def (TARGET_C_EXCESS_PRECISION): Document
1953 -fexcess-precision=16.
1954
1955 2022-09-30 Palmer Dabbelt <palmer@rivosinc.com>
1956
1957 * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Add 16.
1958
1959 2022-09-30 Palmer Dabbelt <palmer@rivosinc.com>
1960
1961 PR target/106815
1962 * config/riscv/riscv.cc (riscv_excess_precision): Add support
1963 for EXCESS_PRECISION_TYPE_FLOAT16.
1964
1965 2022-09-30 Jakub Jelinek <jakub@redhat.com>
1966
1967 PR c++/107080
1968 * config/arm/arm.cc (arm_mangle_type): Mangle just __fp16 as Dh
1969 and _Float16 as DF16_.
1970 * config/csky/csky.cc (csky_init_builtins): Fix a comment typo.
1971 (csky_mangle_type): Mangle __fp16 as Dh and _Float16 as DF16_
1972 rather than mangling __fp16 as __fp16.
1973
1974 2022-09-30 Lewis Hyatt <lhyatt@gmail.com>
1975
1976 PR preprocessor/69543
1977 * tree-ssa-uninit.cc (warn_uninit): Stop stripping macro tracking
1978 information away from the diagnostic location.
1979 (maybe_warn_read_write_only): Likewise.
1980 (maybe_warn_operand): Likewise.
1981
1982 2022-09-30 Jakub Jelinek <jakub@redhat.com>
1983
1984 PR c++/107080
1985 * config/aarch64/aarch64.cc (aarch64_mangle_type): Mangle just __fp16
1986 as Dh and _Float16 as DF16_.
1987
1988 2022-09-30 Jakub Jelinek <jakub@redhat.com>
1989
1990 PR c++/107080
1991 * config/i386/i386.cc (ix86_mangle_type): Always return NULL
1992 for float128_type_node or float64x_type_node, don't check
1993 float128t_type_node later on.
1994 * config/ia64/ia64.cc (ia64_mangle_type): Always return NULL
1995 for float128_type_node or float64x_type_node.
1996 * config/rs6000/rs6000.cc (rs6000_mangle_type): Likewise.
1997 Don't check float128_type_node later on.
1998 * config/s390/s390.cc (s390_mangle_type): Don't use
1999 TYPE_MAIN_VARIANT on type which was set to TYPE_MAIN_VARIANT
2000 a few lines earlier.
2001
2002 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
2003 Yvan ROUX <yvan.roux@foss.st.com>
2004
2005 * doc/sourcebuild.texi: Document new vma_equals_lma effective
2006 target check.
2007
2008 2022-09-30 Jiawei <jiawei@iscas.ac.cn>
2009
2010 * config/riscv/riscv.cc (riscv_file_start): New .option.
2011 * config/riscv/riscv.opt: New options.
2012 * doc/invoke.texi: New definations.
2013
2014 2022-09-30 Kewen Lin <linkw@linux.ibm.com>
2015
2016 PR target/99888
2017 PR target/105649
2018 * doc/invoke.texi (option -fpatchable-function-entry): Adjust the
2019 documentation for PowerPC ELFv2 ABI dual entry points.
2020 * config/rs6000/rs6000-internal.h
2021 (rs6000_print_patchable_function_entry): New function declaration.
2022 * config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue):
2023 Support patchable-function-entry by emitting nops before and after
2024 local entry for the function that needs global entry.
2025 * config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry): Skip
2026 the function that needs global entry till global entry has been
2027 emitted.
2028 * config/rs6000/rs6000.h (struct machine_function): New bool member
2029 global_entry_emitted.
2030
2031 2022-09-30 Richard Biener <rguenther@suse.de>
2032
2033 PR tree-optimization/107095
2034 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use data arg
2035 for .MASK_STORE size.
2036
2037 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
2038
2039 * range-op.cc (plus_minus_ranges): New.
2040 (adjust_op1_for_overflow): New.
2041 (operator_plus::op1_range): Use new adjustment.
2042 (operator_plus::op2_range): Ditto.
2043 (operator_minus::op1_range): Ditto.
2044 * value-relation.h (relation_lt_le_gt_ge_p): New.
2045
2046 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
2047
2048 * gimple-range-gori.cc (gori_compute::refine_using_relation): New.
2049 (gori_compute::compute_operand1_range): Invoke
2050 refine_using_relation when applicable.
2051 (gori_compute::compute_operand2_range): Ditto.
2052 * gimple-range-gori.h (class gori_compute): Adjust prototypes.
2053
2054 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
2055
2056 * gimple-range-gori.cc (ori_compute::compute_operand_range):
2057 Create a relation record and pass it along when possible.
2058 (gori_compute::compute_operand1_range): Pass relation along.
2059 (gori_compute::compute_operand2_range): Ditto.
2060 (gori_compute::compute_operand1_and_operand2_range): Ditto.
2061 * gimple-range-gori.h (class gori_compute): Adjust prototypes.
2062 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Pass
2063 relation to op1_range call.
2064 (gimple_range_op_handler::calc_op2): Pass relation to op2_range call.
2065 * gimple-range-op.h (class gimple_range_op_handler): Adjust
2066 prototypes.
2067
2068 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
2069
2070 * value-relation.cc (class value_relation): Move to .h file.
2071 (value_relation::set_relation): Ditto.
2072 (value_relation::value_relation): ditto.
2073 * value-relation.h (class value_relation): Move from .cc file.
2074 (value_relation::set_relation): Ditto
2075 (value_relation::value_relation): Ditto.
2076
2077 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
2078
2079 * range-op.cc (operator_minus::op2_range): Check for undefined.
2080 (operator_mult::op1_range): Ditto.
2081 (operator_exact_divide::op1_range): Ditto.
2082 (operator_lshift::op1_range): Ditto.
2083 (operator_rshift::op1_range): Ditto.
2084 (operator_cast::op1_range): Ditto.
2085 (operator_bitwise_and::op1_range): Ditto.
2086 (operator_bitwise_or::op1_range): Ditto.
2087 (operator_trunc_mod::op1_range): Ditto.
2088 (operator_trunc_mod::op2_range): Ditto.
2089 (operator_bitwise_not::op1_range): Ditto.
2090 (pointer_or_operator::op1_range): Ditto.
2091 (range_op_handler::op1_range): Ditto.
2092 (range_op_handler::op2_range): Ditto.
2093
2094 2022-09-29 Andrew Stubbs <ams@codesourcery.com>
2095
2096 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
2097 Remove unused elt_bits variable.
2098
2099 2022-09-29 Olivier Hainque <hainque@adacore.com>
2100
2101 * config/vxworks.h: Add comment on our use of
2102 HAVE_INITFINI_ARRAY_SUPPORT.
2103
2104 2022-09-29 Olivier Hainque <hainque@adacore.com>
2105
2106 * config/aarch64/t-aarch64-vxworks: Request multilib
2107 variants for mcmodel=large.
2108
2109 2022-09-29 Olivier Hainque <hainque@adacore.com>
2110
2111 * config/rs6000/vxworks.h (TARGET_FLOAT128_ENABLE_TYPE): Remove
2112 resetting to 0.
2113
2114 2022-09-29 Olivier Hainque <hainque@adacore.com>
2115
2116 * config/vx-common.h (DWARF2_UNWIND_INFO): #define to 0
2117 when ARM_UNWIND_INFO is set.
2118
2119 2022-09-29 Julian Brown <julian@codesourcery.com>
2120
2121 PR middle-end/107028
2122 * gimplify.cc (omp_check_mapping_compatibility,
2123 oacc_resolve_clause_dependencies): New functions.
2124 (omp_accumulate_sibling_list): Remove redundant duplicate clause
2125 detection for OpenACC.
2126 (build_struct_sibling_lists): Skip deleted groups. Don't build sibling
2127 list for struct variables that are fully mapped on the same directive
2128 for OpenACC.
2129 (gimplify_scan_omp_clauses): Call oacc_resolve_clause_dependencies.
2130
2131 2022-09-29 Jose E. Marchesi <jose.marchesi@oracle.com>
2132
2133 PR middle-end/25521
2134 * varasm.cc (categorize_decl_for_section): Place `const volatile'
2135 objects in read-only sections.
2136 (default_select_section): Likewise.
2137
2138 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2139
2140 * tree-data-ref.cc (dr_may_alias_p): Use to_poly_widest instead
2141 of to_widest.
2142
2143 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2144
2145 * config/aarch64/aarch64.h (TARGET_CRYPTO, TARGET_SHA3, TARGET_SM4)
2146 (TARGET_DOTPROD): Don't depend on TARGET_SIMD.
2147 (TARGET_AES, TARGET_SHA2): Likewise. Remove TARGET_CRYPTO test.
2148 (TARGET_FP_F16INST): Don't depend on TARGET_FLOAT.
2149 (TARGET_SVE2, TARGET_SVE_F32MM, TARGET_SVE_F64MM): Don't depend
2150 on TARGET_SVE.
2151 (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3)
2152 (TARGET_SVE2_SM4): Don't depend on TARGET_SVE2.
2153 (TARGET_F32MM, TARGET_F64MM): Delete.
2154 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Guard
2155 float macros with just TARGET_FLOAT rather than TARGET_FLOAT
2156 || TARGET_SIMD.
2157 * config/aarch64/aarch64-simd.md (copysign<mode>3): Depend
2158 only on TARGET_SIMD, rather than TARGET_FLOAT && TARGET_SIMD.
2159 (aarch64_crypto_aes<aes_op>v16qi): Depend only on TARGET_AES,
2160 rather than TARGET_SIMD && TARGET_AES.
2161 (aarch64_crypto_aes<aesmc_op>v16qi): Likewise.
2162 (*aarch64_crypto_aese_fused): Likewise.
2163 (*aarch64_crypto_aesd_fused): Likewise.
2164 (aarch64_crypto_pmulldi): Likewise.
2165 (aarch64_crypto_pmullv2di): Likewise.
2166 (aarch64_crypto_sha1hsi): Likewise TARGET_SHA2.
2167 (aarch64_crypto_sha1hv4si): Likewise.
2168 (aarch64_be_crypto_sha1hv4si): Likewise.
2169 (aarch64_crypto_sha1su1v4si): Likewise.
2170 (aarch64_crypto_sha1<sha1_op>v4si): Likewise.
2171 (aarch64_crypto_sha1su0v4si): Likewise.
2172 (aarch64_crypto_sha256h<sha256_op>v4si): Likewise.
2173 (aarch64_crypto_sha256su0v4si): Likewise.
2174 (aarch64_crypto_sha256su1v4si): Likewise.
2175 (aarch64_crypto_sha512h<sha512_op>qv2di): Likewise TARGET_SHA3.
2176 (aarch64_crypto_sha512su0qv2di): Likewise.
2177 (aarch64_crypto_sha512su1qv2di, eor3q<mode>4): Likewise.
2178 (aarch64_rax1qv2di, aarch64_xarqv2di, bcaxq<mode>4): Likewise.
2179 (aarch64_sm3ss1qv4si): Likewise TARGET_SM4.
2180 (aarch64_sm3tt<sm3tt_op>qv4si): Likewise.
2181 (aarch64_sm3partw<sm3part_op>qv4si): Likewise.
2182 (aarch64_sm4eqv4si, aarch64_sm4ekeyqv4si): Likewise.
2183 * config/aarch64/aarch64.md (<FLOATUORS:optab>dihf2)
2184 (copysign<GPF:mode>3, copysign<GPF:mode>3_insn)
2185 (xorsign<mode>3): Remove redundant TARGET_FLOAT condition.
2186
2187 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2188
2189 * config/aarch64/aarch64.opt (aarch64_asm_isa_flags): New variable.
2190 * config/aarch64/aarch64.h (aarch64_asm_isa_flags)
2191 (aarch64_isa_flags): Redefine as read-only macros.
2192 (TARGET_SIMD, TARGET_FLOAT, TARGET_SVE): Don't depend on
2193 !TARGET_GENERAL_REGS_ONLY.
2194 * common/config/aarch64/aarch64-common.cc
2195 (aarch64_set_asm_isa_flags): New function.
2196 (aarch64_handle_option): Call it when updating -mgeneral-regs.
2197 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Replace
2198 m_old_isa_flags with m_old_asm_isa_flags.
2199 (aarch64_set_asm_isa_flags): Declare.
2200 * config/aarch64/aarch64-builtins.cc
2201 (aarch64_simd_switcher::aarch64_simd_switcher)
2202 (aarch64_simd_switcher::~aarch64_simd_switcher): Save and restore
2203 aarch64_asm_isa_flags instead of aarch64_isa_flags.
2204 * config/aarch64/aarch64-sve-builtins.cc
2205 (check_required_extensions): Use aarch64_asm_isa_flags instead
2206 of aarch64_isa_flags.
2207 * config/aarch64/aarch64.cc (aarch64_set_asm_isa_flags): New function.
2208 (aarch64_override_options, aarch64_handle_attr_arch)
2209 (aarch64_handle_attr_cpu, aarch64_handle_attr_isa_flags): Use
2210 aarch64_set_asm_isa_flags to set the ISA flags.
2211 (aarch64_option_print, aarch64_declare_function_name)
2212 (aarch64_start_file): Use aarch64_asm_isa_flags instead
2213 of aarch64_isa_flags.
2214 (aarch64_can_inline_p): Check aarch64_asm_isa_flags as well as
2215 aarch64_isa_flags.
2216
2217 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2218
2219 * common/config/aarch64/aarch64-common.cc (all_extensions):
2220 Include the feature flag in flags_on and flags_off.
2221 (aarch64_parse_extension): Update accordingly.
2222 (aarch64_get_extension_string_for_isa_flags): Likewise.
2223
2224 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2225
2226 * common/config/aarch64/aarch64-common.cc: Use aarch64_feature_flags
2227 for feature flags throughout.
2228 * config/aarch64/aarch64-protos.h: Likewise.
2229 * config/aarch64/aarch64-sve-builtins.h: Likewise.
2230 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
2231 * config/aarch64/aarch64.cc: Likewise.
2232 * config/aarch64/aarch64.opt: Likewise.
2233 * config/aarch64/driver-aarch64.cc: Likewise.
2234
2235 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2236
2237 * common/config/aarch64/aarch64-common.cc (aarch64_option_extension)
2238 (processor_name_to_arch, arch_to_arch_name): Remove const from
2239 member variables.
2240 (all_extensions, all_cores, all_architectures): Make a constexpr.
2241 * config/aarch64/aarch64.cc (processor): Remove const from
2242 member variables.
2243 (all_architectures): Make a constexpr.
2244 * config/aarch64/driver-aarch64.cc (aarch64_core_data)
2245 (aarch64_arch_driver_info): Remove const from member variables.
2246 (aarch64_cpu_data, aarch64_arches): Make a constexpr.
2247 (get_arch_from_id): Return a pointer to const.
2248 (host_detect_local_cpu): Update accordingly.
2249
2250 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2251
2252 * common/config/aarch64/aarch64-common.cc (processor_name_to_arch)
2253 (arch_to_arch_name): Use const char * instead of std::string.
2254
2255 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2256
2257 * common/config/aarch64/aarch64-common.cc
2258 (TARGET_OPTION_INIT_STRUCT): Delete.
2259 (aarch64_option_extension): Remove is_synthetic_flag.
2260 (all_extensions): Update accordingly.
2261 (all_extensions_by_on, opt_ext, opt_ext_cmp): Delete.
2262 (aarch64_option_init_struct, aarch64_contains_opt): Delete.
2263 (aarch64_get_extension_string_for_isa_flags): Rewrite to use
2264 all_extensions instead of all_extensions_on.
2265
2266 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2267
2268 * config/aarch64/aarch64-option-extensions.def: Switch to a new format.
2269 * config/aarch64/aarch64-cores.def: Use the same format to specify
2270 lists of features.
2271 * config/aarch64/aarch64-arches.def: Likewise, moving that information
2272 from aarch64.h.
2273 * config/aarch64/aarch64-opts.h (aarch64_feature_flags): New typedef.
2274 * config/aarch64/aarch64.h (aarch64_feature): New class enum.
2275 Turn AARCH64_FL_* macros into constexprs, getting the definitions
2276 from aarch64-option-extensions.def. Remove AARCH64_FL_FOR_* macros.
2277 * common/config/aarch64/aarch64-common.cc: Include
2278 aarch64-feature-deps.h.
2279 (all_extensions): Update for new .def format.
2280 (all_extensions_by_on, all_cores, all_architectures): Likewise.
2281 * config/aarch64/driver-aarch64.cc: Include aarch64-feature-deps.h.
2282 (aarch64_extensions): Update for new .def format.
2283 (aarch64_cpu_data, aarch64_arches): Likewise.
2284 * config/aarch64/aarch64.cc: Include aarch64-feature-deps.h.
2285 (all_architectures, all_cores): Update for new .def format.
2286 * config/aarch64/aarch64-sve-builtins.cc
2287 (check_required_extensions): Likewise.
2288 * config/aarch64/aarch64-feature-deps.h: New file.
2289
2290 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2291
2292 * config/aarch64/aarch64-option-extensions.def: Move crypto
2293 after sha2.
2294
2295 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2296
2297 * config/aarch64/aarch64-option-extensions.def (dotprod): Depend
2298 on fp as well as simd.
2299 (sha3): Likewise.
2300 (aes): Likewise. Make +noaes disable crypto.
2301 (sha2): Likewise +nosha2. Also make +nosha2 disable sha3 and
2302 sve2-sha3.
2303 (sve2-sha3): Depend on sha2 as well as sha3.
2304
2305 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2306
2307 PR target/107025
2308 * config/aarch64/aarch64.h (oAARCH64_FL_RCPC8_4): Delete.
2309 (AARCH64_FL_FOR_V8_4A): Update accordingly.
2310 (AARCH64_ISA_RCPC8_4): Use AARCH64_FL_V8_4A directly.
2311 * config/aarch64/aarch64-cores.def (thunderx3t110): Remove
2312 AARCH64_FL_RCPC8_4.
2313
2314 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2315
2316 * config/aarch64/aarch64-cores.def: Remove AARCH64_FL_FOR_<ARCH>
2317 from the flags field.
2318 * common/config/aarch64/aarch64-common.cc (all_cores): Add it
2319 here instead.
2320 * config/aarch64/aarch64.cc (all_cores): Likewise.
2321 * config/aarch64/driver-aarch64.cc (all_cores): Likewise.
2322
2323 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2324
2325 * config.gcc: Remove dead aarch64-option-extensions.def code.
2326 * config/aarch64/aarch64-arches.def: Update comment.
2327
2328 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2329
2330 * config/aarch64/aarch64-arches.def: Add a leading "V" to the
2331 ARCH_IDENT fields.
2332 * config/aarch64/aarch64-cores.def: Update accordingly.
2333 * common/config/aarch64/aarch64-common.cc (all_cores): Likewise.
2334 * config/aarch64/aarch64.cc (all_cores): Likewise.
2335 * config/aarch64/driver-aarch64.cc (aarch64_arches): Skip the
2336 leading "V".
2337
2338 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2339
2340 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8): Rename to...
2341 (AARCH64_FL_FOR_V8A): ...this.
2342 (AARCH64_FL_FOR_ARCH8_1): Rename to...
2343 (AARCH64_FL_FOR_V8_1A): ...this.
2344 (AARCH64_FL_FOR_ARCH8_2): Rename to...
2345 (AARCH64_FL_FOR_V8_2A): ...this.
2346 (AARCH64_FL_FOR_ARCH8_3): Rename to...
2347 (AARCH64_FL_FOR_V8_3A): ...this.
2348 (AARCH64_FL_FOR_ARCH8_4): Rename to...
2349 (AARCH64_FL_FOR_V8_4A): ...this.
2350 (AARCH64_FL_FOR_ARCH8_5): Rename to...
2351 (AARCH64_FL_FOR_V8_5A): ...this.
2352 (AARCH64_FL_FOR_ARCH8_6): Rename to...
2353 (AARCH64_FL_FOR_V8_6A): ...this.
2354 (AARCH64_FL_FOR_ARCH8_7): Rename to...
2355 (AARCH64_FL_FOR_V8_7A): ...this.
2356 (AARCH64_FL_FOR_ARCH8_8): Rename to...
2357 (AARCH64_FL_FOR_V8_8A): ...this.
2358 (AARCH64_FL_FOR_ARCH8_R): Rename to...
2359 (AARCH64_FL_FOR_V8R): ...this.
2360 (AARCH64_FL_FOR_ARCH9): Rename to...
2361 (AARCH64_FL_FOR_V9A): ...this.
2362 (AARCH64_FL_FOR_ARCH9_1): Rename to...
2363 (AARCH64_FL_FOR_V9_1A): ...this.
2364 (AARCH64_FL_FOR_ARCH9_2): Rename to...
2365 (AARCH64_FL_FOR_V9_2A): ...this.
2366 (AARCH64_FL_FOR_ARCH9_3): Rename to...
2367 (AARCH64_FL_FOR_V9_3A): ...this.
2368 * common/config/aarch64/aarch64-common.cc (all_cores): Update
2369 accordingly.
2370 * config/aarch64/aarch64-arches.def: Likewise.
2371 * config/aarch64/aarch64-cores.def: Likewise.
2372 * config/aarch64/aarch64.cc (all_cores): Likewise.
2373
2374 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2375
2376 * config/aarch64/aarch64.h (AARCH64_FL_V8_1, AARCH64_FL_V8_2)
2377 (AARCH64_FL_V8_3, AARCH64_FL_V8_4, AARCH64_FL_V8_5, AARCH64_FL_V8_6)
2378 (AARCH64_FL_V9, AARCH64_FL_V8_7, AARCH64_FL_V8_8, AARCH64_FL_V9_1)
2379 (AARCH64_FL_V9_2, AARCH64_FL_V9_3): Add "A" to the end of the name.
2380 (AARCH64_FL_V8_R): Rename to AARCH64_FL_V8R.
2381 (AARCH64_FL_FOR_ARCH8_1, AARCH64_FL_FOR_ARCH8_2): Update accordingly.
2382 (AARCH64_FL_FOR_ARCH8_3, AARCH64_FL_FOR_ARCH8_4): Likewise.
2383 (AARCH64_FL_FOR_ARCH8_5, AARCH64_FL_FOR_ARCH8_6): Likewise.
2384 (AARCH64_FL_FOR_ARCH8_7, AARCH64_FL_FOR_ARCH8_8): Likewise.
2385 (AARCH64_FL_FOR_ARCH8_R, AARCH64_FL_FOR_ARCH9): Likewise.
2386 (AARCH64_FL_FOR_ARCH9_1, AARCH64_FL_FOR_ARCH9_2): Likewise.
2387 (AARCH64_FL_FOR_ARCH9_3, AARCH64_ISA_V8_2A, AARCH64_ISA_V8_3A)
2388 (AARCH64_ISA_V8_4A, AARCH64_ISA_V8_5A, AARCH64_ISA_V8_6A): Likewise.
2389 (AARCH64_ISA_V8R, AARCH64_ISA_V9A, AARCH64_ISA_V9_1A): Likewise.
2390 (AARCH64_ISA_V9_2A, AARCH64_ISA_V9_3A): Likewise.
2391
2392 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2393
2394 * config/aarch64/aarch64.h (AARCH64_ISA_V8_2, AARCH64_ISA_V8_3)
2395 (AARCH64_ISA_V8_4, AARCH64_ISA_V8_5, AARCH64_ISA_V8_6)
2396 (AARCH64_ISA_V9, AARCH64_ISA_V9_1, AARCH64_ISA_V9_2)
2397 (AARCH64_ISA_V9_3): Add "A" to the end of the name.
2398 (AARCH64_ISA_V8_R): Rename to AARCH64_ISA_V8R.
2399 (TARGET_ARMV8_3, TARGET_JSCVT, TARGET_FRINT, TARGET_MEMTAG): Update
2400 accordingly.
2401 * common/config/aarch64/aarch64-common.cc
2402 (aarch64_get_extension_string_for_isa_flags): Likewise.
2403 * config/aarch64/aarch64-c.cc
2404 (aarch64_define_unconditional_macros): Likewise.
2405
2406 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2407
2408 * Makefile.in (GTFILES): Add OPTIONS_H_EXTRA.
2409
2410 2022-09-29 Jakub Jelinek <jakub@redhat.com>
2411
2412 PR bootstrap/107059
2413 * cppdefault.cc (cpp_include_defaults): If SYSROOT_HEADERS_SUFFIX_SPEC
2414 isn't defined, add FIXED_INCLUDE_DIR entry with multilib flag 2
2415 before FIXED_INCLUDE_DIR entry with multilib flag 0.
2416 * gcc.cc (do_spec_1): If multiarch_dir, add
2417 include-fixed/multiarch_dir paths before include-fixed paths.
2418
2419 2022-09-29 Martin Liska <mliska@suse.cz>
2420
2421 PR driver/106897
2422 * common.opt: Add -gz=zstd value.
2423 * configure.ac: Detect --compress-debug-sections=zstd
2424 for both linker and assembler.
2425 * configure: Regenerate.
2426 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Handle -gz=zstd.
2427 (ASM_COMPRESS_DEBUG_SPEC): Likewise.
2428
2429 2022-09-29 Richard Biener <rguenther@suse.de>
2430
2431 PR tree-optimization/105646
2432 * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
2433 the set of fallthru reachable blocks from function entry
2434 and use that to determine wlims.always_executed.
2435
2436 2022-09-29 liuhongt <hongtao.liu@intel.com>
2437
2438 PR tree-optimization/107055
2439 * tree-vect-loop-manip.cc (vect_can_advance_ivs_p): Check for
2440 nonlinear induction variables.
2441 * tree-vect-loop.cc (vect_can_peel_nonlinear_iv_p): New
2442 functions.
2443 (vectorizable_nonlinear_induction): Put part codes into
2444 vect_can_peel_nonlinear_iv_p.
2445 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Declare.
2446
2447 2022-09-28 Eugene Rozenfeld <erozen@microsoft.com>
2448
2449 * basic-block.h: Remove discriminator from basic blocks.
2450 * cfghooks.cc (split_block_1): Remove discriminator from basic blocks.
2451 * final.cc (final_start_function_1): Switch from per-bb to per statement
2452 discriminator.
2453 (final_scan_insn_1): Don't keep track of basic block discriminators.
2454 (compute_discriminator): Switch from basic block discriminators to
2455 instruction discriminators.
2456 (insn_discriminator): New function to return instruction discriminator.
2457 (notice_source_line): Use insn_discriminator.
2458 * gimple-pretty-print.cc (dump_gimple_bb_header): Remove dumping of
2459 basic block discriminators.
2460 * gimple-streamer-in.cc (input_bb): Remove reading of basic block
2461 discriminators.
2462 * gimple-streamer-out.cc (output_bb): Remove writing of basic block
2463 discriminators.
2464 * input.cc (make_location): Pass 0 discriminator to COMBINE_LOCATION_DATA.
2465 (location_with_discriminator): New function to combine locus with
2466 a discriminator.
2467 (has_discriminator): New function to check if a location has a discriminator.
2468 (get_discriminator_from_loc): New function to get the discriminator
2469 from a location.
2470 * input.h: Declarations of new functions.
2471 * lto-streamer-in.cc (cmp_loc): Use discriminators in location comparison.
2472 (apply_location_cache): Keep track of current discriminator.
2473 (input_location_and_block): Read discriminator from stream.
2474 * lto-streamer-out.cc (clear_line_info): Set current discriminator to
2475 UINT_MAX.
2476 (lto_output_location_1): Write discriminator to stream.
2477 * lto-streamer.h: Add discriminator to cached_location.
2478 Add current_discr to lto_location_cache.
2479 Add current_discr to output_block.
2480 * print-rtl.cc (print_rtx_operand_code_i): Print discriminator.
2481 * rtl.h: Add extern declaration of insn_discriminator.
2482 * tree-cfg.cc (assign_discriminator): New function to assign a unique
2483 discriminator value to all statements in a basic block that have the given
2484 line number.
2485 (assign_discriminators): Assign discriminators to statement locations.
2486 * tree-pretty-print.cc (dump_location): Dump discriminators.
2487 * tree.cc (set_block): Preserve discriminator when setting block.
2488 (set_source_range): Preserve discriminator when setting source range.
2489
2490 2022-09-28 H.J. Lu <hjl.tools@gmail.com>
2491
2492 PR target/107061
2493 * config/i386/predicates.md (encodekey128_operation): Check
2494 XMM4-XMM6 as clobbered.
2495 (encodekey256_operation): Likewise.
2496 * config/i386/sse.md (encodekey128u32): Clobber XMM4-XMM6.
2497 (encodekey256u32): Likewise.
2498
2499 2022-09-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2500
2501 * config.gcc: Add riscv-vector-builtins.o.
2502 * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV builtin function.
2503 * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p): New function.
2504 * config/riscv/riscv.cc (ENTRY): New macro.
2505 (riscv_v_ext_enabled_vector_mode_p): New function.
2506 (riscv_mangle_type): Add RVV mangle.
2507 (riscv_vector_mode_supported_p): Adjust RVV machine mode.
2508 (riscv_verify_type_context): Add context check for RVV.
2509 (riscv_vector_alignment): Add RVV alignment target hook support.
2510 (TARGET_VECTOR_MODE_SUPPORTED_P): New target hook support.
2511 (TARGET_VERIFY_TYPE_CONTEXT): Ditto.
2512 (TARGET_VECTOR_ALIGNMENT): Ditto.
2513 * config/riscv/t-riscv: Add riscv-vector-builtins.o
2514 * config/riscv/riscv-vector-builtins.cc: New file.
2515 * config/riscv/riscv-vector-builtins.def: New file.
2516 * config/riscv/riscv-vector-builtins.h: New file.
2517 * config/riscv/riscv-vector-switch.def: New file.
2518
2519 2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2520
2521 * var-tracking.cc (vt_add_function_parameter): Add entry values
2522 up to maximal register mode.
2523
2524 2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2525
2526 * cselib.cc (new_cselib_val): Keep track of further subvalue
2527 relations.
2528
2529 2022-09-28 Andrea Corallo <andrea.corallo@arm.com>
2530
2531 * config/arm/arm-c.cc (arm_cpu_builtins): Define
2532 __ARM_FEATURE_AES and __ARM_FEATURE_SHA2.
2533
2534 2022-09-28 Xi Ruoyao <xry111@xry111.site>
2535
2536 PR tree-optimization/105414
2537 * config/loongarch/loongarch.md (UNSPEC_FMAX): New unspec.
2538 (UNSPEC_FMIN): Likewise.
2539 (fmax<mode>3): Use UNSPEC_FMAX instead of smax.
2540 (fmin<mode>3): Use UNSPEC_FMIN instead of smin.
2541
2542 2022-09-28 Lulu Cheng <chenglulu@loongson.cn>
2543
2544 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset):
2545 Fixed typo in "asan_mapping.h".
2546
2547 2022-09-28 H.J. Lu <hjl.tools@gmail.com>
2548
2549 PR middle-end/58245
2550 * calls.cc: Include "tree-eh.h".
2551 (expand_call): Check stack canary before throwing exception.
2552
2553 2022-09-27 Eugene Rozenfeld <erozen@microsoft.com>
2554
2555 * ipa-cp.cc (good_cloning_opportunity_p): Fix profile count comparison.
2556
2557 2022-09-27 Kim Kuparinen <kim.kuparinen@rightware.com>
2558
2559 * doc/invoke.texi: Update ABI version info.
2560
2561 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
2562
2563 * gimple-range-op.cc (cfn_popcount): Calculate the popcount of a
2564 singleton.
2565
2566 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
2567
2568 * value-range.cc (irange::set_nonzero_bits): Set range when known.
2569
2570 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
2571
2572 * value-range.h (irange::set): New version taking wide_int_ref.
2573
2574 2022-09-27 Jakub Jelinek <jakub@redhat.com>
2575
2576 PR tree-optimization/107029
2577 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): Treat
2578 OFFSET_TYPE like POINTER_TYPE, except that OFFSET_TYPE may be
2579 signed and so can trigger even the (b % 4) == 3 case.
2580
2581 2022-09-27 Jeff Law <jeffreyalaw@gmail.com>
2582
2583 * cfgrtl.cc (fixup_reorder_chain): Verify that simple_return
2584 and return are available before trying to use them.
2585
2586 2022-09-27 Jakub Jelinek <jakub@redhat.com>
2587
2588 PR c++/106652
2589 PR c++/85518
2590 * tree-core.h (enum tree_index): Add TI_FLOAT128T_TYPE
2591 enumerator.
2592 * tree.h (float128t_type_node): Define.
2593 * tree.cc (build_common_tree_nodes): Initialize float128t_type_node.
2594 * builtins.def (DEF_FLOATN_BUILTIN): Adjust comment now that
2595 _Float<N> is supported in C++ too.
2596 * config/i386/i386.cc (ix86_mangle_type): Only mangle as "g"
2597 float128t_type_node.
2598 * config/i386/i386-builtins.cc (ix86_init_builtin_types): Use
2599 float128t_type_node for __float128 instead of float128_type_node
2600 and create it if NULL.
2601 * config/i386/avx512fp16intrin.h (_mm_setzero_ph, _mm256_setzero_ph,
2602 _mm512_setzero_ph, _mm_set_sh, _mm_load_sh): Use 0.0f16 instead of
2603 0.0f.
2604 * config/ia64/ia64.cc (ia64_init_builtins): Use
2605 float128t_type_node for __float128 instead of float128_type_node
2606 and create it if NULL.
2607 * config/rs6000/rs6000-c.cc (is_float128_p): Also return true
2608 for float128t_type_node if non-NULL.
2609 * config/rs6000/rs6000.cc (rs6000_mangle_type): Don't mangle
2610 float128_type_node as "u9__ieee128".
2611 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Use
2612 float128t_type_node for __float128 instead of float128_type_node
2613 and create it if NULL.
2614
2615 2022-09-26 Martin Liska <mliska@suse.cz>
2616
2617 * doc/invoke.texi: Add missing dash for
2618 Wanalyzer-exposure-through-uninit-copy.
2619
2620 2022-09-26 Aldy Hernandez <aldyh@redhat.com>
2621
2622 PR tree-optimization/107009
2623 * range-op.cc (operator_bitwise_and::op1_range): Optimize 0 = x & MASK.
2624 (range_op_bitwise_and_tests): New test.
2625
2626 2022-09-26 Aldy Hernandez <aldyh@redhat.com>
2627
2628 PR tree-optimization/107009
2629 * tree-ssa-dom.cc
2630 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
2631 Iterate over exports.
2632
2633 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
2634
2635 * config.gcc (with_arch) [nvptx]: Allow '--with-arch' to override
2636 the default.
2637 * config/nvptx/gen-multilib-matches.sh: New.
2638 * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
2639 (MULTILIB_EXCEPTIONS): Handle this.
2640 * doc/install.texi (Specific) <nvptx-*-none>: Document this.
2641 * doc/invoke.texi (Nvidia PTX Options): Likewise.
2642
2643 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
2644
2645 * config.gcc (TM_MULTILIB_CONFIG) [nvptx]: Set to '$with_arch'.
2646 * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
2647 (MULTILIB_EXCEPTIONS): Handle it.
2648
2649 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
2650
2651 * config.gcc (with_arch) [nvptx]: Set to 'sm_30'.
2652 * config/nvptx/nvptx.cc (nvptx_option_override): Assert that
2653 '-misa' appeared.
2654 * config/nvptx/nvptx.h (OPTION_DEFAULT_SPECS): Define.
2655 * config/nvptx/nvptx.opt (misa=): Remove 'Init'.
2656
2657 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
2658
2659 * config/nvptx/nvptx.h (ASM_SPEC): Define.
2660
2661 2022-09-26 Jeff Law <jeffreyalaw@gmail.com>
2662
2663 * cfgcleanup.cc (bb_is_just_return): No longer static.
2664 * cfgcleanup.h (bb_is_just_return): Add prototype.
2665 * cfgrtl.cc (fixup_reorder_chain): Do not create an
2666 unconditional jump to a return block. Conditionally
2667 remove unreachable blocks.
2668
2669 2022-09-26 Tobias Burnus <tobias@codesourcery.com>
2670
2671 PR middle-end/106982
2672 * omp-low.cc (lower_oacc_reductions): Add some unshare_expr.
2673
2674 2022-09-26 Martin Liska <mliska@suse.cz>
2675
2676 * config/s390/s390.cc (s390_rtx_costs): Remove dest variable
2677 and use only dst.
2678
2679 2022-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2680
2681 * config/aarch64/aarch64-arches.def (armv9.1-a): Define.
2682 (armv9.2-a): Likewise.
2683 (armv9.3-a): Likewise.
2684 * config/aarch64/aarch64.h (AARCH64_FL_V9_1): Likewise.
2685 (AARCH64_FL_V9_2): Likewise.
2686 (AARCH64_FL_V9_3): Likewise.
2687 (AARCH64_FL_FOR_ARCH9_1): Likewise.
2688 (AARCH64_FL_FOR_ARCH9_2): Likewise.
2689 (AARCH64_FL_FOR_ARCH9_3): Likewise.
2690 (AARCH64_ISA_V9_1): Likewise.
2691 (AARCH64_ISA_V9_2): Likewise.
2692 (AARCH64_ISA_V9_3): Likewise.
2693 * doc/invoke.texi (AArch64 Options): Document armv9.1-a, armv9.2-a,
2694 armv9.3-a values to -march.
2695
2696 2022-09-26 Martin Liska <mliska@suse.cz>
2697
2698 * value-range.cc (tree_compare): Remove unused function.
2699
2700 2022-09-26 Kewen Lin <linkw@linux.ibm.com>
2701
2702 PR target/96072
2703 * config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): Update the
2704 condition for adding REG_CFA_DEF_CFA reg note with
2705 frame_pointer_needed_indeed.
2706
2707 2022-09-26 Kewen Lin <linkw@linux.ibm.com>
2708
2709 PR target/100645
2710 * config/rs6000/vector.md (vec_shr_<mode>): Replace condition
2711 TARGET_ALTIVEC with VECTOR_UNIT_ALTIVEC_OR_VSX_P.
2712
2713 2022-09-26 Hongtao Liu <hongtao.liu@intel.com>
2714 Liwei Xu <liwei.xu@intel.com>
2715
2716 PR target/53346
2717 * config/i386/i386-expand.cc (expand_vec_perm_shufps_shufps):
2718 New function.
2719 (ix86_expand_vec_perm_const_1): Insert
2720 expand_vec_perm_shufps_shufps at the end of 2-instruction
2721 expand sequence.
2722
2723 2022-09-25 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
2724
2725 * doc/sourcebuild.texi: Fix chapter level.
2726
2727 2022-09-24 Jakub Jelinek <jakub@redhat.com>
2728
2729 PR c/107001
2730 * omp-low.cc (lower_omp_taskgroup): Don't add GOMP_RETURN statement
2731 at the end.
2732 * omp-expand.cc (build_omp_regions_1): Clarify GF_OMP_TARGET_KIND_DATA
2733 is not stand-alone directive. For GIMPLE_OMP_TASKGROUP, also don't
2734 update parent.
2735 (omp_make_gimple_edges) <case GIMPLE_OMP_TASKGROUP>: Reset
2736 cur_region back after new_omp_region.
2737
2738 2022-09-23 Vineet Gupta <vineetg@rivosinc.com>
2739
2740 * config/riscv/riscv.h (LOCAL_SYM_P): New.
2741 (USE_LOAD_ADDRESS_MACRO): Simplify by calling LOCAL_SYM_P.
2742
2743 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
2744
2745 * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Add RVV mask modes.
2746 (ADJUST_NUNITS): Adjust nunits using riscv_vector_chunks.
2747 (ADJUST_ALIGNMENT): Adjust alignment.
2748 (ADJUST_BYTESIZE): Adjust bytesize using riscv_vector_chunks.
2749 (RVV_MODES): New macro.
2750 (VECTOR_MODE_WITH_PREFIX): Add RVV vector modes.
2751 (VECTOR_MODES_WITH_PREFIX): Add RVV vector modes.
2752
2753 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
2754
2755 * common/config/riscv/riscv-common.cc: Change "static void" to "void".
2756 * config.gcc: Add riscv-selftests.o
2757 * config/riscv/predicates.md: Allow const_poly_int.
2758 * config/riscv/riscv-protos.h (riscv_reinit): New function.
2759 (riscv_parse_arch_string): change as exten function.
2760 (riscv_run_selftests): New function.
2761 * config/riscv/riscv.cc (riscv_cannot_force_const_mem): Don't allow poly
2762 into const pool.
2763 (riscv_report_v_required): New function.
2764 (riscv_expand_op): New function.
2765 (riscv_expand_mult_with_const_int): New function.
2766 (riscv_legitimize_poly_move): Ditto.
2767 (riscv_legitimize_move): New function.
2768 (riscv_hard_regno_mode_ok): Add VL/VTYPE register allocation and fix
2769 vector RA.
2770 (riscv_convert_vector_bits): Fix riscv_vector_chunks configuration for
2771 -marh no 'v'.
2772 (riscv_reinit): New function.
2773 (TARGET_RUN_TARGET_SELFTESTS): New target hook support.
2774 * config/riscv/t-riscv: Add riscv-selftests.o.
2775 * config/riscv/riscv-selftests.cc: New file.
2776
2777 2022-09-23 Richard Biener <rguenther@suse.de>
2778
2779 PR tree-optimization/106922
2780 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow
2781 an arbitrary number of same valued skipped stores.
2782
2783 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
2784
2785 * value-range.cc (frange::set): Swap setters such that the one
2786 accepting REAL_VALUE_TYPE does all the work.
2787
2788 2022-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2789
2790 * config/aarch64/aarch64-cores.def (neoverse-v2): New entry.
2791 (demeter): Update tunings to neoversev2.
2792 * config/aarch64/aarch64-tune.md: Regenerate.
2793 * config/aarch64/aarch64.cc (demeter_addrcost_table): Rename to
2794 neoversev2_addrcost_table.
2795 (demeter_regmove_cost): Rename to neoversev2_addrcost_table.
2796 (demeter_advsimd_vector_cost): Rename to neoversev2_advsimd_vector_cost.
2797 (demeter_sve_vector_cost): Rename to neoversev2_sve_vector_cost.
2798 (demeter_scalar_issue_info): Rename to neoversev2_scalar_issue_info.
2799 (demeter_advsimd_issue_info): Rename to neoversev2_advsimd_issue_info.
2800 (demeter_sve_issue_info): Rename to neoversev2_sve_issue_info.
2801 (demeter_vec_issue_info): Rename to neoversev2_vec_issue_info.
2802 Update references to above.
2803 (demeter_vector_cost): Rename to neoversev2_vector_cost.
2804 (demeter_tunings): Rename to neoversev2_tunings.
2805 (aarch64_vec_op_count::rename_cycles_per_iter): Use
2806 neoversev2_sve_issue_info instead of demeter_sve_issue_info.
2807 * doc/invoke.texi (AArch64 Options): Document neoverse-v2.
2808
2809 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
2810
2811 * range-op-float.cc (build_le): Use vrp_val_*.
2812 (build_lt): Same.
2813 (build_ge): Same.
2814 (build_gt): Same.
2815 * value-range.cc (frange::set): Chop ranges outside of the
2816 representable numbers for -ffinite-math-only.
2817 (frange::normalize_kind): Use vrp_val*.
2818 (frange::verify_range): Same.
2819 (frange::set_nonnegative): Same.
2820 (range_tests_floats): Remove tests that depend on -INF and +INF.
2821 * value-range.h (real_max_representable): Add prototype.
2822 (real_min_representable): Same.
2823 (vrp_val_max): Set max representable number for
2824 -ffinite-math-only.
2825 (vrp_val_min): Same but for min.
2826 (frange::set_varying): Use vrp_val*.
2827
2828 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
2829
2830 * real.cc (debug): New.
2831
2832 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
2833
2834 * value-range-pretty-print.cc (vrange_printer::print_real_value): New.
2835 (vrange_printer::visit): Call print_real_value.
2836 * value-range-pretty-print.h: New print_real_value.
2837
2838 2022-09-23 Martin Liska <mliska@suse.cz>
2839
2840 * common.opt: Update -flto-compression-level documentation.
2841 * opts.cc (print_filtered_help): Do not append range to an
2842 option that uses \t syntax.
2843
2844 2022-09-23 Jakub Jelinek <jakub@redhat.com>
2845
2846 * attribs.cc (decl_attributes): Improve diagnostics, instead of
2847 saying expected between 1 and 1, found 2 just say expected 1, found 2.
2848
2849 2022-09-23 Hu, Lin1 <lin1.hu@intel.com>
2850
2851 PR target/94962
2852 * config/i386/constraints.md (BH): New define_constraint.
2853 * config/i386/i386.cc (standard_sse_constant_p): Add return
2854 3/4 when operand matches new predicate.
2855 (standard_sse_constant_opcode): Add new alternative branch to
2856 return "vpcmpeqd".
2857 * config/i386/predicates.md
2858 (vector_all_ones_zero_extend_half_operand): New define_predicate.
2859 (vector_all_ones_zero_extend_quarter_operand): Ditto.
2860 * config/i386/sse.md: Add constraint to insn "mov<mode>_internal".
2861
2862 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2863
2864 * gimple-range-fold.cc (range_of_range_op): Handle no operands.
2865 (range_of_call): Do not check for builtins.
2866 (fold_using_range::range_of_builtin_call): Delete.
2867 (fold_using_range::range_of_builtin_int_call): Delete.
2868 * gimple-range-fold.h: Adjust prototypes.
2869 * gimple-range-op.cc (class cfn_parity): New.
2870 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
2871
2872 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2873
2874 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
2875 for CFN_GOACC_DIM_*.
2876 * gimple-range-op.cc (class cfn_goacc_dim): New.
2877 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
2878
2879 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2880
2881 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
2882 for CFN_BUILT_IN_STRLEN.
2883 * gimple-range-op.cc (class cfn_strlen): New.
2884 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
2885
2886 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2887
2888 * gimple-range-fold.cc (range_of_builtin_ubsan_call): Delete.
2889 (range_of_builtin_int_call): Remove cases for
2890 CFN_BUILT_IN_UBSAN_CHECK.
2891 * gimple-range-op.cc (class cfn_ubsan): New.
2892 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
2893
2894 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2895
2896 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
2897 for CFN_BUILT_IN_CLRSB.
2898 * gimple-range-op.cc (class cfn_clrsb): New.
2899 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
2900
2901 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2902
2903 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
2904 for CFN_CTZ.
2905 * gimple-range-op.cc (class cfn_ctz): New.
2906 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
2907
2908 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2909
2910 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
2911 for CFN_CLZ.
2912 * gimple-range-op.cc (class cfn_clz): New.
2913 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
2914
2915 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2916
2917 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
2918 for CFN_FFS and CFN_POPCOUNT.
2919 * gimple-range-op.cc (class cfn_pocount): New.
2920 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
2921
2922 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2923
2924 * gimple-range-fold.cc (get_letter_range): Move to new class.
2925 (range_of_builtin_int_call): Remove case for CFN_BUILT_IN_TOUPPER
2926 and CFN_BUILT_IN_TOLOWER.
2927 * gimple-range-op.cc (class cfn_toupper_tolower): New.
2928 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
2929
2930 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2931
2932 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
2933 for CFN_BUILT_IN_SIGNBIT.
2934 * gimple-range-op.cc (class cfn_signbit): New.
2935 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
2936
2937 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2938
2939 * gimple-range-fold.cc
2940 (fold_using_range::range_of_builtin_int_call): Remove case for
2941 CFN_BUILT_IN_CONSTANT_P.
2942 * gimple-range-op.cc (gimple_range_op_handler::supported_p):
2943 Check if a call also creates a range-op object.
2944 (gimple_range_op_handler): Also check builtin calls.
2945 (class cfn_constant_float_p): New. Float CFN_BUILT_IN_CONSTANT_P.
2946 (class cfn_constant_p): New. Integral CFN_BUILT_IN_CONSTANT_P.
2947 (gimple_range_op_handler::maybe_builtin_call): Set arguments and
2948 handler for supported built-in calls.
2949 * gimple-range-op.h (maybe_builtin_call): New prototype.
2950
2951 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2952
2953 * gimple-range-fold.cc (range_of_range_op): Set result to
2954 VARYING if the call to fold_range fails.
2955 * tree-data-ref.cc (compute_distributive_range): Ditto.
2956 * tree-vrp.cc (range_fold_binary_expr): Ditto.
2957 (range_fold_unary_expr): Ditto.
2958 * value-query.cc (range_query::get_tree_range): Ditto.
2959
2960 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2961
2962 * range-op-float.cc (range_operator_float::fold_range): New base
2963 method for "int = float op int".
2964 * range-op.cc (range_op_handler::fold_range): New case.
2965 * range-op.h: Update prototypes.
2966
2967 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2968
2969 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
2970 operand 1 for second range if there is no operand 2.
2971
2972 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2973
2974 * Makefile.in (OBJS): Add gimple-range-op.o.
2975 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Use
2976 gimple_range_op_handler.
2977 * gimple-range-fold.cc (gimple_range_base_of_assignment): Move
2978 to a method in gimple_range_op_handler.
2979 (gimple_range_operand1): Ditto.
2980 (gimple_range_operand2): Ditto.
2981 (fold_using_range::fold_stmt): Use gimple_range_op_handler.
2982 (fold_using_range::range_of_range_op): Ditto.
2983 (fold_using_range::relation_fold_and_or): Ditto.
2984 (fur_source::register_outgoing_edges): Ditto.
2985 (gimple_range_ssa_names): Relocate to gimple-range-op.cc.
2986 * gimple-range-fold.h: Adjust prototypes.
2987 * gimple-range-gori.cc (gimple_range_calc_op1): Move
2988 to a method in gimple_range_op_handler.
2989 (gimple_range_calc_op2): Ditto.
2990 (gori_compute::compute_operand_range): Use
2991 gimple_range_op_handler.
2992 (gori_compute::compute_logical_operands): Ditto.
2993 (compute_operand1_range): Ditto.
2994 (gori_compute::compute_operand2_range): Ditto.
2995 (gori_compute::compute_operand1_and_operand2_range): Ditto.
2996 * gimple-range-gori.h: Adjust protoypes.
2997 * gimple-range-op.cc: New. Supply gimple_range_op_handler methods.
2998 * gimple-range-op.h: New. Supply gimple_range_op_handler class.
2999 * gimple-range.cc (gimple_ranger::prefill_name): Use
3000 gimple_range_op_handler.
3001 (gimple_ranger::prefill_stmt_dependencies): Ditto.
3002 * gimple-range.h: Include gimple-range-op.h.
3003 * range-op.cc (range_op_handler::range_op_handler): Adjust and
3004 remove gimple * parameter option.
3005 * range-op.h: Adjust prototypes.
3006
3007 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
3008
3009 * range-op.cc (range_op_handler::set_op_handler): Set new fields.
3010 (ange_op_handler::range_op_handler): Likewise.
3011 (range_op_handler::operator bool): Remove.
3012 (range_op_handler::fold_range): Use appropriate handler.
3013 (range_op_handler::op1_range): Likewise.
3014 (range_op_handler::op2_range): Likewise.
3015 (range_op_handler::lhs_op1_relation): Likewise.
3016 (range_op_handler::lhs_op2_relation): Likewise.
3017 (range_op_handler::op1_op2_relation): Likewise.
3018 * range-op.h (class range_op_handler): Store handler pointers.
3019 (range_op_handler:: operator bool): Inline.
3020
3021 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
3022
3023 * tree-ssa-threadbackward.cc
3024 (back_threader::find_paths_to_names): Replace sequence with
3025 a call to gimple_range_ssa_names.
3026
3027 2022-09-22 Martin Liska <mliska@suse.cz>
3028 Fangrui Song <i@maskray.me>
3029
3030 * configure: Regenerate.
3031 * configure.ac: Simplify to gcc_cv_ld_compress_debug={0,1}
3032 and gcc_cv_as_compress_debug={0,1}.
3033 * doc/invoke.texi: Document the removal.
3034 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Simplify and ignore
3035 zlib-gnu.
3036 (ASM_COMPRESS_DEBUG_SPEC): Likewise.
3037
3038 2022-09-22 Richard Biener <rguenther@suse.de>
3039
3040 PR tree-optimization/106922
3041 * tree-ssa-sccvn.cc (vn_walk_cb_data::same_val): New member.
3042 (vn_walk_cb_data::finish): Perform delayed verification of
3043 a skipped may-alias.
3044 (vn_reference_lookup_pieces): Likewise.
3045 (vn_reference_lookup): Likewise.
3046 (vn_reference_lookup_3): When skipping stores of the same
3047 value also handle constant stores that are more than a
3048 single VDEF away by delaying the verification.
3049
3050 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
3051
3052 * config/xtensa/xtensa.cc (TARGET_MAX_ANCHOR_OFFSET): New
3053 definition.
3054
3055 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
3056
3057 * config/xtensa/xtensa.cc (xtensa_can_output_mi_thunk)
3058 (xtensa_output_mi_thunk): New functions.
3059 (TARGET_ASM_CAN_OUTPUT_MI_THUNK)
3060 (TARGET_ASM_OUTPUT_MI_THUNK): New macro definitions.
3061 (xtensa_prepare_expand_call): Use fixed register a8 as temporary
3062 when called with reload_completed set to 1.
3063
3064 2022-09-22 Richard Biener <rguenther@suse.de>
3065
3066 PR tree-optimization/99407
3067 * tree-ssa-dse.cc (dse_stmt_to_dr_map): New global.
3068 (dse_classify_store): Use data-ref analysis to disambiguate more uses.
3069 (pass_dse::use_dr_analysis_p): New pass parameter.
3070 (pass_dse::set_pass_param): Implement.
3071 (pass_dse::execute): Allocate and deallocate dse_stmt_to_dr_map.
3072 * passes.def: Allow DR analysis for the DSE pass before loop.
3073
3074 2022-09-22 Richard Biener <rguenther@suse.de>
3075
3076 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): New
3077 function split out from ...
3078 (vn_nary_op_insert_pieces_predicated): ... here.
3079
3080 2022-09-22 liuhongt <hongtao.liu@intel.com>
3081
3082 PR target/106994
3083 * config/i386/mmx.md (floorv2sf2): Fix typo, use
3084 register_operand instead of vector_operand for operands[1].
3085
3086 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
3087
3088 PR tree-optimization/106967
3089 * value-range.cc (frange::set): Set known NANs to undefined for
3090 flag_finite_math_only.
3091
3092 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
3093
3094 * value-range.cc (frange::combine_zeros): Call set_undefined.
3095 (frange::intersect_nans): Same.
3096 (frange::intersect): Same.
3097 (frange::verify_range): Undefined ranges do not have a type.
3098 * value-range.h (frange::set_undefined): Clear NAN flags and type.
3099
3100 2022-09-21 Richard Biener <rguenther@suse.de>
3101
3102 PR tree-optimization/106984
3103 * tsan.cc (instrument_builtin_call): Build the COND_EXPR condition in
3104 a separate statement.
3105
3106 2022-09-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3107
3108 * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT,
3109 EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS): Move definitions up before
3110 OPTION_DEFAULT_SPECS.
3111 (MCPU_MTUNE_NATIVE_SPECS): Pass "cpu" to
3112 local_cpu_detect when rewriting -march=native and no -mcpu or -mtune
3113 is given.
3114 (CONFIG_TUNE_SPEC): Define.
3115 (OPTION_DEFAULT_SPECS): Use CONFIG_TUNE_SPEC for "tune".
3116
3117 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
3118
3119 PR tree-optimization/106967
3120 * range-op-float.cc (foperator_equal::fold_range): Adjust for NAN.
3121 (foperator_equal::op1_range): Same.
3122 (foperator_not_equal::fold_range): Same.
3123 (foperator_not_equal::op1_range): Same.
3124 (foperator_lt::fold_range): Same.
3125 (foperator_lt::op1_range): Same.
3126 (foperator_lt::op2_range): Same.
3127 (foperator_le::fold_range): Same.
3128 (foperator_le::op1_range): Same.
3129 (foperator_le::op2_range): Same.
3130 (foperator_gt::fold_range): Same.
3131 (foperator_gt::op1_range): Same.
3132 (foperator_gt::op2_range): Same.
3133 (foperator_ge::fold_range): Same.
3134 (foperator_ge::op1_range): Same.
3135 (foperator_ge::op2_range): Same.
3136 (foperator_unordered::op1_range): Same.
3137 (foperator_ordered::fold_range): Same.
3138 (foperator_ordered::op1_range): Same.
3139 (build_le): Assert that we don't have a NAN.
3140 (build_lt): Same.
3141 (build_gt): Same.
3142 (build_ge): Same.
3143
3144 2022-09-21 liuhongt <hongtao.liu@intel.com>
3145
3146 PR tree-optimization/106963
3147 * tree-vect-loop.cc (vect_create_nonlinear_iv_init): Use
3148 vec_gen_perm_mask_any instead of vec_gen_perm_mask_check.
3149
3150 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
3151
3152 * value-range.h (frange::maybe_isnan): Return false for
3153 undefined ranges.
3154
3155 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
3156
3157 * value-range.cc (frange::set_nonnegative): Set +NAN.
3158 (range_tests_signed_zeros): New test.
3159 * value-range.h (frange::update_nan): New overload to set NAN sign.
3160
3161 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
3162
3163 PR target/106491
3164 * config/aarch64/aarch64-sve-builtins.cc (scalar_types)
3165 (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
3166 markup to (new) extern declarations instead of to the main
3167 definition.
3168
3169 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
3170
3171 PR tree-optimization/106794
3172 PR tree-optimization/106914
3173 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
3174 Only consider loads that already have a permutation.
3175 (vect_optimize_slp_pass::start_choosing_layouts): Assert that
3176 loads with permutations are leaf nodes. Prevent any kind of grouped
3177 access from changing layout if it doesn't have a load permutation.
3178
3179 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
3180
3181 * tree-vect-data-refs.cc (vect_check_gather_scatter): Restrict
3182 early-out optimisation to SSA_NAMEs.
3183
3184 2022-09-20 Martin Liska <mliska@suse.cz>
3185
3186 * ctfc.cc (ctf_add_string): Replace "the the" with "the".
3187 * doc/md.texi: Likewise.
3188 * gimple-range-infer.cc (non_null_loadstore): Likewise.
3189
3190 2022-09-20 liuhongt <hongtao.liu@intel.com>
3191
3192 PR target/106910
3193 * config/i386/mmx.md (nearbyintv2sf2): New expander.
3194 (rintv2sf2): Ditto.
3195 (ceilv2sf2): Ditto.
3196 (lceilv2sfv2si2): Ditto.
3197 (floorv2sf2): Ditto.
3198 (lfloorv2sfv2si2): Ditto.
3199 (btruncv2sf2): Ditto.
3200 (lrintv2sfv2si2): Ditto.
3201 (roundv2sf2): Ditto.
3202 (lroundv2sfv2si2): Ditto.
3203 (*mmx_roundv2sf2): New define_insn.
3204
3205 2022-09-20 konglin1 <lingling.kong@intel.com>
3206
3207 PR middle-end/105735
3208 * tree-scalar-evolution.cc
3209 (analyze_and_compute_bitop_with_inv_effect): New function.
3210 (final_value_replacement_loop): Enhanced to handle bitop
3211 with inv induction.
3212
3213 2022-09-20 Xi Ruoyao <xry111@xry111.site>
3214
3215 * config/loongarch/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): For
3216 -static-pie, pass -static -pie --no-dynamic-linker -z text to
3217 the linker, and do not pass --dynamic-linker.
3218
3219 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
3220
3221 * value-range.cc (frange::flush_denormals_to_zero): New.
3222 (frange::set): Call flush_denormals_to_zero.
3223 * value-range.h (class frange): Add flush_denormals_to_zero.
3224
3225 2022-09-20 liuhongt <hongtao.liu@intel.com>
3226
3227 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Adjust for
3228 latest Intel processors.
3229
3230 2022-09-20 konglin1 <lingling.kong@intel.com>
3231
3232 PR target/106887
3233 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
3234 Fixed V16BF mode case.
3235
3236 2022-09-19 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
3237
3238 * targhooks.cc (default_zero_call_used_regs): Improve sorry
3239 message.
3240
3241 2022-09-18 Julian Brown <julian@codesourcery.com>
3242
3243 * gimplify.cc (omp_segregate_mapping_groups): Update comment.
3244 (gimplify_adjust_omp_clauses): Move ATTACH and
3245 ATTACH_ZERO_LENGTH_ARRAY_SECTION nodes to the end of the clause list
3246 for offloaded OpenMP regions.
3247
3248 2022-09-18 Jakub Jelinek <jakub@redhat.com>
3249
3250 PR middle-end/106831
3251 * value-range.cc (frange::singleton_p): Avoid propagating long
3252 doubles that may have multiple representations.
3253
3254 2022-09-18 Aldy Hernandez <aldyh@redhat.com>
3255
3256 * range-op-float.cc (frange_add_zeros): Replace set_signbit with
3257 union of zero.
3258 * value-query.cc (range_query::get_tree_range): Remove set_signbit
3259 use.
3260 * value-range-pretty-print.cc (vrange_printer::print_frange_prop):
3261 Remove.
3262 (vrange_printer::print_frange_nan): New.
3263 * value-range-pretty-print.h (print_frange_prop): Remove.
3264 (print_frange_nan): New.
3265 * value-range-storage.cc (frange_storage_slot::set_frange): Set
3266 kind and NAN fields.
3267 (frange_storage_slot::get_frange): Restore kind and NAN fields.
3268 * value-range-storage.h (class frange_storage_slot): Add kind and
3269 NAN fields.
3270 * value-range.cc (frange::update_nan): Remove.
3271 (frange::set_signbit): Remove.
3272 (frange::set): Adjust for NAN fields.
3273 (frange::normalize_kind): Remove m_props.
3274 (frange::combine_zeros): New.
3275 (frange::union_nans): New.
3276 (frange::union_): Handle new NAN fields.
3277 (frange::intersect_nans): New.
3278 (frange::intersect): Handle new NAN fields.
3279 (frange::operator=): Same.
3280 (frange::operator==): Same.
3281 (frange::contains_p): Same.
3282 (frange::singleton_p): Remove special case for signed zeros.
3283 (frange::verify_range): Adjust for new NAN fields.
3284 (frange::set_zero): Handle signed zeros.
3285 (frange::set_nonnegative): Same.
3286 (range_tests_nan): Adjust tests.
3287 (range_tests_signed_zeros): Same.
3288 (range_tests_signbit): Same.
3289 (range_tests_floats): Same.
3290 * value-range.h (class fp_prop): Remove.
3291 (FP_PROP_ACCESSOR): Remove.
3292 (class frange_props): Remove
3293 (frange::lower_bound): NANs don't have endpoints.
3294 (frange::upper_bound): Same.
3295 (frange_props::operator==): Remove.
3296 (frange_props::union_): Remove.
3297 (frange_props::intersect): Remove.
3298 (frange::update_nan): New.
3299 (frange::clear_nan): New.
3300 (frange::undefined_p): New.
3301 (frange::set_nan): New.
3302 (frange::known_finite): Adjust for new NAN representation.
3303 (frange::maybe_isnan): Same.
3304 (frange::known_isnan): Same.
3305 (frange::signbit_p): Same.
3306 * gimple-range-fold.cc (range_of_builtin_int_call): Rename
3307 known_signbit_p into signbit_p.
3308
3309 2022-09-17 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3310
3311 * config/csky/csky.h (FUNCTION_ARG_REGNO_P): Cast REGNO to (int)
3312 to prevent warning.
3313
3314 2022-09-17 Jakub Jelinek <jakub@redhat.com>
3315
3316 PR tree-optimization/106958
3317 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): If
3318 id >= l, cast op to type1, otherwise to pointer_sized_int_node.
3319 If type has pointer type, cast exp to pointer_sized_int_node
3320 even when id < l.
3321
3322 2022-09-16 liuhongt <hongtao.liu@intel.com>
3323
3324 PR target/106910
3325 * config/i386/i386-builtins.cc
3326 (ix86_builtin_vectorized_function): Modernized with
3327 corresponding expanders.
3328 * config/i386/sse.md (lrint<mode><sseintvecmodelower>2): New
3329 expander.
3330 (floor<mode>2): Ditto.
3331 (lfloor<mode><sseintvecmodelower>2): Ditto.
3332 (ceil<mode>2): Ditto.
3333 (lceil<mode><sseintvecmodelower>2): Ditto.
3334 (btrunc<mode>2): Ditto.
3335 (lround<mode><sseintvecmodelower>2): Ditto.
3336 (exp2<mode>2): Ditto.
3337
3338 2022-09-15 Joseph Myers <joseph@codesourcery.com>
3339
3340 * ginclude/float.h (INFINITY): Define only if
3341 [__FLT_HAS_INFINITY__].
3342
3343 2022-09-15 Richard Biener <rguenther@suse.de>
3344
3345 PR tree-optimization/106922
3346 * tree-ssa-pre.cc (translate_vuse_through_block): Only
3347 keep the VUSE if its def dominates PHIBLOCK.
3348 (prune_clobbered_mems): Rewrite logic so we check whether
3349 a value dies in a block when the VUSE def doesn't dominate it.
3350
3351 2022-09-15 Richard Biener <rguenther@suse.de>
3352
3353 * tree.cc (build_common_tree_nodes): Initialize void_list_node
3354 here.
3355
3356 2022-09-15 Jiufu Guo <guojiufu@linux.ibm.com>
3357
3358 PR target/106550
3359 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Use pli.
3360
3361 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
3362
3363 * range-op-float.cc (frange_add_zeros): New.
3364 (build_le): Call frange_add_zeros.
3365 (build_ge): Same.
3366 (foperator_equal::op1_range): Same.
3367 (foperator_not_equal::op1_range): Same.
3368
3369 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
3370
3371 * range-op-float.cc (build_le): Accept frange instead of number.
3372 (build_lt): Same.
3373 (build_ge): Same.
3374 (build_gt): Same.
3375 (foperator_lt::op1_range): Pass full range to build_*.
3376 (foperator_lt::op2_range): Same.
3377 (foperator_le::op1_range): Same.
3378 (foperator_le::op2_range): Same.
3379 (foperator_gt::op1_range): Same.
3380 (foperator_gt::op2_range): Same.
3381 (foperator_ge::op1_range): Same.
3382 (foperator_ge::op2_range): Same.
3383
3384 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
3385
3386 * value-range.cc (frange::set): Use set_nan.
3387 * value-range.h (frange::set_nan): Inline code originally in
3388 set().
3389
3390 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
3391
3392 * range-op-float.cc (frange_set_nan): Remove.
3393 (build_lt): Use set_nan, update_nan, clear_nan.
3394 (build_gt): Same.
3395 (foperator_equal::op1_range): Same.
3396 (foperator_not_equal::op1_range): Same.
3397 (foperator_lt::op1_range): Same.
3398 (foperator_lt::op2_range): Same.
3399 (foperator_le::op1_range): Same.
3400 (foperator_le::op2_range): Same.
3401 (foperator_gt::op1_range): Same.
3402 (foperator_gt::op2_range): Same.
3403 (foperator_ge::op1_range): Same.
3404 (foperator_ge::op2_range): Same.
3405 (foperator_unordered::op1_range): Same.
3406 (foperator_ordered::op1_range): Same.
3407 * value-query.cc (range_query::get_tree_range): Same.
3408 * value-range.cc (frange::set_nan): Same.
3409 (frange::update_nan): Same.
3410 (frange::union_): Same.
3411 (frange::intersect): Same.
3412 (range_tests_nan): Same.
3413 (range_tests_signed_zeros): Same.
3414 (range_tests_signbit): Same.
3415 (range_tests_floats): Same.
3416 * value-range.h (class frange): Add update_nan and clear_nan.
3417 (frange::set_nan): New.
3418
3419 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
3420
3421 * value-query.cc (range_query::get_tree_range): Remove check for overflow.
3422 * value-range-pretty-print.cc (vrange_printer::visit): Move read
3423 of type until after undefined_p is checked.
3424 * value-range.cc (frange::set): Remove asserts for REAL_CST.
3425 (frange::contains_p): Tidy up.
3426 (range_tests_nan): Add comment.
3427 * value-range.h (frange::type): Check for undefined_p.
3428 (frange::set_undefined): Remove set of endpoints.
3429
3430 2022-09-14 Julian Brown <julian@codesourcery.com>
3431
3432 * gimplify.cc (omp_group_last): Allow GOMP_MAP_ATTACH_DETACH after
3433 GOMP_MAP_STRUCT (for reindexing).
3434 (omp_gather_mapping_groups): Reimplement using...
3435 (omp_gather_mapping_groups_1): This new function. Stop processing at
3436 GATHER_SENTINEL.
3437 (omp_group_base): Allow GOMP_MAP_TO_PSET without any following node.
3438 (omp_index_mapping_groups): Reimplement using...
3439 (omp_index_mapping_groups_1): This new function. Handle
3440 REINDEX_SENTINEL.
3441 (omp_reindex_mapping_groups, omp_mapped_by_containing_struct): New
3442 functions.
3443 (omp_tsort_mapping_groups_1): Adjust handling of base group being the
3444 same as current group. Use omp_mapped_by_containing_struct.
3445 (omp_build_struct_sibling_lists): Use omp_mapped_by_containing_struct
3446 and omp_reindex_mapping_groups. Robustify group deletion for reordered
3447 lists.
3448 (gimplify_scan_omp_clauses): Update calls to
3449 omp_build_struct_sibling_lists.
3450
3451 2022-09-14 Julian Brown <julian@codesourcery.com>
3452
3453 * gimplify.cc (gimplify_omp_var_data): Remove GOVD_MAP_HAS_ATTACHMENTS.
3454 (GOMP_FIRSTPRIVATE_IMPLICIT): Renumber.
3455 (insert_struct_comp_map): Refactor function into...
3456 (build_omp_struct_comp_nodes): This new function. Remove list handling
3457 and improve self-documentation.
3458 (extract_base_bit_offset): Remove BASE_REF, OFFSETP parameters. Move
3459 code to strip outer parts of address out of function, but strip no-op
3460 conversions.
3461 (omp_mapping_group): Add DELETED field for use during reindexing.
3462 (omp_strip_components_and_deref, omp_strip_indirections): New functions.
3463 (omp_group_last, omp_group_base): Add GOMP_MAP_STRUCT handling.
3464 (omp_gather_mapping_groups): Initialise DELETED field for new groups.
3465 (omp_index_mapping_groups): Notice DELETED groups when (re)indexing.
3466 (omp_siblist_insert_node_after, omp_siblist_move_node_after,
3467 omp_siblist_move_nodes_after, omp_siblist_move_concat_nodes_after): New
3468 helper functions.
3469 (omp_accumulate_sibling_list): New function to build up GOMP_MAP_STRUCT
3470 node groups for sibling lists. Outlined from gimplify_scan_omp_clauses.
3471 (omp_build_struct_sibling_lists): New function.
3472 (gimplify_scan_omp_clauses): Remove struct_map_to_clause,
3473 struct_seen_clause, struct_deref_set. Call
3474 omp_build_struct_sibling_lists as pre-pass instead of handling sibling
3475 lists in the function's main processing loop.
3476 (gimplify_adjust_omp_clauses_1): Remove GOVD_MAP_HAS_ATTACHMENTS
3477 handling, unused now.
3478 * omp-low.cc (scan_sharing_clauses): Handle pointer-type indirect
3479 struct references, and references to pointers to structs also.
3480
3481 2022-09-14 Richard Biener <rguenther@suse.de>
3482
3483 PR tree-optimization/106938
3484 * tree-cfg.cc (execute_fixup_cfg): Purge dead abnormal
3485 edges for all last stmts in a block. Do EH cleanup
3486 only on the last stmt in a block.
3487
3488 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
3489
3490 PR tree-optimization/106936
3491 * value-query.cc (range_query::get_value_range): Remove assert.
3492
3493 2022-09-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3494
3495 * config/mips/mips.cc (mips_option_override): Drop unused variable.
3496
3497 2022-09-14 Julian Brown <julian@codesourcery.com>
3498
3499 * gimplify.cc (is_or_contains_p, omp_target_reorder_clauses): Delete
3500 functions.
3501 (omp_tsort_mark): Add enum.
3502 (omp_mapping_group): Add struct.
3503 (debug_mapping_group, omp_get_base_pointer, omp_get_attachment,
3504 omp_group_last, omp_gather_mapping_groups, omp_group_base,
3505 omp_index_mapping_groups, omp_containing_struct,
3506 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
3507 omp_segregate_mapping_groups, omp_reorder_mapping_groups): New
3508 functions.
3509 (gimplify_scan_omp_clauses): Call above functions instead of
3510 omp_target_reorder_clauses, unless we've seen an error.
3511 * omp-low.cc (scan_sharing_clauses): Avoid strict test if we haven't
3512 sorted mapping groups.
3513
3514 2022-09-14 Jakub Jelinek <jakub@redhat.com>
3515
3516 PR tree-optimization/106878
3517 * tree-cfg.cc (verify_gimple_assign_binary): Disallow pointer,
3518 reference or OFFSET_TYPE BIT_IOR_EXPR, BIT_XOR_EXPR or, unless
3519 the second argument is INTEGER_CST, BIT_AND_EXPR.
3520 * match.pd ((type) X op CST -> (type) (X op ((type-x) CST)),
3521 (type) (((type2) X) op Y) -> (X op (type) Y)): Punt for
3522 POINTER_TYPE_P or OFFSET_TYPE.
3523 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): For
3524 pointers cast them to pointer sized integers first.
3525
3526 2022-09-14 Richard Biener <rguenther@suse.de>
3527
3528 PR tree-optimization/106934
3529 * tree-ssa.cc (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs
3530 of bitfields.
3531 (maybe_rewrite_mem_ref_base): Likewise.
3532
3533 2022-09-14 liuhongt <hongtao.liu@intel.com>
3534
3535 PR tree-optimization/106905
3536 * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
3537 false when !vect_use_loop_mask_for_alignment_p (loop_vinfo) &&
3538 LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0.
3539
3540 2022-09-13 Roger Sayle <roger@nextmovesoftware.com>
3541
3542 PR target/106877
3543 * reg-stack.cc (move_for_stack_reg): Check for any_malformed_asm
3544 in gcc_assert.
3545
3546 2022-09-13 Max Filippov <jcmvbkbc@gmail.com>
3547
3548 Revert:
3549 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3550
3551 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
3552 New macro definition.
3553 (xtensa_constant_ok_for_cprop_p):
3554 Implement the hook as mentioned above.
3555
3556 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
3557
3558 PR target/104482
3559 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Fix
3560 the equality check for argument number, and move this hunk ahead.
3561
3562 2022-09-13 Kewen.Lin <linkw@gcc.gnu.org>
3563
3564 PR target/105485
3565 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Add
3566 the handling for unresolved overloaded builtin function.
3567 (rs6000_expand_builtin): Likewise.
3568
3569 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
3570
3571 * config/rs6000/rs6000.cc (class rs6000_cost_data): Add new members
3572 m_nstores, m_reduc_factor, m_gather_load and member function
3573 determine_suggested_unroll_factor.
3574 (rs6000_cost_data::update_target_cost_per_stmt): Update for m_nstores,
3575 m_reduc_factor and m_gather_load.
3576 (rs6000_cost_data::determine_suggested_unroll_factor): New function.
3577 (rs6000_cost_data::finish_cost): Use determine_suggested_unroll_factor.
3578 * config/rs6000/rs6000.opt (rs6000-vect-unroll-limit): New parameter.
3579 (rs6000-vect-unroll-issue): Likewise.
3580 (rs6000-vect-unroll-reduc-threshold): Likewise.
3581 * doc/invoke.texi (rs6000-vect-unroll-limit): Document new parameter.
3582
3583 2022-09-13 Richard Biener <rguenther@suse.de>
3584
3585 PR middle-end/106909
3586 * gimple-fold.cc (gimple_fold_call): Clear the ctrl-altering
3587 flag of a unreachable call.
3588
3589 2022-09-13 Richard Biener <rguenther@suse.de>
3590
3591 PR tree-optimization/106913
3592 * tree-ssa-uninit.cc (warn_uninitialized_vars): Do not set
3593 ft_reachable on EXIT_BLOCK.
3594
3595 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
3596
3597 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Use
3598 TARGET_FLOAT instead of TARGET_SIMD.
3599 (aarch64_vectorize_related_mode): Restrict ADVSIMD handling to
3600 TARGET_SIMD.
3601 (aarch64_hard_regno_mode_ok): Don't allow tuples of 2 64-bit vectors
3602 in GPRs.
3603 (aarch64_classify_address): Treat little-endian structure moves
3604 like big-endian for TARGET_FLOAT && !TARGET_SIMD.
3605 (aarch64_secondary_memory_needed): New function.
3606 (aarch64_secondary_reload): Handle 128-bit Advanced SIMD vectors
3607 in the same way as TF, TI and TD.
3608 (aarch64_rtx_mult_cost): Restrict ADVSIMD handling to TARGET_SIMD.
3609 (aarch64_rtx_costs): Likewise.
3610 (aarch64_register_move_cost): Treat a pair of 64-bit vectors
3611 separately from a single 128-bit vector. Handle the cost implied
3612 by aarch64_secondary_memory_needed.
3613 (aarch64_simd_valid_immediate): Restrict ADVSIMD handling to
3614 TARGET_SIMD.
3615 (aarch64_expand_vec_perm_const_1): Likewise.
3616 (TARGET_SECONDARY_MEMORY_NEEDED): New macro.
3617 * config/aarch64/iterators.md (VTX): New iterator.
3618 * config/aarch64/aarch64.md (arches): Add fp_q as a synonym of simd.
3619 (arch_enabled): Adjust accordingly.
3620 (@aarch64_reload_mov<TX:mode>): Extend to...
3621 (@aarch64_reload_mov<VTX:mode>): ...this.
3622 * config/aarch64/aarch64-simd.md (mov<mode>): Require TARGET_FLOAT
3623 rather than TARGET_SIMD.
3624 (movmisalign<mode>): Likewise.
3625 (load_pair<DREG:mode><DREG2:mode>): Likewise.
3626 (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
3627 (load_pair<VQ:mode><VQ2:mode>): Likewise.
3628 (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
3629 (@aarch64_split_simd_mov<mode>): Likewise.
3630 (aarch64_get_low<mode>): Likewise.
3631 (aarch64_get_high<mode>): Likewise.
3632 (aarch64_get_half<mode>): Likewise. Canonicalize to a move for
3633 lowpart extracts.
3634 (*aarch64_simd_mov<VDMOV:mode>): Require TARGET_FLOAT rather than
3635 TARGET_SIMD. Use different w<-w and r<-w instructions for
3636 !TARGET_SIMD. Disable immediate moves for !TARGET_SIMD but
3637 add an alternative specifically for w<-Z.
3638 (*aarch64_simd_mov<VQMOV:mode>): Require TARGET_FLOAT rather than
3639 TARGET_SIMD. Likewise for the associated define_splits. Disable
3640 FPR moves and immediate moves for !TARGET_SIMD but add an alternative
3641 specifically for w<-Z.
3642 (aarch64_simd_mov_from_<mode>high): Require TARGET_FLOAT rather than
3643 TARGET_SIMD. Restrict the existing alternatives to TARGET_SIMD
3644 but add a new r<-w one for !TARGET_SIMD.
3645 (*aarch64_get_high<mode>): New pattern.
3646 (load_pair_lanes<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
3647 (store_pair_lanes<mode>): Likewise.
3648 (*aarch64_combine_internal<mode>): Likewise. Restrict existing
3649 w<-w, w<-r and w<-m alternatives to TARGET_SIMD but add a new w<-r
3650 alternative for !TARGET_SIMD.
3651 (*aarch64_combine_internal_be<mode>): Likewise.
3652 (aarch64_combinez<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
3653 Remove bogus arch attribute.
3654 (*aarch64_combinez_be<mode>): Likewise.
3655 (@aarch64_vec_concat<mode>): Require TARGET_FLOAT rather than
3656 TARGET_SIMD.
3657 (aarch64_combine<mode>): Likewise.
3658 (aarch64_rev_reglist<mode>): Likewise.
3659 (mov<mode>): Likewise.
3660 (*aarch64_be_mov<VSTRUCT_2D:mode>): Extend to TARGET_FLOAT &&
3661 !TARGET_SIMD, regardless of endianness. Extend associated
3662 define_splits in the same way, both for this pattern and the
3663 ones below.
3664 (*aarch64_be_mov<VSTRUCT_2Qmode>): Likewise. Restrict w<-w
3665 alternative to TARGET_SIMD.
3666 (*aarch64_be_movoi): Likewise.
3667 (*aarch64_be_movci): Likewise.
3668 (*aarch64_be_movxi): Likewise.
3669 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Extend to TARGET_FLOAT
3670 && !TARGET_SIMD, regardless of endianness. Restrict w<-w alternative
3671 to TARGET_SIMD for tuples of 128-bit vectors.
3672 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Likewise.
3673 * config/aarch64/aarch64-ldpstp.md: Remove TARGET_SIMD condition
3674 from DREG STP peephole. Change TARGET_SIMD to TARGET_FLOAT in
3675 the VQ and VP_2E LDP and STP peepholes.
3676
3677 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
3678
3679 * config/aarch64/aarch64-simd.md (movv8di): Remove TARGET_SIMD
3680 condition. Likewise for the related define_split. Tweak formatting.
3681
3682 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3683
3684 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
3685 New macro definition.
3686 (xtensa_constant_ok_for_cprop_p):
3687 Implement the hook as mentioned above.
3688
3689 2022-09-12 Joseph Myers <joseph@codesourcery.com>
3690
3691 * ginclude/stdatomic.h [defined __STDC_VERSION__ &&
3692 __STDC_VERSION__ > 201710L] (ATOMIC_VAR_INIT): Do not define.
3693
3694 2022-09-12 Tobias Burnus <tobias@codesourcery.com>
3695
3696 * config/nvptx/mkoffload.cc (process): Replace a fatal_error by
3697 a warning + not enabling offloading if -misa=sm_30 prevents
3698 reverse offload.
3699 (main): Use tool_name as progname for diagnostic.
3700 * config/gcn/mkoffload.cc (main): Likewise.
3701
3702 2022-09-12 Aldy Hernandez <aldyh@redhat.com>
3703
3704 * value-range.cc (frange::set_signbit): Avoid changing sign when
3705 already in the correct sign.
3706
3707 2022-09-12 Max Filippov <jcmvbkbc@gmail.com>
3708
3709 * config/xtensa/xtensa.cc (xtensa_function_value_regno_p):
3710 Recognize all 4 return registers.
3711 * config/xtensa/xtensa.h (GP_RETURN_REG_COUNT): New definition.
3712 * config/xtensa/xtensa.md (untyped_call): New pattern.
3713
3714 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
3715
3716 * doc/extend.texi (Floating Types): Fix "_float128" typo.
3717
3718 2022-09-10 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3719
3720 * config/xtensa/xtensa.cc (xtensa_constantsynth):
3721 Add new pattern for the abovementioned case.
3722
3723 2022-09-10 Akari Takahashi <akaritakahashioss@gmail.com>
3724 Segher Boessenkool <segher@kernel.crashing.org>
3725
3726 * config/rs6000/rs6000.cc (get_memref_parts): Regularize some code.
3727
3728 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3729
3730 * config/xtensa/xtensa.md: Rewrite the split pattern that performs
3731 the abovementioned process so that insns that overwrite clobbered
3732 register no longer need to be contiguous.
3733 (DSC): Remove as no longer needed.
3734
3735 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3736
3737 * config/xtensa/xtensa.cc (machine_function): New boolean member as
3738 a flag that controls whether to emit the insns for stack pointer
3739 adjustment inside of the pro/epilogue.
3740 (xtensa_emit_adjust_stack_ptr): New function to share the common
3741 codes and to emit insns if not inhibited.
3742 (xtensa_expand_epilogue): Change to use the function mentioned
3743 above when using the CALL0 ABI.
3744 (xtensa_expand_prologue): Ditto.
3745 And also change to set the inhibit flag used by
3746 xtensa_emit_adjust_stack_ptr() to true if the stack pointer is only
3747 used for its own adjustment.
3748
3749 2022-09-09 David Malcolm <dmalcolm@redhat.com>
3750
3751 * doc/invoke.texi (Static Analyzer Options): Add
3752 -Wanalyzer-exposure-through-uninit-copy.
3753
3754 2022-09-09 David Malcolm <dmalcolm@redhat.com>
3755
3756 * Makefile.in (ANALYZER_OBJS): Add
3757 analyzer/known-function-manager.o.
3758
3759 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
3760
3761 * config/nvptx/mkoffload.cc (struct id_map): Add 'dim' member.
3762 (record_id): Store func name without quotes, store dim separately.
3763 (process): For GOMP_REQUIRES_REVERSE_OFFLOAD, check that -march is
3764 at least sm_35, create '$offload_func_table' global array and init
3765 with reverse-offload function addresses.
3766 * config/nvptx/nvptx.cc (write_fn_proto_1, write_fn_proto): New
3767 force_public attribute to force .visible.
3768 (nvptx_declare_function_name): For "omp target
3769 device_ancestor_nohost" attribut, force .visible/TREE_PUBLIC.
3770
3771 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
3772
3773 * config/gcn/mkoffload.cc (process_asm): Create .offload_func_table,
3774 similar to pre-existing .offload_var_table.
3775
3776 2022-09-09 Joseph Myers <joseph@codesourcery.com>
3777
3778 * ginclude/stddef.h [__STDC_VERSION__ > 201710L] (unreachable):
3779 New macro.
3780
3781 2022-09-09 Kewen Lin <linkw@linux.ibm.com>
3782
3783 PR middle-end/106833
3784 * tree.cc (verify_opaque_type): New function.
3785 (verify_type): Call verify_opaque_type for OPAQUE_TYPE.
3786
3787 2022-09-09 Kwok Cheung Yeung <kcy@codesourcery.com>
3788
3789 * config/gcn/gcn-builtins.def (FABSVF, LDEXPVF, LDEXPV, FREXPVF_EXP,
3790 FREXPVF_MANT, FREXPV_EXP, FREXPV_MANT): Add new builtins.
3791 * config/gcn/gcn-protos.h (gcn_dconst1over2pi): New prototype.
3792 * config/gcn/gcn-valu.md (MATH_UNOP_1OR2REG, MATH_UNOP_1REG,
3793 MATH_UNOP_TRIG): New iterators.
3794 (math_unop): New attributes.
3795 (<math_unop><mode>2, <math_unop><mode>2<exec>,
3796 <math_unop><mode>2, <math_unop><mode>2<exec>,
3797 *<math_unop><mode>2_insn, *<math_unop><mode>2<exec>_insn,
3798 ldexp<mode>3, ldexp<mode>3<exec>,
3799 frexp<mode>_exp2, frexp<mode>_mant2,
3800 frexp<mode>_exp2<exec>, frexp<mode>_mant2<exec>): New instructions.
3801 (<math_unop><mode>2, <math_unop><mode>2<exec>): New expanders.
3802 * config/gcn/gcn.cc (init_ext_gcn_constants): Update definition of
3803 dconst1over2pi.
3804 (gcn_dconst1over2pi): New.
3805 (gcn_builtin_type_index): Add entry for v64df type.
3806 (v64df_type_node): New.
3807 (gcn_init_builtin_types): Initialize v64df_type_node.
3808 (gcn_expand_builtin_1): Expand new builtins to instructions.
3809 (print_operand): Fix assembler output for 1/(2*PI) constant.
3810 * config/gcn/gcn.md (unspec): Add new entries.
3811
3812 2022-09-09 Richard Biener <rguenther@suse.de>
3813
3814 PR tree-optimization/106722
3815 * tree-predcom.cc (ref_at_iteration): Do not associate the
3816 constant part of the offset into the MEM_REF offset
3817 operand, across a non-zero offset.
3818
3819 2022-09-09 Kito Cheng <kito.cheng@sifive.com>
3820
3821 * common/config/riscv/riscv-common.cc (RISCV_USE_CUSTOMISED_MULTI_LIB):
3822 Move forward for cover all all necessary functions for suppress
3823 unused function warnings.
3824 (riscv_multi_lib_check): Move forward, and tweak message to suppress
3825 -Werror=format-diag warning.
3826
3827 2022-09-09 Richard Biener <rguenther@suse.de>
3828
3829 PR tree-optimization/106881
3830 * gimple-predicate-analysis.cc (simple_control_dep_chain):
3831 Add only non-fallthru edges and avoid the same set of edges
3832 as compute_control_dep_chain_pdom does.
3833
3834 2022-09-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3835
3836 * doc/tm.texi.in (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Document requirement
3837 of TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT being defined as well.
3838 * doc/tm.texi: Regenerate.
3839
3840 2022-09-09 Martin Liska <mliska@suse.cz>
3841
3842 * optc-save-gen.awk: Always compare array option values with memcmp.
3843
3844 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
3845
3846 PR c++/106838
3847 * doc/extend.texi (Type Traits): Fix requirements. Document
3848 __is_aggregate and __is_final.
3849
3850 2022-09-08 Tim Lange <mail@tim-lange.me>
3851
3852 PR analyzer/106625
3853 * doc/invoke.texi:
3854 State that the checker also reasons about symbolic values.
3855
3856 2022-09-08 Richard Sandiford <richard.sandiford@arm.com>
3857
3858 PR tree-optimization/106886
3859 * tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
3860 Fix copying of scalar stmts.
3861
3862 2022-09-08 Chung-Lin Tang <cltang@codesourcery.com>
3863
3864 * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add #undef before #define.
3865
3866 2022-09-08 Richard Biener <rguenther@suse.de>
3867
3868 PR middle-end/106870
3869 * gimple-harden-conditionals.cc (insert_check_and_trap):
3870 Set the control-altering flag on the built IFN_TRAP.
3871 * gimple.cc (gimple_build_builtin_unreachable): Likewise.
3872 * tree-cfg.cc (handle_abnormal_edges): Set the control-altering
3873 flag on the .ABNORMAL_DISPATCHER call.
3874 * tree-cfgcleanup.cc (cleanup_call_ctrl_altering_flag): Avoid
3875 resetting the control altering flag for ECF_NORETURN calls.
3876 (cleanup_control_flow_bb): Set the control altering flag on
3877 discovered noreturn calls.
3878 * symtab-thunks.cc (expand_thunk): Set the control altering
3879 flag for the noreturn tailcall case.
3880 * tree-eh.cc (lower_resx): Likewisw for trap and unwind_resume
3881 calls.
3882
3883 2022-09-08 Jakub Jelinek <jakub@redhat.com>
3884
3885 * omp-expand.cc (expand_omp_ordered_sink): Add CONT_BB argument.
3886 Add doacross(sink:omp_cur_iteration-1) support.
3887 (expand_omp_ordered_source_sink): Clear counts[fd->ordered + 1].
3888 Adjust expand_omp_ordered_sink caller.
3889 (expand_omp_for_ordered_loops): If counts[fd->ordered + 1] is
3890 non-NULL, set that variable to true at the start of outermost
3891 non-collapsed loop and set it to false at the end of innermost
3892 ordered loop.
3893 (expand_omp_for_generic): If fd->ordered, allocate
3894 1 + (fd->ordered - fd->collapse) further elements in counts array.
3895 Copy to counts + 2 + fd->ordered the counts of fd->collapse ..
3896 fd->ordered - 1 loop if any.
3897
3898 2022-09-08 Richard Biener <rguenther@suse.de>
3899
3900 PR tree-optimization/106881
3901 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
3902 Add only non-fallthru edges and avoid the same set of edges
3903 as the caller does.
3904
3905 2022-09-08 Aldy Hernandez <aldyh@redhat.com>
3906
3907 * gimple-range-fold.cc
3908 (fold_using_range::range_of_builtin_int_call): Use fpclassify like API.
3909 * range-op-float.cc (finite_operand_p): Same.
3910 (finite_operands_p): Same.
3911 (foperator_lt::fold_range): Same.
3912 (foperator_le::fold_range): Same.
3913 (foperator_gt::fold_range): Same.
3914 (foperator_ge::fold_range): Same.
3915 (foperator_unordered::fold_range): Same.
3916 (foperator_unordered::op1_range): Same.
3917 (foperator_ordered::fold_range): Same.
3918 * value-range.cc (frange::set_nan): Same.
3919 (frange::set_signbit): Same.
3920 (frange::union_): Same.
3921 (frange::intersect): Same.
3922 (frange::operator==): Same.
3923 (frange::singleton_p): Same.
3924 (frange::verify_range): Same.
3925 (range_tests_nan): Same.
3926 (range_tests_floats): Same.
3927 * value-range.h(frange::known_finite): New.
3928 (frange::maybe_inf): New.
3929 (frange::known_inf): New.
3930 (frange::maybe_nan): New.
3931 (frange::known_nan): New.
3932 (frange::known_signbit): New.
3933
3934 2022-09-08 Iain Buclaw <ibuclaw@gdcproject.org>
3935
3936 * config/darwin-d.cc: Include tm.h.
3937 * config/dragonfly-d.cc: Likewise.
3938 * config/freebsd-d.cc: Remove memmodel.h.
3939 * config/glibc-d.cc: Likewise.
3940 * config/netbsd-d.cc: Include tm.h.
3941 * config/openbsd-d.cc: Likewise.
3942 * config/sol2-d.cc: Likewise.
3943
3944 2022-09-08 Christophe Lyon <christophe.lyon@arm.com>
3945
3946 * config/arm/mve.md (mve_vqshluq_n_s<mode>): Use
3947 MVE_pred/MVE_constraint instead of mve_imm_7/Ra.
3948 (mve_vqshluq_m_n_s<mode>): Likewise.
3949 (mve_vqrshrnbq_n_<supf><mode>): Use MVE_pred3/MVE_constraint3
3950 instead of mve_imm_8/Rb.
3951 (mve_vqrshrunbq_n_s<mode>): Likewise.
3952 (mve_vqrshrntq_n_<supf><mode>): Likewise.
3953 (mve_vqrshruntq_n_s<mode>): Likewise.
3954 (mve_vrshrnbq_n_<supf><mode>): Likewise.
3955 (mve_vrshrntq_n_<supf><mode>): Likewise.
3956 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
3957 (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
3958 (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
3959 (mve_vrshrntq_m_n_<supf><mode>): Likewise.
3960 (mve_vqrshrunbq_m_n_s<mode>): Likewise.
3961 (mve_vsriq_n_<supf><mode): Use MVE_pred2/MVE_constraint2 instead
3962 of mve_imm_selective_upto_8/Rg.
3963 (mve_vsriq_m_n_<supf><mode>): Likewise.
3964
3965 2022-09-08 Jiufu Guo <guojiufu@linux.ibm.com>
3966
3967 * config/rs6000/rs6000.md (splitter for set to and_mask constants):
3968 Use int_reg_operand (instead of int_reg_operand_not_pseudo).
3969 (splitter for multi-insn constant loads): Ditto.
3970
3971 2022-09-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
3972
3973 * config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if
3974 -mvrsave is present.
3975 * config/rs6000/t-rtems: Add -mvrsave multilib variants for
3976 -mcpu=e6500.
3977
3978 2022-09-07 Martin Liska <mliska@suse.cz>
3979
3980 * configure.ac: Restore detection of HAVE_XCOFF_DWARF_EXTRAS.
3981 * config/rs6000/rs6000.cc (HAVE_XCOFF_DWARF_EXTRAS): Reset it.
3982 * configure: Regenerate.
3983 * config.in: Regenerate.
3984
3985 2022-09-07 Surya Kumari Jangala <jskumari@linux.ibm.com>
3986
3987 PR rtl-optimization/105586
3988 * sched-rgn.cc (save_state_for_fallthru_edge): New function.
3989 (schedule_region): Use it for all blocks.
3990
3991 2022-09-07 Joseph Myers <joseph@codesourcery.com>
3992
3993 * ginclude/stdalign.h [defined __STDC_VERSION__ &&
3994 __STDC_VERSION__ > 201710L]: Disable all content.
3995 * ginclude/stdbool.h [defined __STDC_VERSION__ && __STDC_VERSION__
3996 > 201710L] (bool, true, false): Do not define.
3997
3998 2022-09-07 Martin Liska <mliska@suse.cz>
3999
4000 PR bootstrap/106855
4001 * collect2.cc (scan_prog_file): Restore if XCOFF_DEBUGGING_INFO.
4002 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
4003 Restore usage of XCOFF_DEBUGGING_INFO.
4004 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Restore.
4005 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Restore support for
4006 XCOFF_DEBUGGING_INFO.
4007 (dw2_asm_output_nstring): Likewise.
4008 (USE_LINKONCE_INDIRECT): Likewise.
4009 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
4010 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
4011 (output_fde): Likewise.
4012 (output_call_frame_info): Likewise.
4013 (have_macinfo): Likewise.
4014 (add_AT_loc_list): Likewise.
4015 (add_AT_view_list): Likewise.
4016 (output_compilation_unit_header): Likewise.
4017 (output_pubnames): Likewise.
4018 (output_aranges): Likewise.
4019 (output_line_info): Likewise.
4020 (output_macinfo): Likewise.
4021 (dwarf2out_finish): Likewise.
4022 (dwarf2out_early_finish): Likewise.
4023
4024 2022-09-07 Richard Biener <rguenther@suse.de>
4025
4026 PR tree-optimization/106866
4027 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): When
4028 we changed cfun->calls_setjmp make sure to purge all
4029 abnormal call edges.
4030
4031 2022-09-07 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4032
4033 * config/csky/csky.cc (csky_emit_compare_float): Fix the expanding of
4034 float LE comparing with zero for fpuv3.
4035 * config/csky/csky.h (TARGET_SUPPORT_FPV2): New, true if any fpuv2
4036 features are enabled.
4037
4038 2022-09-07 Richard Biener <rguenther@suse.de>
4039
4040 PR tree-optimization/106860
4041 * tree-ssa-loop-split.cc (split_loop): Find the exit to
4042 latch edge from the loop exit edge instead of from the
4043 latch. Verify we're going to find it.
4044
4045 2022-09-07 Richard Biener <rguenther@suse.de>
4046
4047 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
4048 Adjust to take the region exit source as argument.
4049 (uninit_analysis::init_from_phi_def): Adjust.
4050 (uninit_analysis::init_use_preds): Mark the dominating region
4051 before computing control dependences.
4052
4053 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
4054
4055 * config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64): Extend
4056 w<-w, r<-w and w<-r alternatives to !simd, using 32-bit moves
4057 in that case. Extend w<-r to w<-Z.
4058 (*mov<HFBF:mode>_aarch64): Likewise, but with Y instead of Z.
4059 (*movti_aarch64): Use an FMOV from XZR for w<-Z if MOVI is not
4060 available.
4061 (define_split): Do not apply the floating-point immediate-to-register
4062 split to zeros, even if MOVI is not available.
4063
4064 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
4065
4066 * config/aarch64/aarch64.cc (aarch64_conditional_register_usage):
4067 Disallow use of FPRs in register asms for !TARGET_FLOAT.
4068
4069 2022-09-07 Lulu Cheng <chenglulu@loongson.cn>
4070
4071 PR target/106828
4072 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset): New.
4073 (TARGET_ASAN_SHADOW_OFFSET): New.
4074
4075 2022-09-07 Jakub Jelinek <jakub@redhat.com>
4076
4077 * doc/invoke.texi (-Wno-unicode): Document.
4078
4079 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
4080
4081 * config/rs6000/rs6000.md (const_scalar_int splitter): Remove.
4082
4083 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
4084
4085 * config/rs6000/rs6000.md: (constant splitters): Use "(pc)" as the
4086 replacements.
4087
4088 2022-09-07 liuhongt <hongtao.liu@intel.com>
4089
4090 PR tree-optimization/103144
4091 * tree-vect-loop.cc (vect_is_nonlinear_iv_evolution): New function.
4092 (vect_analyze_scalar_cycles_1): Detect nonlinear iv by upper function.
4093 (vect_create_nonlinear_iv_init): New function.
4094 (vect_peel_nonlinear_iv_init): Ditto.
4095 (vect_create_nonlinear_iv_step): Ditto
4096 (vect_create_nonlinear_iv_vec_step): Ditto
4097 (vect_update_nonlinear_iv): Ditto
4098 (vectorizable_nonlinear_induction): Ditto.
4099 (vectorizable_induction): Call
4100 vectorizable_nonlinear_induction when induction_type is not
4101 vect_step_op_add.
4102 * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
4103 Update nonlinear iv for epilogue loop.
4104 * tree-vectorizer.h (enum vect_induction_op_type): New enum.
4105 (STMT_VINFO_LOOP_PHI_EVOLUTION_TYPE): New Macro.
4106
4107 2022-09-06 Richard Biener <rguenther@suse.de>
4108
4109 PR tree-optimization/106754
4110 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
4111 New function, split out from compute_control_dep_chain. Handle
4112 loop-exit like conditions here by pushing to the control vector.
4113 (compute_control_dep_chain): Adjust and streamline dumping.
4114 In the wrapper perform a post-dominator walk as well.
4115 (uninit_analysis::init_use_preds): Remove premature early exit.
4116
4117 2022-09-06 Max Filippov <jcmvbkbc@gmail.com>
4118
4119 * config/xtensa/linux.h (LINK_SPEC): Add static-pie.
4120
4121 2022-09-06 Aldy Hernandez <aldyh@redhat.com>
4122
4123 * range-op-float.cc (build_le): Handle NANs and going past infinity.
4124 (build_lt): Same.
4125 (build_ge): Same.
4126 (build_gt): Same.
4127 (foperator_lt::op1_range): Avoid adjustments to range if build_*
4128 returned false.
4129 (foperator_lt::op2_range): Same.
4130 (foperator_le::op1_range): Same.
4131 (foperator_le::op2_range): Same.
4132 (foperator_gt::op1_range): Same.
4133 (foperator_gt::op2_range): Same.
4134
4135 2022-09-06 Richard Biener <rguenther@suse.de>
4136
4137 * gimple-predicate-analysis.cc (compute_control_dep_chain):
4138 Add output flag to indicate whether we possibly have dropped
4139 any chains. Return whether the info is complete from the
4140 wrapping overload.
4141 (uninit_analysis::init_use_preds): Adjust accordingly, with
4142 a workaround for PR106754.
4143 (uninit_analysis::init_from_phi_def): Properly guard the
4144 case where we complete an empty chain.
4145
4146 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4147
4148 * config/msp430/msp430.cc (msp430_single_op_cost): Document unused argument.
4149
4150 2022-09-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4151
4152 * tree-ssa-forwprop.cc (simplify_permutation): Set res_type to a vector
4153 type with same element type as arg0, and length as op2.
4154
4155 2022-09-06 Richard Biener <rguenther@suse.de>
4156
4157 PR tree-optimization/106844
4158 * gimple-predicate-analysis.cc (compute_control_dep_chain):
4159 Return whether we found a chain.
4160
4161 2022-09-06 Richard Biener <rguenther@suse.de>
4162
4163 PR tree-optimization/106841
4164 * tree-vect-slp.cc (vect_detect_hybrid_slp): Also process
4165 scatter/gather offset.
4166
4167 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4168
4169 * config/bpf/bpf.h (REGNO_REG_CLASS): Reference arguments as (void).
4170
4171 2022-09-06 Jakub Jelinek <jakub@redhat.com>
4172
4173 * gimple.h (enum gf_mask): Add GF_OMP_ORDERED_STANDALONE enumerator.
4174 (gimple_omp_subcode): Use GIMPLE_OMP_ORDERED instead of
4175 GIMPLE_OMP_TEAMS as upper bound.
4176 (gimple_omp_ordered_standalone_p, gimple_omp_ordered_standalone): New
4177 inline functions.
4178 * gimplify.cc (find_standalone_omp_ordered): Look for OMP_ORDERED with
4179 NULL OMP_ORDERED_BODY rather than with OMP_DOACROSS clause.
4180 (gimplify_expr): Call gimple_omp_ordered_standalone for OMP_ORDERED
4181 with NULL OMP_ORDERED_BODY.
4182 * omp-low.cc (check_omp_nesting_restrictions): Use
4183 gimple_omp_ordered_standalone_p test instead of
4184 omp_find_clause (..., OMP_CLAUSE_DOACROSS).
4185 (lower_omp_ordered): Likewise.
4186 * omp-expand.cc (expand_omp, build_omp_regions_1,
4187 omp_make_gimple_edges): Likewise.
4188
4189 2022-09-06 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4190
4191 * config/csky/csky.md (cskyv2_addcc): Fix missing operand.
4192 (cskyv2_addcc_invert): Likewise.
4193
4194 2022-09-06 Jose E. Marchesi <jose.marchesi@oracle.com>
4195
4196 * config/bpf/bpf.cc (bpf_expand_prologue): Remove unused automatic
4197 `insn'.
4198 (bpf_expand_epilogue): Likewise.
4199
4200 2022-09-06 liuhongt <hongtao.liu@intel.com>
4201
4202 * config/i386/i386-builtin.def (IX86_BUILTIN_CVTPS2PH512):
4203 Map to CODE_FOR_avx512f_vcvtps2ph512_mask_sae.
4204 * config/i386/sse.md (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Extend to ..
4205 (<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>): .. this.
4206 (avx512f_vcvtps2ph512_mask_sae): New expander
4207
4208 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
4209
4210 * gimple-range-fold.cc
4211 (fold_using_range::range_of_builtin_int_call): Ignore sign bit
4212 when there's the possibility of a NAN.
4213
4214 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
4215
4216 * gimple-range-fold.cc
4217 (fold_using_range::range_of_builtin_int_call): Fold a set signbit
4218 in __builtin_signbit to nonzero.
4219
4220 2022-09-05 Alexander Monakov <amonakov@ispras.ru>
4221
4222 PR target/106453
4223 * config/i386/i386.md (sse4_2_crc32di): Model that only low 32
4224 bits of operand 0 are consumed, and the result is zero-extended
4225 to 64 bits.
4226
4227 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
4228
4229 PR middle-end/106831
4230 * value-range.h (frange::supports_p): Disable decimal floats.
4231 * range-op-float.cc (frange_drop_inf): Remove DECIMAL_FLOAT_MODE_P
4232 check.
4233 (frange_drop_ninf): Same.
4234
4235 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
4236
4237 PR middle-end/106824
4238 * value-range.cc (frange::set_nan): Set undefined when updating a
4239 NAN to a non-NAN.
4240
4241 2022-09-05 Kito Cheng <kito.cheng@sifive.com>
4242
4243 * config/riscv/riscv.cc (riscv_option_override): Fix wrong
4244 condition for MASK_DIV and simplify incompatible checking.
4245 * config/riscv/riscv.md (muldi3): Adding parentheses.
4246
4247 2022-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4248
4249 * config/aarch64/aarch64.cc (aarch64_validate_march): Check if invalid arch
4250 string is a valid -mcpu string and emit hint.
4251
4252 2022-09-05 LiaoShihua <shihua@iscas.ac.cn>
4253
4254 * common/config/riscv/riscv-common.cc: Add Zmmul.
4255 * config/riscv/riscv-opts.h (MASK_ZMMUL): New.
4256 (TARGET_ZMMUL): Ditto.
4257 * config/riscv/riscv.cc (riscv_option_override):Ditto.
4258 * config/riscv/riscv.md: Add Zmmul
4259 * config/riscv/riscv.opt: Ditto.
4260
4261 2022-09-05 Richard Biener <rguenther@suse.de>
4262
4263 * tree-cfg.h (get_cases_for_edge): Declare.
4264 * tree-cfg.cc (get_cases_for_edge): Export.
4265 * tree-ssa-uninit.cc (execute_late_warn_uninitialized):
4266 Start and end recording case labels.
4267 * gimple-predicate-analysis.cc (MAX_SWITCH_CASES): Remove.
4268 (predicate::init_from_control_deps): Use get_cases_for_edge.
4269
4270 2022-09-05 Richard Biener <rguenther@suse.de>
4271
4272 * gimple-predicate-analysis.cc (MAX_POSTDOM_CHECK): Remove.
4273 (compute_control_dep_chain): Move uninit-control-dep-attempts
4274 checking where it also counts the post-dominator check
4275 invocations.
4276
4277 2022-09-05 Richard Biener <rguenther@suse.de>
4278
4279 * gimple-predicate-analysis.h (predicate::debug): New.
4280 (predicate::dump): Add FILE * argument, add base overload.
4281 * gimple-predicate-analysis.cc (debug): New.
4282 (dump_pred_info): Add FILE * argument.
4283 (dump_pred_chain): Likewise.
4284 (predicate::dump): Split out preamble into overload. Add
4285 FILE * argument.
4286 (predicate::debug): New.
4287 (predicate::simplify): Adjust.
4288 (predicate::normalize): Likewise.
4289 (predicate::init_from_control_deps): Likewise.
4290
4291 2022-09-05 Richard Sandiford <richard.sandiford@arm.com>
4292
4293 * config/aarch64/aarch64-protos.h
4294 (aarch64_init_simd_builtins): Remove prototype.
4295 * config/aarch64/aarch64-builtins.cc
4296 (aarch64_simd_builtins_initialized_p): Delete.
4297 (aarch64_init_simd_builtins): Make static. Remove protection
4298 against multiple calls.
4299 * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Remove
4300 lazy SIMD builtin initialization.
4301 * config/aarch64/aarch64.cc
4302 (aarch64_option_valid_attribute_p): Likewise.
4303
4304 2022-09-05 Xi Ruoyao <xry111@xry111.site>
4305
4306 * config/loongarch/genopts/loongarch.opt.in: Add
4307 -mdirect-extern-access option.
4308 * config/loongarch/loongarch.opt: Regenerate.
4309 * config/loongarch/loongarch.cc
4310 (loongarch_symbol_binds_local_p): Return true if
4311 TARGET_DIRECT_EXTERN_ACCESS.
4312 (loongarch_option_override_internal): Complain if
4313 -mdirect-extern-access is used with -fPIC or -fpic.
4314 * doc/invoke.texi: Document -mdirect-extern-access for
4315 LoongArch.
4316
4317 2022-09-05 Martin Liska <mliska@suse.cz>
4318
4319 * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to
4320 DEBUGGER_REGNO.
4321 * doc/tm.texi: Regenerate.
4322
4323 2022-09-05 Martin Liska <mliska@suse.cz>
4324
4325 * config/aarch64/aarch64-protos.h (aarch64_dbx_regno):
4326 Rename DBX_REGISTER_NUMBER to DEBUGGER_REGNO.
4327 (aarch64_debugger_regno): Likewise.
4328 * config/aarch64/aarch64.cc (aarch64_dbx_regno): Likewise.
4329 (aarch64_debugger_regno): Likewise.
4330 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
4331 (DEBUGGER_REGNO): Likewise.
4332 (DWARF_FRAME_REGNUM): Likewise.
4333 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Likewise.
4334 * config/arc/arc.cc (arc_init_reg_tables): Likewise.
4335 * config/arc/arc.h (DBX_REGISTER_NUMBER): Likewise.
4336 (DEBUGGER_REGNO): Likewise.
4337 * config/arm/arm-protos.h (arm_dbx_regno): Likewise.
4338 (arm_debugger_regno): Likewise.
4339 * config/arm/arm.cc (arm_dbx_regno): Likewise.
4340 (arm_debugger_regno): Likewise.
4341 * config/arm/arm.h (DBX_REGISTER_NUMBER): Likewise.
4342 (DEBUGGER_REGNO): Likewise.
4343 * config/bfin/bfin.h (DBX_REGISTER_NUMBER): Likewise.
4344 (DEBUGGER_REGNO): Likewise.
4345 * config/c6x/c6x.cc: Likewise.
4346 * config/c6x/c6x.h (DBX_REGISTER_NUMBER): Likewise.
4347 (DEBUGGER_REGNO): Likewise.
4348 * config/cris/cris.h (enum reg_class): Likewise.
4349 (DBX_REGISTER_NUMBER): Likewise.
4350 (DEBUGGER_REGNO): Likewise.
4351 * config/csky/csky.cc (enum reg_class): Likewise.
4352 * config/csky/csky.h (DWARF_FRAME_REGNUM): Likewise.
4353 (DBX_REGISTER_NUMBER): Likewise.
4354 (DEBUGGER_REGNO): Likewise.
4355 * config/frv/frv.h (DBX_REGISTER_NUMBER): Likewise.
4356 (DEBUGGER_REGNO): Likewise.
4357 * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): Likewise.
4358 (DEBUGGER_REGNO): Likewise.
4359 * config/gcn/gcn.cc (print_operand): Likewise.
4360 * config/i386/bsd.h (ASM_QUAD): Likewise.
4361 * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
4362 (DEBUGGER_REGNO): Likewise.
4363 (DWARF_FRAME_REGNUM): Likewise.
4364 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
4365 (DEBUGGER_REGNO): Likewise.
4366 * config/i386/djgpp.h (DBX_REGISTER_NUMBER): Likewise.
4367 (DEBUGGER_REGNO): Likewise.
4368 * config/i386/dragonfly.h (DBX_REGISTER_NUMBER): Likewise.
4369 (DEBUGGER_REGNO): Likewise.
4370 * config/i386/freebsd.h (DBX_REGISTER_NUMBER): Likewise.
4371 (DEBUGGER_REGNO): Likewise.
4372 * config/i386/gas.h: Likewise.
4373 * config/i386/gnu-user.h (DBX_REGISTER_NUMBER): Likewise.
4374 (DEBUGGER_REGNO): Likewise.
4375 * config/i386/i386.cc (enum reg_class): Likewise.
4376 * config/i386/i386.h (DBX_REGISTER_NUMBER): Likewise.
4377 (DEBUGGER_REGNO): Likewise.
4378 * config/i386/i386elf.h (DBX_REGISTER_NUMBER): Likewise.
4379 (DEBUGGER_REGNO): Likewise.
4380 * config/i386/iamcu.h (DBX_REGISTER_NUMBER): Likewise.
4381 (DEBUGGER_REGNO): Likewise.
4382 * config/i386/lynx.h (DBX_REGISTER_NUMBER): Likewise.
4383 (DEBUGGER_REGNO): Likewise.
4384 * config/i386/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
4385 (DEBUGGER_REGNO): Likewise.
4386 * config/i386/nto.h (DBX_REGISTER_NUMBER): Likewise.
4387 (DEBUGGER_REGNO): Likewise.
4388 * config/i386/openbsdelf.h (DBX_REGISTER_NUMBER): Likewise.
4389 (DEBUGGER_REGNO): Likewise.
4390 * config/i386/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
4391 (DEBUGGER_REGNO): Likewise.
4392 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
4393 (DEBUGGER_REGNO): Likewise.
4394 * config/i386/x86-64.h (DBX_REGISTER_NUMBER): Likewise.
4395 (DEBUGGER_REGNO): Likewise.
4396 * config/ia64/ia64-protos.h (ia64_dbx_regno): Likewise.
4397 (ia64_debugger_regno): Likewise.
4398 * config/ia64/ia64.cc (ia64_output_function_prologue): Likewise.
4399 (ia64_dbx_regno): Likewise.
4400 (ia64_debugger_regno): Likewise.
4401 (process_cfa_adjust_cfa): Likewise.
4402 (process_cfa_register): Likewise.
4403 (ia64_asm_unwind_emit): Likewise.
4404 * config/ia64/ia64.h: Likewise.
4405 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
4406 (DEBUGGER_REGNO): Likewise.
4407 * config/lm32/lm32.h (DBX_REGISTER_NUMBER): Likewise.
4408 (DEBUGGER_REGNO): Likewise.
4409 * config/m32c/m32c.cc (m32c_eh_return_stackadj_rtx): Likewise.
4410 * config/m32c/m32c.h (DBX_REGISTER_NUMBER): Likewise.
4411 (DEBUGGER_REGNO): Likewise.
4412 * config/m68k/linux.h (DBX_REGISTER_NUMBER): Likewise.
4413 (DEBUGGER_REGNO): Likewise.
4414 * config/m68k/m68k.h (DBX_REGISTER_NUMBER): Likewise.
4415 (DEBUGGER_REGNO): Likewise.
4416 (__transfer_from_trampoline): Likewise.
4417 * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Likewise.
4418 (DEBUGGER_REGNO): Likewise.
4419 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
4420 (DBX_REGISTER_NUMBER): Likewise.
4421 (DEBUGGER_REGNO): Likewise.
4422 * config/microblaze/microblaze.cc (microblaze_option_override): Likewise.
4423 * config/microblaze/microblaze.h (DBX_REGISTER_NUMBER): Likewise.
4424 (DEBUGGER_REGNO): Likewise.
4425 (GP_DBX_FIRST): Likewise.
4426 (GP_DEBUGGER_FIRST): Likewise.
4427 * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
4428 (DEBUGGER_REGNO): Likewise.
4429 * config/mmix/mmix-protos.h (mmix_dbx_regno): Likewise.
4430 (mmix_debugger_regno): Likewise.
4431 * config/mmix/mmix.cc (mmix_dbx_regno): Likewise.
4432 (mmix_debugger_regno): Likewise.
4433 * config/mmix/mmix.h (DBX_REGISTER_NUMBER): Likewise.
4434 (DEBUGGER_REGNO): Likewise.
4435 * config/nds32/nds32-protos.h (nds32_dbx_regno): Likewise.
4436 (nds32_debugger_regno): Likewise.
4437 * config/nds32/nds32.cc (nds32_dbx_regno): Likewise.
4438 (nds32_debugger_regno): Likewise.
4439 (nds32_use_blocks_for_constant_p): Likewise.
4440 * config/nds32/nds32.h (DBX_REGISTER_NUMBER): Likewise.
4441 (DEBUGGER_REGNO): Likewise.
4442 * config/nvptx/nvptx.h (DBX_REGISTER_NUMBER): Likewise.
4443 (DEBUGGER_REGNO): Likewise.
4444 * config/or1k/or1k.h (DBX_REGISTER_NUMBER): Likewise.
4445 (DEBUGGER_REGNO): Likewise.
4446 * config/pa/pa32-regs.h (DBX_REGISTER_NUMBER): Likewise.
4447 (DEBUGGER_REGNO): Likewise.
4448 * config/pa/pa64-regs.h (DBX_REGISTER_NUMBER): Likewise.
4449 (DEBUGGER_REGNO): Likewise.
4450 * config/rs6000/rs6000-protos.h (rs6000_dbx_regno): Likewise.
4451 (rs6000_debugger_regno): Likewise.
4452 * config/rs6000/rs6000.cc (rs6000_dbx_regno): Likewise.
4453 (rs6000_debugger_regno): Likewise.
4454 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Likewise.
4455 (DEBUGGER_REGNO): Likewise.
4456 (DWARF2_FRAME_REG_OUT): Likewise.
4457 * config/s390/s390.h (DBX_REGISTER_NUMBER): Likewise.
4458 (DEBUGGER_REGNO): Likewise.
4459 * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
4460 (DEBUGGER_REGNO): Likewise.
4461 * config/sh/linux.h (DBX_REGISTER_NUMBER): Likewise.
4462 (DEBUGGER_REGNO): Likewise.
4463 * config/sh/sh.h (DBX_REGISTER_NUMBER): Likewise.
4464 (DEBUGGER_REGNO): Likewise.
4465 (SH_DBX_REGISTER_NUMBER): Likewise.
4466 (SH_DEBUGGER_REGNO): Likewise.
4467 * config/visium/visium.h (DBX_REGISTER_NUMBER): Likewise.
4468 (DEBUGGER_REGNO): Likewise.
4469 * config/xtensa/elf.h (DBX_REGISTER_NUMBER): Likewise.
4470 (DEBUGGER_REGNO): Likewise.
4471 * config/xtensa/linux.h (DBX_REGISTER_NUMBER): Likewise.
4472 (DEBUGGER_REGNO): Likewise.
4473 * config/xtensa/uclinux.h (DBX_REGISTER_NUMBER): Likewise.
4474 (DEBUGGER_REGNO): Likewise.
4475 * config/xtensa/xtensa-protos.h (xtensa_dbx_regno): Likewise.
4476 (xtensa_debugger_regno): Likewise.
4477 * config/xtensa/xtensa.cc (xtensa_dbx_regno): Likewise.
4478 (xtensa_debugger_regno): Likewise.
4479 * config/xtensa/xtensa.h (DBX_REGISTER_NUMBER): Likewise.
4480 (DEBUGGER_REGNO): Likewise.
4481 * defaults.h (DBX_REGISTER_NUMBER): Likewise.
4482 (DEBUGGER_REGNO): Likewise.
4483 (DWARF_FRAME_REGNUM): Likewise.
4484 * doc/tm.texi: Likewise.
4485 * doc/tm.texi.in: Likewise.
4486 * dwarf2out.cc (dbx_reg_number): Likewise.
4487 (debugger_reg_number): Likewise.
4488 (reg_loc_descriptor): Likewise.
4489 (multiple_reg_loc_descriptor): Likewise.
4490 (mem_loc_descriptor): Likewise.
4491 * except.cc: Likewise.
4492
4493 2022-09-05 konglin1 <lingling.kong@intel.com>
4494
4495 PR target/106742
4496 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
4497 Handle V8BF mode.
4498 (expand_vec_perm_broadcast_1): Ditto.
4499 * config/i386/sse.md (avx512fmaskhalfmode): Add BF vector mode.
4500 (vec_set<mode>_0): Add @ to it.
4501 (@vec_set<mode>_0): Ditto.
4502 (vec_interleave_high<mode><mask_name>): Ditto.
4503 (@vec_interleave_high<mode><mask_name>): Ditto.
4504 (vec_interleave_low<mode><mask_name>): Ditto.
4505 (@vec_interleave_low<mode><mask_name>): Ditto.
4506 * config/i386/subst.md (SUBST_V): Add BF vector mode.
4507
4508 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
4509
4510 * value-range.cc (early_nan_resolve): Remove.
4511 (frange::intersect): Handle NANs.
4512
4513 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
4514
4515 * value-range.cc (frange::union_): Do not drop properties when
4516 unioning a NAN with something else.
4517 (range_tests_signed_zeros): Add tests.
4518
4519 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
4520
4521 * real.cc (encode_ieee_single): Use real_isdenormal.
4522 (encode_ieee_double): Same.
4523 (encode_ieee_extended): Same.
4524 (encode_ieee_quad): Same.
4525 (encode_ieee_half): Same.
4526 (encode_arm_bfloat_half): Same.
4527 * real.h (real_isdenormal): New.
4528
4529 2022-09-03 Aldy Hernandez <aldyh@redhat.com>
4530
4531 * value-range.cc (frange::singleton_p): Move NAN check to the top.
4532
4533 2022-09-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4534
4535 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): Reference macro arguments.
4536
4537 2022-09-03 Jakub Jelinek <jakub@redhat.com>
4538
4539 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DOACROSS.
4540 (enum omp_clause_depend_kind): Remove OMP_CLAUSE_DEPEND_SOURCE
4541 and OMP_CLAUSE_DEPEND_SINK, add OMP_CLAUSE_DEPEND_INVALID.
4542 (enum omp_clause_doacross_kind): New type.
4543 (struct tree_omp_clause): Add subcode.doacross_kind member.
4544 * tree.h (OMP_CLAUSE_DEPEND_SINK_NEGATIVE): Remove.
4545 (OMP_CLAUSE_DOACROSS_KIND): Define.
4546 (OMP_CLAUSE_DOACROSS_SINK_NEGATIVE): Define.
4547 (OMP_CLAUSE_DOACROSS_DEPEND): Define.
4548 (OMP_CLAUSE_ORDERED_DOACROSS): Define.
4549 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
4550 OMP_CLAUSE_DOACROSS entries.
4551 * tree-nested.cc (convert_nonlocal_omp_clauses,
4552 convert_local_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
4553 * tree-pretty-print.cc (dump_omp_clause): Don't handle
4554 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK. Handle
4555 OMP_CLAUSE_DOACROSS.
4556 * gimplify.cc (gimplify_omp_depend): Don't handle
4557 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.
4558 (gimplify_scan_omp_clauses): Likewise. Handle OMP_CLAUSE_DOACROSS.
4559 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
4560 (find_standalone_omp_ordered): New function.
4561 (gimplify_omp_for): When OMP_CLAUSE_ORDERED is present, search
4562 body for OMP_ORDERED with OMP_CLAUSE_DOACROSS and if found,
4563 set OMP_CLAUSE_ORDERED_DOACROSS.
4564 (gimplify_omp_ordered): Don't handle OMP_CLAUSE_DEPEND_SINK or
4565 OMP_CLAUSE_DEPEND_SOURCE, instead check OMP_CLAUSE_DOACROSS, adjust
4566 diagnostics that presence or absence of ordered clause parameter
4567 is irrelevant. Handle doacross(sink:omp_cur_iteration-1). Use
4568 actual user name of the clause - doacross or depend - in diagnostics.
4569 * omp-general.cc (omp_extract_for_data): Don't set fd->ordered
4570 if !OMP_CLAUSE_ORDERED_DOACROSS (t). If
4571 OMP_CLAUSE_ORDERED_DOACROSS (t) but !OMP_CLAUSE_ORDERED_EXPR (t),
4572 set fd->ordered to -1 and set it after the loop in that case to
4573 fd->collapse.
4574 * omp-low.cc (check_omp_nesting_restrictions): Don't handle
4575 OMP_CLAUSE_DEPEND_SOURCE nor OMP_CLAUSE_DEPEND_SINK, instead check
4576 OMP_CLAUSE_DOACROSS. Use actual user name of the clause - doacross
4577 or depend - in diagnostics. Diagnose mixing of stand-alone and
4578 block associated ordered constructs binding to the same loop.
4579 (lower_omp_ordered_clauses): Don't handle OMP_CLAUSE_DEPEND_SINK,
4580 instead handle OMP_CLAUSE_DOACROSS.
4581 (lower_omp_ordered): Look for OMP_CLAUSE_DOACROSS instead of
4582 OMP_CLAUSE_DEPEND.
4583 (lower_depend_clauses): Don't handle OMP_CLAUSE_DEPEND_SOURCE and
4584 OMP_CLAUSE_DEPEND_SINK.
4585 * omp-expand.cc (expand_omp_ordered_sink): Emit a sorry for
4586 doacross(sink:omp_cur_iteration-1).
4587 (expand_omp_ordered_source_sink): Use
4588 OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
4589 OMP_CLAUSE_DEPEND_SINK_NEGATIVE. Use actual user name of the clause
4590 - doacross or depend - in diagnostics.
4591 (expand_omp): Look for OMP_CLAUSE_DOACROSS clause instead of
4592 OMP_CLAUSE_DEPEND.
4593 (build_omp_regions_1): Likewise.
4594 (omp_make_gimple_edges): Likewise.
4595 * lto-streamer-out.cc (hash_tree): Handle OMP_CLAUSE_DOACROSS.
4596 * tree-streamer-in.cc (unpack_ts_omp_clause_value_fields): Likewise.
4597 * tree-streamer-out.cc (pack_ts_omp_clause_value_fields): Likewise.
4598
4599 2022-09-02 David Malcolm <dmalcolm@redhat.com>
4600
4601 PR c/90885
4602 * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow.
4603
4604 2022-09-02 Iain Buclaw <ibuclaw@gdcproject.org>
4605
4606 PR d/105659
4607 * config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h.
4608 * config/aarch64/aarch64-d.cc: Include tm_d.h.
4609 * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to
4610 config/aarch64/aarch64-d.h.
4611 (aarch64_d_register_target_info): Likewise.
4612 * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise.
4613 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
4614 * config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of
4615 tm_p.h.
4616 * config/arm/arm-protos.h (arm_d_target_versions): Move to
4617 config/arm/arm-d.h.
4618 (arm_d_register_target_info): Likewise.
4619 * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise.
4620 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
4621 * config/default-d.cc: Remove memmodel.h include.
4622 * config/freebsd-d.cc: Include tm_d.h instead of tm_p.h.
4623 * config/glibc-d.cc: Likewise.
4624 * config/i386/i386-d.cc: Include tm_d.h.
4625 * config/i386/i386-protos.h (ix86_d_target_versions): Move to
4626 config/i386/i386-d.h.
4627 (ix86_d_register_target_info): Likewise.
4628 (ix86_d_has_stdcall_convention): Likewise.
4629 * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise.
4630 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
4631 (TARGET_D_HAS_STDCALL_CONVENTION): Likewise.
4632 * config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h.
4633 * config/mips/mips-d.cc: Include tm_d.h.
4634 * config/mips/mips-protos.h (mips_d_target_versions): Move to
4635 config/mips/mips-d.h.
4636 (mips_d_register_target_info): Likewise.
4637 * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise.
4638 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
4639 * config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
4640 * config/openbsd-d.cc: Likewise.
4641 * config/pa/pa-d.cc: Include tm_d.h.
4642 * config/pa/pa-protos.h (pa_d_target_versions): Move to
4643 config/pa/pa-d.h.
4644 (pa_d_register_target_info): Likewise.
4645 * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise.
4646 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
4647 * config/riscv/riscv-d.cc: Include tm_d.h.
4648 * config/riscv/riscv-protos.h (riscv_d_target_versions): Move to
4649 config/riscv/riscv-d.h.
4650 (riscv_d_register_target_info): Likewise.
4651 * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise.
4652 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
4653 * config/rs6000/rs6000-d.cc: Include tm_d.h.
4654 * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to
4655 config/rs6000/rs6000-d.h.
4656 (rs6000_d_register_target_info): Likewise.
4657 * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.:
4658 (TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.:
4659 * config/s390/s390-d.cc: Include tm_d.h.
4660 * config/s390/s390-protos.h (s390_d_target_versions): Move to
4661 config/s390/s390-d.h.
4662 (s390_d_register_target_info): Likewise.
4663 * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise.
4664 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
4665 * config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
4666 * config/sparc/sparc-d.cc: Include tm_d.h.
4667 * config/sparc/sparc-protos.h (sparc_d_target_versions): Move to
4668 config/sparc/sparc-d.h.
4669 (sparc_d_register_target_info): Likewise.
4670 * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise.
4671 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
4672 * configure: Regenerate.
4673 * configure.ac (tm_d_file): Remove defaults.h.
4674 (tm_d_include_list): Remove options.h and insn-constants.h.
4675 * config/aarch64/aarch64-d.h: New file.
4676 * config/arm/arm-d.h: New file.
4677 * config/i386/i386-d.h: New file.
4678 * config/mips/mips-d.h: New file.
4679 * config/pa/pa-d.h: New file.
4680 * config/riscv/riscv-d.h: New file.
4681 * config/rs6000/rs6000-d.h: New file.
4682 * config/s390/s390-d.h: New file.
4683 * config/sparc/sparc-d.h: New file.
4684
4685 2022-09-02 Aldy Hernandez <aldyh@redhat.com>
4686
4687 * builtins.cc (fold_builtin_inf): Convert use of real_info to dconstinf.
4688 (fold_builtin_fpclassify): Same.
4689 * fold-const-call.cc (fold_const_call_cc): Same.
4690 * match.pd: Same.
4691 * omp-low.cc (omp_reduction_init_op): Same.
4692 * realmpfr.cc (real_from_mpfr): Same.
4693 * tree.cc (build_complex_inf): Same.
4694
4695 2022-09-02 Peter Bergner <bergner@linux.ibm.com>
4696
4697 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Use
4698 NOP_EXPR for MMA pointer casting.
4699
4700 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
4701
4702 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
4703 Reduce the fallback cost to 1. Only use it if the number of
4704 input lanes is equal to the number of output lanes.
4705
4706 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
4707
4708 PR tree-optimization/106787
4709 * tree-vect-slp.cc (vect_map_to_instance): New function, split out
4710 from...
4711 (vect_bb_partition_graph_r): ...here. Replace the visited set
4712 with a map from nodes to instances. Ensure that a node only
4713 appears in one partition.
4714 (vect_bb_partition_graph): Update accordingly.
4715
4716 2022-09-02 Richard Biener <rguenther@suse.de>
4717
4718 * timevar.def (TV_TREE_RPO_VN): New.
4719 * tree-ssa-sccvn.h (do_rpo_vn): Remove one overload.
4720 * tree-ssa-sccvn.cc (do_rpo_vn_1): Rename the worker.
4721 (do_rpo_vn): Unify the public API, track with TV_TREE_RPO_VN.
4722 (pass_fre::execute): Adjust.
4723 * tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust.
4724
4725 2022-09-02 Richard Biener <rguenther@suse.de>
4726
4727 PR tree-optimization/106809
4728 * tree-ssa-sccvn.cc (dominaged_by_p_w_unex): Check we have
4729 more than one successor before doing extra work.
4730
4731 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
4732
4733 * common/config/riscv/riscv-common.cc: Include <vector>.
4734 (struct riscv_multi_lib_info_t): New.
4735 (riscv_subset_list::match_score): Ditto.
4736 (find_last_appear_switch): Ditto.
4737 (prefixed_with): Ditto.
4738 (struct multi_lib_info_t): Ditto.
4739 (riscv_current_arch_str): Ditto.
4740 (riscv_current_abi_str): Ditto.
4741 (riscv_multi_lib_info_t::parse): Ditto.
4742 (riscv_check_cond): Ditto.
4743 (riscv_check_conds): Ditto.
4744 (riscv_compute_multilib): Ditto.
4745 (TARGET_COMPUTE_MULTILIB): Defined.
4746 * config/riscv/elf.h (LIB_SPEC): Call riscv_multi_lib_check if
4747 doing link.
4748 (RISCV_USE_CUSTOMISED_MULTI_LIB): New.
4749 * config/riscv/riscv.h (riscv_multi_lib_check): New.
4750 (EXTRA_SPEC_FUNCTIONS): Add riscv_multi_lib_check.
4751 * config/riscv/riscv-subset.h (riscv_subset_list::match_score): New.
4752
4753 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
4754
4755 * common/common-target.def (compute_multilib): New.
4756 * common/common-targhooks.h (default_compute_multilib): New.
4757 * common/common-targhooks.cc (default_compute_multilib): New.
4758 * doc/tm.texi.in (TARGET_COMPUTE_MULTILIB): New.
4759 * doc/tm.texi: Regen.
4760 * gcc.cc: Include common/common-target.h.
4761 (set_multilib_dir) Call targetm_common.compute_multilib.
4762 (SWITCH_LIVE): Move to opts.h.
4763 (SWITCH_FALSE): Ditto.
4764 (SWITCH_IGNORE): Ditto.
4765 (SWITCH_IGNORE_PERMANENTLY): Ditto.
4766 (SWITCH_KEEP_FOR_GCC): Ditto.
4767 (struct switchstr): Ditto.
4768 * opts.h (SWITCH_LIVE): Move from gcc.c.
4769 (SWITCH_FALSE): Ditto.
4770 (SWITCH_IGNORE): Ditto.
4771 (SWITCH_IGNORE_PERMANENTLY): Ditto.
4772 (SWITCH_KEEP_FOR_GCC): Ditto.
4773 (struct switchstr): Ditto.
4774
4775 2022-09-02 Martin Liska <mliska@suse.cz>
4776
4777 * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Disable
4778 debugging format.
4779
4780 2022-09-02 Martin Liska <mliska@suse.cz>
4781
4782 * Makefile.in: Remove -gstabs option support, DBX-related
4783 macros and DBX debugging info support.
4784 * collect2.cc (scan_prog_file): Likewise.
4785 * common.opt: Likewise.
4786 * config.gcc: Likewise.
4787 * config.in: Likewise.
4788 * config/aarch64/aarch64-elf.h (DBX_DEBUGGING_INFO): Likewise.
4789 * config/alpha/alpha.cc: Likewise.
4790 * config/alpha/elf.h (ASM_SPEC): Likewise.
4791 * config/arc/arc.h (DBX_DEBUGGING_INFO): Likewise.
4792 (DBX_CONTIN_LENGTH): Likewise.
4793 * config/arm/aout.h (DBX_DEBUGGING_INFO): Likewise.
4794 (DBX_CONTIN_LENGTH): Likewise.
4795 * config/arm/netbsd-elf.h (DBX_CONTIN_LENGTH): Likewise.
4796 * config/darwin.h (DSYMUTIL_SPEC): Likewise.
4797 (ASM_DEBUG_SPEC): Likewise.
4798 (DBX_DEBUGGING_INFO): Likewise.
4799 (DBX_USE_BINCL): Likewise.
4800 (DBX_CONTIN_LENGTH): Likewise.
4801 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
4802 * config/epiphany/epiphany.h (DBX_DEBUGGING_INFO): Likewise.
4803 (DBX_CONTIN_LENGTH): Likewise.
4804 * config/i386/bsd.h (DBX_NO_XREFS): Likewise.
4805 (DBX_CONTIN_LENGTH): Likewise.
4806 * config/i386/gas.h (DBX_NO_XREFS): Likewise.
4807 (DBX_CONTIN_LENGTH): Likewise.
4808 * config/ia64/ia64.h: Likewise.
4809 * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
4810 * config/m68k/linux.h (DBX_CONTIN_LENGTH): Likewise.
4811 * config/m68k/openbsd.h (DBX_DEBUGGING_INFO): Likewise.
4812 (DBX_CONTIN_LENGTH): Likewise.
4813 (DBX_CONTIN_CHAR): Likewise.
4814 * config/mips/mips.cc (mips_output_filename): Likewise.
4815 (mips_option_override): Likewise.
4816 * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Likewise.
4817 (DBX_DEBUGGING_INFO): Likewise.
4818 (DBX_CONTIN_LENGTH): Likewise.
4819 (DBX_REGISTER_NUMBER): Likewise.
4820 (GP_DBX_FIRST): Likewise.
4821 (FP_DBX_FIRST): Likewise.
4822 (MD_DBX_FIRST): Likewise.
4823 * config/nvptx/nvptx.cc: Likewise.
4824 * config/openbsd.h (DBX_NO_XREFS): Likewise.
4825 * config/pa/pa-64.h (DBX_DEBUGGING_INFO): Likewise.
4826 * config/pa/pa.h (ASSEMBLER_DIALECT): Likewise.
4827 (DBX_CONTIN_LENGTH): Likewise.
4828 * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Likewise.
4829 (DBX_USE_BINCL): Likewise.
4830 (DBX_LINES_FUNCTION_RELATIVE): Likewise.
4831 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
4832 * config/pdp11/pdp11.cc: Likewise.
4833 * config/pdp11/pdp11.h (DBX_DEBUGGING_INFO): Likewise.
4834 (PREFERRED_DEBUGGING_TYPE): Likewise.
4835 (DBX_CONTIN_LENGTH): Likewise.
4836 * config/rs6000/rs6000-builtin.cc: Likewise.
4837 * config/rs6000/rs6000-call.cc: Likewise.
4838 * config/rs6000/rs6000-logue.cc (defined): Likewise.
4839 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
4840 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
4841 (rs6000_xcoff_declare_function_name): Likewise.
4842 * config/rs6000/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
4843 (DBX_FUNCTION_FIRST): Likewise.
4844 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Likewise.
4845 * config/rx/rx.h (DBX_DEBUGGING_INFO): Likewise.
4846 * config/sh/elf.h (DBX_LINES_FUNCTION_RELATIVE): Likewise.
4847 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
4848 * config/sol2.h (NO_DBX_BNSYM_ENSYM): Likewise.
4849 * config/sparc/freebsd.h (DBX_CONTIN_CHAR): Likewise.
4850 * config/sparc/netbsd-elf.h (DBX_CONTIN_CHAR): Likewise.
4851 * config/sparc/sparc.h (DBX_CONTIN_LENGTH): Likewise.
4852 * config/vax/vax.cc (vax_file_start): Likewise.
4853 * config/vax/vax.h (DBX_DEBUGGING_INFO): Likewise.
4854 (DBX_CONTIN_LENGTH): Likewise.
4855 (DBX_CONTIN_CHAR): Likewise.
4856 (DBX_NO_XREFS): Likewise.
4857 (DBX_STATIC_STAB_DATA_SECTION): Likewise.
4858 * config/vx-common.h (DBX_DEBUGGING_INFO): Likewise.
4859 (XCOFF_DEBUGGING_INFO): Likewise.
4860 * configure: Regenerate. Likewise.
4861 * configure.ac: Likewise.
4862 * debug.h: Likewise.
4863 * doc/install.texi: Likewise.
4864 * doc/invoke.texi: Likewise.
4865 * doc/passes.texi: Likewise.
4866 * doc/tm.texi: Likewise.
4867 * doc/tm.texi.in: Likewise.
4868 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Likewise.
4869 (dw2_asm_output_nstring): Likewise.
4870 (USE_LINKONCE_INDIRECT): Likewise.
4871 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
4872 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
4873 (output_fde): Likewise.
4874 (output_call_frame_info): Likewise.
4875 (have_macinfo): Likewise.
4876 (add_AT_loc_list): Likewise.
4877 (add_AT_view_list): Likewise.
4878 (output_compilation_unit_header): Likewise.
4879 (output_pubnames): Likewise.
4880 (output_aranges): Likewise.
4881 (output_line_info): Likewise.
4882 (output_macinfo): Likewise.
4883 (dwarf2out_finish): Likewise.
4884 (dwarf2out_early_finish): Likewise.
4885 * final.cc (final_scan_insn_1): Likewise.
4886 (rest_of_handle_final): Likewise.
4887 * flag-types.h (enum debug_info_type): Likewise.
4888 (DBX_DEBUG): Likewise.
4889 (XCOFF_DEBUG): Likewise.
4890 * function.cc (defined): Likewise.
4891 * gcc.cc (defined): Likewise.
4892 (ASM_DEBUG_SPEC): Likewise.
4893 (ASM_DEBUG_OPTION_SPEC): Likewise.
4894 * opts.cc (common_handle_option): Likewise.
4895 (set_debug_level): Likewise.
4896 * system.h (fancy_abort): Likewise.
4897 * target-def.h (TARGET_ASM_CONSTRUCTOR): Likewise.
4898 (TARGET_ASM_DESTRUCTOR): Likewise.
4899 * toplev.cc (defined): Likewise.
4900 * varasm.cc: Likewise.
4901 * config/dbxcoff.h: Removed.
4902 * config/dbxelf.h: Removed.
4903 * dbxout.cc: Removed.
4904 * dbxout.h: Removed.
4905 * gstab.h: Removed.
4906 * stab.def: Removed.
4907 * xcoffout.cc: Removed.
4908 * xcoffout.h: Removed.
4909
4910 2022-09-02 Simon Rainer <gcc.gnu@vvalter.com>
4911
4912 PR ipa/106627
4913 * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher):
4914 Set TREE_NOTHROW correctly for dispatcher declaration.
4915 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
4916 Likewise.
4917
4918 2022-09-01 Tamar Christina <tamar.christina@arm.com>
4919
4920 PR other/106782
4921 * config/aarch64/aarch64.cc
4922 (aarch64_vector_costs::prefer_unrolled_loop): Replace %u with
4923 HOST_WIDE_INT_PRINT_UNSIGNED.
4924
4925 2022-09-01 Richard Sandiford <richard.sandiford@arm.com>
4926
4927 * tree-vect-slp.cc (vect_build_slp_tree_2): When building a
4928 VEC_PERM_EXPR of an existing vector, set the SLP_TREE_LANES
4929 to the number of vector elements, if that's a known constant.
4930 (vect_optimize_slp_pass::is_compatible_layout): Remove associated
4931 comment about zero SLP_TREE_LANES.
4932 (vect_optimize_slp_pass::start_choosing_layouts): Iterate over
4933 all partition members when looking for potential layouts.
4934 Handle existing permutes of fixed-length vectors.
4935
4936 2022-09-01 Uroš Bizjak <ubizjak@gmail.com>
4937
4938 PR target/106707
4939 * config/i386/i386.md (moves to/from AX_REG into xchg peephole2):
4940 Do not convert a move pattern where both operands are AX_REG.
4941
4942 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
4943
4944 * range-op-float.cc (build_le): Convert to dconst*inf.
4945 (build_ge): Same.
4946 * value-range.cc (frange::set_signbit): Same.
4947 (frange::normalize_kind): Same.
4948 (range_tests_floats): Same.
4949 * value-range.h (vrp_val_max): Same.
4950 (vrp_val_min): Same.
4951 (frange::set_varying): Same.
4952
4953 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
4954
4955 * emit-rtl.cc (init_emit_once): Initialize dconstinf and
4956 dconstninf.
4957 * real.h: Add dconstinf and dconstninf.
4958
4959 2022-09-01 Richard Biener <rguenther@suse.de>
4960
4961 * gimple-predicate-analysis.cc (compute_control_dep_chain):
4962 Remove cycle detection, instead avoid walking backedges.
4963
4964 2022-09-01 Richard Biener <rguenther@suse.de>
4965
4966 * gimple-predicate-analysis.cc (compute_control_dep_chain):
4967 New wrapping overload.
4968 (uninit_analysis::init_use_preds): Simplify.
4969 (uninit_analysis::init_from_phi_def): Likewise.
4970
4971 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
4972
4973 * gimple-range-fold.cc
4974 (fold_using_range::range_of_builtin_int_call): Add case for
4975 CFN_BUILT_IN_SIGNBIT.
4976
4977 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
4978
4979 * range-op-float.cc (foperator_equal::op1_range): Do not copy sign
4980 bit.
4981 (foperator_not_equal::op1_range): Same.
4982 * value-query.cc (range_query::get_tree_range): Set sign bit.
4983 * value-range-pretty-print.cc (vrange_printer::visit): Dump sign bit.
4984 * value-range.cc (frange::set_signbit): New.
4985 (frange::set): Adjust for sign bit.
4986 (frange::normalize_kind): Same.
4987 (frange::union_): Remove useless comment.
4988 (frange::intersect): Same.
4989 (frange::contains_p): Adjust for sign bit.
4990 (frange::singleton_p): Same.
4991 (frange::verify_range): Same.
4992 (range_tests_signbit): New tests.
4993 (range_tests_floats): Call range_tests_signbit.
4994 * value-range.h (class frange_props): Add signbit
4995 (class frange): Same.
4996
4997 2022-09-01 Jakub Jelinek <jakub@redhat.com>
4998
4999 PR other/106782
5000 * dumpfile.h (dump_printf_loc): Use ATTRIBUTE_GCC_DUMP_PRINTF (3, 4)
5001 instead of ATTRIBUTE_GCC_DUMP_PRINTF (3, 0).
5002 * tree-parloops.cc (parloops_is_slp_reduction): Cast pointers to
5003 derived types of gimple to gimple * to avoid -Wformat warnings.
5004 * tree-vect-loop-manip.cc (vect_set_loop_condition,
5005 vect_update_ivs_after_vectorizer): Likewise.
5006 * tree-vect-stmts.cc (vectorizable_load): Likewise.
5007 * tree-vect-patterns.cc (vect_split_statement,
5008 vect_recog_mulhs_pattern, vect_recog_average_pattern,
5009 vect_determine_precisions_from_range,
5010 vect_determine_precisions_from_users): Likewise.
5011 * gimple-loop-versioning.cc
5012 (loop_versioning::analyze_term_using_scevs): Likewise.
5013 * tree-vect-slp.cc (vect_build_slp_tree_1): Likewise.
5014 (vect_build_slp_tree): Cast slp_tree to void * to avoid
5015 -Wformat warnings.
5016 (optimize_load_redistribution_1, vect_match_slp_patterns,
5017 vect_build_slp_instance, vect_optimize_slp_pass::materialize,
5018 vect_optimize_slp_pass::dump, vect_slp_convert_to_external,
5019 vect_slp_analyze_node_operations, vect_bb_partition_graph): Likewise.
5020 (vect_print_slp_tree): Likewise. Also use
5021 HOST_WIDE_INT_PRINT_UNSIGNED instead of %u.
5022 * tree-vect-loop.cc (vect_determine_vectorization_factor,
5023 vect_analyze_scalar_cycles_1, vect_analyze_loop_operations,
5024 vectorizable_induction, vect_transform_loop): Cast pointers to derived
5025 types of gimple to gimple * to avoid -Wformat warnings.
5026 (vect_analyze_loop_2): Cast slp_tree to void * to avoid
5027 -Wformat warnings.
5028 (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED
5029 instead of %d.
5030 * tree-vect-slp-patterns.cc (vect_pattern_validate_optab): Use %G
5031 instead of %T and STMT_VINFO_STMT (SLP_TREE_REPRESENTATIVE (node))
5032 instead of SLP_TREE_DEF_TYPE (node).
5033
5034 2022-09-01 Jakub Jelinek <jakub@redhat.com>
5035
5036 PR c++/106655
5037 * doc/invoke.texi (-Winvalid-utf8): Document it.
5038
5039 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
5040
5041 PR tree-optimization/106785
5042 * value-range.cc (range_tests_nan): Adjust tests for !HONOR_NANS.
5043 (range_tests_floats): Same.
5044
5045 2022-09-01 konglin1 <lingling.kong@intel.com>
5046
5047 * tree-if-conv.cc (is_cond_scalar_reduction): Add MULT_EXPR
5048 recognition.
5049
5050 2022-09-01 Peter Bergner <bergner@linux.ibm.com>
5051
5052 PR target/101322
5053 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin):
5054 Enforce the use of a valid MMA pointer type.
5055
5056 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
5057
5058 * config/riscv/riscv.cc (riscv_conditional_register_usage): Add vector
5059 registers.
5060
5061 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
5062
5063 * config/riscv/riscv.cc (riscv_const_insns): Add cost of poly_int.
5064 (riscv_output_move): Add csrr vlenb assembly.
5065 * config/riscv/riscv.md (move_type): Add csrr vlenb type.
5066 (ext): New attribute.
5067 (ext_enabled): Ditto.
5068 (enabled): Ditto.
5069
5070 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
5071
5072 * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add
5073 "vr" constraint.
5074 (TARGET_VECTOR ? VD_REGS : NO_REGS): Add "vd" constraint.
5075 (TARGET_VECTOR ? VM_REGS : NO_REGS): Add "vm" constraint.
5076 (vp): Add poly constraint.
5077
5078 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
5079
5080 * config/riscv/riscv.h (enum reg_class): Change vype to vtype.
5081
5082 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
5083
5084 * config/riscv/riscv.cc (riscv_convert_vector_bits): Change
5085 configuration according to TARGET_MIN_VLEN.
5086 * config/riscv/riscv.h (UNITS_PER_FP_REG): Fix comment.
5087
5088 2022-08-31 Martin Liska <mliska@suse.cz>
5089
5090 * config.build: Remove deprecated ports.
5091 * config.gcc: Likewise.
5092 * config.host: Likewise.
5093 * configure.ac: Likewise.
5094 * configure: Regenerate.
5095 * config/pa/pa-hpux10.h: Removed.
5096 * config/pa/pa-hpux10.opt: Removed.
5097 * config/pa/t-dce-thr: Removed.
5098
5099 2022-08-31 Martin Liska <mliska@suse.cz>
5100
5101 * Makefile.in: Always install limits.h and syslimits.h to
5102 include folder.
5103 * configure.ac: Assign STMP_FIXINC blank if
5104 --disable-fixincludes is used.
5105 * configure: Regenerate.
5106
5107 2022-08-31 Richard Biener <rguenther@suse.de>
5108
5109 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
5110 Assert the guard_bb isn't empty and has more than one successor.
5111 Drop appropriate parts of the predicate when an edge fails to
5112 register a predicate.
5113 (predicate::dump): Dump empty predicate as TRUE.
5114
5115 2022-08-31 Richard Biener <rguenther@suse.de>
5116
5117 PR tree-optimization/90994
5118 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
5119 Ignore exceptional control flow and skip the edge for the purpose of
5120 predicate generation also for non-calls.
5121
5122 2022-08-31 Aldy Hernandez <aldyh@redhat.com>
5123
5124 * value-range-storage.cc (frange_storage_slot::set_frange): Save
5125 endpoints.
5126 (frange_storage_slot::get_frange): Restore endpoints.
5127 * value-range-storage.h (class frange_storage_slot): Add endpoint
5128 fields.
5129
5130 2022-08-31 Martin Liska <mliska@suse.cz>
5131
5132 PR tree-optimization/106789
5133 * range-op-float.cc (default_frelop_fold_range): Remove the
5134 function.
5135
5136 2022-08-31 Martin Liska <mliska@suse.cz>
5137
5138 * value-range.h: Add more override keywords.
5139
5140 2022-08-31 Martin Liska <mliska@suse.cz>
5141
5142 * value-range.h: Add override.
5143
5144 2022-08-31 Richard Biener <rguenther@suse.de>
5145
5146 PR tree-optimization/65244
5147 * gimple-predicate-analysis.h (predicate::init_from_control_deps):
5148 Add argument to specify whether the predicate is for the USE.
5149 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
5150 Also include predicates effective fallthru control edges when
5151 the predicate is for the USE.
5152
5153 2022-08-31 Richard Biener <rguenther@suse.de>
5154
5155 PR tree-optimization/73550
5156 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
5157 Sanitize debug dumping. Handle case labels with a CASE_HIGH.
5158 (predicate::dump): Adjust for better readability.
5159
5160 2022-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5161 Jakub Jelinek <jakub@redhat.com>
5162
5163 * omp-simd-clone.cc (simd_clone_adjust_return_type,
5164 simd_clone_adjust_argument_types): Use known_eq (veclen, 0U)
5165 instead of known_eq (veclen, 0) to avoid -Wsign-compare warnings.
5166
5167 2022-08-31 Richard Sandiford <richard.sandiford@arm.com>
5168
5169 * tree-vect-slp.cc (vect_optimize_slp_pass::dump): Remove bogus
5170 argument.
5171
5172 2022-08-31 zhongjuzhe <juzhe.zhong@rivai.ai>
5173
5174 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Simply
5175 initialize const_vf to 0.
5176
5177 2022-08-31 Martin Liska <mliska@suse.cz>
5178
5179 * config.gcc: Remove cr16.
5180
5181 2022-08-30 Martin Jambor <mjambor@suse.cz>
5182
5183 * vec.h (array_slice): Add constructors for non-const reference to
5184 heap vector and pointers to heap vectors.
5185
5186 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
5187
5188 * value-range.cc (early_nan_resolve): Change comment.
5189 (frange::union_): Handle union when one side is a NAN.
5190 (range_tests_nan): Add tests for NAN union.
5191
5192 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
5193
5194 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): New.
5195 (gcn_simd_clone_adjust): New.
5196 (gcn_simd_clone_usable): New.
5197 (TARGET_SIMD_CLONE_ADJUST): New.
5198 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New.
5199 (TARGET_SIMD_CLONE_USABLE): New.
5200
5201 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
5202
5203 * doc/tm.texi: Regenerate.
5204 * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero
5205 vecsize.
5206 (simd_clone_adjust_argument_types): Likewise.
5207 * target.def (compute_vecsize_and_simdlen): Document the new
5208 vecsize_int and vecsize_float semantics.
5209
5210 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5211
5212 * expmed.cc (store_bit_field_1): Fix byte offset calculation
5213 for undefined structures.
5214
5215 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5216
5217 * params.opt (-param=vect-max-layout-candidates=): New parameter.
5218 * doc/invoke.texi (vect-max-layout-candidates): Document it.
5219 * tree-vectorizer.h (auto_lane_permutation_t): New typedef.
5220 (auto_load_permutation_t): Likewise.
5221 * tree-vect-slp.cc (vect_slp_node_weight): New function.
5222 (slpg_layout_cost): New class.
5223 (slpg_vertex): Replace perm_in and perm_out with partition,
5224 out_degree, weight and out_weight.
5225 (slpg_partition_info, slpg_partition_layout_costs): New classes.
5226 (vect_optimize_slp_pass): Likewise, cannibalizing some part of
5227 the previous vect_optimize_slp.
5228 (vect_optimize_slp): Use it.
5229
5230 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5231
5232 * hash-traits.h (vec_hash_base): New class.
5233 (vec_free_hash_base): Likewise.
5234
5235 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5236
5237 * hash-traits.h (int_hash_base): New struct, split out from...
5238 (int_hash): ...this class, which now inherits from int_hash_base.
5239 * hash-map-traits.h (unbounded_hashmap_traits): Take a template
5240 parameter for the key that provides hash and equality functions.
5241 (unbounded_int_hashmap_traits): Turn into a type alias of
5242 unbounded_hashmap_traits.
5243
5244 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5245
5246 * graphds.cc (graphds_scc): Add a pass-back parameter for the
5247 final node order.
5248 * graphds.h (graphds_scc): Update prototype accordingly.
5249
5250 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5251
5252 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Split out from...
5253 (vect_transform_slp_perm_load): ...here. Use SLP_TREE_VECTYPE instead
5254 of STMT_VINFO_VECTYPE.
5255
5256 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5257
5258 * tree-vect-slp.cc (vectorizable_slp_permutation_1): Split out from...
5259 (vectorizable_slp_permutation): ...here.
5260
5261 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5262
5263 * tree-vect-stmts.cc (get_related_vectype_for_scalar_type): Check
5264 that the requested number of units is interoperable with the requested
5265 prevailing mode.
5266
5267 2022-08-30 Martin Liska <mliska@suse.cz>
5268
5269 * config.gcc: Remove the port.
5270 * config/m32c/rtems.h: Removed.
5271
5272 2022-08-30 Richard Biener <rguenther@suse.de>
5273
5274 PR tree-optimization/73550
5275 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
5276 Do not apply MAX_NUM_CHAINS again.
5277
5278 2022-08-30 Richard Biener <rguenther@suse.de>
5279
5280 * gimple-predicate-analysis.cc (format_edge_vec): Dump
5281 both source and destination.
5282 (dump_dep_chains): Remove.
5283 (uninit_analysis::init_use_preds): Remove redundant
5284 dumping of chains.
5285
5286 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
5287
5288 * value-range-storage.cc (frange_storage_slot::get_frange): Use
5289 frange_nan.
5290 * value-range.cc (frange::set_nan): New.
5291 (frange_nan): Move to header file.
5292 (range_tests_nan): Adjust frange_nan callers to pass type.
5293 New test.
5294 * value-range.h (FRANGE_PROP_ACCESSOR): Remove.
5295 (frange_nan): New.
5296
5297 2022-08-30 Richard Biener <rguenther@suse.de>
5298
5299 PR tree-optimization/67196
5300 * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
5301 Simplify and normalize use prediates before first use.
5302
5303 2022-08-30 Richard Biener <rguenther@suse.de>
5304
5305 * gimple-predicate-analysis.cc (dump_pred_chain): Fix
5306 parentizing and AND prepending.
5307 (predicate::dump): Do not dump the GENERIC expanded
5308 predicate, properly parentize and prepend ORs to the
5309 piecewise predicate dump.
5310 (build_pred_expr): Remove.
5311
5312 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
5313
5314 * range-op-float.cc (finite_operand_p): New.
5315 (build_le): New.
5316 (build_lt): New.
5317 (build_ge): New.
5318 (build_gt): New.
5319 (foperator_equal::fold_range): New implementation with endpoints.
5320 (foperator_equal::op1_range): Same.
5321 (foperator_not_equal::fold_range): Same.
5322 (foperator_not_equal::op1_range): Same.
5323 (foperator_lt::fold_range): Same.
5324 (foperator_lt::op1_range): Same.
5325 (foperator_lt::op2_range): Same.
5326 (foperator_le::fold_range): Same.
5327 (foperator_le::op1_range): Same.
5328 (foperator_le::op2_range): Same.
5329 (foperator_gt::fold_range): Same.
5330 (foperator_gt::op1_range): Same.
5331 (foperator_gt::op2_range): Same.
5332 (foperator_ge::fold_range): Same.
5333 (foperator_ge::op1_range): Same.
5334 (foperator_ge::op2_range): Same.
5335
5336 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
5337
5338 * range-op-float.cc (frange_set_nan): New.
5339 (frange_drop_inf): New.
5340 (frange_drop_ninf): New.
5341 (foperator_equal::op1_range): Adjust for endpoints.
5342 (foperator_lt::op1_range): Same.
5343 (foperator_lt::op2_range): Same.
5344 (foperator_gt::op1_range): Same.
5345 (foperator_gt::op2_range): Same.
5346 (foperator_unordered::op1_range): Same.
5347 * value-query.cc (range_query::get_tree_range): Same.
5348 * value-range-pretty-print.cc (vrange_printer::visit): Same.
5349 * value-range-storage.cc (frange_storage_slot::get_frange): Same.
5350 * value-range.cc (frange::set): Same.
5351 (frange::normalize_kind): Same.
5352 (frange::union_): Same.
5353 (frange::intersect): Same.
5354 (frange::operator=): Same.
5355 (early_nan_resolve): New.
5356 (frange::contains_p): New.
5357 (frange::singleton_p): New.
5358 (frange::set_nonzero): New.
5359 (frange::nonzero_p): New.
5360 (frange::set_zero): New.
5361 (frange::zero_p): New.
5362 (frange::set_nonnegative): New.
5363 (frange_float): New.
5364 (frange_nan): New.
5365 (range_tests_nan): New.
5366 (range_tests_signed_zeros): New.
5367 (range_tests_floats): New.
5368 (range_tests): New.
5369 * value-range.h (frange::lower_bound): New.
5370 (frange::upper_bound): New.
5371 (vrp_val_min): Use real_inf with a sign instead of negating inf.
5372 (frange::frange): New.
5373 (frange::set_varying): Adjust for endpoints.
5374 (real_max_representable): New.
5375 (real_min_representable): New.
5376
5377 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
5378
5379 * match.pd ((cmp @0 zerop) real_zerop (negate@1 @0)): Add variant
5380 for real zero.
5381
5382 2022-08-30 Martin Liska <mliska@suse.cz>
5383
5384 * config/s390/s390.cc (s390_rtx_costs): Use proper type as
5385 argument.
5386
5387 2022-08-30 Richard Biener <rguenther@suse.de>
5388
5389 * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
5390 the set of fallthru reachable blocks from function entry
5391 and use that to determine wlims.always_executed.
5392
5393 2022-08-30 Richard Biener <rguenther@suse.de>
5394
5395 PR tree-optimization/56654
5396 * tree-ssa-uninit.cc (cand_cmp): New.
5397 (find_uninit_use): First process all PHIs and collect candidate
5398 stmts, then sort those after RPO.
5399 (warn_uninitialized_phi): Pass on bb_to_rpo.
5400 (execute_late_warn_uninitialized): Compute and pass on
5401 reverse lookup of RPO number from basic block index.
5402
5403 2022-08-30 Richard Biener <rguenther@suse.de>
5404
5405 * gimple-predicate-analysis.h (uninit_analysis::operator()):
5406 Remove.
5407 * gimple-predicate-analysis.cc
5408 (uninit_analysis::collect_phi_def_edges): Use phi_arg_set,
5409 simplify a bit.
5410 * tree-ssa-uninit.cc (defined_args): New global.
5411 (compute_uninit_opnds_pos): Mask with the recorded set
5412 of guarded maybe-uninitialized uses.
5413 (uninit_undef_val_t::operator()): Remove.
5414 (find_uninit_use): Process all PHI uses, recording the
5415 guarded ones and marking the PHI result as uninitialized
5416 consistently.
5417 (warn_uninitialized_phi): Adjust.
5418 (execute_late_warn_uninitialized): Get rid of the PHI worklist
5419 and instead walk the function in RPO order.
5420 * spellcheck.h (best_match::m_best_candidate_len): Initialize.
5421
5422 2022-08-30 Tamar Christina <tamar.christina@arm.com>
5423
5424 PR tree-optimization/106744
5425 * tree-ssa-phiopt.cc (minmax_replacement): Correct arguments.
5426
5427 2022-08-30 Tamar Christina <tamar.christina@arm.com>
5428
5429 * expmed.cc (store_bit_field_1): Initialize regnum to 0.
5430
5431 2022-08-29 David Faust <david.faust@oracle.com>
5432
5433 PR target/106745
5434 * config/bpf/coreout.cc (bpf_core_get_sou_member_index): Fix
5435 computation of index for anonymous members.
5436
5437 2022-08-29 Jose E. Marchesi <jose.marchesi@oracle.com>
5438
5439 * config/bpf/bpf.cc (bpf_target_macros): Define __bpf__ as a
5440 target macro.
5441
5442 2022-08-29 H.J. Lu <hjl.tools@gmail.com>
5443
5444 PR target/106748
5445 * config/i386/i386-expand.cc
5446 (ix86_avx256_split_vector_move_misalign): Handle E_V16BFmode.
5447 * config/i386/sse.md (V_256H): Add V16BF.
5448
5449 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
5450
5451 * config/s390/s390.cc (s390_address_cost): Declare.
5452 (s390_hard_regno_nregs): Declare.
5453 (s390_rtx_costs): Add handling for REG and MEM in SET.
5454
5455 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
5456
5457 * config/s390/s390.cc (expand_perm_with_vpdi): Recognize swap pattern.
5458 (is_reverse_perm_mask): New function.
5459 (expand_perm_with_rot): Recognize reverse pattern.
5460 (expand_perm_with_vstbrq): New function.
5461 (expand_perm_with_vster): Use vler/vster for element reversal on z15.
5462 (vectorize_vec_perm_const_1): Use.
5463 (s390_vectorize_vec_perm_const): Add expand functions.
5464 * config/s390/vx-builtins.md: Prefer vster over vler.
5465
5466 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
5467
5468 * config/s390/s390.md: Remove UNSPEC_VEC_EXTRACT.
5469 * config/s390/vector.md: Rewrite patterns to use vec_select.
5470 * config/s390/vx-builtins.md (vec_scatter_element<V_HW_2:mode>_SI):
5471 Likewise.
5472
5473 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
5474
5475 PR target/100869
5476 * config/s390/vector.md (@vpdi4_2<mode>): New pattern.
5477 (rotl<mode>3_di): New pattern.
5478 * config/s390/vx-builtins.md: Use vpdi and verll for reversing
5479 elements.
5480
5481 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
5482
5483 * config/s390/s390.cc (s390_issue_rate): Add z15.
5484
5485 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
5486
5487 * common/config/s390/s390-common.cc: Enable -funroll-loops and
5488 -munroll-only-small-loops for OPT_LEVELS_2_PLUS_SPEED_ONLY.
5489 * config/s390/s390.cc (s390_loop_unroll_adjust): Do not unroll
5490 loops larger than 12 instructions.
5491 (s390_override_options_after_change): Set unroll options.
5492 (s390_option_override_internal): Likewise.
5493 * config/s390/s390.opt: Document munroll-only-small-loops.
5494
5495 2022-08-29 Richard Biener <rguenther@suse.de>
5496
5497 * gimple-predicate-analysis.cc (is_loop_exit,
5498 find_control_equiv_block): Inline into single caller ...
5499 (uninit_analysis::init_use_preds): ... here and refactor.
5500
5501 2022-08-29 Richard Biener <rguenther@suse.de>
5502
5503 * gimple-predicate-analysis.cc (compute_control_dep_chain):
5504 Inline is_loop_exit and refactor, add comment about
5505 loop exits.
5506
5507 2022-08-29 Kito Cheng <kito.cheng@sifive.com>
5508
5509 * config/riscv/riscv.cc (riscv_frame_info): Introduce `reset(void)`;
5510 (riscv_frame_info::reset(void)): New.
5511 (riscv_compute_frame_info): Use riscv_frame_info::reset instead
5512 of memset when clean frame.
5513
5514 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
5515
5516 * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): New function.
5517 (riscv_classify_address): Disallow PLUS/LO_SUM/CONST_INT address types for RVV.
5518 (riscv_address_insns): Add RVV modes condition.
5519 (riscv_binary_cost): Ditto.
5520 (riscv_rtx_costs): Adjust cost for RVV.
5521 (riscv_secondary_memory_needed): Add RVV modes condition.
5522 (riscv_hard_regno_nregs): Add RVV register allocation.
5523 (riscv_hard_regno_mode_ok): Add RVV register allocation.
5524 (riscv_class_max_nregs): Add RVV register allocation.
5525 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Add VL/VTYPE and vector registers in Dwarf.
5526 (UNITS_PER_V_REG): New macro.
5527 (FIRST_PSEUDO_REGISTER): Adjust first pseudo num for RVV.
5528 (V_REG_FIRST): New macro.
5529 (V_REG_LAST): Ditto.
5530 (V_REG_NUM): Ditto.
5531 (V_REG_P): Ditto.
5532 (VL_REG_P): Ditto.
5533 (VTYPE_REG_P): Ditto.
5534 (RISCV_DWARF_VL): Ditto.
5535 (RISCV_DWARF_VTYPE): Ditto.
5536 (enum reg_class): Add RVV register types.
5537 (REG_CLASS_CONTENTS): Add RVV register types.
5538 * config/riscv/riscv.md: Add VL/VTYPE register number constants.
5539
5540 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
5541
5542 * config/riscv/riscv.md: Add new type for vector instructions.
5543
5544 2022-08-28 Peter Bergner <bergner@linux.ibm.com>
5545
5546 PR target/106017
5547 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Remove handling
5548 of MMA pointer conversions.
5549
5550 2022-08-27 Xi Ruoyao <xry111@xry111.site>
5551
5552 * config/i386/gcc-auto-profile: Regenerate.
5553
5554 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
5555
5556 * real.cc (real_iszero): New.
5557 * real.h (real_iszero): New.
5558
5559 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
5560
5561 * real.cc (real_isinf): New overload.
5562 (real_inf): Add sign argument.
5563 * real.h (real_isinf): New overload.
5564 (real_inf): Add sign argument.
5565
5566 2022-08-26 Marek Polacek <polacek@redhat.com>
5567
5568 PR c++/81159
5569 * doc/invoke.texi: Document -Wself-move.
5570
5571 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
5572
5573 * value-range.cc (vrange::set): Set varying.
5574 (vrange::set_nonzero): Same.
5575 (vrange::set_zero): Same.
5576 (vrange::set_nonnegative): Same.
5577
5578 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
5579
5580 * range-op-float.cc (foperator_equal::op1_range): Do not blindly
5581 copy op2 range when honoring signed zeros.
5582
5583 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
5584
5585 * tree-ssa-threadbackward.cc (possibly_profitable_path_p): Always
5586 add newline.
5587 (profitable_path_p): Same.
5588
5589 2022-08-26 Richard Biener <rguenther@suse.de>
5590
5591 * gimple-predicate-analysis.h
5592 (uninit_analysis::use_cannot_happen): Remove.
5593 * gimple-predicate-analysis.cc (can_be_invalidated_p): Remove.
5594 (uninit_analysis::use_cannot_happen): Likewise.
5595 (uninit_analysis::is_use_guarded): Do not call
5596 use_cannot_happen.
5597 (dump_predicates): Remove.
5598 (simple_control_dep_chain): Remove edge overload.
5599
5600 2022-08-26 Tobias Burnus <tobias@codesourcery.com>
5601
5602 * internal-fn.cc (expand_GOMP_TARGET_REV): New.
5603 * internal-fn.def (GOMP_TARGET_REV): New.
5604 * lto-cgraph.cc (lto_output_node, verify_node_partition): Mark
5605 'omp target device_ancestor_host' as in_other_partition and don't
5606 error if absent.
5607 * omp-low.cc (create_omp_child_function): Mark as 'noclone'.
5608 * omp-expand.cc (expand_omp_target): For reverse offload, remove
5609 sorry, use device = GOMP_DEVICE_HOST_FALLBACK and create
5610 empty-body nohost function.
5611 * omp-offload.cc (execute_omp_device_lower): Handle
5612 IFN_GOMP_TARGET_REV.
5613 (pass_omp_target_link::execute): For ACCEL_COMPILER, don't
5614 nullify fn argument for reverse offload
5615
5616 2022-08-26 Jakub Jelinek <jakub@redhat.com>
5617
5618 * builtins.def (BUILT_IN_ISSIGNALING): New built-in.
5619 * builtins.cc (expand_builtin_issignaling): New function.
5620 (expand_builtin_signbit): Don't overwrite target.
5621 (expand_builtin): Handle BUILT_IN_ISSIGNALING.
5622 (fold_builtin_classify): Likewise.
5623 (fold_builtin_1): Likewise.
5624 * optabs.def (issignaling_optab): New.
5625 * fold-const-call.cc (fold_const_call_ss): Handle
5626 BUILT_IN_ISSIGNALING.
5627 * config/i386/i386.md (issignalingxf2): New expander.
5628 * doc/extend.texi (__builtin_issignaling): Document.
5629 (__builtin_isinf, __builtin_isnan): Clarify behavior with
5630 -ffinite-math-only.
5631 * doc/md.texi (issignaling<mode>2): Likewise.
5632
5633 2022-08-26 Jakub Jelinek <jakub@redhat.com>
5634
5635 PR tree-optimization/106099
5636 * internal-fn.def (TRAP): Add ECF_LOOPING_CONST_OR_PURE flag.
5637 * tree-cfg.cc (execute_fixup_cfg): Add IFN_TRAP instead of
5638 __builtin_trap to avoid the need of vops.
5639
5640 2022-08-26 Richard Biener <rguenther@suse.de>
5641
5642 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
5643 New helper.
5644 (compute_control_dep_chain): Adjust to honor marked region
5645 if provided.
5646 (uninit_analysis::init_from_phi_def): Pre-mark the dominating
5647 region to improve compute_control_dep_chain walking.
5648 * vec.h (vec<T, va_heap, vl_ptr>::allocated): Add forwarder.
5649
5650 2022-08-26 Richard Biener <rguenther@suse.de>
5651
5652 * gimple-predicate-analysis.cc
5653 (uninit_analysis::collect_phi_def_edges): Only expand a
5654 PHI def edge when it is possibly undefined.
5655
5656 2022-08-26 Martin Liska <mliska@suse.cz>
5657
5658 * doc/extend.texi: Remove cr16 related stuff.
5659 * doc/install.texi: Likewise.
5660 * doc/invoke.texi: Likewise.
5661 * doc/md.texi: Likewise.
5662 * function-tests.cc (test_expansion_to_rtl): Likewise.
5663 * common/config/cr16/cr16-common.cc: Removed.
5664 * config/cr16/constraints.md: Removed.
5665 * config/cr16/cr16-protos.h: Removed.
5666 * config/cr16/cr16.cc: Removed.
5667 * config/cr16/cr16.h: Removed.
5668 * config/cr16/cr16.md: Removed.
5669 * config/cr16/cr16.opt: Removed.
5670 * config/cr16/predicates.md: Removed.
5671 * config/cr16/t-cr16: Removed.
5672
5673 2022-08-26 liuhongt <hongtao.liu@intel.com>
5674
5675 PR target/106704
5676 * config/i386/i386-builtin.def (BDESC): Add
5677 CODE_FOR_avx_blendvpd256/CODE_FOR_avx_blendvps256 to
5678 corresponding builtins.
5679 * config/i386/i386.cc (ix86_gimple_fold_builtin):
5680 Don't fold IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_BLENDVPS256,
5681 IX86_BUILTIN_BLENDVPD256 w/o TARGET_AVX2.
5682
5683 2022-08-25 Marek Polacek <polacek@redhat.com>
5684
5685 * ginclude/stddef.h: Define nullptr_t.
5686
5687 2022-08-25 Joseph Myers <joseph@codesourcery.com>
5688
5689 * gimplify.cc (gimplify_modify_expr): Convert initialization from
5690 a variable-size CONSTRUCTOR to memset before call to
5691 gimplify_modify_expr_rhs.
5692
5693 2022-08-25 Jason Merrill <jason@redhat.com>
5694
5695 * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t.
5696
5697 2022-08-25 Andreas Krebbel <krebbel@linux.ibm.com>
5698
5699 PR target/106101
5700 * config/s390/predicates.md (subreg_register_operand): New
5701 predicate.
5702 * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New
5703 function prototype.
5704 * config/s390/s390.cc (s390_gen_lowpart_subreg): New function.
5705 (s390_expand_insv): Use s390_gen_lowpart_subreg instead of
5706 gen_lowpart.
5707 * config/s390/s390.md ("*get_tp_64", "*zero_extendhisi2_31")
5708 ("*zero_extendqisi2_31", "*zero_extendqihi2_31"): Likewise.
5709 ("movstrictqi", "movstricthi", "movstrictsi"): Use the
5710 subreg_register_operand predicate instead of register_operand.
5711
5712 2022-08-25 Xi Ruoyao <xry111@xry111.site>
5713
5714 * config/loongarch/loongarch-protos.h (loongarch_symbol_type):
5715 Add SYMBOL_PCREL64 and change the description for SYMBOL_PCREL.
5716 * config/loongarch/loongarch.cc (loongarch_attribute_table):
5717 New attribute table.
5718 (TARGET_ATTRIBUTE_TABLE): Define the target hook.
5719 (loongarch_handle_model_attribute): New static function.
5720 (loongarch_classify_symbol): Take TARGET_CMODEL_EXTREME and the
5721 model attribute of SYMBOL_REF_DECL into account returning
5722 SYMBOL_PCREL or SYMBOL_PCREL64.
5723 (loongarch_use_anchors_for_symbol_p): New static function.
5724 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define the target hook.
5725 (loongarch_symbol_extreme_p): New static function.
5726 (loongarch_symbolic_constant_p): Handle SYMBOL_PCREL64.
5727 (loongarch_symbol_insns): Likewise.
5728 (loongarch_split_symbol_type): Likewise.
5729 (loongarch_split_symbol): Check SYMBOL_PCREL64 instead of
5730 TARGET_CMODEL_EXTREME for PC-relative addressing.
5731 (loongarch_print_operand_reloc): Likewise.
5732 * doc/extend.texi (Variable Attributes): Document new
5733 LoongArch specific attribute.
5734
5735 2022-08-25 Xi Ruoyao <xry111@xry111.site>
5736
5737 * config/loongarch/loongarch.cc (loongarch_classify_symbol):
5738 Return early if the rtx is not SYMBOL_REF.
5739
5740 2022-08-25 Richard Biener <rguenther@suse.de>
5741
5742 PR tree-optimization/106737
5743 * tree-parloops.cc (transform_to_exit_first_loop_alt): Do not
5744 verify SSA form.
5745
5746 2022-08-25 Chenghua Xu <xuchenghua@loongson.cn>
5747
5748 PR target/106459
5749 * config/loongarch/loongarch.cc (loongarch_build_integer):
5750 Use HOST_WIDE_INT.
5751 * config/loongarch/loongarch.h (IMM_REACH): Likewise.
5752 (HWIT_1U): New Defined.
5753 (LU12I_OPERAND): Use HOST_WIDE_INT.
5754 (LU32I_OPERAND): Likewise.
5755 (LU52I_OPERAND): Likewise.
5756 (HWIT_UC_0xFFF): Likwise.
5757
5758 2022-08-24 Andrew Pinski <apinski@marvell.com>
5759
5760 PR target/106632
5761 PR target/106588
5762 * config/riscv/bitmanip.md (*shNadduw): Use n constraint
5763 instead of i.
5764 (*slliuw): Likewise.
5765 (*bexti): Likewise. Also add a check for operands[2] to be less
5766 than the mode bitsize.
5767
5768 2022-08-24 Andrew Pinski <apinski@marvell.com>
5769
5770 * config/riscv/constraints.md (DbS): New constraint.
5771 (DnS): New constraint.
5772 * config/riscv/bitmanip.md (*bset<mode>_1_mask): Use new constraint.
5773 (*bclr<mode>): Likewise.
5774 (*binvi<mode>): Likewise.
5775
5776 2022-08-24 Andrew Pinski <apinski@marvell.com>
5777
5778 PR target/106586
5779 * config/riscv/predicates.md (single_bit_mask_operand):
5780 Use SINGLE_BIT_MASK_OPERAND instead of directly calling pow2p_hwi.
5781 (not_single_bit_mask_operand): Likewise.
5782 * config/riscv/riscv.cc (riscv_build_integer_1): Don't special case
5783 1<<31 for 32bits as it is already handled.
5784 Call trunc_int_for_mode on the upper part after the subtraction.
5785 (riscv_move_integer): Call trunc_int_for_mode before generating
5786 the integer just make sure the constant has been sign extended
5787 corectly.
5788 (riscv_emit_int_compare): Call trunc_int_for_mode after doing the
5789 addition for the new rhs.
5790 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): If !TARGET64BIT,
5791 then mask off the upper 32bits of the HWI as it will be sign extended.
5792
5793 2022-08-24 Andrew Pinski <apinski@marvell.com>
5794
5795 * config/riscv/constraints.md (DsS): New constraint.
5796 (DsD): New constraint.
5797 * config/riscv/iterators.md (shiftm1c): New iterator.
5798 * config/riscv/bitmanip.md (*bset<mode>_mask):
5799 Use shiftm1c.
5800 (*bset<mode>_1_mask): Likewise.
5801
5802 2022-08-24 Andrew Pinski <apinski@marvell.com>
5803
5804 * config/riscv/constraints.md (Ds3): New constraint.
5805 * config/riscv/predicates.md (imm123_operand): New predicate.
5806 * config/riscv/bitmanip.md (*shNadd): Use Ds3 and imm123_operand.
5807 (*shNadduw): Likewise.
5808
5809 2022-08-24 Andrew Pinski <apinski@marvell.com>
5810
5811 * config/riscv/riscv.cc (riscv_print_operand):
5812 Handle '~'.
5813 (riscv_print_operand_punct_valid_p): New function
5814 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
5815 * config/riscv/bitmanip.md (<bitmanip_optab>si2/clz_ctz_pcnt):
5816 Use %~ instead of conditional the pattern on TARGET_64BIT.
5817 (rotrsi3): Likewise.
5818 (rotlsi3): Likewise.
5819 * config/riscv/riscv.md: Add ~ to the list of modifiers.
5820 (addsi3): Use %~ instead of conditional the pattern on TARGET_64BIT.
5821 (subsi3): Likewise.
5822 (negsi2): Likewise.
5823 (mulsi3): Likewise.
5824 (optab>si3/any_div): Likewise.
5825 (*add<mode>hi3): Likewise.
5826 (<optab>si3/any_shift): Likewise.
5827
5828 2022-08-24 Andrew Pinski <apinski@marvell.com>
5829
5830 * config/riscv/riscv.cc (riscv_print_operand): Make a mention to
5831 keep the list in riscv.md in sync with this list.
5832 * config/riscv/riscv.md: Add list of modifiers as comments.
5833
5834 2022-08-24 Andrew Pinski <apinski@marvell.com>
5835
5836 * config/riscv/sync.md (any_atomic, atomic_optab): Move to ...
5837 * config/riscv/iterators.md: Here.
5838
5839 2022-08-24 Andrew Pinski <apinski@marvell.com>
5840
5841 * config/riscv/bitmanip.md
5842 (bitmanip_bitwise, bitmanip_minmax, clz_ctz_pcna,
5843 tbitmanip_optab, bitmanip_insn, shiftm1): Move to ...
5844 * config/riscv/iterators.md: Here.
5845
5846 2022-08-24 Andrew Pinski <apinski@marvell.com>
5847
5848 * config/riscv/riscv.md (GPR): Move to new file.
5849 (P, X, BR): Likewise.
5850 (MOVE32, MOVE64, SHORT): Likewise.
5851 (HISI, SUPERQI, SUBX): Likewise.
5852 (ANYI, ANYF, SOFTF): Likewise.
5853 (size, load, default_load): Likewise.
5854 (softload, store, softstore): Likewise.
5855 (reg, fmt, ifmt, amo): Likewise.
5856 (UNITMODE, HALFMODE): Likewise.
5857 (RINT, rint_pattern, rint_rm): Likewise.
5858 (QUIET_COMPARISON, quiet_pattern, QUIET_PATTERN): Likewise.
5859 (any_extend, any_shiftrt, any_shift): Likewise.
5860 (any_bitwise): Likewise.
5861 (any_div, any_mod): Likewise.
5862 (any_gt, any_ge, any_lt, any_le): Likewise.
5863 (u, su): Likewise.
5864 (optab, insn): Likewise.
5865 * config/riscv/iterators.md: New file.
5866
5867 2022-08-24 Andrew Pinski <apinski@marvell.com>
5868
5869 PR target/106601
5870 * config/riscv/bitmanip.md (bswaphi2): New pattern.
5871
5872 2022-08-24 Andrew Pinski <apinski@marvell.com>
5873
5874 PR target/106600
5875 * config/riscv/bitmanip.md (bswap<mode>2): Remove
5876 condition on TARGET_64BIT as X is already conditional there.
5877
5878 2022-08-24 Joseph Myers <joseph@codesourcery.com>
5879
5880 * tree.cc (build_real): Give DFP dconst0 the minimum quantum
5881 exponent for the type.
5882
5883 2022-08-24 Jose E. Marchesi <jose.marchesi@oracle.com>
5884
5885 PR target/106733
5886 * config/bpf/bpf.cc (bpf_legitimate_address_p): Recognize integer
5887 constants as legitimate addresses for functions.
5888 (bpf_small_register_classes_for_mode_p): Define target hook.
5889
5890 2022-08-24 Richard Biener <rguenther@suse.de>
5891
5892 * gimple-predicate-analysis.cc: Move predicate normalization
5893 after the comment documenting it.
5894
5895 2022-08-24 Richard Biener <rguenther@suse.de>
5896
5897 * gimple-predicate-analysis.h (predicate): Split out
5898 non-predicate related functionality into ..
5899 (uninit_analysis): .. this new class.
5900 * gimple-predicate-analysis.cc: Refactor into two classes.
5901 * tree-ssa-uninit.cc (find_uninit_use): Use uninit_analysis.
5902
5903 2022-08-24 Richard Biener <rguenther@suse.de>
5904
5905 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
5906 Do simple_control_dep_chain only up to cd_root, add the PHI
5907 operand edge to the chains like init_from_phi_def does.
5908 (predicate::is_use_guarded): Speedup early out, avoid half-way
5909 initializing the PHI def predicate.
5910
5911 2022-08-24 Jakub Jelinek <jakub@redhat.com>
5912
5913 PR target/106721
5914 * config/i386/sse.md (shuffletype): Add V32BF, V16BF and V8BF entries.
5915 Change V32HF, V16HF and V8HF entries from "f" to "i".
5916 (iptr): Add V32BF, V16BF, V8BF and BF entries.
5917 (i128vldq): Add V16HF and V16BF entries.
5918 (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo,
5919 mask_opernad3 -> mask_operand3.
5920
5921 2022-08-24 Martin Liska <mliska@suse.cz>
5922 Jørgen Kvalsvik <j@lambda.is>
5923
5924 * gcov.cc (add_line_counts): Add group functions to coverage
5925 summary.
5926 (accumulate_line_counts): Similarly for files.
5927
5928 2022-08-24 Lulu Cheng <chenglulu@loongson.cn>
5929
5930 * config/loongarch/genopts/loongarch-strings: Support code model medium.
5931 * config/loongarch/genopts/loongarch.opt.in: Likewise.
5932 * config/loongarch/loongarch-def.c: Likewise.
5933 * config/loongarch/loongarch-def.h (CMODEL_LARGE): Likewise.
5934 (CMODEL_EXTREME): Likewise.
5935 (N_CMODEL_TYPES): Likewise.
5936 (CMODEL_MEDIUM): Likewise.
5937 * config/loongarch/loongarch-opts.cc: Likewise.
5938 * config/loongarch/loongarch-opts.h (TARGET_CMODEL_MEDIUM): Likewise.
5939 * config/loongarch/loongarch-str.h (STR_CMODEL_MEDIUM): Likewise.
5940 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
5941 Tls symbol Loading support medium mode.
5942 (loongarch_legitimize_call_address): When medium mode, make a symbolic
5943 jump with two instructions.
5944 (loongarch_option_override_internal): Support medium.
5945 * config/loongarch/loongarch.md (@pcalau12i<mode>): New template.
5946 (@sibcall_internal_1<mode>): New function call templates added to support
5947 medium mode.
5948 (@sibcall_value_internal_1<mode>): Likewise.
5949 (@sibcall_value_multiple_internal_1<mode>): Likewise.
5950 (@call_internal_1<mode>): Likewise.
5951 (@call_value_internal_1<mode>): Likewise.
5952 (@call_value_multiple_internal_1<mode>): Likewise.
5953 * config/loongarch/loongarch.opt: Support medium.
5954 * config/loongarch/predicates.md: Add processing about medium mode.
5955 * doc/invoke.texi: Document for '-mcmodel=medium'.
5956
5957 2022-08-24 Richard Biener <rguenther@suse.de>
5958
5959 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
5960 Start the compute_control_dep_chain walk from the immediate
5961 dominator of the PHI.
5962
5963 2022-08-23 H.J. Lu <hjl.tools@gmail.com>
5964
5965 PR target/106714
5966 * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
5967 __PTRDIFF_TYPE__.
5968 (_tile_stream_loadd_internal): Likewise.
5969 (_tile_stored_internal): Likewise.
5970
5971 2022-08-23 Richard Biener <rguenther@suse.de>
5972
5973 PR tree-optimization/106722
5974 * gimple-predicate-analysis.h (MAX_NUM_CHAINS, MAX_CHAIN_LEN,
5975 MAX_POSTDOM_CHECK, MAX_SWITCH_CASES): Move ...
5976 * gimple-predicate-analysis.cc: ... here and document.
5977 (simple_control_dep_chain): New function, factored from
5978 predicate::use_cannot_happen.
5979 (predicate::use_cannot_happen): Adjust.
5980 (predicate::predicate): Use simple_control_dep_chain as fallback.
5981
5982 2022-08-23 Aldy Hernandez <aldyh@redhat.com>
5983
5984 * range-op-float.cc (foperator_equal::op1_range): Set range to
5985 range of op2.
5986
5987 2022-08-23 Richard Biener <rguenther@suse.de>
5988
5989 * gimple-predicate-analysis.cc (is_loop_exit): Split out
5990 from ...
5991 (is_non_loop_exit_postdominating): ... here. Remove after
5992 inlining ...
5993 (find_control_equiv_block): ... here.
5994 (compute_control_dep_chain): ... and here.
5995 (predicate::is_use_guarded): Do not excempt loop exits
5996 from short-cutting the case of the use post-dominating the
5997 PHI definition.
5998
5999 2022-08-23 Andrew MacLeod <amacleod@redhat.com>
6000
6001 PR tree-optimization/106687
6002 * range-op.cc (operator_minus::lhs_op1_relation): Return VREL_LE
6003 for the VREL_GT case as well.
6004
6005 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
6006
6007 * config/pru/pru.md (pru_<code>di3): New alternative for
6008 two operands but without earlyclobber.
6009
6010 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
6011
6012 * config/pru/pru.md (prumov<mode>, mov<mode>): Add
6013 variants for loading -1 consts.
6014
6015 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
6016
6017 PR target/106564
6018 * config/pru/constraints.md (Um): New constraint for -1.
6019 (Uf): New constraint for IOR fill-bytes constants.
6020 (Uz): New constraint for AND zero-bytes constants.
6021 * config/pru/predicates.md (const_fillbytes_operand): New
6022 predicate for IOR fill-bytes constants.
6023 (const_zerobytes_operand): New predicate for AND zero-bytes
6024 constants.
6025 * config/pru/pru-protos.h (pru_output_sign_extend): Remove.
6026 (struct pru_byterange): New struct to describe a byte range.
6027 (pru_calc_byterange): New declaration.
6028 * config/pru/pru.cc (pru_rtx_costs): Add penalty for
6029 64-bit zero-extend.
6030 (pru_output_sign_extend): Remove.
6031 (pru_calc_byterange): New helper function to extract byte
6032 range info from a constant.
6033 (pru_print_operand): Remove 'y' and 'z' print modifiers.
6034 * config/pru/pru.md (zero_extendqidi2): New pattern.
6035 (zero_extendhidi2): New pattern.
6036 (zero_extendsidi2): New pattern.
6037 (extend<EQS0:mode><EQD:mode>2): Rewrite as an expand.
6038 (@pru_ior_fillbytes<mode>): New pattern.
6039 (@pru_and_zerobytes<mode>): New pattern.
6040 (<code>di3): Rewrite as an expand and handle ZERO and FILL
6041 special cases.
6042 (pru_<code>di3): New name for <code>di3.
6043 (@cbranch_qbbx_const_<BIT_TEST:code><HIDI:mode>): New pattern to
6044 handle bit-test for 64-bit registers.
6045
6046 2022-08-22 Richard Biener <rguenther@suse.de>
6047
6048 * gimple-predicate-analysis.h (predicate::m_use_expr): Remove.
6049 (predicate::def_expr): Likewise.
6050 (predicate::use_expr): Likewise.
6051 (predicate::expr): Likewise.
6052 * gimple-predicate-analysis.cc (predicate::def_expr): Remove.
6053 (predicate::use_expr): Likewise.
6054 (predicate::expr): Likewise.
6055 (predicate::is_use_guarded): Do not build m_use_expr.
6056
6057 2022-08-22 Martin Liska <mliska@suse.cz>
6058
6059 PR lto/106700
6060 * configure.ac: Detect O_NONBLOCK flag for open.
6061 * config.in: Regenerate.
6062 * configure: Regenerate.
6063 * opts-common.cc (jobserver_info::connect): Set is_connected
6064 properly based on O_NONBLOCK.
6065 * opts-jobserver.h (struct jobserver_info): Add is_connected
6066 member variable.
6067
6068 2022-08-22 zhongjuzhe <juzhe.zhong@rivai.ai>
6069
6070 * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value
6071 and repeat value different.
6072
6073 2022-08-22 Tobias Burnus <tobias@codesourcery.com>
6074
6075 PR lto/106686
6076 * lto-wrapper.cc (free_array_of_ptrs): Move before tool_cleanup.
6077 (tool_cleanup): Unlink offload_names.
6078 (compile_offload_image): Take filename argument to set it early.
6079 (compile_images_for_offload_targets): Update call; set
6080 offload_names to NULL after freeing the array.
6081
6082 2022-08-22 Richard Biener <rguenther@suse.de>
6083
6084 PR tree-optimization/105937
6085 * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs
6086 on backedges.
6087 (execute_late_warn_uninitialized): Mark backedges.
6088
6089 2022-08-22 Richard Biener <rguenther@suse.de>
6090
6091 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
6092 If the use is guarded with multiple predicate paths compute
6093 the predicates intersection before going forward. When
6094 compute_control_dep_chain wasn't able to come up with at
6095 least one path from function entry to the PHI edge compute
6096 a conservative sparse path instead.
6097
6098 2022-08-20 Lulu Cheng <chenglulu@loongson.cn>
6099
6100 * config/loongarch/loongarch-opts.cc: Allow cmodel to be extreme.
6101 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
6102 Add extreme support for TLS GD and LD types.
6103 (loongarch_legitimize_tls_address): Add extreme support for TLS LE
6104 and IE.
6105 (loongarch_split_symbol): When compiling with -mcmodel=extreme,
6106 the symbol address will be obtained through five instructions.
6107 (loongarch_print_operand_reloc): Add support.
6108 (loongarch_print_operand): Add support.
6109 (loongarch_print_operand_address): Add support.
6110 (loongarch_option_override_internal): Set '-mcmodel=extreme' option
6111 incompatible with '-mno-explicit-relocs'.
6112 * config/loongarch/loongarch.md (@lui_l_hi20<mode>):
6113 Loads bits 12-31 of data into registers.
6114 (lui_h_lo20): Load bits 32-51 of the data and spell bits 0-31 of
6115 the source register.
6116 (lui_h_hi12): Load bits 52-63 of the data and spell bits 0-51 of
6117 the source register.
6118 * config/loongarch/predicates.md: Symbols need to be decomposed
6119 when defining the macro TARGET_CMODEL_EXTREME
6120 * doc/invoke.texi: Modify the description information of cmodel in the document.
6121 Document -W[no-]extreme-plt.
6122
6123 2022-08-19 Tobias Burnus <tobias@codesourcery.com>
6124
6125 * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to
6126 files_to_cleanup.
6127 * config/i386/intelmic-mkoffload.cc (prepare_target_image): Add
6128 omp_requires_file to temp_files.
6129 * config/nvptx/mkoffload.cc (omp_requires_file): New global static var.
6130 (main): Remove local omp_requires_file var.
6131 (tool_cleanup): Handle omp_requires_file.
6132
6133 2022-08-19 Aldy Hernandez <aldyh@redhat.com>
6134
6135 * gimple-range-path.cc (path_range_query::path_range_query):
6136 Remove constructor that takes edge.
6137 * gimple-range-path.h (class path_range_query): Same.
6138 * tree-ssa-loop-ch.cc (edge_range_query): New.
6139 (entry_loop_condition_is_static): Call edge_range_query.
6140
6141 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6142
6143 * config/xtensa/xtensa.h
6144 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
6145 Add new register class "ISC_REGS".
6146 * config/xtensa/constraints.md (c): Add new register constraint.
6147 * config/xtensa/xtensa.md (define_constants): Remove "A11_REG".
6148 (sibcall_internal, sibcall_value_internal):
6149 Change to use the new register constraint, and remove two split
6150 patterns for fixups that are no longer needed.
6151
6152 2022-08-18 Maciej W. Rozycki <macro@embecosm.com>
6153
6154 * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output
6155 pattern formatting.
6156
6157 2022-08-18 Tim Lange <mail@tim-lange.me>
6158
6159 PR analyzer/106181
6160 * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic.
6161
6162 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
6163
6164 * gimple-range-path.cc (path_range_query::path_range_query): Add
6165 various constructors to take a path.
6166 (path_range_query::~path_range_query): Remove m_alloced_ranger.
6167 (path_range_query::range_on_path_entry): Adjust for m_ranger being
6168 a reference.
6169 (path_range_query::set_path): Rename to...
6170 (path_range_query::reset_path): ...this and call compute_ranges.
6171 (path_range_query::ssa_range_in_phi): Adjust for m_ranger
6172 reference.
6173 (path_range_query::range_defined_in_block): Same.
6174 (path_range_query::compute_ranges_in_block): Same.
6175 (path_range_query::adjust_for_non_null_uses): Same.
6176 (path_range_query::compute_exit_dependencies): Use m_path instead
6177 of argument.
6178 (path_range_query::compute_ranges): Remove path argument.
6179 (path_range_query::range_of_stmt): Adjust for m_ranger reference.
6180 (path_range_query::compute_outgoing_relations): Same.
6181 * gimple-range-path.h (class path_range_query): Add various
6182 constructors.
6183 Make compute_ranges and compute_exit_dependencies private.
6184 Rename set_path to reset_path.
6185 Make m_ranger a reference.
6186 Remove m_alloced_ranger.
6187 * tree-ssa-dom.cc (pass_dominator::execute): Adjust constructor to
6188 path_range_query.
6189 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Take a
6190 ranger and instantiate a new path_range_query every time.
6191 (ch_base::copy_headers): Pass ranger instead of path_range_query.
6192 * tree-ssa-threadbackward.cc (class back_threader): Remove m_solver.
6193 (back_threader::~back_threader): Remove m_solver.
6194 (back_threader::find_taken_edge_switch): Adjust for m_ranger
6195 reference.
6196 (back_threader::find_taken_edge_cond): Same.
6197 (back_threader::dump): Remove m_solver.
6198 (back_threader::back_threader): Move verify_marked_backedges
6199 here from the path_range_query constructor.
6200 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Move
6201 some code from compute_ranges_from_state here.
6202 (hybrid_jt_simplifier::compute_ranges_from_state): Rename...
6203 (hybrid_jt_simplifier::compute_exit_dependencies): ...to this.
6204 * tree-ssa-threadedge.h (class hybrid_jt_simplifier): Rename
6205 compute_ranges_from_state to compute_exit_dependencies.
6206 Remove m_path.
6207
6208 2022-08-18 Richard Biener <rguenther@suse.de>
6209
6210 PR middle-end/106617
6211 * match.pd ((a ? b : c) > d -> a ? (b > d) : (c > d)): Fix
6212 guard, disable on GENERIC to not cause quadratic behavior
6213 with the fold-const.cc implementation and the use of !
6214
6215 2022-08-18 Andrew Pinski <apinski@marvell.com>
6216
6217 PR gcov-profile/106659
6218 * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with
6219 INCLUDE_VECTOR.
6220
6221 2022-08-18 konglin1 <lingling.kong@intel.com>
6222
6223 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
6224 BFmode.
6225 (ix86_expand_vector_init_duplicate): Support vector BFmode.
6226 (ix86_expand_vector_init_one_nonzero): Ditto.
6227 (ix86_expand_vector_init_one_var): Ditto.
6228 (ix86_expand_vector_init_concat): Ditto.
6229 (ix86_expand_vector_init_interleave): Ditto.
6230 (ix86_expand_vector_init_general): Ditto.
6231 (ix86_expand_vector_init): Ditto.
6232 (ix86_expand_vector_set_var): Ditto.
6233 (ix86_expand_vector_set): Ditto.
6234 (ix86_expand_vector_extract): Ditto.
6235 * config/i386/i386.cc (classify_argument): Add BF vector modes.
6236 (function_arg_64): Ditto.
6237 (ix86_gimplify_va_arg): Ditto.
6238 (ix86_get_ssemov): Ditto.
6239 * config/i386/i386.h (VALID_AVX256_REG_MODE): Add BF vector modes.
6240 (VALID_AVX512F_REG_MODE): Ditto.
6241 (host_detect_local_cpu): Ditto.
6242 (VALID_SSE2_REG_MODE): Ditto.
6243 * config/i386/i386.md: Add BF vector modes.
6244 (MODE_SIZE): Ditto.
6245 (ssemodesuffix): Add bf suffix for BF vector modes.
6246 (ssevecmode): Ditto.
6247 * config/i386/sse.md (VMOVE): Adjust for BF vector modes.
6248 (VI12HFBF_AVX512VL): Ditto.
6249 (V_256_512): Ditto.
6250 (VF_AVX512HFBF16): Ditto.
6251 (VF_AVX512BWHFBF16): Ditto.
6252 (VIHFBF): Ditto.
6253 (avx512): Ditto.
6254 (VIHFBF_256): Ditto.
6255 (VIHFBF_AVX512BW): Ditto.
6256 (VI2F_256_512):Ditto.
6257 (V8_128):Ditto.
6258 (V16_256): Ditto.
6259 (V32_512): Ditto.
6260 (sseinsnmode): Ditto.
6261 (sseconstm1): Ditto.
6262 (sseintmodesuffix): New mode_attr.
6263 (avx512fmaskmode): Ditto.
6264 (avx512fmaskmodelower): Ditto.
6265 (ssedoublevecmode): Ditto.
6266 (ssehalfvecmode): Ditto.
6267 (ssehalfvecmodelower): Ditto.
6268 (ssescalarmode): Add vector BFmode mapping.
6269 (ssescalarmodelower): Ditto.
6270 (ssexmmmode): Ditto.
6271 (ternlogsuffix): Ditto.
6272 (ssescalarsize): Ditto.
6273 (sseintprefix): Ditto.
6274 (i128): Ditto.
6275 (xtg_mode): Ditto.
6276 (bcstscalarsuff): Ditto.
6277 (<avx512>_blendm<mode>): New define_insn for BFmode.
6278 (<avx512>_store<mode>_mask): Ditto.
6279 (vcond_mask_<mode><avx512fmaskmodelower>): Ditto.
6280 (vec_set<mode>_0): New define_insn for BF vector set.
6281 (V8BFH_128): New mode_iterator for BFmode.
6282 (avx512fp16_mov<mode>): Ditto.
6283 (vec_set<mode>): New define_insn for BF vector set.
6284 (@vec_extract_hi_<mode>): Ditto.
6285 (@vec_extract_lo_<mode>): Ditto.
6286 (vec_set_hi_<mode>): Ditto.
6287 (vec_set_lo_<mode>): Ditto.
6288 (*vec_extract<mode>_0): New define_insn_and_split for BF
6289 vector extract.
6290 (*vec_extract<mode>): New define_insn.
6291 (VEC_EXTRACT_MODE): Add BF vector modes.
6292 (PINSR_MODE): Add V8BF.
6293 (sse2p4_1): Ditto.
6294 (pinsr_evex_isa): Ditto.
6295 (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support
6296 insert for V8BFmode.
6297 (pbroadcast_evex_isa): Add BF vector modes.
6298 (AVX2_VEC_DUP_MODE): Ditto.
6299 (VEC_INIT_MODE): Ditto.
6300 (VEC_INIT_HALF_MODE): Ditto.
6301 (avx2_pbroadcast<mode>): Adjust to support BF vector mode
6302 broadcast.
6303 (avx2_pbroadcast<mode>_1): Ditto.
6304 (<avx512>_vec_dup<mode>_1): Ditto.
6305 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
6306 Ditto.
6307
6308 2022-08-18 Martin Liska <mliska@suse.cz>
6309
6310 * configure: Regenerate.
6311
6312 2022-08-18 Haochen Gui <guihaoc@gcc.gnu.org>
6313
6314 PR target/103109
6315 * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add.
6316 (<u>madddi4_highpart): New.
6317 (<u>madddi4_highpart_le): New.
6318
6319 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
6320
6321 * gimple-range-path.cc
6322 (path_range_query::compute_exit_dependencies): Use
6323 gimple_range_ssa_names.
6324
6325 2022-08-18 zhongjuzhe <juzhe.zhong@rivai.ai>
6326
6327 * config/riscv/predicates.md: Adjust runtime invariant.
6328 * config/riscv/riscv-modes.def (MAX_BITSIZE_MODE_ANY_MODE): New.
6329 (NUM_POLY_INT_COEFFS): New.
6330 * config/riscv/riscv-protos.h (riscv_initial_elimination_offset):Adjust
6331 runtime invariant.
6332 * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls):
6333 Adjust runtime invariant.
6334 * config/riscv/riscv.cc (struct riscv_frame_info): Adjust runtime
6335 invariant.
6336 (enum riscv_microarchitecture_type): Ditto.
6337 (riscv_valid_offset_p): Ditto.
6338 (riscv_valid_lo_sum_p): Ditto.
6339 (riscv_address_insns): Ditto.
6340 (riscv_load_store_insns): Ditto.
6341 (riscv_legitimize_move): Ditto.
6342 (riscv_binary_cost): Ditto.
6343 (riscv_rtx_costs): Ditto.
6344 (riscv_output_move): Ditto.
6345 (riscv_extend_comparands): Ditto.
6346 (riscv_flatten_aggregate_field): Ditto.
6347 (riscv_get_arg_info): Ditto.
6348 (riscv_pass_by_reference): Ditto.
6349 (riscv_elf_select_rtx_section): Ditto.
6350 (riscv_stack_align): Ditto.
6351 (riscv_compute_frame_info): Ditto.
6352 (riscv_initial_elimination_offset): Ditto.
6353 (riscv_set_return_address): Ditto.
6354 (riscv_for_each_saved_reg): Ditto.
6355 (riscv_first_stack_step): Ditto.
6356 (riscv_expand_prologue): Ditto.
6357 (riscv_expand_epilogue): Ditto.
6358 (riscv_can_use_return_insn): Ditto.
6359 (riscv_secondary_memory_needed): Ditto.
6360 (riscv_hard_regno_nregs): Ditto.
6361 (riscv_convert_vector_bits): New.
6362 (riscv_option_override): Adjust runtime invariant.
6363 (riscv_promote_function_mode): Ditto.
6364 * config/riscv/riscv.h (POLY_SMALL_OPERAND_P): New.
6365 (BITS_PER_RISCV_VECTOR): New.
6366 (BYTES_PER_RISCV_VECTOR): New.
6367 * config/riscv/riscv.md: Adjust runtime invariant.
6368
6369 2022-08-18 Lulu Cheng <chenglulu@loongson.cn>
6370
6371 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
6372 Get __tls_get_addr address through got table when disable plt.
6373
6374 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6375
6376 * config/xtensa/xtensa.cc (xtensa_expand_prologue):
6377 Use an "addmi" machine instruction for updating the stack pointer
6378 rather than addition/subtraction via hard register A9, if the amount
6379 of change satisfies the literal value conditions of that instruction
6380 when the CALL0 ABI is used.
6381 (xtensa_expand_epilogue): Ditto.
6382 And also inhibit the stack pointer addition of constant zero.
6383
6384 2022-08-17 Roger Sayle <roger@nextmovesoftware.com>
6385
6386 PR target/106640
6387 * config/i386/i386-features.cc
6388 (timde_scalar_chain::compute_convert_gain): Replace incorrect use
6389 of XINT with INTVAL (XEXP (src, 1)).
6390
6391 2022-08-17 Aldy Hernandez <aldyh@redhat.com>
6392
6393 * gimple-range-path.cc
6394 (path_range_query::compute_ranges_in_block): Remove
6395 set_root_oracle call.
6396 (path_range_query::compute_ranges): Pass ranger oracle to
6397 reset_path.
6398 * value-relation.cc (path_oracle::reset_path): Set root oracle.
6399 * value-relation.h (path_oracle::reset_path): Add root oracle
6400 argument.
6401
6402 2022-08-17 Marek Polacek <polacek@redhat.com>
6403
6404 PR c++/89780
6405 * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Handle
6406 OPT_Wpessimizing_move and OPT_Wredundant_move.
6407 * diagnostic-spec.h (nowarn_spec_t): Add NW_REDUNDANT enumerator.
6408
6409 2022-08-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6410 Jakub Jelinek <jakub@redhat.com>
6411
6412 PR fortran/46539
6413 * common.opt (static-libquadmath): New option.
6414 * gcc.cc (driver_handle_option): Always accept -static-libquadmath.
6415 * config/darwin.h (LINK_SPEC): Handle -static-libquadmath.
6416
6417 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
6418
6419 * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic
6420 when filenames come out identically.
6421
6422 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
6423
6424 PR middle-end/106548
6425 * omp-low.cc (lower_rec_input_clauses): Use build_outer_var_ref
6426 for 'simd' linear-step values that are variable.
6427
6428 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
6429 Chung-Lin Tang <cltang@codesourcery.com>
6430
6431 PR c++/104493
6432 * gimplify.cc (omp_notice_variable): Call omp_mappable_type
6433 instead of removed langhook.
6434 * omp-general.h (omp_mappable_type): New prototype.
6435 * omp-general.cc (omp_mappable_type): New; moved from ...
6436 * langhooks.cc (lhd_omp_mappable_type): ... here.
6437 * langhooks-def.h (lhd_omp_mappable_type,
6438 LANG_HOOKS_OMP_MAPPABLE_TYPE): Remove.
6439 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remote the latter.
6440 * langhooks.h (struct lang_hooks_for_types): Remove
6441 omp_mappable_type.
6442
6443 2022-08-17 Christophe Lyon <christophe.lyon@arm.com>
6444
6445 * config.gcc (arm): Define with_float to hard if target name ends
6446 with 'hf'.
6447
6448 2022-08-17 Richard Biener <rguenther@suse.de>
6449
6450 * tree-ssa-threadbackward.cc
6451 (back_threader_profitability): Split profitable_path_p
6452 into possibly_profitable_path_p and itself, keep state
6453 as new members.
6454 (back_threader::m_profit): Remove.
6455 (back_threader::find_paths): Likewise.
6456 (back_threader::maybe_register_path): Take profitability
6457 instance as parameter.
6458 (back_threader::find_paths_to_names): Likewise. Use
6459 possibly_profitable_path_p and avoid the path range query
6460 when the path is currently too large.
6461 (back_threader::find_paths): Fold into ...
6462 (back_threader::maybe_thread_block): ... this.
6463 (get_gimple_control_stmt): Remove.
6464 (back_threader_profitability::possibly_profitable_path_p):
6465 Split out from profitable_path_p, do early profitability
6466 checks.
6467 (back_threader_profitability::profitable_path_p): Do final
6468 profitability path after the taken edge has been determined.
6469
6470 2022-08-17 Xi Ruoyao <xry111@xry111.site>
6471
6472 * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern.
6473 (fmin<mode>3): Likewise.
6474
6475 2022-08-17 Andrew MacLeod <amacleod@redhat.com>
6476
6477 * gimple-range-fold.cc (gimple_range_ssa_names): New.
6478 * gimple-range-fold.h (gimple_range_ssa_names): New prototype.
6479 * gimple-range-gori.cc (range_def_chain::get_def_chain): Move
6480 code to new routine.
6481
6482 2022-08-16 Martin Liska <mliska@suse.cz>
6483
6484 PR target/106637
6485 * doc/install.texi: Remove link to www.bullfreeware.com
6486
6487 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
6488
6489 * common/config/riscv/riscv-common.cc (riscv_implied_info): Add
6490 zfh and zfhmin.
6491 (riscv_ext_version_table): Ditto.
6492 (riscv_ext_flag_table): Ditto.
6493 * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
6494 (MASK_ZFH): Ditto.
6495 (TARGET_ZFHMIN): Ditto.
6496 (TARGET_ZFH): Ditto.
6497 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
6498 for zfh and zfhmin.
6499 (riscv_emit_float_compare): Handle HFmode.
6500 * config/riscv/riscv.md (ANYF): Add HF.
6501 (SOFTF): Add HF.
6502 (load): Ditto.
6503 (store): Ditto.
6504 (truncsfhf2): New.
6505 (truncdfhf2): Ditto.
6506 (extendhfsf2): Ditto.
6507 (extendhfdf2): Ditto.
6508 (*movhf_hardfloat): Ditto.
6509 (*movhf_softfloat): Make sure not ZFHMIN.
6510 * config/riscv/riscv.opt (riscv_zf_subext): New.
6511
6512 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
6513
6514 * config/riscv/riscv-builtins.cc: include stringpool.h
6515 (riscv_float16_type_node): New.
6516 (riscv_init_builtin_types): Ditto.
6517 (riscv_init_builtins): Call riscv_init_builtin_types.
6518 * config/riscv/riscv-modes.def (HF): New.
6519 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode.
6520 (riscv_mangle_type): New.
6521 (riscv_scalar_mode_supported_p): Ditto.
6522 (riscv_libgcc_floating_mode_supported_p): Ditto.
6523 (riscv_excess_precision): Ditto.
6524 (riscv_floatn_mode): Ditto.
6525 (riscv_init_libfuncs): Ditto.
6526 (TARGET_MANGLE_TYPE): Ditto.
6527 (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
6528 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Ditto.
6529 (TARGET_INIT_LIBFUNCS): Ditto.
6530 (TARGET_C_EXCESS_PRECISION): Ditto.
6531 (TARGET_FLOATN_MODE): Ditto.
6532 * config/riscv/riscv.md (mode): Add HF.
6533 (softload): Add HF.
6534 (softstore): Ditto.
6535 (fmt): Ditto.
6536 (UNITMODE): Ditto.
6537 (movhf): New.
6538 (*movhf_softfloat): New.
6539
6540 2022-08-16 Richard Biener <rguenther@suse.de>
6541
6542 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
6543 Do not walk further if we are leaving the current loop.
6544
6545 2022-08-16 Sergei Trofimovich <siarheit@google.com>
6546
6547 PR driver/106624
6548 * gcc.cc (driver::detect_jobserver): Allocate storage xputenv()
6549 argument using xstrdup().
6550
6551 2022-08-16 Aldy Hernandez <aldyh@redhat.com>
6552
6553 * gimple-range-path.cc (path_range_query::import_p): Rename to...
6554 (path_range_query::exit_dependency_p): ...this.
6555 (path_range_query::dump): Rename imports to exit dependencies.
6556 (path_range_query::compute_ranges_in_phis): Same.
6557 (path_range_query::compute_ranges_in_block): Same.
6558 (path_range_query::adjust_for_non_null_uses): Same.
6559 (path_range_query::compute_ranges): Same.
6560 (path_range_query::compute_phi_relations): Same.
6561 (path_range_query::add_to_imports): Rename to...
6562 (path_range_query::add_to_exit_dependencies): ...this.
6563 (path_range_query::compute_imports): Rename to...
6564 (path_range_query::compute_exit_dependencies): ...this.
6565 * gimple-range-path.h (class path_range_query): Rename imports to
6566 exit dependencies.
6567
6568 2022-08-16 Martin Liska <mliska@suse.cz>
6569
6570 * value-range-storage.h (class obstack_vrange_allocator): Mark
6571 the class as final.
6572 (class ggc_vrange_allocator): Likewise.
6573
6574 2022-08-16 Martin Liska <mliska@suse.cz>
6575
6576 * value-range-equiv.h (class value_range_equiv): Add virtual
6577 destructor.
6578 * value-range.h: Likewise.
6579
6580 2022-08-16 Richard Biener <rguenther@suse.de>
6581
6582 PR middle-end/106630
6583 * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to
6584 narrowing conversions.
6585
6586 2022-08-16 Martin Liska <mliska@suse.cz>
6587
6588 * value-range-equiv.h (class value_range_equiv):
6589
6590 2022-08-16 Martin Liska <mliska@suse.cz>
6591
6592 * config/i386/i386-features.h (class general_scalar_chain): Add
6593 final override for a method.
6594 (class timode_scalar_chain): Likewise.
6595
6596 2022-08-16 Richard Biener <rguenther@suse.de>
6597
6598 * doc/invoke.texi (max-jump-thread-paths): Adjust.
6599
6600 2022-08-16 Martin Liska <mliska@suse.cz>
6601
6602 * opts-common.cc (jobserver_info::connect): Open fifo
6603 in non-blocking mode.
6604
6605 2022-08-16 Kewen.Lin <linkw@gcc.gnu.org>
6606
6607 PR target/103353
6608 * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
6609 check to preparation statements and add handlings for !TARGET_MMA.
6610 (define_expand movxo): Likewise.
6611
6612 2022-08-16 Kewen Lin <linkw@linux.ibm.com>
6613
6614 PR tree-optimization/106322
6615 * tree-vect-stmts.cc (vectorizable_call): Don't allow
6616 vect_emulated_vector_p type for both vectype_in and vectype_out.
6617
6618 2022-08-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6619
6620 * common/config/xtensa/xtensa-common.cc
6621 (xtensa_option_optimization_table): Add OPT_fsplit_wide_types_early
6622 for OPT_LEVELS_ALL in order to restore pre-GCC10 behavior.
6623
6624 2022-08-15 Andrew MacLeod <amacleod@redhat.com>
6625
6626 PR tree-optimization/106621
6627 * value-range.cc (irange::set): Check for POLY_INT_CST early.
6628
6629 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
6630
6631 * config/i386/i386-features.cc
6632 (timode_scalar_chain::compute_convert_gain): Provide costs for
6633 shifts and rotates.
6634 (timode_scalar_chain::convert_insn): Handle ASHIFTRT, ROTATERT
6635 and ROTATE just like existing ASHIFT and LSHIFTRT cases.
6636 (timode_scalar_to_vector_candidate_p): Handle all shifts and
6637 rotates by integer constants between 0 and 127.
6638
6639 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
6640
6641 * config/i386/i386-features.cc
6642 (timode_scalar_chain::compute_convert_gain): Provide gains for
6643 comparisons against 0/-1, including "*testti" patterns.
6644
6645 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
6646
6647 PR tree-optimization/64992
6648 PR tree-optimization/98956
6649 * match.pd (ne (lshift @0 @1) 0): Simplify (X << C) != 0 to X
6650 when X is zero_one_valued_p and the shift constant C is valid.
6651 (eq (lshift @0 @1) 0): Likewise, simplify (X << C) == 0 to !X
6652 when X is zero_one_valued_p and the shift constant C is valid.
6653
6654 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
6655 Richard Biener <rguenther@suse.de>
6656
6657 PR tree-optimization/71343
6658 * match.pd (op (lshift @0 @1) (lshift @2 @1)): Optimize the
6659 expression (X<<C) + (Y<<C) to (X+Y)<<C for multiple operators.
6660 (op (rshift @0 @1) (rshift @2 @1)): Likewise, simplify (X>>C)^(Y>>C)
6661 to (X^Y)>>C for binary logical operators, AND, IOR and XOR.
6662
6663 2022-08-15 Richard Biener <rguenther@suse.de>
6664
6665 * gimple-range-path.cc (range_on_path_entry): Just
6666 call range_on_entry.
6667
6668 2022-08-15 Jakub Jelinek <jakub@redhat.com>
6669
6670 PR rtl-optimization/106590
6671 * ifcvt.cc (check_for_cc_cmp_clobbers): New function.
6672 (noce_convert_multiple_sets_1): If SEQ sets or clobbers any regs
6673 mentioned in cc_cmp or rev_cc_cmp, don't consider seq2 for any
6674 further conditional moves.
6675
6676 2022-08-15 konglin1 <lingling.kong@intel.com>
6677
6678 * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type.
6679 * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend.
6680 (ix86_register_bf16_builtin_type): New function.
6681 (ix86_bf16_type_node): New.
6682 (ix86_bf16_ptr_type_node): Ditto.
6683 (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call.
6684 * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode.
6685 (ADJUST_FLOAT_FORMAT): Ditto.
6686 * config/i386/i386.cc (classify_argument): Handle BFmode.
6687 (construct_container): Ditto.
6688 (function_value_32): Return __bf16 by %xmm0.
6689 (function_value_64): Return __bf16 by SSE register.
6690 (ix86_output_ssemov): Handle BFmode.
6691 (ix86_legitimate_constant_p): Disable BFmode constant double.
6692 (ix86_secondary_reload): Require gpr as intermediate register
6693 to store __bf16 from sse register when sse4 is not available.
6694 (ix86_scalar_mode_supported_p): Enable __bf16 under sse2.
6695 (ix86_mangle_type): Add manlging for __bf16 type.
6696 (ix86_invalid_conversion): New function for target hook.
6697 (ix86_invalid_unary_op): Ditto.
6698 (ix86_invalid_binary_op): Ditto.
6699 (TARGET_INVALID_CONVERSION): New define for target hook.
6700 (TARGET_INVALID_UNARY_OP): Ditto.
6701 (TARGET_INVALID_BINARY_OP): Ditto.
6702 * config/i386/i386.h (host_detect_local_cpu): Add BFmode.
6703 * config/i386/i386.md ("mode"): Add BFmode.
6704 (MODE_SIZE): Ditto.
6705 (X87MODEFH): Ditto.
6706 (HFBF): Add new define_mode_iterator.
6707 (*pushhf_rex64): Change for BFmode.
6708 (*push<mode>_rex64): Ditto.
6709 (*pushhf): Ditto.
6710 (*push<mode>): Ditto.
6711 (MODESH): Ditto.
6712 (hfbfconstf): Add new define_mode_attr.
6713 (*mov<mode>_internal): Add BFmode.
6714
6715 2022-08-13 Roger Sayle <roger@nextmovesoftware.com>
6716 Uroš Bizjak <ubizjak@gmail.com>
6717
6718 * config/i386/predicates.md (const_0_to_255_not_mul_8_operand):
6719 New predicate for values between 0/1 and 255, not multiples of 8.
6720 * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left
6721 shifts by constant bit counts.
6722 (*ashlvti3_internal): New define_insn_and_split that lowers
6723 logical left shifts by constant bit counts, that aren't multiples
6724 of 8, before reload.
6725 (lshrv1ti3): Delay lowering of logical right shifts by constant.
6726 (*lshrv1ti3_internal): New define_insn_and_split that lowers
6727 logical right shifts by constant bit counts, that aren't multiples
6728 of 8, before reload.
6729 (ashrv1ti3):: Delay lowering of arithmetic right shifts by
6730 constant bit counts.
6731 (*ashrv1ti3_internal): New define_insn_and_split that lowers
6732 arithmetic right shifts by constant bit counts before reload.
6733 (rotlv1ti3): Delay lowering of rotate left by constant.
6734 (*rotlv1ti3_internal): New define_insn_and_split that lowers
6735 rotate left by constant bits counts before reload.
6736 (rotrv1ti3): Delay lowering of rotate right by constant.
6737 (*rotrv1ti3_internal): New define_insn_and_split that lowers
6738 rotate right by constant bits counts before reload.
6739
6740 2022-08-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6741
6742 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options.
6743
6744 2022-08-12 Jan Hubicka <hubicka@ucw.cz>
6745
6746 PR middle-end/106057
6747 * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New
6748 function.
6749 (possible_polymorphic_call_targets): Use it.
6750
6751 2022-08-12 Andrew Carlotti <andrew.carlotti@arm.com>
6752
6753 * tree-ssa-loop.h: Improve comment
6754
6755 2022-08-12 Jakub Jelinek <jakub@redhat.com>
6756
6757 PR tree-optimization/106506
6758 * tree-ssa-phiopt.cc (spaceship_replacement): Don't punt for
6759 is_cast or orig_use_lhs cases if phi_bb has 3 predecessors.
6760
6761 2022-08-12 Richard Biener <rguenther@suse.de>
6762
6763 PR tree-optimization/106593
6764 * tree-ssa-threadbackward.cc (back_threader::find_paths):
6765 If the imports from the conditional do not satisfy
6766 gimple_range_ssa_p don't try to thread anything.
6767
6768 2022-08-12 Tamar Christina <tamar.christina@arm.com>
6769
6770 PR target/106524
6771 * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine,
6772 *fcmuo<mode>_bic_combine): Don't accept comparisons against zero.
6773
6774 2022-08-12 Tim Lange <mail@tim-lange.me>
6775
6776 PR analyzer/106000
6777 * doc/invoke.texi: Add Wanalyzer-out-of-bounds.
6778
6779 2022-08-12 Andrew Pinski <apinski@marvell.com>
6780
6781 * config/aarch64/aarch64.md: Remove comment
6782 about MD_INCLUDES as it is out of date and not needed.
6783
6784 2022-08-11 Richard Biener <rguenther@suse.de>
6785
6786 * gimple-range-path.cc (path_range_query::compute_imports):
6787 Restrict walking SSA defs to blocks inside the path. Track
6788 the same operands as range_def_chain::get_def_chain does.
6789
6790 2022-08-11 Richard Biener <rguenther@suse.de>
6791
6792 PR tree-optimization/106514
6793 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
6794 Compute and unwind both m_imports and interesting on the fly during
6795 path discovery.
6796 (back_threader::find_paths): Compute the original m_imports
6797 from just the SSA uses of the exit conditional. Drop
6798 handling single_succ_to_potentially_threadable_block.
6799 * gimple-range-path.cc (path_range_query::ssa_range_in_phi): Handle
6800 constant PHI arguments without crashing. Use PHI_ARG_DEF_FROM_EDGE.
6801
6802 2022-08-11 Richard Biener <rguenther@suse.de>
6803
6804 * gimple-range-path.h (path_range_query::compute_imports):
6805 Take path as argument, not the exit block.
6806 * gimple-range-path.cc (path_range_query::compute_imports):
6807 Likewise, and adjust, avoiding possibly stale m_path.
6808 (path_range_query::compute_outgoing_relations): Register
6809 relations for all conditionals.
6810 * tree-ssa-threadbackward.cc (back_threader::find_paths):
6811 Adjust.
6812
6813 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
6814
6815 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Fix the
6816 oversight on ENB_CELL by simplifying with rs6000_builtin_is_supported.
6817 (rs6000_expand_builtin): Simplify with rs6000_builtin_is_supported.
6818
6819 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
6820
6821 * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p):
6822 Remove function declaration.
6823
6824 2022-08-10 Richard Biener <rguenther@suse.de>
6825
6826 PR tree-optimization/106513
6827 * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t
6828 for head_marker.
6829
6830 2022-08-10 Martin Liska <mliska@suse.cz>
6831
6832 PR lto/106328
6833 * opts-jobserver.h (struct jobserver_info): Add pipefd.
6834 (jobserver_info::connect): New.
6835 (jobserver_info::disconnect): Likewise.
6836 (jobserver_info::get_token): Likewise.
6837 (jobserver_info::return_token): Likewise.
6838 * opts-common.cc: Implement the new functions.
6839
6840 2022-08-10 Martin Liska <mliska@suse.cz>
6841
6842 * opts-jobserver.h: Add one member.
6843 * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO
6844 format of --jobserver-auth.
6845
6846 2022-08-10 Martin Liska <mliska@suse.cz>
6847
6848 * gcc.cc (driver::detect_jobserver): Remove and move to
6849 jobserver.h.
6850 * lto-wrapper.cc (jobserver_active_p): Likewise.
6851 (run_gcc): Likewise.
6852 * opts-jobserver.h: New file.
6853 * opts-common.cc (jobserver_info::jobserver_info): New function.
6854
6855 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
6856
6857 * config/i386/i386-features.cc (scalar_chain::convert_compare):
6858 Create new pseudos only when/if needed. Add support for TEST,
6859 i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST.
6860 When broadcasting V2DImode and V4SImode use new pseudo register.
6861 (timode_scalar_chain::convert_op): Do nothing if operand is
6862 already V1TImode. Avoid generating useless SUBREG conversions,
6863 i.e. (SUBREG:V1TImode (REG:V1TImode) 0). Handle CONST_WIDE_INT
6864 in addition to CONST_INT by using CONST_SCALAR_INT_P.
6865 (convertible_comparison_p): Use CONST_SCALAR_INT_P to match both
6866 CONST_WIDE_INT and CONST_INT. Recognize new *testti_doubleword
6867 pattern as an STV candidate.
6868 (timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P
6869 operands in binary logic operations.
6870 * config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs
6871 for UNSPEC_PTEST; a PTEST that performs an AND has the same cost
6872 as regular PTEST, i.e. cost->sse_op.
6873 * config/i386/i386.md (*testti_doubleword): New pre-reload
6874 define_insn_and_split that recognizes comparison of TI mode AND
6875 against zero.
6876 * config/i386/sse.md (*ptest<mode>_and): New pre-reload
6877 define_insn_and_split that recognizes UNSPEC_PTEST of identical
6878 AND operands.
6879
6880 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
6881 Richard Biener <rguenther@suse.de>
6882
6883 PR middle-end/21137
6884 PR tree-optimization/98954
6885 * fold-const.cc (fold_binary_loc): Remove optimizations to
6886 optimize ((X >> C1) & C2) ==/!= 0.
6887 * match.pd (cmp (bit_and (lshift @0 @1) @2) @3): Remove wi::ctz
6888 check, and handle all values of INTEGER_CSTs @2 and @3.
6889 (cmp (bit_and (rshift @0 @1) @2) @3): Likewise, remove wi::clz
6890 checks, and handle all values of INTEGER_CSTs @2 and @3.
6891
6892 2022-08-09 David Malcolm <dmalcolm@redhat.com>
6893
6894 * doc/invoke.texi (Static Analyzer Options): Add notes on which
6895 functions the analyzer has hardcoded knowledge of.
6896
6897 2022-08-09 Andrew Stubbs <ams@codesourcery.com>
6898
6899 * config/gcn/gcn.cc (gcn_function_value): Allow vector return values.
6900 (num_arg_regs): Allow vector arguments.
6901 (gcn_function_arg): Likewise.
6902 (gcn_function_arg_advance): Likewise.
6903 (gcn_arg_partial_bytes): Likewise.
6904 (gcn_return_in_memory): Likewise.
6905 (gcn_expand_epilogue): Get return value from v8.
6906 * config/gcn/gcn.h (RETURN_VALUE_REG): Set to v8.
6907 (FIRST_PARM_REG): USE FIRST_SGPR_REG for clarity.
6908 (FIRST_VPARM_REG): New.
6909 (FUNCTION_ARG_REGNO_P): Allow vector parameters.
6910 (struct gcn_args): Add vnum field.
6911 (LIBCALL_VALUE): All vector return values.
6912 * config/gcn/gcn.md (gcn_call_value): Add vector constraints.
6913 (gcn_call_value_indirect): Likewise.
6914
6915 2022-08-09 Richard Biener <rguenther@suse.de>
6916
6917 * omp-expand.cc (expand_omp_atomic_load): Emit GIMPLE
6918 directly. Avoid update_ssa when in SSA form.
6919 (expand_omp_atomic_store): Likewise.
6920 (expand_omp_atomic_fetch_op): Avoid update_ssa when in SSA
6921 form.
6922 (expand_omp_atomic_pipeline): Likewise.
6923 (expand_omp_atomic_mutex): Likewise.
6924 * tree-parloops.cc (gen_parallel_loop): Use
6925 TODO_update_ssa_no_phi after loop_version.
6926
6927 2022-08-09 Richard Biener <rguenther@suse.de>
6928
6929 * doc/invoke.texi (max-fsm-thread-length): Remove.
6930 * params.opt (max-fsm-thread-length): Likewise.
6931 * tree-ssa-threadbackward.cc
6932 (back_threader_profitability::profitable_path_p): Do not
6933 check max-fsm-thread-length.
6934
6935 2022-08-09 Richard Biener <rguenther@suse.de>
6936
6937 PR tree-optimization/106514
6938 * params.opt (max-jump-thread-paths): New.
6939 * doc/invoke.texi (max-jump-thread-paths): Document.
6940 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
6941 Honor max-jump-thread-paths, take overall_path argument.
6942 (back_threader::find_paths): Pass 1 as initial overall_path.
6943
6944 2022-08-09 Tobias Burnus <tobias@codesourcery.com>
6945
6946 PR middle-end/106492
6947 * omp-low.cc (lower_rec_input_clauses): Add missing folding
6948 to data type of linear-clause list item.
6949
6950 2022-08-08 Andrew MacLeod <amacleod@redhat.com>
6951
6952 PR tree-optimization/106556
6953 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use the
6954 type of the cond_expr operands being evaluted.
6955
6956 2022-08-08 Tom Honermann <tom@honermann.net>
6957
6958 * ginclude/stdatomic.h (atomic_char8_t,
6959 ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
6960
6961 2022-08-08 Andrew Pinski <apinski@marvell.com>
6962
6963 PR middle-end/103645
6964 * gimplify.cc (gimplify_init_constructor): Don't build/add
6965 gimple assignment of an empty type.
6966
6967 2022-08-08 Richard Biener <rguenther@suse.de>
6968
6969 PR lto/106540
6970 PR lto/106334
6971 * dwarf2out.cc (dwarf2out_register_external_die): Restore
6972 original assert.
6973 * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1
6974 to input DECL_INITIAL, avoiding to commit drefs.
6975
6976 2022-08-07 Roger Sayle <roger@nextmovesoftware.com>
6977
6978 * config/i386/i386.md (*cmp<dwi>_doubleword): Change predicate
6979 for x86_64_hilo_general_operand to general operand. Call
6980 force_reg on parts that are not x86_64_immediate_operand.
6981
6982 2022-08-05 David Malcolm <dmalcolm@redhat.com>
6983
6984 PR analyzer/105947
6985 * doc/invoke.texi: Add -Wanalyzer-jump-through-null.
6986
6987 2022-08-05 Roger Sayle <roger@nextmovesoftware.com>
6988
6989 * expmed.cc (emit_store_flag_1): Move code to expand double word
6990 equality and inequality against zero or -1, using word operations,
6991 to after trying to use the backend's cstore<mode>4 optab/expander.
6992
6993 2022-08-05 Tamar Christina <tamar.christina@arm.com>
6994
6995 PR middle-end/106534
6996 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the
6997 value_replacement and store_elim from diamonds.
6998
6999 2022-08-05 Richard Biener <rguenther@suse.de>
7000
7001 * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
7002 Check whether the registry register_path rejected the path.
7003 (back_threader_registry::register_path): Return whether
7004 register_jump_thread succeeded.
7005
7006 2022-08-05 Aldy Hernandez <aldyh@redhat.com>
7007
7008 PR tree-optimization/106514
7009 * value-range.cc (unsupported_range::unsupported_range): Move...
7010 * value-range.h (unsupported_range::unsupported_range): ...here.
7011 (unsupported_range::set_undefined): New.
7012
7013 2022-08-05 Richard Biener <rguenther@suse.de>
7014
7015 PR tree-optimization/106533
7016 * tree-loop-distribution.cc (loop_distribution::execute): Continue
7017 analyzing the inner loops when find_seed_stmts_for_distribution
7018 fails.
7019
7020 2022-08-05 Andrew Pinski <apinski@marvell.com>
7021
7022 * config/riscv/predicates.md (splittable_const_int_operand):
7023 Remove the check for TARGET_64BIT for single bit const values.
7024
7025 2022-08-04 Andrew MacLeod <amacleod@redhat.com>
7026
7027 PR tree-optimization/106514
7028 * gimple-range-path.cc (path_range_query::compute_ranges_in_block):
7029 Use EXECUTE_IF_AND_IN_BITMAP to loop over 2 bitmaps.
7030
7031 2022-08-04 Tamar Christina <tamar.christina@arm.com>
7032
7033 * match.pd: New bit_not rule.
7034
7035 2022-08-04 Tamar Christina <tamar.christina@arm.com>
7036
7037 PR middle-end/106519
7038 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for
7039 diamond shapes.
7040
7041 2022-08-04 Sam Feifer <sfeifer@redhat.com>
7042
7043 PR tree-optimization/106243
7044 * match.pd (-x & 1): New simplification.
7045
7046 2022-08-04 Richard Biener <rguenther@suse.de>
7047
7048 PR tree-optimization/106521
7049 * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Perform
7050 CFG cleanup manually before rewriting into LC SSA.
7051
7052 2022-08-04 Richard Biener <rguenther@suse.de>
7053
7054 * tree-ssa-threadbackward.cc (populate_worklist): Remove.
7055 (back_threader::resolve_phi): Likewise.
7056 (back_threader::find_paths_to_names): Rewrite greedy search.
7057
7058 2022-08-04 Ilya Leoshkevich <iii@linux.ibm.com>
7059
7060 * config/s390/vector.md (V_HW_FT): New iterator.
7061 * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead
7062 of V_HW.
7063
7064 2022-08-03 Michael Meissner <meissner@linux.ibm.com>
7065
7066 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
7067 setting -mblock-ops-vector-pair.
7068
7069 2022-08-03 Andrew MacLeod <amacleod@redhat.com>
7070
7071 PR tree-optimization/106514
7072 * value-relation.cc (path_oracle::killing_def) Do not walk the
7073 equivalence set clearing bits.
7074
7075 2022-08-03 Tamar Christina <tamar.christina@arm.com>
7076
7077 * tree-ssa-phiopt.cc (minmax_replacement): Optionally search for the phi
7078 sequence of a three-way conditional.
7079 (replace_phi_edge_with_variable): Support diamonds.
7080 (tree_ssa_phiopt_worker): Detect diamond phi structure for three-way
7081 min/max.
7082 (strip_bit_not, invert_minmax_code): New.
7083
7084 2022-08-03 Richard Earnshaw <rearnsha@arm.com>
7085
7086 PR rtl-optimization/106187
7087 * alias.h (mems_same_for_tbaa_p): Declare.
7088 * alias.cc (mems_same_for_tbaa_p): New function.
7089 * dse.cc (record_store): Use it instead of open-coding
7090 alias check.
7091 * cselib.h (cselib_redundant_set_p): Declare.
7092 * cselib.cc: Include alias.h
7093 (cselib_redundant_set_p): New function.
7094 * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead
7095 of rtx_equal_for_cselib_p.
7096 * postreload.cc (reload_cse_simplify): Use cselib_redundant_set_p.
7097 (reload_cse_noop_set_p): Delete.
7098
7099 2022-08-03 Martin Liska <mliska@suse.cz>
7100
7101 * doc/gcov-dump.texi: Document the new option.
7102 * gcov-dump.cc (main): Parse the new option.
7103 (print_usage): Show the option.
7104 (tag_counters): Sort key:value pairs of TOP N counter.
7105
7106 2022-08-03 Martin Liska <mliska@suse.cz>
7107
7108 * profile.cc (compute_branch_probabilities): Do not collect
7109 stats unless TDF_DETAILS.
7110
7111 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
7112 Uroš Bizjak <ubizjak@gmail.com>
7113
7114 PR target/47949
7115 * config/i386/i386.md (peephole2): New peephole2 to convert
7116 SWI48 moves to/from %rax/%eax where the src is dead to xchg,
7117 when optimizing for minimal size with -Oz.
7118
7119 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
7120
7121 * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case
7122 to split comparisons against -1 using AND and CMP -1 instructions.
7123
7124 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
7125
7126 * config/i386/i386-features.cc (compute_convert_gain): Add gain
7127 for converting suitable TImode shift to a V1TImode shift.
7128 (timode_scalar_chain::convert_insn): Add support for converting
7129 suitable ASHIFT and LSHIFTRT.
7130 (timode_scalar_to_vector_candidate_p): Consider logical shifts
7131 by integer constants that are multiples of 8 to be candidates.
7132
7133 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
7134 Segher Boessenkool <segher@kernel.crashing.org>
7135 Richard Sandiford <richard.sandiford@arm.com>
7136
7137 * simplify-rtx.cc (simplify_unary_operation_1) <ABS>: Add
7138 optimizations for CLRSB, PARITY, POPCOUNT, SS_ABS and LSHIFTRT
7139 that are all positive to complement the existing FFS and
7140 idempotent ABS simplifications.
7141 <SIGN_EXTEND>: Canonicalize SIGN_EXTEND to ZERO_EXTEND when
7142 val_signbit_known_clear_p is true of the operand.
7143 Simplify sign extensions of SUBREG truncations of operands
7144 that are already suitably (zero) extended.
7145 <ZERO_EXTEND>: Simplify zero extensions of SUBREG truncations
7146 of operands that are already suitably zero extended.
7147
7148 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
7149
7150 PR tree-optimization/106510
7151 * gimple-range-fold.cc (fur_source::register_outgoing_edges):
7152 Check for unsupported statements early.
7153
7154 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
7155
7156 PR tree-optimization/106474
7157 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Query
7158 range of equivalences that may contribute to the range.
7159
7160 2022-08-02 Jose E. Marchesi <jose.marchesi@oracle.com>
7161
7162 * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR
7163 encoding bit in BTF.
7164
7165 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
7166
7167 * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
7168 irange check.
7169 (tree_lower_bound): New.
7170 (tree_upper_bound): New.
7171 (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
7172 vrange.
7173 * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
7174 argument to vrange.
7175
7176 2022-08-02 Richard Biener <rguenther@suse.de>
7177
7178 * tree-ssa-threadbackward.cc
7179 (back_threader_profitability::profitable_path_p): Apply
7180 size constraints to all paths again.
7181
7182 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
7183
7184 * range-op-float.cc (finite_operands_p): New.
7185 (frelop_early_resolve): New.
7186 (default_frelop_fold_range): New.
7187 (class foperator_equal): New.
7188 (class foperator_not_equal): New.
7189 (class foperator_lt): New.
7190 (class foperator_le): New.
7191 (class foperator_gt): New.
7192 (class foperator_ge): New.
7193 (class foperator_unordered): New.
7194 (class foperator_ordered): New.
7195 (class foperator_relop_unknown): New.
7196 (floating_op_table::floating_op_table): Add above classes to
7197 floating op table.
7198 * value-range.h (frange::supports_p): Enable.
7199
7200 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
7201
7202 * tree-core.h (struct tree_ssa_name): Add frange_info and
7203 reshuffle the rest.
7204 * value-range-storage.cc (vrange_storage::alloc_slot): Add case
7205 for frange.
7206 (vrange_storage::set_vrange): Same.
7207 (vrange_storage::get_vrange): Same.
7208 (vrange_storage::fits_p): Same.
7209 (frange_storage_slot::alloc_slot): New.
7210 (frange_storage_slot::set_frange): New.
7211 (frange_storage_slot::get_frange): New.
7212 (frange_storage_slot::fits_p): New.
7213 * value-range-storage.h (class frange_storage_slot): New.
7214
7215 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
7216
7217 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger
7218 query to integrals.
7219
7220 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
7221
7222 * value-range.cc (frange::set): Initialize m_props and cleanup.
7223
7224 2022-08-02 Richard Biener <rguenther@suse.de>
7225
7226 PR tree-optimization/106497
7227 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
7228 Also verify we can copy EDGE_COPY_SRC_JOINER_BLOCK.
7229
7230 2022-08-02 Martin Liska <mliska@suse.cz>
7231
7232 * profile.cc (compute_branch_probabilities): Dump details only
7233 if TDF_DETAILS.
7234 * symtab.cc (symtab_node::dump_base): Do not dump pointer unless
7235 TDF_ADDRESS is used, it makes comparison harder.
7236
7237 2022-08-02 Richard Biener <rguenther@suse.de>
7238
7239 PR tree-optimization/106498
7240 * omp-expand.cc (expand_omp_taskreg): Do not perform virtual
7241 SSA update here.
7242 (expand_omp_for): Or here.
7243 (execute_expand_omp): Instead schedule it here together
7244 with CFG cleanup via TODO.
7245
7246 2022-08-02 Richard Biener <rguenther@suse.de>
7247
7248 PR lto/106334
7249 * dwarf2out.cc (dwarf2out_register_external_die): Adjust
7250 assert.
7251
7252 2022-08-02 Richard Biener <rguenther@suse.de>
7253
7254 PR tree-optimization/106495
7255 * tree-ssa-threadbackward.cc
7256 (back_threader_profitability::profitable_path_p): If known_edge
7257 is probably never executed avoid threading.
7258
7259 2022-08-01 David Malcolm <dmalcolm@redhat.com>
7260
7261 * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste
7262 error.
7263
7264 2022-08-01 Roger Sayle <roger@nextmovesoftware.com>
7265 Uroš Bizjak <ubizjak@gmail.com>
7266
7267 PR target/106481
7268 * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
7269 Convert a CONST_SCALAR_INT_P in a REG_EQUAL note into a V1TImode
7270 CONST_VECTOR.
7271
7272 2022-08-01 H.J. Lu <hjl.tools@gmail.com>
7273
7274 PR target/83782
7275 * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
7276 (TARGET_IFUNC_REF_LOCAL_OK): Use it.
7277
7278 2022-08-01 Jose E. Marchesi <jose.marchesi@oracle.com>
7279
7280 PR debug/106263
7281 * ctfc.h (struct ctf_dtdef): Add field linkage.
7282 * ctfc.cc (ctf_add_function): Set ctti_linkage.
7283 * dwarf2ctf.cc (gen_ctf_function_type): Pass a linkage for
7284 function types and subprograms.
7285 * btfout.cc (btf_asm_func_type): Emit linkage information for the
7286 function.
7287 (btf_dtd_emit_preprocess_cb): Propagate the linkage information
7288 for functions.
7289
7290 2022-08-01 Andrew Stubbs <ams@codesourcery.com>
7291 Jakub Jelinek <jakub@redhat.com>
7292
7293 * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match
7294 the mask type.
7295
7296 2022-08-01 Sam Feifer <sfeifer@redhat.com>
7297
7298 PR tree-optimization/104992
7299 * match.pd (x / y * y == x): New simplification.
7300
7301 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
7302
7303 * value-range.cc (tree_compare): New.
7304 (frange::set): Make more general.
7305 (frange::normalize_kind): Cleanup and return bool.
7306 (frange::union_): Use normalize_kind return value.
7307 (frange::intersect): Same.
7308 (frange::verify_range): Remove unnecessary else.
7309 * value-range.h (vrp_val_max): Move before frange class.
7310 (vrp_val_min): Same.
7311 (frange::frange): Remove set to m_type.
7312
7313 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
7314
7315 * value-range.cc (vrange::supports_type_p): Use const_tree.
7316 (irange::supports_type_p): Same.
7317 (frange::supports_type_p): Same.
7318 * value-range.h (Value_Range::supports_type_p): Same.
7319 (irange::supports_p): Same.
7320
7321 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
7322
7323 * gimple-range-fold.cc (fold_using_range::range_of_phi): Only
7324 query SCEV for integers.
7325 (fold_using_range::range_of_ssa_name_with_loop_info): Remove
7326 irange check.
7327
7328 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
7329
7330 * config/i386/i386.md (define_expand <any_rotate>ti3): For
7331 rotations by 64 bits use new rot[lr]64ti2_doubleword pattern.
7332 (rot[lr]64ti2_doubleword): New post-reload splitter.
7333
7334 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
7335 H.J. Lu <hjl.tools@gmail.com>
7336
7337 PR target/106450
7338 * config/i386/i386-features.cc (timode_check_non_convertible_regs):
7339 Do nothing if REGNO is set in the REGS bitmap, or is a hard reg.
7340 (timode_remove_non_convertible_regs): Update comment.
7341 Call timode_check_non_convertible_reg on all TImode register
7342 DEFs and USEs in each instruction.
7343
7344 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7345
7346 * config/xtensa/xtensa.md: Change hard register number used in
7347 the split patterns for indirect sibling call fixups from 10 to 11,
7348 the last free one for the CALL0 ABI.
7349
7350 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7351
7352 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
7353 Add new case for IF_THEN_ELSE.
7354
7355 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
7356
7357 * config/gcn/gcn-valu.md (V_INT_noHI): New iterator.
7358 (<expander><mode>3<exec>): Use V_INT_noHI.
7359 (v<expander><mode>3<exec>): Likewise.
7360
7361 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
7362
7363 * config/gcn/gcn.md (one_cmpldi2): New.
7364
7365 2022-07-29 Richard Biener <rguenther@suse.de>
7366
7367 PR tree-optimization/105679
7368 * tree-ssa-threadbackward.cc
7369 (back_threader_profitability::profitable_path_p): Avoid threading
7370 when the entry edge is probably never executed.
7371
7372 2022-07-29 Richard Biener <rguenther@suse.de>
7373
7374 PR tree-optimization/106422
7375 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
7376 Check whether we can copy thread blocks and cancel the thread if not.
7377
7378 2022-07-29 Jakub Jelinek <jakub@redhat.com>
7379
7380 PR middle-end/106449
7381 * omp-expand.cc (expand_omp_simd): Fix up handling of pointer
7382 iterators in non-rectangular simd loops. Unshare fd->loops[i].n2
7383 or n2 before regimplifying it inside of a condition.
7384
7385 2022-07-29 Jakub Jelinek <jakub@redhat.com>
7386
7387 * omp-expand.cc (expand_omp_for_init_counts, expand_omp_for_init_vars,
7388 extract_omp_for_update_vars, expand_omp_for_ordered_loops,
7389 expand_omp_simd): Don't fold_convert second argument to
7390 fold_build_pointer_plus to sizetype.
7391
7392 2022-07-29 Lulu Cheng <chenglulu@loongson.cn>
7393
7394 * config.in: Regenerate.
7395 * config/loongarch/loongarch.h (ASM_PREFERRED_EH_DATA_FORMAT):
7396 Select the value of the macro definition according to whether
7397 HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT is defined.
7398 * configure: Regenerate.
7399 * configure.ac: Reinstate HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT test.
7400
7401 2022-07-29 Richard Biener <rguenther@suse.de>
7402
7403 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
7404 Use CONVERT_EXPR_CODE_P.
7405
7406 2022-07-29 Richard Biener <rguenther@suse.de>
7407
7408 * tree-vect-patterns.cc (vect_recog_bool_pattern): Use
7409 get_vectype_for_scalar_type instead of
7410 vect_get_vector_types_for_stmt.
7411
7412 2022-07-28 David Malcolm <dmalcolm@redhat.com>
7413
7414 PR analyzer/105893
7415 * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var.
7416
7417 2022-07-28 David Malcolm <dmalcolm@redhat.com>
7418
7419 * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than
7420 url.
7421 (Static Analyzer Options): Likewise. Add urefs for all of the
7422 warnings that have associated CWE identifiers.
7423
7424 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
7425
7426 * doc/implement-c.texi (Floating point implementation): Mention
7427 `-fno-trapping-math' in the context of FENV_ACCESS pragma.
7428 * doc/invoke.texi (Optimize Options): Clarify FENV_ACCESS pragma
7429 implication in the descriptions of `-fno-trapping-math' and
7430 `-frounding-math'.
7431
7432 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
7433
7434 * config/riscv/riscv.md (UNSPECV_FSNVSNAN): New constant.
7435 (QUIET_PATTERN): New int attribute.
7436 (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): Emit the intended
7437 RTL insns entirely within the preparation statements.
7438 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
7439 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Remove
7440 insns.
7441 (*riscv_fsnvsnan<mode>2): New insn.
7442
7443 2022-07-28 Richard Biener <rguenther@suse.de>
7444
7445 PR middle-end/106457
7446 * tree.cc (array_at_struct_end_p): Handle array objects
7447 specially.
7448
7449 2022-07-28 Jakub Jelinek <jakub@redhat.com>
7450
7451 PR tree-optimization/106099
7452 * internal-fn.def (TRAP): New internal fn.
7453 * internal-fn.h (expand_TRAP): Declare.
7454 * internal-fn.cc (expand_TRAP): Define.
7455 * gimple.cc (gimple_build_builtin_unreachable): For BUILT_IN_TRAP,
7456 use internal fn rather than builtin.
7457
7458 2022-07-27 Andrew Carlotti <andrew.carlotti@arm.com>
7459
7460 * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead.
7461
7462 2022-07-27 WANG Xuerui <i@xen0n.name>
7463
7464 * doc/invoke.texi: Document -m[no-]explicit-relocs for
7465 LoongArch.
7466
7467 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
7468
7469 * config/riscv/riscv.md (stack_protect_set_<mode>): Remove
7470 duplicate backslashes.
7471
7472 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
7473
7474 * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New
7475 case.
7476
7477 2022-07-27 Jakub Jelinek <jakub@redhat.com>
7478
7479 PR debug/106261
7480 * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't
7481 output asm thunks for -dx.
7482
7483 2022-07-27 Jakub Jelinek <jakub@redhat.com>
7484
7485 PR middle-end/106332
7486 * opts-common.cc (candidates_list_and_hint): Add gcc_assert
7487 that candidates is not an empty vector.
7488
7489 2022-07-27 Xi Ruoyao <xry111@xry111.site>
7490
7491 * configure.ac (HAVE_AS_EXPLICIT_RELOCS): Define to 1 if the
7492 assembler supports explicit relocation for LoongArch.
7493 * configure: Regenerate.
7494 * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
7495 Define to 0 if not defined.
7496 * config/loongarch/genopts/loongarch.opt.in
7497 (TARGET_EXPLICIT_RELOCS): Default to HAVE_AS_EXPLICIT_RELOCS.
7498 * config/loongarch/loongarch.opt: Regenerate.
7499
7500 2022-07-26 Peter Bergner <bergner@linux.ibm.com>
7501
7502 PR c/106016
7503 * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
7504
7505 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
7506
7507 * config/loongarch/loongarch-opts.cc: Modify the output message string
7508 of the warning.
7509
7510 2022-07-26 Martin Liska <mliska@suse.cz>
7511
7512 * doc/tm.texi.in: Fix placement of defmac.
7513 * doc/tm.texi: Copy.
7514
7515 2022-07-26 Martin Liska <mliska@suse.cz>
7516
7517 * doc/tm.texi.in: Fix cross @defmac and @hook.
7518 * doc/tm.texi: Copy.
7519
7520 2022-07-26 Aldy Hernandez <aldyh@redhat.com>
7521
7522 PR tree-optimization/106444
7523 * value-range-pretty-print.cc (vrange_printer::visit): Handle
7524 legacy ranges.
7525 (vrange_printer::print_irange_bound): Work on wide_int's.
7526 * value-range-pretty-print.h (print_irange_bound): Same.
7527 * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges.
7528
7529 2022-07-26 Richard Biener <rguenther@suse.de>
7530
7531 * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
7532 points to a constant continue checking ptr2.
7533
7534 2022-07-26 Andrew Carlotti <Andrew.Carlotti@arm.com>
7535
7536 * config/aarch64/aarch64-builtins.cc
7537 (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
7538 (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
7539 (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
7540 (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
7541 (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
7542 (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
7543 (MODE_q_p128): Define macro to map to corresponding mode name.
7544 (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
7545 (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
7546 (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
7547 corresponding qualifier name.
7548 (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
7549 (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
7550 functions for the above mappings
7551 (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
7552 (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
7553 (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
7554 (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
7555 for all vreinterpret intrinsics
7556 (enum aarch64_builtins): Add vreinterpret function codes
7557 (aarch64_init_simd_intrinsics): New
7558 (handle_arm_neon_h): Improved comment.
7559 (aarch64_general_fold_builtin): Fold vreinterpret calls
7560 * config/aarch64/arm_neon.h
7561 (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
7562 (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
7563 (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
7564 (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
7565 (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
7566 (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
7567 (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
7568 (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
7569 (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
7570 (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
7571 (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
7572 (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
7573 (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
7574 (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
7575 (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
7576 (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
7577 (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
7578 (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
7579 (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
7580 (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
7581 (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
7582 (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
7583 (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
7584 (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
7585 (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
7586 (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
7587 (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
7588 (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
7589 (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
7590 (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
7591 (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
7592 (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
7593 (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64)
7594 (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
7595 (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
7596 (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
7597 (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
7598 (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
7599 (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
7600 (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
7601 (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
7602 (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
7603 (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
7604 (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
7605 (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
7606 (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
7607 (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
7608 (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
7609 (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
7610 (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
7611 (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
7612 (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
7613 (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
7614 (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
7615 (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
7616 (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
7617 (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
7618 (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
7619 (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
7620 (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
7621 (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
7622 (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
7623 (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
7624 (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
7625 (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
7626 (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
7627 (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
7628 (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
7629 (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
7630 (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
7631 (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
7632 (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
7633 (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
7634 (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
7635 (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
7636 (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
7637 (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
7638 (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
7639 (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
7640 (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
7641 (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
7642 (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
7643 (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
7644 (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
7645 (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
7646 (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
7647 (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
7648 (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
7649 (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
7650 (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
7651 (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
7652 (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
7653 (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
7654 (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
7655 (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
7656 (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
7657 (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
7658 (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
7659 (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
7660 (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
7661 (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
7662 (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
7663 (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
7664 (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
7665 (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
7666 (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
7667 (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
7668 (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
7669 (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
7670 (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
7671 (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
7672 (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
7673 (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
7674 (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
7675 (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
7676 (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
7677 (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
7678 (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
7679 (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
7680 (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
7681 (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
7682 (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
7683 (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
7684 (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
7685 (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
7686 (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
7687 (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
7688 (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
7689 (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
7690 (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
7691 (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
7692 (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
7693 (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
7694 (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
7695 (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
7696 (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
7697 (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
7698 (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
7699 (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
7700 (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
7701 (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
7702 (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
7703 (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
7704 (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
7705 (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
7706 (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
7707 (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
7708 (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
7709 (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
7710 (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
7711 (vreinterpretq_p128_bf16): Delete
7712
7713 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
7714
7715 * config/aarch64/aarch64-builtins.cc
7716 (aarch64_simd_builtin_std_type): Rename to...
7717 (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers.
7718 (aarch64_lookup_simd_builtin_type): Rename to...
7719 (aarch64_simd_builtin_type): ...this. Add const/pointer
7720 support, and extract table lookup to...
7721 (aarch64_lookup_simd_type_in_table): ...this function.
7722 (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type.
7723 (aarch64_init_fcmla_laneq_builtins): Ditto.
7724 (aarch64_init_simd_builtin_functions): Ditto.
7725
7726 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
7727
7728 * config/aarch64/aarch64-builtins.cc
7729 (aarch64_general_gimple_fold_builtin): Add combine.
7730
7731 2022-07-26 Richard Biener <rguenther@suse.de>
7732
7733 PR tree-optimization/106189
7734 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
7735 Divide using offset_ints.
7736
7737 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
7738
7739 * common/config/loongarch/loongarch-common.cc:
7740 Enable '-fsection-anchors' when O1 and more advanced optimization.
7741 * config/loongarch/genopts/loongarch.opt.in: Add new option
7742 '-mexplicit-relocs', and enable by default.
7743 * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p):
7744 Delete function declaration.
7745 (loongarch_split_move_insn): Delete function declaration.
7746 (loongarch_split_symbol_type): Add function declaration.
7747 * config/loongarch/loongarch.cc (enum loongarch_address_type):
7748 Add new address type 'ADDRESS_LO_SUM'.
7749 (loongarch_classify_symbolic_expression): New function definitions.
7750 Classify the base of symbolic expression X, given that X appears in
7751 context CONTEXT.
7752 (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS.
7753 (loongarch_split_symbol_type): New function definitions.
7754 Determines whether the symbol load should be split into two instructions.
7755 (loongarch_valid_lo_sum_p): New function definitions.
7756 Return true if a LO_SUM can address a value of mode MODE when the LO_SUM
7757 symbol has type SYMBOL_TYPE.
7758 (loongarch_classify_address): Add handling of 'LO_SUM'.
7759 (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'.
7760 (loongarch_signed_immediate_p): Sort code.
7761 (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM.
7762 (loongarch_const_insns): Add handling of 'HIGH'.
7763 (loongarch_split_move_insn_p): Add the static attribute to the function.
7764 (loongarch_emit_set): New function definitions.
7765 (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS.
7766 (loongarch_legitimize_tls_address): Add symbol handling when defining the
7767 TARGET_EXPLICIT_RELOCS macro.
7768 (loongarch_split_symbol): New function definitions. Split symbol.
7769 (loongarch_legitimize_address): Add codes see if the address can split into a high part
7770 and a LO_SUM.
7771 (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
7772 high and low.
7773 (loongarch_split_move_insn): Delete function definitions.
7774 (loongarch_output_move): Add support for HIGH and LO_SUM.
7775 (loongarch_print_operand_reloc): New function definitions.
7776 Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT.
7777 (loongarch_memmodel_needs_release_fence): Sort code.
7778 (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH
7779 and LOW output.
7780 (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'.
7781 (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2.
7782 (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1.
7783 * config/loongarch/loongarch.md (movti): Delete the template.
7784 (*movti): Delete the template.
7785 (movtf): Delete the template.
7786 (*movtf): Delete the template.
7787 (*low<mode>): New template of normal symbol low address.
7788 (@tls_low<mode>): New template of tls symbol low address.
7789 (@ld_from_got<mode>): New template load address from got table.
7790 (@ori_l_lo12<mode>): New template.
7791 * config/loongarch/loongarch.opt: Update from loongarch.opt.in.
7792 * config/loongarch/predicates.md: Add support for symbol_type HIGH.
7793
7794 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
7795
7796 * config/loongarch/constraints.md (a): Delete the constraint.
7797 (b): A constant call not local address.
7798 (h): Delete the constraint.
7799 (t): Delete the constraint.
7800 * config/loongarch/loongarch-opts.cc (loongarch_config_target):
7801 Remove cModel type support other than normal.
7802 * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type):
7803 Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'.
7804 (loongarch_split_symbol): Delete useless function declarations.
7805 (loongarch_split_symbol_type): Delete useless function declarations.
7806 * config/loongarch/loongarch.cc (enum loongarch_address_type):
7807 Delete unnecessary comment information.
7808 (loongarch_symbol_binds_local_p): Modified the judgment order of label
7809 and symbol.
7810 (loongarch_classify_symbol): Return symbol type. If symbol is a label,
7811 or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol,
7812 return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP.
7813 (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE'
7814 'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'.
7815 (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE'
7816 and 'SYMBOL_PCREL'.
7817 (loongarch_address_insns): Sort code.
7818 (loongarch_12bit_offset_address_p): Sort code.
7819 (loongarch_14bit_shifted_offset_address_p): Sort code.
7820 (loongarch_call_tls_get_addr): Sort code.
7821 (loongarch_legitimize_tls_address): Sort code.
7822 (loongarch_output_move): Remove schema support for cmodel other than normal.
7823 (loongarch_memmodel_needs_release_fence): Sort code.
7824 (loongarch_print_operand): Sort code.
7825 * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P):
7826 Rename to LARCH_12BIT_OFFSET_P.
7827 (LARCH_12BIT_OFFSET_P): New macro.
7828 * config/loongarch/loongarch.md: Reimplement the function call. Remove schema
7829 support for cmodel other than normal.
7830 * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate.
7831 (is_const_call_plt_symbol): Delete this predicate.
7832 (is_const_call_global_noplt_symbol): Delete this predicate.
7833 (is_const_call_no_local_symbol): New predicate, determines whether it is a local
7834 symbol or label.
7835
7836 2022-07-26 Kewen Lin <linkw@linux.ibm.com>
7837
7838 PR target/106091
7839 * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy
7840 REG_EH_REGION when replacing one store insn having it.
7841 (replace_swapped_aligned_load): Likewise.
7842
7843 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
7844
7845 * Makefile.in (OBJS): Add range-op-float.o.
7846 * range-op.cc (get_float_handler): New.
7847 (range_op_handler::range_op_handler): Save code and type for
7848 delayed querying.
7849 (range_op_handler::oeprator bool): Move from header file, and
7850 add support for floats.
7851 (range_op_handler::fold_range): Add support for floats.
7852 (range_op_handler::op1_range): Same.
7853 (range_op_handler::op2_range): Same.
7854 (range_op_handler::lhs_op1_relation): Same.
7855 (range_op_handler::lhs_op2_relation): Same.
7856 (range_op_handler::op1_op2_relation): Same.
7857 * range-op.h (class range_operator_float): New.
7858 (class floating_op_table): New.
7859 * value-query.cc (range_query::get_tree_range): Add case for
7860 REAL_CST.
7861 * range-op-float.cc: New file.
7862
7863 2022-07-25 Roger Sayle <roger@nextmovesoftware.com>
7864 Uroš Bizjak <ubizjak@gmail.com>
7865
7866 PR target/91681
7867 * config/i386/i386-expand.cc (split_double_concat): A new helper
7868 function for setting a double word value from two word values.
7869 * config/i386/i386-protos.h (split_double_concat): Prototype here.
7870 * config/i386/i386.md (zero_extendditi2): New define_insn_and_split.
7871 (*add<dwi>3_doubleword_zext): New define_insn_and_split.
7872 (*sub<dwi>3_doubleword_zext): New define_insn_and_split.
7873 (*concat<mode><dwi>3_1): New define_insn_and_split replacing
7874 previous define_split for implementing DST = (HI<<32)|LO as
7875 pair of move instructions, setting lopart and hipart.
7876 (*concat<mode><dwi>3_2): Likewise.
7877 (*concat<mode><dwi>3_3): Likewise, where HI is zero_extended.
7878 (*concat<mode><dwi>3_4): Likewise, where HI is zero_extended.
7879
7880 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
7881
7882 PR middle-end/106432
7883 * gimple-range.cc (gimple_ranger::range_on_edge): Return false
7884 when the result range type is unsupported.
7885
7886 2022-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
7887
7888 * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
7889
7890 2022-07-25 Richard Biener <rguenther@suse.de>
7891
7892 PR middle-end/106414
7893 * match.pd (~(x ^ y) -> x == y): Restrict to single bit
7894 precision types.
7895
7896 2022-07-25 Andre Vieira <andre.simoesdiasvieira@arm.com>
7897
7898 * config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
7899 (@aarch64_rbit<mode>): ... to this and change it in...
7900 (ffs<mode>2,ctz<mode>2): ... here.
7901 (@aarch64_rev16<mode>): New.
7902 * config/aarch64/aarch64-builtins.cc: (aarch64_builtins):
7903 Define the following enum AARCH64_REV16, AARCH64_REV16L,
7904 AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
7905 (aarch64_init_data_intrinsics): New.
7906 (aarch64_general_init_builtins): Add call to
7907 aarch64_init_data_intrinsics.
7908 (aarch64_expand_builtin_data_intrinsic): New.
7909 (aarch64_general_expand_builtin): Add call to
7910 aarch64_expand_builtin_data_intrinsic.
7911 * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
7912 __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
7913 __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
7914
7915 2022-07-25 Martin Liska <mliska@suse.cz>
7916
7917 * doc/extend.texi: Remove trailing whitespaces.
7918 * doc/invoke.texi: Likewise.
7919
7920 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
7921
7922 * value-range-pretty-print.cc (vrange_printer::visit): New.
7923 (vrange_printer::print_frange_prop): New.
7924 * value-range-pretty-print.h (class vrange_printer): Add visit and
7925 print_frange_prop.
7926 * value-range-storage.h (vrange_allocator::alloc_vrange): Handle frange.
7927 (vrange_allocator::alloc_frange): New.
7928 * value-range.cc (vrange::operator=): Handle frange.
7929 (vrange::operator==): Same.
7930 (frange::accept): New.
7931 (frange::set): New.
7932 (frange::normalize_kind): New.
7933 (frange::union_): New.
7934 (frange::intersect): New.
7935 (frange::operator=): New.
7936 (frange::operator==): New.
7937 (frange::supports_type_p): New.
7938 (frange::verify_range): New.
7939 * value-range.h (enum value_range_discriminator): Handle frange.
7940 (class fp_prop): New.
7941 (FP_PROP_ACCESSOR): New.
7942 (class frange_props): New.
7943 (FRANGE_PROP_ACCESSOR): New.
7944 (class frange): New.
7945 (Value_Range::init): Handle frange.
7946 (Value_Range::operator=): Same.
7947 (Value_Range::supports_type_p): Same.
7948 (frange_props::operator==): New.
7949 (frange_props::union_): New.
7950 (frange_props::intersect): New
7951 (frange::frange): New.
7952 (frange::type): New.
7953 (frange::set_varying): New.
7954 (frange::set_undefined): New.
7955
7956 2022-07-25 Peter Bergner <bergner@linux.ibm.com>
7957 Kewen Lin <linkw@linux.ibm.com>
7958
7959 PR testsuite/106345
7960 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
7961 to filter out all -mtune options.
7962
7963 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
7964
7965 * value-query.cc (range_query::get_value_range): Add assert.
7966 * vr-values.cc (vr_values::range_of_expr): Make sure we don't ICE
7967 on unsupported types in vr_values.
7968 (simplify_using_ranges::simplify): Same.
7969
7970 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
7971
7972 * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported
7973 types.
7974 * value-query.cc (get_ssa_name_range_info): Remove precision check.
7975
7976 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
7977
7978 * value-relation.cc (value_relation::set_relation): Remove assert.
7979 (path_oracle::register_relation): Exit when trying to register
7980 same SSA name relations.
7981
7982 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
7983
7984 * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange.
7985 (ranger_cache::range_from_dom): Same.
7986 * tree-ssa-dom.cc
7987 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
7988
7989 2022-07-24 Roger Sayle <roger@nextmovesoftware.com>
7990 H.J. Lu <hjl.tools@gmail.com>
7991
7992 PR target/106303
7993 PR target/106347
7994 * config/i386/i386-features.cc (make_vector_copies): Move from
7995 general_scalar_chain to scalar_chain.
7996 (convert_reg): Likewise.
7997 (convert_insn_common): New scalar_chain method split out from
7998 general_scalar_chain convert_insn.
7999 (convert_registers): Move from general_scalar_chain to
8000 scalar_chain.
8001 (scalar_chain::convert): Call convert_insn_common before calling
8002 convert_insn.
8003 (timode_remove_non_convertible_regs): Iterate until there are
8004 no further changes to the candidates.
8005 * config/i386/i386-features.h (scalar_chain::hash_map): Move
8006 from general_scalar_chain.
8007 (scalar_chain::convert_reg): Likewise.
8008 (scalar_chain::convert_insn_common): New shared method.
8009 (scalar_chain::make_vector_copies): Move from general_scalar_chain.
8010 (scalar_chain::convert_registers): Likewise. No longer virtual.
8011 (general_scalar_chain::hash_map): Delete. Moved to scalar_chain.
8012 (general_scalar_chain::convert_reg): Likewise.
8013 (general_scalar_chain::make_vector_copies): Likewise.
8014 (general_scalar_chain::convert_registers): Delete virtual method.
8015 (timode_scalar_chain::convert_registers): Likewise.
8016
8017 2022-07-23 Immad Mir <mirimmad@outlook.com>
8018
8019 * doc/extend.texi: Add fd_arg, fd_arg_read and fd_arg_write under
8020 "Common Function Attributes" section.
8021 * doc/invoke.texi: Add docs to -Wanalyzer-fd-access-mode-mismatch,
8022 -Wanalyzer-use-after-close, -Wanalyzer-fd-use-without-check that these
8023 warnings may be emitted through usage of three function attributes used
8024 for static analysis of file descriptors namely fd_arg, fd_arg_read and
8025 fd_arg_write.
8026
8027 2022-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8028
8029 * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
8030 Add a new insn_and_split pattern, and a few split patterns for
8031 spacial cases.
8032
8033 2022-07-22 Richard Sandiford <richard.sandiford@arm.com>
8034
8035 * graphds.cc (graphds_scc): Fix algorithm attribution.
8036
8037 2022-07-22 Richard Biener <rguenther@suse.de>
8038
8039 PR tree-optimization/106403
8040 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored
8041 value valueization after check for IFN_MASKED_STORE or
8042 IFN_LEN_STORE.
8043
8044 2022-07-22 Richard Biener <rguenther@suse.de>
8045
8046 PR tree-optimization/106397
8047 * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
8048 not update SSA form here.
8049 (mark_nontemporal_stores): Return whether we marked any
8050 non-temporal stores and inserted mfence.
8051 (loop_prefetch_arrays): Note when we need to update SSA.
8052 (tree_ssa_prefetch_arrays): Perform required (LC) SSA update
8053 at the end of the pass.
8054
8055 2022-07-22 Richard Biener <rguenther@suse.de>
8056
8057 PR tree-optimization/106387
8058 * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
8059 if ptr is not an SSA name.
8060
8061 2022-07-22 liuhongt <hongtao.liu@intel.com>
8062
8063 PR target/106038
8064 * config/i386/mmx.md (<code><mode>3): New define_expand, it's
8065 original "<code><mode>3".
8066 (*<code><mode>3): New define_insn, it's original
8067 "<code><mode>3" be extended to handle memory and immediate
8068 operand with ix86_binary_operator_ok. Also adjust define_split
8069 after it.
8070 (mmxinsnmode): New mode attribute.
8071 (*mov<mode>_imm): Refactor with mmxinsnmode.
8072 * config/i386/predicates.md
8073 (register_or_x86_64_const_vector_operand): New predicate.
8074
8075 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
8076
8077 * config/rs6000/altivec.md:
8078 (vstrir_code_<mode>): Rename to...
8079 (vstrir_direct_<mode>): ... this.
8080 (vstrir_p_code_<mode>): Rename to...
8081 (vstrir_p_direct_<mode>): ... this.
8082 (vstril_code_<mode>): Rename to...
8083 (vstril_direct_<mode>): ... this.
8084 (vstril_p_code_<mode>): Rename to...
8085 (vstril_p_direct_<mode>): ... this.
8086
8087 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
8088
8089 * config/rs6000/rs6000-c.cc: Update comments.
8090 (rs6000_target_modify_macros): Remove bu_mask references.
8091 (rs6000_define_or_undefine_macro): Replace bu_mask reference
8092 with a rs6000_cpu value check.
8093 (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate()
8094 parameter from call to rs6000_target_modify_macros.
8095 * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros,
8096 rs6000_target_modify_macros_ptr): Remove parameter from extern
8097 for the prototype.
8098 * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove
8099 parameter from prototype, update calls to this function.
8100 (rs6000_print_builtin_options): Remove prototype, call and function.
8101 (rs6000_builtin_mask_calculate): Remove function.
8102 (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options.
8103 (rs6000_option_override_internal): Remove rs6000_builtin_mask var
8104 and builtin_mask debug output.
8105 (rs6000_builtin_mask_names): Remove.
8106 (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask,
8107 diff_bumask references; Update calls to rs6000_target_modify_ptr.
8108 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove.
8109
8110 2022-07-21 Sam Feifer <sfeifer@redhat.com>
8111
8112 PR tree-optimization/94920
8113 * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification.
8114 (x <= 0 ? -x : 0): New simplification.
8115
8116 2022-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8117
8118 Revert:
8119 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8120
8121 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
8122 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
8123
8124 2022-07-21 Richard Biener <rguenther@suse.de>
8125
8126 PR tree-optimization/106379
8127 * match.pd (~(a ^ b) -> a == b): New pattern.
8128
8129 2022-07-21 Richard Biener <rguenther@suse.de>
8130
8131 PR tree-optimization/106378
8132 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle
8133 LEN_STORE, add mode to initialize a may-def and handle
8134 MASK_STORE that way.
8135 (dse_optimize_stmt): Query may-defs. Handle internal
8136 functions LEN_STORE and MASK_STORE similar to how
8137 we handle memory builtins but without byte tracking.
8138
8139 2022-07-21 Richard Biener <rguenther@suse.de>
8140
8141 PR tree-optimization/106365
8142 * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining
8143 the offset to start encoding of RHS from.
8144 (vn_walk_cb_data::vn_walk_cb_data): Initialize it.
8145 (vn_walk_cb_data::push_partial_def): Allow the first partial
8146 definition to be fully providing the def. Offset RHS
8147 before encoding if requested.
8148 (vn_reference_lookup_3): Initialize def_rhs everywhere.
8149 Add support for .MASK_STORE and .LEN_STORE (partial) definitions.
8150
8151 2022-07-21 Richard Biener <rguenther@suse.de>
8152
8153 * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case
8154 store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD
8155 and IFN_MASK_LOAD_LANES.
8156 (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE,
8157 IFN_LEN_STORE and IFN_MASK_STORE_LANES.
8158
8159 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
8160
8161 PR rtl-optimization/101347
8162 * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move
8163 population of nonlocal_goto_handler_labels from here ...
8164 (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here.
8165 * rtlanal.cc (remove_node_from_insn_list): Verify that a
8166 duplicate is not present in the remainder of the list.
8167
8168 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
8169
8170 * rtl.h (remove_node_from_expr_list): Remove declaration.
8171 * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
8172
8173 2022-07-20 Richard Biener <rguenther@suse.de>
8174
8175 * tree-vect-data-refs.cc (bump_vector_ptr): Return an
8176 invariant updated address when the input was invariant.
8177
8178 2022-07-20 liuhongt <hongtao.liu@intel.com>
8179
8180 * passes.def: (Split pass_cse_sincos to pass_expand_powcabs
8181 and pass_cse_sincos, and move pass_cse_sincos after vectorizer).
8182 * timevar.def (TV_TREE_POWCABS): New timevar.
8183 * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos.
8184 * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto.
8185 (class pass_expand_powcabs): Ditto.
8186 (pass_expand_powcabs::execute): Ditto.
8187 (make_pass_expand_powcabs): Ditto.
8188 (pass_cse_sincos::execute): Remove pow/cabs expand part.
8189 (make_pass_cse_sincos): Ditto.
8190
8191 2022-07-20 Richard Biener <richard.guenther@gmail.com>
8192 Hongtao Liu <hongtao.liu@intel.com>
8193
8194 PR tree-optimization/106010
8195 * tree-complex.cc (init_dont_simulate_again): Lower complex
8196 type move.
8197 (expand_complex_move): Also expand COMPLEX_CST for rhs.
8198
8199 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
8200
8201 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
8202 for incoming ranges on join nodes and add to worklist.
8203
8204 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
8205
8206 * gimple-range-cache.cc (ranger_cache::resolve_dom): New.
8207 (ranger_cache::range_from_dom): Put all nodes to be calculated
8208 in the worklist and resolve after the dom walk.
8209 * gimple-range-cache.h (resolve_dom): New prototype.
8210
8211 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
8212
8213 * tree-cfg.cc (gimple_verify_flow_info): Check placement of
8214 returns_twice calls.
8215
8216 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
8217
8218 * cfghooks.cc (duplicate_block): Expand comment.
8219 * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with
8220 calls that may return twice.
8221
8222 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
8223
8224 * tree-ssa-sink.cc (select_best_block): Punt if selected block
8225 has incoming abnormal edges.
8226
8227 2022-07-19 Martin Liska <mliska@suse.cz>
8228
8229 * doc/extend.texi: Remove trailing :.
8230
8231 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8232
8233 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
8234 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
8235
8236 2022-07-19 Richard Biener <rguenther@suse.de>
8237
8238 PR middle-end/106331
8239 * builtins.cc (get_memory_rtx): Compute alignment from
8240 the original address and set MEM_OFFSET to unknown when
8241 we create a MEM_EXPR from the base object of the address.
8242
8243 2022-07-19 Richard Biener <rguenther@suse.de>
8244
8245 PR lto/106334
8246 * dwarf2out.cc (dwarf2out_register_external_die): Allow
8247 map entry re-use during WPA.
8248
8249 2022-07-19 Roger Sayle <roger@nextmovesoftware.com>
8250 Richard Biener <rguenther@suse.de>
8251
8252 PR c/106264
8253 * builtins.cc (fold_builtin_frexp): Call suppress_warning on
8254 COMPOUND_EXPR to silence spurious warning if result isn't used.
8255 (fold_builtin_modf): Likewise.
8256 (do_mpfr_remquo): Likewise.
8257
8258 2022-07-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8259
8260 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
8261 Change the relative cost of '(set (reg) (const_int N))' where
8262 N fits into signed 12-bit from 4 to 0 if optimizing for size.
8263 And use the appropriate macro instead of the bare number 4.
8264
8265 2022-07-18 Andrew MacLeod <amacleod@redhat.com>
8266
8267 PR tree-optimization/106280
8268 * value-relation.cc (dom_oracle::register_relation): Register
8269 transitives only when it is possible for there to be one.
8270 (dom_oracle::set_one_relation): Return NULL if this is an
8271 existing relation.
8272
8273 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
8274
8275 * doc/invoke.texi (RISC-V Options): Add index references for
8276 `mrelax' and `mriscv-attribute'.
8277
8278 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
8279
8280 * doc/invoke.texi (Option Summary): Add missing second space
8281 around `-mstack-protector-guard-reg='.
8282
8283 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
8284
8285 * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
8286 (RISC-V Options): Likewise, and `-mriscv-attribute'.
8287
8288 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
8289
8290 * config/arc/arc-arch.h (arc_tune_attr): Add
8291 ARC_TUNE_ARCHS4X_REL31A variant.
8292 * config/arc/arc.cc (arc_override_options): Tune options for
8293 release 310a.
8294 (arc_sched_issue_rate): Use correct enum.
8295 (arc600_corereg_hazard): Textual change.
8296 (arc_hazard): Add release 310a tunning.
8297 * config/arc/arc.md (tune): Update and take into consideration new
8298 tune option.
8299 (tune_dspmpy): Likewise.
8300 (tune_store): New attribute.
8301 * config/arc/arc.opt (mtune): New tune option.
8302 * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units.
8303 (hs4x_brcc_op): New instruction rezervation.
8304 (hs4x_data_store_1_op): Likewise.
8305 * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant.
8306 * config/arc/arc-tables.opt: Regenerate.
8307 * config/arc/t-multilib: Likewise.
8308 * doc/invoke.texi (ARC): Update mcpu and tune sections.
8309
8310 2022-07-18 Richard Biener <rguenther@suse.de>
8311
8312 * tree-loop-distribution.cc (loop_distribution::distribute_loop):
8313 When computing cost-based merging do not disregard builtin
8314 classified partitions in some cases.
8315
8316 2022-07-18 Richard Sandiford <richard.sandiford@arm.com>
8317
8318 PR target/106253
8319 * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
8320 Delete.
8321 * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
8322 * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
8323 Delete.
8324 * config/arm/arm_neon_builtins.def (copysignf): Delete.
8325 * config/arm/iterators.md (nvrint_pattern): New attribute.
8326 * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2):
8327 New pattern.
8328 (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
8329 Likewise.
8330 (neon_copysignf<mode>): Rename to...
8331 (copysign<mode>3): ...this.
8332
8333 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
8334
8335 * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
8336 pointer first when in interrupts.
8337
8338 2022-07-18 Richard Biener <rguenther@suse.de>
8339
8340 * tree-loop-distribution.cc (copy_loop_before): Add
8341 the ability to replace the original LC PHI defs.
8342 (generate_loops_for_partition): Pass through a flag
8343 whether to redirect original LC PHI defs.
8344 (generate_code_for_partition): Likewise.
8345 (loop_distribution::distribute_loop): Compute the partition
8346 that should provide the LC PHI defs for common reductions
8347 and pass that down.
8348
8349 2022-07-18 Richard Ball <richard.ball@arm.com>
8350
8351 * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
8352 (aarch64_evpc_uzp): Likewise.
8353 (aarch64_evpc_zip): Likewise.
8354
8355 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
8356
8357 PR target/106231
8358 * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split
8359 to recognize any_extend:DI of ctz:SI which is implicitly extended.
8360 (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode
8361 extended ctz:SI that has preceding xor to break false dependency.
8362
8363 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
8364
8365 * config/i386/predicates.md (x86_64_const_vector_operand):
8366 Check the operand's mode matches the specified mode argument.
8367
8368 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
8369
8370 * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec.
8371 (kunpcksi): Likewise, add UNSPEC_MASKOP unspec.
8372 (kunpckdi): Likewise, add UNSPEC_MASKOP unspec.
8373 (vec_pack_trunc_qi): Update to specify the now required
8374 UNSPEC_MASKOP unspec.
8375 (vec_pack_trunc_<mode>): Likewise.
8376
8377 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8378
8379 * config/xtensa/xtensa.md
8380 (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
8381 *masktrue_const_shifted_mask): If the immediate for bitwise AND is
8382 represented as '-(1 << N)', decrease the lower bound of N from 12
8383 to 1. And the other immediate for conditional branch is now no
8384 longer limited to zero, but also one of some positive integers.
8385 Finally, remove the checks of some conditions, because the comparison
8386 expressions that don't satisfy such checks are determined as
8387 compile-time constants and thus will be optimized away before
8388 RTL expansion.
8389
8390 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8391
8392 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove.
8393 (xtensa_constantsynth_2insn): Change to try all three synthetic
8394 methods and to use the one that fits the immediate value of
8395 the seed into a Narrow Move Immediate instruction "MOVI.N"
8396 when the Code Density Option is configured.
8397
8398 2022-07-15 H.J. Lu <hjl.tools@gmail.com>
8399
8400 PR target/85620
8401 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
8402 false if callee has indirect_return attribute and caller
8403 doesn't.
8404
8405 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
8406
8407 PR target/106273
8408 * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the
8409 constraints to reflect the output is earlyclobber, unless it is
8410 the same register (pair) as one of the operands.
8411
8412 2022-07-15 David Malcolm <dmalcolm@redhat.com>
8413
8414 * doc/invoke.texi (Static Analyzer Options): Add the new fd
8415 warnings to the initial gccoptlist, and to the list of those
8416 disabled by -fanalyzer-checker=taint.
8417
8418 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
8419
8420 * config/aarch64/aarch64-builtins.cc
8421 (enum aarch64_type_qualifiers): Remove qualifier_internal.
8422 (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
8423
8424 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
8425
8426 * config/aarch64/aarch64-builtins.cc
8427 (v1di_UP): Add V1DI mode to _UP macros.
8428 * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode.
8429 * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode.
8430 * config/aarch64/aarch64-simd.md
8431 (vec_extractv2dfv1df): Replace with...
8432 (vec_extract<mode><V1half>): ...this.
8433 * config/aarch64/aarch64.cc
8434 (aarch64_classify_vector_mode): Add V1DI mode.
8435 * config/aarch64/iterators.md
8436 (VQ_2E, V1HALF, V1half): New.
8437 (nunits): Add V1DI mode.
8438
8439 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
8440
8441 PR target/106278
8442 * config/i386/i386-features.cc (general_scalar_chain::convert_insn):
8443 Fix indentation whitespace.
8444 (timode_scalar_chain::fix_debug_reg_uses): Likewise.
8445 (timode_scalar_chain::convert_insn): Delete dead code.
8446 Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI.
8447 Fix indentation whitespace.
8448 (convertible_comparison_p): Likewise.
8449 (timode_scalar_to_vector_candidate_p): Likewise.
8450
8451 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
8452
8453 * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
8454
8455 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
8456
8457 * Makefile.in (OBJS): Add value-range-pretty-print.o.
8458 * pretty-print.h (pp_vrange): New.
8459 * value-range.cc (vrange::dump): Call pp version.
8460 (unsupported_range::dump): Move to its own file.
8461 (dump_bound_with_infinite_markers): Same.
8462 (irange::dump): Same.
8463 (irange::dump_bitmasks): Same.
8464 (vrange::debug): Remove.
8465 * value-range.h: Remove virtual designation for dump methods.
8466 Remove dump_bitmasks method.
8467 * value-range-pretty-print.cc: New file.
8468 * value-range-pretty-print.h: New file.
8469
8470 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
8471
8472 * value-range.cc (irange::accept): New.
8473 (unsupported_range::accept): New.
8474 * value-range.h (class vrange_visitor): New.
8475 (class vrange): Add accept method.
8476 (class unsupported_range): Same.
8477 (class Value_Range): Same.
8478
8479 2022-07-15 Jonathan Wakely <jwakely@redhat.com>
8480
8481 * diagnostic-format-json.cc (json_from_location_range): Adjust
8482 to new label_text API.
8483 * diagnostic-format-sarif.cc (sarif_builder::make_location_object):
8484 Likewise.
8485 * diagnostic-show-locus.cc (struct pod_label_text): Likewise.
8486 (layout::print_any_labels): Likewise.
8487 * tree-diagnostic-path.cc (class path_label): Likewise.
8488 (struct event_range): Likewise.
8489 (default_tree_diagnostic_path_printer): Likewise.
8490 (default_tree_make_json_for_path): Likewise.
8491
8492 2022-07-15 konglin1 <lingling.kong@intel.com>
8493
8494 PR target/106113
8495 * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd}
8496 comparison due to intrinsics changed over time.
8497 * config/i386/i386-expand.cc (ix86_ssecom_setcc):
8498 Add unordered check and mode for sse comi codegen.
8499 (ix86_expand_sse_comi): Add unordered check and check a different
8500 CCmode.
8501 (ix86_expand_sse_comi_round):Extract unordered check and mode part
8502 in ix86_ssecom_setcc.
8503
8504 2022-07-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8505
8506 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
8507 op_mode instead of vmode in calls to force_reg for op0 and op1.
8508
8509 2022-07-14 H.J. Lu <hjl.tools@gmail.com>
8510
8511 PR tree-optimization/103798
8512 * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h".
8513 (simplify_builtin_call): Inline memchr with constant strings of
8514 no more than the bytes of a word.
8515 * tree-ssa-strlen.cc (use_in_zero_equality): Make it global.
8516 * tree-ssa-strlen.h (use_in_zero_equality): New.
8517
8518 2022-07-14 Eric Botcazou <ebotcazou@adacore.com>
8519
8520 * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter
8521 and set DECL_NOT_GIMPLE_REG_P on the variable according to it.
8522 (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and
8523 pass it in the call to lookup_tmp_var.
8524 (get_formal_tmp_var): Pass false in the call to lookup_tmp_var.
8525 (get_initialized_tmp_var): Likewise.
8526 (prepare_gimple_addressable): Call internal_get_tmp_var instead of
8527 get_initialized_tmp_var with NOT_GIMPLE_REG set to true.
8528
8529 2022-07-14 Martin Liska <mliska@suse.cz>
8530
8531 * doc/gimple.texi: Close properly a deftypefn.
8532
8533 2022-07-14 Martin Liska <mliska@suse.cz>
8534
8535 * doc/gimple.texi: Close properly a deftypefn.
8536
8537 2022-07-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8538
8539 * config/xtensa/xtensa.md:
8540 In FP constant synthesis split pattern, subcontract to
8541 avoid_constant_pool_reference() as in the case of integer,
8542 because it can handle well too. And cast to int32_t before
8543 calling xtensa_constantsynth() in order to ignore upper 32-bit.
8544
8545 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
8546
8547 * range-op.cc (operator_lt::fold_range): Use nonzero bits.
8548
8549 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
8550
8551 * value-range.cc (irange::copy_to_legacy): Set nonzero mask.
8552 (irange::legacy_intersect): Clear nonzero mask.
8553 (irange::legacy_union): Same.
8554 (irange::invert): Same.
8555
8556 2022-07-13 Richard Biener <rguenther@suse.de>
8557
8558 * tree-ssa-dom.h (record_temporary_equivalences): Remove.
8559 * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
8560 (dom_jt_state::get_blocks_on_stack): Likewise.
8561 (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
8562 (back_propagate_equivalences): Remove dominator bitmap
8563 compute and instead use passed in m_blocks_on_stack.
8564 (record_temporary_equivalences): Likewise.
8565 (record_equivalences_from_incoming_edge): Likewise.
8566 (dom_opt_dom_walker::before_dom_children): Maintain and
8567 pass down blocks on stack.
8568 (dom_opt_dom_walker::after_dom_children): Likewise.
8569
8570 2022-07-13 Andrew Carlotti <andrew.carlotti@arm.com>
8571
8572 * config/aarch64/aarch64-builtins.cc
8573 (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
8574
8575 2022-07-13 Richard Biener <rguenther@suse.de>
8576
8577 PR tree-optimization/106249
8578 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
8579 Only verify LC SSA of the new_loop if we created it.
8580 Use TODO_update_ssa_nophi for the SSA update after versioning
8581 the loop.
8582
8583 2022-07-12 Aldy Hernandez <aldyh@redhat.com>
8584
8585 * range-op.cc (unsigned_singleton_p): Remove.
8586 (operator_bitwise_and::remove_impossible_ranges): Remove.
8587 (operator_bitwise_and::fold_range): Set nonzero bits. *
8588 * value-range.cc (irange::get_nonzero_bits): Remove
8589 legacy_mode_p assert.
8590 (irange::dump_bitmasks): Remove legacy_mode_p check.
8591
8592 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
8593
8594 PR target/106253
8595 * predict.h (insn_optimization_type): Declare.
8596 * predict.cc (insn_optimization_type): New function.
8597 * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
8598 (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
8599 (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
8600 * internal-fn.cc (unary_convert_direct): New macro.
8601 (expand_convert_optab_fn): New function.
8602 (expand_unary_convert_optab_fn): New macro.
8603 (direct_unary_convert_optab_supported_p): Likewise.
8604 * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
8605 convert_optab_handler.
8606 * config/aarch64/aarch64-protos.h
8607 (aarch64_builtin_vectorized_function): Delete.
8608 * config/aarch64/aarch64-builtins.cc
8609 (aarch64_builtin_vectorized_function): Delete.
8610 * config/aarch64/aarch64.cc
8611 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
8612 * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
8613 * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
8614 optimize_insn_for_size_p test.
8615
8616 2022-07-12 Richard Biener <rguenther@suse.de>
8617
8618 * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
8619 Remove.
8620 (vect_do_peeling): Do not call it, adjust comment.
8621
8622 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
8623
8624 * config/aarch64/aarch64-builtins.cc
8625 (aarch64_builtin_vectorized_function): Remove handling of
8626 floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
8627
8628 2022-07-11 Andrew MacLeod <amacleod@redhat.com>
8629
8630 PR tree-optimization/106234
8631 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
8632 cache value before recursively resolving it.
8633
8634 2022-07-11 Roger Sayle <roger@nextmovesoftware.com>
8635
8636 * config/i386/i386-features.h (scalar_chain): Add fields
8637 insns_conv, n_sse_to_integer and n_integer_to_sse to this
8638 parent class, moved from general_scalar_chain.
8639 (scalar_chain::convert_compare): Protected method moved
8640 from general_scalar_chain.
8641 (mark_dual_mode_def): Make protected, not private virtual.
8642 (scalar_chain:convert_op): New private virtual method.
8643 (general_scalar_chain::general_scalar_chain): Simplify constructor.
8644 (general_scalar_chain::~general_scalar_chain): Delete destructor.
8645 (general_scalar_chain): Move insns_conv, n_sse_to_integer and
8646 n_integer_to_sse fields to parent class, scalar_chain.
8647 (general_scalar_chain::mark_dual_mode_def): Delete prototype.
8648 (general_scalar_chain::convert_compare): Delete prototype.
8649 (timode_scalar_chain::compute_convert_gain): Remove simplistic
8650 implementation, convert to a method prototype.
8651 (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
8652 (timode_scalar_chain::convert_op): Prototype new virtual method.
8653 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
8654 Allocate insns_conv and initialize n_sse_to_integer and
8655 n_integer_to_sse fields in constructor.
8656 (scalar_chain::scalar_chain): Free insns_conv in destructor.
8657 (general_scalar_chain::general_scalar_chain): Delete
8658 constructor, now defined in the class declaration.
8659 (general_scalar_chain::~general_scalar_chain): Delete destructor.
8660 (scalar_chain::mark_dual_mode_def): Renamed from
8661 general_scalar_chain::mark_dual_mode_def.
8662 (timode_scalar_chain::mark_dual_mode_def): Delete.
8663 (scalar_chain::convert_compare): Renamed from
8664 general_scalar_chain::convert_compare.
8665 (timode_scalar_chain::compute_convert_gain): New method to
8666 determine the gain from converting a TImode chain to V1TImode.
8667 (timode_scalar_chain::convert_op): New method to convert an
8668 operand from TImode to V1TImode.
8669 (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
8670 on REG_EQUAL notes that were originally TImode (not CONST_INT).
8671 Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
8672 (timode_mem_p): Helper predicate to check where operand is
8673 memory reference with sufficient alignment for TImode STV.
8674 (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
8675 to check whether COMPARE is convertible. Handle SET_DESTs that
8676 that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
8677 CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
8678
8679 2022-07-11 Richard Sandiford <richard.sandiford@arm.com>
8680
8681 PR tree-optimization/106250
8682 * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
8683 argument to directly_supported_p.
8684
8685 2022-07-11 Richard Biener <rguenther@suse.de>
8686
8687 * tree-into-ssa.cc (update_ssa): Do not forcefully
8688 re-compute dominance fast queries for TODO_update_ssa_no_phi.
8689
8690 2022-07-11 Richard Biener <rguenther@suse.de>
8691
8692 PR tree-optimization/106228
8693 * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
8694 VUSE compute for the non-loop case.
8695
8696 2022-07-11 Richard Biener <rguenther@suse.de>
8697
8698 * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
8699 (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
8700 (rewrite_update_dom_walker::m_in_region_flag): New.
8701 (rewrite_update_dom_walker::before_dom_children): If the region
8702 to update is marked, STOP at exits.
8703 (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
8704 to be updated.
8705 (dump_update_ssa): Use bitmap_empty_p.
8706 (update_ssa): Likewise. Use REWRITE_UPDATE_REGION when
8707 TODO_update_ssa_no_phi.
8708 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
8709 pending update_ssa to the caller.
8710
8711 2022-07-11 Richard Biener <rguenthert@suse.de>
8712
8713 PR target/105459
8714 * config/i386/i386-options.cc (ix86_set_current_function):
8715 Rebuild the target optimization node whenever necessary,
8716 not only when the optimization node didn't change.
8717
8718 2022-07-11 Richard Biener <rguenther@suse.de>
8719
8720 PR tree-optimization/106228
8721 * tree-vect-data-refs.cc (vect_setup_realignment): Properly
8722 set a VUSE operand on the emitted load.
8723
8724 2022-07-11 Aldy Hernandez <aldyh@redhat.com>
8725
8726 * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
8727 verification against legacy value_range.
8728 (gimple_ranger::register_inferred_ranges): Same.
8729 (gimple_ranger::export_global_ranges): Rename update_global_range
8730 to set_range_info.
8731 * tree-core.h (struct range_info_def): Remove.
8732 (struct irange_storage_slot): New.
8733 (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
8734 (struct tree_ssa_name): Add vrange_storage support.
8735 * tree-ssanames.cc (range_info_p): New.
8736 (range_info_fits_p): New.
8737 (range_info_alloc): New.
8738 (range_info_free): New.
8739 (range_info_get_range): New.
8740 (range_info_set_range): New.
8741 (set_range_info_raw): Remove.
8742 (set_range_info): Adjust to use vrange_storage.
8743 (set_nonzero_bits): Same.
8744 (get_nonzero_bits): Same.
8745 (duplicate_ssa_name_range_info): Remove overload taking
8746 value_range_kind.
8747 Rewrite tree overload to use vrange_storage.
8748 (duplicate_ssa_name_fn): Adjust to use vrange_storage.
8749 * tree-ssanames.h (struct range_info_def): Remove.
8750 (set_range_info): Adjust prototype to take vrange.
8751 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
8752 duplicate_ssa_name_range_info.
8753 * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
8754 (SSA_NAME_RANGE_TYPE): Remove.
8755 * value-query.cc (get_ssa_name_range_info): Adjust to use
8756 vrange_storage.
8757 (update_global_range): Remove.
8758 (get_range_global): Remove as_a<irange>.
8759 * value-query.h (update_global_range): Remove.
8760 * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
8761 Rename update_global_range to set_range_info.
8762 * value-range-storage.cc (vrange_storage::alloc_slot): Remove
8763 gcc_unreachable.
8764
8765 2022-07-10 Aldy Hernandez <aldyh@redhat.com>
8766
8767 * value-range.cc (irange::operator=): Call verify_range.
8768 (irange::irange_set): Normalize kind after everything else has
8769 been set.
8770 (irange::irange_set_anti_range): Same.
8771 (irange::set): Same.
8772 (irange::verify_range): Disallow nonzero masks for VARYING.
8773 (irange::irange_union): Call verify_range.
8774 Handle nonzero masks better.
8775 (irange::irange_intersect): Same.
8776 (irange::set_nonzero_bits): Calculate mask if either range has an
8777 explicit mask.
8778 (irange::intersect_nonzero_bits): Same.
8779 (irange::union_nonzero_bits): Same.
8780 (range_tests_nonzero_bits): New.
8781 (range_tests): Call range_tests_nonzero_bits.
8782 * value-range.h (class irange): Remove set_nonzero_bits method
8783 with trees.
8784 (irange::varying_compatible_p): Set nonzero mask.
8785
8786 2022-07-10 Xi Ruoyao <xry111@xry111.site>
8787
8788 * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
8789 the sign-extend of result in the RTL template.
8790 (<any_div><mode>3): Adjust for <any_div>di3_fake change.
8791
8792 2022-07-10 Xi Ruoyao <xry111@xry111.site>
8793
8794 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
8795 Remove static, for use in the machine description file.
8796 * config/loongarch/loongarch-protos.h:
8797 (loongarch_check_zero_div_p): Add prototype.
8798 * config/loongarch/loongarch.md (enabled): New attr.
8799 (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
8800 idiv. Conditionally enable the alternatives using
8801 loongarch_check_zero_div_p.
8802 (<optab>di3_fake): Likewise.
8803
8804 2022-07-10 Xi Ruoyao <xry111@xry111.site>
8805
8806 * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
8807 instead of mul.d.
8808
8809 2022-07-09 Aldy Hernandez <aldyh@redhat.com>
8810
8811 * value-range.cc (irange::irange_single_pair_union): Set
8812 VR_VARYING when appropriate.
8813
8814 2022-07-09 Vit Kabele <vit.kabele@sysgo.com>
8815
8816 * stor-layout.cc (finalize_record_size): Extend warning message.
8817
8818 2022-07-09 Sam Feifer <sfeifer@redhat.com>
8819
8820 PR tree-optimization/98304
8821 * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
8822
8823 2022-07-09 Jeff Law <jeffreyalaw@gmail.com>
8824
8825 * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
8826 initializer and use clear_storage rather than copying the
8827 NULs to the destination array.
8828
8829 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
8830
8831 * config/i386/i386.md (define_peephole2): Use match_operand of
8832 flags_reg_operand to capture and preserve the mode of FLAGS_REG.
8833 (define_peephole2): Likewise.
8834 (define_peephole2): Likewise...
8835
8836 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
8837
8838 * config/i386/i386-features.cc (convert_compare): Add support
8839 for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
8840 by generating a pandn followed by ptest.
8841 (convertible_comparison_p): Recognize both *cmpdi_doubleword and
8842 recent *testdi_not_doubleword comparison patterns.
8843
8844 2022-07-09 Tamar Christina <tamar.christina@arm.com>
8845
8846 * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
8847 indicate that the value is not undefined.
8848
8849 2022-07-09 Andrew Pinski <apinski@marvell.com>
8850
8851 PR tree-optimization/106087
8852 * tree-ssa-dce.cc (simple_dce_from_worklist): Check
8853 to make sure the statement is only defining one operand.
8854
8855 2022-07-08 Lewis Hyatt <lhyatt@gmail.com>
8856
8857 PR preprocessor/91733
8858 * input.cc (find_end_of_line): New helper function.
8859 (file_cache_slot::get_next_line): Recognize \r as a line ending.
8860 * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
8861 since \r will now be interpreted as a line-ending.
8862
8863 2022-07-08 Martin Liska <mliska@suse.cz>
8864
8865 PR sanitizer/106132
8866 * opts.cc (finish_options): Use 2 calls to
8867 report_conflicting_sanitizer_options.
8868
8869 2022-07-08 Richard Biener <rguenther@suse.de>
8870
8871 PR tree-optimization/106226
8872 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
8873 no SSA update is needed. Move virtual SSA update ...
8874 * tree-vectorizer.cc (pass_vectorize::execute): ... here,
8875 via forced virtual renaming when TODO_update_ssa_only_virtuals
8876 is queued.
8877 (vect_transform_loops): Return TODO_update_ssa_only_virtuals
8878 when virtual SSA update is required.
8879 (try_vectorize_loop_1): Adjust.
8880 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
8881 virtual renaming if the ABI forces an aggregate return
8882 but the original call did not have a virtual definition.
8883
8884 2022-07-08 Martin Liska <mliska@suse.cz>
8885
8886 * toplev.cc (init_asm_output): Do not init asm_out_file.
8887
8888 2022-07-08 Tamar Christina <tamar.christina@arm.com>
8889
8890 PR tree-optimization/106063
8891 * match.pd: Do not apply pattern after veclower is not supported.
8892
8893 2022-07-08 Thomas Schwinge <thomas@codesourcery.com>
8894
8895 * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
8896 'fn2' computation.
8897
8898 2022-07-08 Tamar Christina <tamar.christina@arm.com>
8899
8900 * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
8901 still undefined and if so emit a subreg move instead.
8902 (store_integral_bit_field): Likewise.
8903 (store_bit_field): Likewise.
8904 * expr.h (write_complex_part): Likewise.
8905 * expmed.h (store_bit_field): Add new parameter.
8906 * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
8907 parameter.
8908 (expand_ifn_atomic_compare_exchange): Likewise.
8909 * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
8910 * emit-rtl.cc (validate_subreg): Likewise.
8911 * expr.cc (emit_group_store): Likewise.
8912 (copy_blkmode_from_reg): Likewise.
8913 (copy_blkmode_to_reg): Likewise.
8914 (clear_storage_hints): Likewise.
8915 (write_complex_part): Likewise.
8916 (emit_move_complex_parts): Likewise.
8917 (expand_assignment): Likewise.
8918 (store_expr): Likewise.
8919 (store_field): Likewise.
8920 (expand_expr_real_2): Likewise.
8921 * ifcvt.cc (noce_emit_move_insn): Likewise.
8922 * internal-fn.cc (expand_arith_set_overflow): Likewise.
8923 (expand_arith_overflow_result_store): Likewise.
8924 (expand_addsub_overflow): Likewise.
8925 (expand_neg_overflow): Likewise.
8926 (expand_mul_overflow): Likewise.
8927 (expand_arith_overflow): Likewise.
8928
8929 2022-07-08 Haochen Jiang <haochen.jiang@intel.com>
8930
8931 PR target/106180
8932 * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
8933 Rename from *sse2_cvtps2pd<mask_name>_1.
8934 (vec_unpacks_lo_v4sf): Add handler for memory operand.
8935
8936 2022-07-08 Lulu Cheng <chenglulu@loongson.cn>
8937
8938 * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
8939 Modify fp_sp_offset and gp_sp_offset's calculation method,
8940 when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
8941 or UNITS_PER_FP_REG.
8942
8943 2022-07-07 David Malcolm <dmalcolm@redhat.com>
8944
8945 * diagnostic-format-json.cc (json_from_location_range): Update for
8946 removal of label_text::maybe_free in favor of automatic memory
8947 management.
8948 * diagnostic-format-sarif.cc
8949 (sarif_builder::make_location_object): Likewise.
8950 * diagnostic-show-locus.cc (struct pod_label_text): New.
8951 (class line_label): Convert m_text from label_text to pod_label_text.
8952 (layout::print_any_labels): Move "text" to the line_label.
8953 * tree-diagnostic-path.cc (path_label::get_text): Update for
8954 removal of label_text::maybe_free in favor of automatic memory
8955 management.
8956 (event_range::print): Likewise.
8957 (default_tree_diagnostic_path_printer): Likewise.
8958 (default_tree_make_json_for_path): Likewise.
8959
8960 2022-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8961
8962 * statistics.cc (get_function_name): Add check to see if fn is not NULL.
8963
8964 2022-07-07 Richard Biener <rguenther@suse.de>
8965
8966 * tree-into-ssa.cc (iterating_old_ssa_names): New.
8967 (add_new_name_mapping): Grow {new,old}_ssa_names separately
8968 and only when actually needed. Assert we are not growing
8969 the old_ssa_names set when iterating over it.
8970 (update_ssa): Remove old_ssa_names copying and empty_p
8971 query, note we are iterating over it and expect no set changes.
8972
8973 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
8974
8975 * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
8976 (prepare_target_image, main): Handle OpenMP 'requires'.
8977 (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
8978 'GOMP_offload_unregister_ver'.
8979
8980 2022-07-07 Richard Biener <rguenther@suse.de>
8981
8982 PR target/106219
8983 * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
8984 set DECL_PURE_P.
8985
8986 2022-07-07 Richard Biener <rguenther@suse.de>
8987
8988 * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
8989 number of LC PHIs inserted.
8990 (add_exit_phis): Return whether any variable required
8991 multiple LC PHI nodes.
8992 (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
8993 when possible.
8994
8995 2022-07-07 Richard Biener <rguenther@suse.de>
8996
8997 * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
8998 the def loop exit block bitmap as argument instead of
8999 re-computing it here.
9000 (add_exit_phis_var): Adjust.
9001 (loop_name_cmp): New function.
9002 (add_exit_phis): Sort variables to insert LC PHI nodes
9003 after definition loop, for each definition loop compute
9004 the exit block bitmap once.
9005 (get_loops_exit): Remove.
9006 (rewrite_into_loop_closed_ssa_1): Do not pre-record
9007 all loop exit blocks into bitmaps. Record loop exits
9008 if required.
9009
9010 2022-07-07 Dimitrije Milosevic <Dimitrije.Milosevic@Syrmia.com>
9011
9012 * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
9013 to handle the N32 ABI.
9014 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
9015 the macro, as it is not needed anymore.
9016
9017 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
9018
9019 * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
9020 '[...]_data'.
9021 * config/nvptx/mkoffload.cc (process): Likewise.
9022
9023 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
9024
9025 * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
9026
9027 2022-07-05 Andrew MacLeod <amacleod@redhat.com>
9028
9029 * value-relation.cc (relation_to_code): New vector.
9030 (relation_oracle::validate_relation): New.
9031 (set_relation): Allow ssa1 == ssa2 to be registered.
9032 * value-relation.h (validate_relation): New prototype.
9033 (query_relation): Make internal variant protected.
9034
9035 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
9036
9037 * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
9038 for double word comparisons and tests (comparisons against zero).
9039 * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
9040 and;cmp into andn;cmp $0 as a pre-reload splitter.
9041 (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
9042 (*<any_or><dwi>3_doubleword): Likewise.
9043
9044 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
9045 Hongtao Liu <hongtao.liu@intel.com>
9046
9047 * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
9048 CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
9049 * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
9050 and gen_ssse3_palignv1ti instead of TImode.
9051 * config/i386/sse.md (SSESCALARMODE): Delete.
9052 (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
9053 (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
9054 iterator instead of SSESCALARMODE.
9055 (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
9056 using a single move instruction (if required).
9057
9058 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
9059 Uroš Bizjak <ubizjak@gmail.com>
9060
9061 PR rtl-optimization/96692
9062 * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
9063 as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
9064
9065 2022-07-05 Richard Biener <rguenther@suse.de>
9066
9067 PR tree-optimization/106198
9068 * tree-cfgcleanup.cc (repair_loop_structures): Always do a
9069 full LC SSA rewrite but only if any blocks changed loop
9070 depth.
9071
9072 2022-07-05 Richard Biener <rguenther@suse.de>
9073
9074 * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
9075 (find_uses_to_rename_in_loop): Likewise.
9076 (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
9077 uses.
9078 (rewrite_into_loop_closed_ssa): Adjust.
9079
9080 2022-07-05 Richard Biener <rguenther@suse.de>
9081
9082 PR tree-optimization/106186
9083 * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
9084 Properly handle virtual PHI nodes.
9085
9086 2022-07-05 Richard Biener <rguenther@suse.de>
9087
9088 PR tree-optimization/106196
9089 * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
9090 handle aggregate returns of calls for VDEF updates.
9091
9092 2022-07-05 Richard Biener <rguenther@suse.de>
9093
9094 * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
9095 Maintain LC SSA.
9096
9097 2022-07-05 Richard Sandiford <richard.sandiford@arm.com>
9098
9099 * tree-vect-patterns.cc (vect_convert_input): Expect the input
9100 type to be signed for optab_vector_mixed_sign. Update the vectype
9101 at the same time as type.
9102 (vect_recog_dot_prod_pattern): Update accordingly. If usdot isn't
9103 available, try sdot instead.
9104 * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
9105 (vect_model_reduction_cost): Model the cost of implementing usdot
9106 using sdot.
9107 (vectorizable_reduction): Likewise. Skip target support test
9108 for lane reductions.
9109 (vect_emulate_mixed_dot_prod): New function.
9110 (vect_transform_reduction): Use it to emulate usdot via sdot.
9111
9112 2022-07-05 Richard Biener <rguenther@suse.de>
9113
9114 PR tree-optimization/106182
9115 * loop-init.cc (fix_loop_structure): Return the number
9116 of newly discovered plus the number of deleted loops.
9117 * tree-cfgcleanup.cc (repair_loop_structures): Adjust
9118 variable name.
9119
9120 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
9121
9122 * gimple-range-fold.cc
9123 (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
9124 call to SCEV for irange supported types.
9125 (fold_using_range::range_of_builtin_int_call): Convert to vrange.
9126 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
9127 * tree-ssa-dom.cc (cprop_operand): Same.
9128
9129 2022-07-04 Roger Sayle <roger@nextmovesoftware.com>
9130
9131 PR target/104489
9132 * calls.cc (precompute_register_parameters): Allow promotion
9133 of floating point values to be passed in wider integer modes
9134 by calling new convert_float_to_wider_int.
9135 (expand_call): Allow floating point results to be returned in
9136 wider integer modes by calling new convert wider_int_to_float.
9137 * cfgexpand.cc (expand_value_return): Allow backends to promote
9138 a scalar floating point return value to a wider integer mode
9139 by calling new convert_float_to_wider_int.
9140 * expr.cc (convert_float_to_wider_int): New function.
9141 (convert_wider_int_to_float): Likewise.
9142 (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
9143 scalar FP PARM_DECLs to wider integer modes, by calling new
9144 convert_wider_int_to_float.
9145 * expr.h (convert_modes): Name arguments for improved documentation.
9146 (convert_float_to_wider_int): Prototype new function here.
9147 (convert_wider_int_to_float): Likewise.
9148 * function.cc (assign_parm_setup_stack): Allow floating point
9149 values to be passed on the stack as wider integer modes by
9150 calling new convert_wider_int_to_float.
9151
9152 2022-07-04 Martin Jambor <mjambor@suse.cz>
9153
9154 PR tree-optimization/105860
9155 * tree-sra.cc (build_reconstructed_reference): Start expr
9156 traversal only just below the outermost union.
9157
9158 2022-07-04 Richard Biener <rguenther@suse.de>
9159
9160 * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
9161 and update virtual SSA form again. Assert we do so for
9162 a known set of transforms only.
9163 * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
9164 * tree-vect-stmts.cc (vectorizable_load): When vectorizing
9165 using load-lanes allow virtual SSA update.
9166
9167 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
9168 Chung-Lin Tang <cltang@codesourcery.com>
9169 Thomas Schwinge <thomas@codesourcery.com>
9170
9171 * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
9172 (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
9173 (main): Ask lto1 to obtain omp_requires_mask and pass it on.
9174 * config/nvptx/mkoffload.cc (process, main): Likewise.
9175 * lto-cgraph.cc (omp_requires_to_name): New.
9176 (input_offload_tables): Save omp_requires_mask.
9177 (output_offload_tables): Read it, check for consistency,
9178 save value for mkoffload.
9179 * omp-low.cc (lower_omp_target): Force output_offloadtables
9180 call for OMP_REQUIRES_TARGET_USED.
9181
9182 2022-07-04 Richard Biener <rguenther@suse.de>
9183
9184 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
9185 no SSA update is needed instead of updating virtual SSA
9186 form.
9187 * tree-vect-stmts.cc (vectorizable_load): For hoisted
9188 invariant load use the loop entry virtual use.
9189 For emulated gather loads use the virtual use of the
9190 original stmt like vect_finish_stmt_generation would do.
9191
9192 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
9193
9194 * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
9195 for direct circularity.
9196
9197 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
9198
9199 * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
9200 the language for vector types.
9201
9202 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
9203
9204 * value-range-storage.cc (irange_storage_slot::set_irange): Set
9205 nonzero bits in irange.
9206 (irange_storage_slot::get_irange): Get nonzero bits from irange.
9207 * value-range.cc (irange::operator=): Set nonzero bits.
9208 (irange::irange_set): Same.
9209 (irange::irange_set_anti_range): Same.
9210 (irange::set): Same.
9211 (irange::verify_range): Same.
9212 (irange::legacy_equal_p): Check nonzero bits.
9213 (irange::equal_p): Same.
9214 (irange::contains_p): Handle nonzero bits.
9215 (irange::irange_union): Same.
9216 (irange::irange_intersect): Same.
9217 (irange::dump): Same.
9218 (irange::set_nonzero_bits): New.
9219 (irange::get_nonzero_bits): New.
9220 (irange::intersect_nonzero_bits): New.
9221 (irange::union_nonzero_bits): New.
9222 (irange::dump_bitmasks): New.
9223 * value-range.h (class irange): Add m_nonzero_mask.
9224 (gt_ggc_mx): Handle nonzero bits.
9225 (gt_pch_nx): Same.
9226 (irange::set_undefined): Set nonzero bits.
9227 (irange::set_varying): Same.
9228 (irange::normalize_kind): Call set_undefined.
9229
9230 2022-07-04 Richard Biener <rguenther@suse.de>
9231
9232 * tree-ssa-loop-manip.h
9233 (rewrite_virtuals_into_loop_closed_ssa): Remove.
9234 (rewrite_into_loop_closed_ssa_1): Likewise.
9235 * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
9236 Make static.
9237 (rewrite_into_loop_closed_ssa): Remove loop overload,
9238 always rewrite virtuals into LC SSA.
9239 (check_loop_closed_ssa_bb): Also check virtuals.
9240 * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
9241 LC PHIs when in LC SSA.
9242 * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
9243 loop-closed SSA here, but ...
9244 (tree_loop_unroll_and_jam): ... here once.
9245 * tree-if-conv.cc (version_loop_for_if_conversion): Use
9246 the cheaper TODO_update_ssa_no_phi.
9247 * tree-loop-distribution.cc (version_loop_by_alias_check):
9248 Likewise.
9249 * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
9250 Likewise.
9251 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
9252 (tree_unswitch_outer_loop): Do not rewrite virtuals into
9253 LC ssa.
9254 * tree-parloops.cc (transform_to_exit_first_loop_alt):
9255 Likewise.
9256 (pass_parallelize_loops::execute): After finishing rewrite
9257 into LC SSA again because we do not maintain it properly.
9258
9259 2022-07-04 Richard Biener <rguenther@suse.de>
9260
9261 PR tree-optimization/106055
9262 * graphite.cc (canonicalize_loop_closed_ssa): Check whether
9263 we can propagate.
9264
9265 2022-07-04 Haochen Jiang <haochen.jiang@intel.com>
9266
9267 PR target/43618
9268 * config/i386/sse.md (extendv2sfv2df2): New define_expand.
9269 (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
9270 (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
9271
9272 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
9273
9274 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
9275 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
9276 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
9277 with two arguments.
9278 (find_unswitching_predicates_for_bb): Same.
9279 * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
9280 * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
9281 * value-range.cc (irange::equal_p): Rename to...
9282 (irange::operator==): ...this.
9283 * value-range.h (irange::set): Remove.
9284 (irange::operator==): Remove.
9285 (irange::set_zero): Use set with two arguments.
9286 * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
9287 (vr_values::extract_range_from_unary_expr): Same.
9288 (check_for_binary_op_overflow): Same.
9289 (bounds_of_var_in_loop): Same.
9290
9291 2022-07-03 H.J. Lu <hjl.tools@gmail.com>
9292
9293 PR target/106022
9294 * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
9295 New.
9296 * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
9297 New.
9298 * config/i386/mmx.md (V_16_32_64): New.
9299 (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
9300 and 64-bit constant vector.
9301 * config/i386/predicates.md (x86_64_const_vector_operand): New.
9302
9303 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
9304
9305 * gimple-range-cache.cc: Include value-range-storage.h.
9306 * gimple-range-cache.h (class block_range_cache): Add "class" to
9307 m_range_allocator.
9308 * gimple-range-edge.cc
9309 (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
9310 (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
9311 (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
9312 * gimple-range-edge.h: Add "class" to m_range_allocator.
9313 * gimple-range-infer.cc
9314 (infer_range_manager::infer_range_manager): Allocate allocator.
9315 (infer_range_manager::~infer_range_manager): Free allocator.
9316 (infer_range_manager::get_nonzero): Dereference allocator.
9317 (infer_range_manager::add_range): Same.
9318 * gimple-range-infer.h (class vrange_allocator): Add "class" to
9319 m_range_allocator.
9320 * value-range-storage.h (class vrange_allocator): Move from
9321 value-range.h.
9322 (class obstack_vrange_allocator): Same.
9323 (class ggc_vrange_allocator): Same.
9324 (vrange_allocator::alloc_vrange): Same.
9325 (vrange_allocator::alloc_irange): Same.
9326 * value-range.h (class vrange_allocator): Move to value-range-storage.h.
9327 (class obstack_vrange_allocator): Same.
9328 (class ggc_vrange_allocator): Same.
9329
9330 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
9331
9332 * Makefile.in (OBJS): Add value-range-storage.o.
9333 (GTFILES): Add value-range-storage.h.
9334 * gengtype.cc (open_base_files): Add value-range-storage.h.
9335 * value-range-storage.cc: New file.
9336 * value-range-storage.h: New file.
9337
9338 2022-07-03 Xi Ruoyao <xry111@xry111.site>
9339 Lulu Cheng <chenglulu@loongson.cn>
9340
9341 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
9342 New static function.
9343 (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
9344 of TARGET_CHECK_ZERO_DIV.
9345 (loongarch_output_division): Likewise.
9346 * common/config/loongarch/loongarch-common.cc
9347 (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
9348 * doc/invoke.texi: Update to match the new behavior.
9349
9350 2022-07-03 Ian Lance Taylor <iant@golang.org>
9351
9352 * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
9353 statement if -fdelete-dead-exceptions.
9354
9355 2022-07-02 Tim Lange <mail@tim-lange.me>
9356
9357 PR analyzer/105900
9358 * doc/invoke.texi: Added Wanalyzer-allocation-size.
9359
9360 2022-07-02 Immad Mir <mirimmad17@gmail.com>
9361
9362 PR analyzer/106003
9363 * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
9364 * doc/invoke.texi: Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
9365 -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
9366 -Wanalyzer-fd-use-after-close.
9367
9368 2022-07-01 Aldy Hernandez <aldyh@redhat.com>
9369
9370 * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
9371 (trailing_wide_ints::set_precision): Add num_elements argument.
9372 (trailing_wide_ints::extra_size): Same.
9373
9374 2022-07-01 Uroš Bizjak <ubizjak@gmail.com>
9375
9376 * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
9377 Use "r" constraint for operand 1.
9378
9379 2022-07-01 Richard Biener <rguenther@suse.de>
9380
9381 * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
9382 Do not look at interesting_blocks which is a copy of
9383 blocks_to_update.
9384 (update_ssa): Do not initialize it.
9385 (pass_build_ssa::execute): Set interesting_blocks to NULL
9386 after releasing it.
9387
9388 2022-07-01 Richard Biener <rguenther@suse.de>
9389
9390 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
9391 back to using maybe_ne (off, -1).
9392
9393 2022-07-01 Richard Biener <rguenther@suse.de>
9394
9395 * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
9396 checking dominance check conditional on flag_checking.
9397
9398 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
9399
9400 * config/gcn/gcn-protos.h (print_operand_address): Remove register
9401 keyword on 'rtx addr' argument.
9402
9403 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
9404 Uroš Bizjak <ubizjak@gmail.com>
9405
9406 * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
9407 to post-reload define_insn_and_split.
9408
9409 2022-07-01 Jakub Jelinek <jakub@redhat.com>
9410
9411 PR middle-end/106144
9412 * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
9413 emitting element for shift or if shift is 0 first element after start.
9414 (wide_int_cc_tests): Add tests for equivalency of wi::mask and
9415 wi::shifted_mask with 0 start.
9416
9417 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
9418
9419 PR target/106122
9420 * config/i386/i386.md (peephole2): Avoid generating pop %esp
9421 when optimizing for size.
9422
9423 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
9424 Uroš Bizjak <ubizjak@gmail.com>
9425
9426 * config/i386/i386.md (general_szext_operand): Add TImode
9427 support using x86_64_hilo_general_operand predicate.
9428 (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
9429 (*add<dwi>3_doubleword): Improved optimization of zero addition.
9430 (and<mode>3): Use SDWIM mode iterator to add support for double
9431 word bit-wise AND in TImode. Use force_reg when double word
9432 immediate operand isn't x86_64_hilo_general_operand.
9433 (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
9434 converted into a post-reload splitter.
9435 (*andndi3_doubleword): Previous define_insn deleted.
9436 (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
9437 TARGET_BMI that splits post-reload.
9438 (*andn<mode>3_doubleword): New define_insn_and_split for
9439 !TARGET_BMI, that lowers/splits before reload.
9440 (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
9441 double word bit-wise XOR and bit-wise IOR in TImode. Use
9442 force_reg when double word immediate operand isn't
9443 x86_64_hilo_general_operand.
9444 (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
9445 (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
9446 double word bit-wise NOT in TImode.
9447 (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
9448 and converted into a post-reload splitter.
9449
9450 2022-07-01 Eric Botcazou <ebotcazou@adacore.com>
9451
9452 PR middle-end/105874
9453 * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
9454 EXPAND_MEMORY for the expansion of the inner reference only
9455 in the usual cases where a memory reference is required.
9456
9457 2022-07-01 Richard Biener <rguenther@suse.de>
9458
9459 PR tree-optimization/106131
9460 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
9461 zero when offsetting the read looking through an aggregate
9462 copy.
9463
9464 2022-07-01 Martin Liska <mliska@suse.cz>
9465
9466 PR tree-optimization/106126
9467 * gimple-if-to-switch.cc (struct condition_info): Save
9468 has_side_effect.
9469 (find_conditions): Parse all BBs.
9470 (pass_if_to_switch::execute): Allow only side effects for first
9471 BB.
9472
9473 2022-07-01 Haochen Jiang <haochen.jiang@intel.com>
9474
9475 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
9476 Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
9477 OPTION_MASK_ISA2_AVX512BF16_UNSET and
9478 OPTION_MASK_ISA2_AVX512FP16_UNSET.
9479
9480 2022-06-30 Joseph Myers <joseph@codesourcery.com>
9481
9482 PR lto/106129
9483 * lto-wrapper.cc (find_option): Add argument start.
9484 (merge_and_complain): Loop over existing_opt_index and
9485 existing_opt2_index for Xassembler check. Update calls to
9486 find_option.
9487 (find_and_merge_options): Add argument first to determine whether
9488 to merge options with those passed in *opts.
9489 (run_gcc): Update calls to find_and_merge_options.
9490
9491 2022-06-30 Aldy Hernandez <aldyh@redhat.com>
9492
9493 * gimple-range-cache.cc (block_range_cache::block_range_cache):
9494 Rename vrange_allocator to obstack_vrange_allocator.
9495 (ssa_global_cache::ssa_global_cache): Same.
9496 * gimple-range-edge.h (class gimple_outgoing_range): Same.
9497 * gimple-range-infer.h (class infer_range_manager): Same.
9498 * value-range.h (class vrange_allocator): Make abstract.
9499 (class obstack_vrange_allocator): Inherit from vrange_allocator.
9500 (class ggc_vrange_allocator): New.
9501
9502 2022-06-30 Roger Sayle <roger@nextmovesoftware.com>
9503 Uroš Bizjak <ubizjak@gmail.com>
9504
9505 * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
9506 provide gen_swapsi.
9507 (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
9508 via new gen_<insn>32di2_doubleword below.
9509 (<anyrotate>32di2_doubleword): New define_insn_and_split
9510 that splits after reload as either a pair of move instructions
9511 or an xchgl (using gen_swapsi).
9512
9513 2022-06-30 Richard Biener <rguenther@suse.de>
9514
9515 * domwalk.h (dom_walker::dom_walker): Update comment to
9516 reflect reality and new special argument value for
9517 bb_index_to_rpo.
9518 * domwalk.cc (dom_walker::dom_walker): Recognize -1
9519 bb_index_to_rpo.
9520 * tree-into-ssa.cc
9521 (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
9522 dom_walker to not use RPO.
9523
9524 2022-06-30 Martin Liska <mliska@suse.cz>
9525
9526 * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
9527 it is unused.
9528
9529 2022-06-30 Andrew MacLeod <amacleod@redhat.com>
9530
9531 PR tree-optimization/106114
9532 * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
9533 statement operands instead of GORI cache.
9534
9535 2022-06-30 Antoni Boucher <bouanto@zoho.com>
9536
9537 PR target/106095
9538 * config/i386/sse.md: Fix asm generation.
9539
9540 2022-06-29 Sergei Trofimovich <siarheit@google.com>
9541
9542 PR c++/106102
9543 * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
9544
9545 2022-06-29 Joseph Myers <joseph@codesourcery.com>
9546
9547 * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
9548 not gen_const_mem for UNSPEC_PIC_CALL_SYM.
9549
9550 2022-06-29 Richard Biener <rguenther@suse.de>
9551
9552 PR rtl-optimization/106082
9553 * combine.cc (distribute_notes): Preserve notes when
9554 they indicate a call doesn't perform a non-local goto.
9555
9556 2022-06-29 Richard Biener <rguenther@suse.de>
9557
9558 PR tree-optimization/106112
9559 * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
9560 a constant operand according to its type.
9561
9562 2022-06-29 Martin Liska <mliska@suse.cz>
9563
9564 * doc/invoke.texi: Remove removed evrp-mode.
9565
9566 2022-06-29 Lulu Cheng <chenglulu@loongson.cn>
9567
9568 PR target/106097
9569 * config/loongarch/loongarch.cc (loongarch_build_integer):
9570 Remove undefined behavior from code.
9571
9572 2022-06-28 Dimitar Dimitrov <dimitar@dinux.eu>
9573
9574 * doc/sourcebuild.texi: Document new no_alignment_constraints
9575 effective target check.
9576
9577 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
9578
9579 * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
9580 * flag-types.h (enum evrp_mode): Remove.
9581 * params.opt: Remove --param=evrp-mode.
9582 * tree-vrp.cc (make_pass_early_vrp): New.
9583 (pass_vrp::execute): Call early VRP instance.
9584 * gimple-ssa-evrp-analyze.cc: Removed.
9585 * gimple-ssa-evrp-analyze.h: Removed.
9586 * gimple-ssa-evrp.cc: Removed.
9587
9588 2022-06-28 Alexandre Oliva <oliva@adacore.com>
9589
9590 * Makefile.in (TFLAGS): New.
9591 (GCC_FOR_TARGET): Add TFLAGS.
9592 (FLAGS_TO_PASS): Pass TFLAGS down.
9593
9594 2022-06-28 Richard Biener <rguenther@suse.de>
9595
9596 * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
9597 call update_ssa.
9598
9599 2022-06-28 Richard Biener <rguenther@suse.de>
9600
9601 * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
9602 mark_block_for_update.
9603 (update_ssa): Adjust.
9604
9605 2022-06-28 Xi Ruoyao <xry111@xry111.site>
9606
9607 PR target/106096
9608 * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
9609 $r13 from SIBCALL_REGS.
9610 * config/loongarch/loongarch.cc (loongarch_regno_to_class):
9611 Change $r13 to JIRL_REGS.
9612
9613 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
9614
9615 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
9616 irange::supports_p.
9617
9618 2022-06-28 Richard Biener <rguenther@suse.de>
9619
9620 PR middle-end/106053
9621 * match.pd ((T)a == (T)b): Avoid folding away sign
9622 changes in a comparison if we'd truncate to a boolean.
9623
9624 2022-06-28 Kewen Lin <linkw@linux.ibm.com>
9625
9626 * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
9627 iterator GPR with SImode, adjust the condition and output template,
9628 rename to ...
9629 (*rotlsi3_insert_4): ... this.
9630
9631 2022-06-27 David Malcolm <dmalcolm@redhat.com>
9632
9633 * genmatch.cc: Add "final" and "override" to various vfunc
9634 implementations, removing redundant "virtual" as appropriate.
9635 * gensupport.cc: Likewise.
9636 * gimple-range-cache.h: Likewise.
9637 * ipa-icf-gimple.h: Likewise.
9638 * ipa-icf.h: Likewise.
9639 * read-md.h: Likewise.
9640 * read-rtl-function.cc: Likewise.
9641 * tree-ssa-loop-ch.cc: Likewise.
9642 * tree-ssa-sccvn.cc: Likewise.
9643
9644 2022-06-27 David Malcolm <dmalcolm@redhat.com>
9645
9646 * config/i386/i386-features.h: Add "final" and "override" to
9647 scalar_chain vfunc implementations as appropriate.
9648
9649 2022-06-27 David Malcolm <dmalcolm@redhat.com>
9650
9651 * tree-switch-conversion.h: Add "final" and "override" to cluster
9652 vfunc implementations as appropriate.
9653
9654 2022-06-27 David Malcolm <dmalcolm@redhat.com>
9655
9656 * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
9657 implementations as appropriate.
9658
9659 2022-06-27 David Malcolm <dmalcolm@redhat.com>
9660
9661 * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
9662 implementations, removing redundant "virtual" as appropriate.
9663 * gimple-ssa-strength-reduction.cc: Likewise.
9664 * ipa-prop.cc: Likewise.
9665 * rtl-ssa/blocks.cc: Likewise.
9666 * tree-into-ssa.cc: Likewise.
9667 * tree-ssa-dom.cc: Likewise.
9668 * tree-ssa-math-opts.cc: Likewise.
9669 * tree-ssa-phiopt.cc: Likewise.
9670 * tree-ssa-propagate.cc: Likewise.
9671 * tree-ssa-sccvn.cc: Likewise.
9672 * tree-ssa-strlen.cc: Likewise.
9673 * tree-ssa-uncprop.cc: Likewise.
9674
9675 2022-06-27 David Malcolm <dmalcolm@redhat.com>
9676
9677 * adjust-alignment.cc: Add "final" and "override" to opt_pass
9678 vfunc implementations, removing redundant "virtual" as
9679 appropriate.
9680 * asan.cc: Likewise.
9681 * auto-inc-dec.cc: Likewise.
9682 * auto-profile.cc: Likewise.
9683 * bb-reorder.cc: Likewise.
9684 * cfgcleanup.cc: Likewise.
9685 * cfgexpand.cc: Likewise.
9686 * cfgrtl.cc: Likewise.
9687 * cgraphbuild.cc: Likewise.
9688 * combine-stack-adj.cc: Likewise.
9689 * combine.cc: Likewise.
9690 * compare-elim.cc: Likewise.
9691 * config/i386/i386-features.cc: Likewise.
9692 * coroutine-passes.cc: Likewise.
9693 * cprop.cc: Likewise.
9694 * cse.cc: Likewise.
9695 * dce.cc: Likewise.
9696 * df-core.cc: Likewise.
9697 * dse.cc: Likewise.
9698 * dwarf2cfi.cc: Likewise.
9699 * early-remat.cc: Likewise.
9700 * except.cc: Likewise.
9701 * final.cc: Likewise.
9702 * function.cc: Likewise.
9703 * fwprop.cc: Likewise.
9704 * gcse.cc: Likewise.
9705 * gimple-harden-conditionals.cc: Likewise.
9706 * gimple-if-to-switch.cc: Likewise.
9707 * gimple-isel.cc: Likewise.
9708 * gimple-laddress.cc: Likewise.
9709 * gimple-loop-interchange.cc: Likewise.
9710 * gimple-loop-jam.cc: Likewise.
9711 * gimple-loop-versioning.cc: Likewise.
9712 * gimple-low.cc: Likewise.
9713 * gimple-ssa-backprop.cc: Likewise.
9714 * gimple-ssa-evrp.cc: Likewise.
9715 * gimple-ssa-isolate-paths.cc: Likewise.
9716 * gimple-ssa-nonnull-compare.cc: Likewise.
9717 * gimple-ssa-split-paths.cc: Likewise.
9718 * gimple-ssa-store-merging.cc: Likewise.
9719 * gimple-ssa-strength-reduction.cc: Likewise.
9720 * gimple-ssa-warn-access.cc: Likewise.
9721 * gimple-ssa-warn-alloca.cc: Likewise.
9722 * gimple-ssa-warn-restrict.cc: Likewise.
9723 * gimple-warn-recursion.cc: Likewise.
9724 * graphite.cc: Likewise.
9725 * ifcvt.cc: Likewise.
9726 * init-regs.cc: Likewise.
9727 * ipa-comdats.cc: Likewise.
9728 * ipa-cp.cc: Likewise.
9729 * ipa-devirt.cc: Likewise.
9730 * ipa-fnsummary.cc: Likewise.
9731 * ipa-free-lang-data.cc: Likewise.
9732 * ipa-icf.cc: Likewise.
9733 * ipa-inline.cc: Likewise.
9734 * ipa-modref.cc: Likewise.
9735 * ipa-profile.cc: Likewise.
9736 * ipa-pure-const.cc: Likewise.
9737 * ipa-reference.cc: Likewise.
9738 * ipa-split.cc: Likewise.
9739 * ipa-sra.cc: Likewise.
9740 * ipa-visibility.cc: Likewise.
9741 * ipa.cc: Likewise.
9742 * ira.cc: Likewise.
9743 * jump.cc: Likewise.
9744 * loop-init.cc: Likewise.
9745 * lower-subreg.cc: Likewise.
9746 * mode-switching.cc: Likewise.
9747 * modulo-sched.cc: Likewise.
9748 * multiple_target.cc: Likewise.
9749 * omp-expand.cc: Likewise.
9750 * omp-low.cc: Likewise.
9751 * omp-oacc-kernels-decompose.cc: Likewise.
9752 * omp-oacc-neuter-broadcast.cc: Likewise.
9753 * omp-offload.cc: Likewise.
9754 * omp-simd-clone.cc: Likewise.
9755 * passes.cc: Likewise.
9756 * postreload-gcse.cc: Likewise.
9757 * postreload.cc: Likewise.
9758 * predict.cc: Likewise.
9759 * recog.cc: Likewise.
9760 * ree.cc: Likewise.
9761 * reg-stack.cc: Likewise.
9762 * regcprop.cc: Likewise.
9763 * reginfo.cc: Likewise.
9764 * regrename.cc: Likewise.
9765 * reorg.cc: Likewise.
9766 * sancov.cc: Likewise.
9767 * sanopt.cc: Likewise.
9768 * sched-rgn.cc: Likewise.
9769 * stack-ptr-mod.cc: Likewise.
9770 * store-motion.cc: Likewise.
9771 * tracer.cc: Likewise.
9772 * trans-mem.cc: Likewise.
9773 * tree-call-cdce.cc: Likewise.
9774 * tree-cfg.cc: Likewise.
9775 * tree-cfgcleanup.cc: Likewise.
9776 * tree-complex.cc: Likewise.
9777 * tree-eh.cc: Likewise.
9778 * tree-emutls.cc: Likewise.
9779 * tree-if-conv.cc: Likewise.
9780 * tree-into-ssa.cc: Likewise.
9781 * tree-loop-distribution.cc: Likewise.
9782 * tree-nrv.cc: Likewise.
9783 * tree-object-size.cc: Likewise.
9784 * tree-parloops.cc: Likewise.
9785 * tree-predcom.cc: Likewise.
9786 * tree-profile.cc: Likewise.
9787 * tree-sra.cc: Likewise.
9788 * tree-ssa-ccp.cc: Likewise.
9789 * tree-ssa-copy.cc: Likewise.
9790 * tree-ssa-dce.cc: Likewise.
9791 * tree-ssa-dom.cc: Likewise.
9792 * tree-ssa-dse.cc: Likewise.
9793 * tree-ssa-forwprop.cc: Likewise.
9794 * tree-ssa-ifcombine.cc: Likewise.
9795 * tree-ssa-loop-ch.cc: Likewise.
9796 * tree-ssa-loop-im.cc: Likewise.
9797 * tree-ssa-loop-ivcanon.cc: Likewise.
9798 * tree-ssa-loop-prefetch.cc: Likewise.
9799 * tree-ssa-loop-split.cc: Likewise.
9800 * tree-ssa-loop-unswitch.cc: Likewise.
9801 * tree-ssa-loop.cc: Likewise.
9802 * tree-ssa-math-opts.cc: Likewise.
9803 * tree-ssa-phiopt.cc: Likewise.
9804 * tree-ssa-phiprop.cc: Likewise.
9805 * tree-ssa-pre.cc: Likewise.
9806 * tree-ssa-reassoc.cc: Likewise.
9807 * tree-ssa-sccvn.cc: Likewise.
9808 * tree-ssa-sink.cc: Likewise.
9809 * tree-ssa-strlen.cc: Likewise.
9810 * tree-ssa-structalias.cc: Likewise.
9811 * tree-ssa-uncprop.cc: Likewise.
9812 * tree-ssa-uninit.cc: Likewise.
9813 * tree-ssanames.cc: Likewise.
9814 * tree-stdarg.cc: Likewise.
9815 * tree-switch-conversion.cc: Likewise.
9816 * tree-tailcall.cc: Likewise.
9817 * tree-vect-generic.cc: Likewise.
9818 * tree-vectorizer.cc: Likewise.
9819 * tree-vrp.cc: Likewise.
9820 * tsan.cc: Likewise.
9821 * ubsan.cc: Likewise.
9822 * var-tracking.cc: Likewise.
9823 * vtable-verify.cc: Likewise.
9824 * web.cc: Likewise.
9825
9826 2022-06-27 Andrew Stubbs <ams@codesourcery.com>
9827
9828 * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
9829 (jump): Likewise.
9830 (movdi_symbol_save_scc): Likewise.
9831
9832 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
9833
9834 PR rtl-optimization/7061
9835 * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
9836
9837 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
9838
9839 PR tree-optimization/94026
9840 * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
9841 (((X >> C1) & C2) eq/ne C3): Likewise.
9842
9843 2022-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9844
9845 * statistics.cc: Include tree.h.
9846 (get_function_name): New function.
9847 (statistics_fini_pass_2): Call get_function_name instead of
9848 current_function_name.
9849 (statistics_counter_event): Call get_function_name instead of
9850 function_name.
9851 (statistics_histogram_event): Likewise.
9852
9853 2022-06-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9854
9855 * config/xtensa/xtensa.md:
9856 Suppress unnecessary emitting nop insn in the split patterns for
9857 integer/FP constant synthesis, and add new peephole2 pattern that
9858 folds such synthesized additions.
9859
9860 2022-06-25 Aldy Hernandez <aldyh@redhat.com>
9861
9862 * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
9863 instead of evrp.
9864 (dom_jt_state::push): Remove m_evrp.
9865 (dom_jt_state::pop): Same.
9866 (dom_jt_state::record_ranges_from_stmt): Remove.
9867 (dom_jt_state::register_equiv): Remove updating of evrp ranges.
9868 (class dom_jt_simplifier): Pass ranger to constructor.
9869 Inherit from hybrid_jt_simplifier.
9870 (dom_jt_simplifier::simplify): Convert to ranger.
9871 (pass_dominator::execute): Same.
9872 (all_uses_feed_or_dominated_by_stmt): New.
9873 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
9874 (dom_opt_dom_walker::before_dom_children): Call
9875 set_global_ranges_from_unreachable_edges.
9876 Do not call record_ranges_from_stmt.
9877 (dom_opt_dom_walker::after_dom_children): Remove evrp use.
9878 (cprop_operand): Use int_range<> instead of value_range.
9879 (dom_opt_dom_walker::fold_cond): New.
9880 (dom_opt_dom_walker::optimize_stmt): Pass ranger to
9881 cprop_into_stmt.
9882 Use fold_cond() instead of vrp_visit_cond_stmt().
9883 * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
9884 pass state to simplifier.
9885 * vr-values.h (class vr_values): Make fold_cond public.
9886
9887 2022-06-25 Jeff Law <jeffreyalaw@gmail.com>
9888
9889 * common/config/tilegx/tilegx-common.cc: Removed.
9890 * common/config/tilepro/tilepro-common.cc: Removed.
9891 * config.gcc: Remove tilegx and tilepro entries.
9892 * config/tilegx/constraints.md: Removed.
9893 * config/tilegx/feedback.h: Removed.
9894 * config/tilegx/linux.h: Removed.
9895 * config/tilegx/mul-tables.cc: Removed.
9896 * config/tilegx/predicates.md: Removed.
9897 * config/tilegx/sync.md: Removed.
9898 * config/tilegx/t-tilegx: Removed.
9899 * config/tilegx/tilegx-builtins.h: Removed.
9900 * config/tilegx/tilegx-c.cc: Removed.
9901 * config/tilegx/tilegx-generic.md: Removed.
9902 * config/tilegx/tilegx-modes.def: Removed.
9903 * config/tilegx/tilegx-multiply.h: Removed.
9904 * config/tilegx/tilegx-opts.h: Removed.
9905 * config/tilegx/tilegx-protos.h: Removed.
9906 * config/tilegx/tilegx.cc: Removed.
9907 * config/tilegx/tilegx.h: Removed.
9908 * config/tilegx/tilegx.md: Removed.
9909 * config/tilegx/tilegx.opt: Removed.
9910 * config/tilepro/constraints.md: Removed.
9911 * config/tilepro/feedback.h: Removed.
9912 * config/tilepro/gen-mul-tables.cc: Removed.
9913 * config/tilepro/linux.h: Removed.
9914 * config/tilepro/mul-tables.cc: Removed.
9915 * config/tilepro/predicates.md: Removed.
9916 * config/tilepro/t-tilepro: Removed.
9917 * config/tilepro/tilepro-builtins.h: Removed.
9918 * config/tilepro/tilepro-c.cc: Removed.
9919 * config/tilepro/tilepro-generic.md: Removed.
9920 * config/tilepro/tilepro-modes.def: Removed.
9921 * config/tilepro/tilepro-multiply.h: Removed.
9922 * config/tilepro/tilepro-protos.h: Removed.
9923 * config/tilepro/tilepro.cc: Removed.
9924 * config/tilepro/tilepro.h: Removed.
9925 * config/tilepro/tilepro.md: Removed.
9926 * config/tilepro/tilepro.opt: Removed.
9927 * configure.ac: Remove tilegx and tilepro entries.
9928 * configure: Rebuilt.
9929 * doc/extend.texi: Remove tilegx and tilepro entries.
9930 * doc/install.texi: Remove tilegx and tilepro entries.
9931 * doc/invoke.texi: Remove tilegx and tilepro entries.
9932 * doc/md.texi: Remove tilegx and tilepro entries.
9933
9934 2022-06-25 Roger Sayle <roger@nextmovesoftware.com>
9935 Richard Biener <rguenther@suse.de>
9936
9937 * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
9938 iteration over each basic block that was updated by the second
9939 iteration.
9940
9941 2022-06-24 Jason Merrill <jason@redhat.com>
9942
9943 PR c++/87729
9944 PR c++/20423
9945 * doc/invoke.texi: Document changes.
9946
9947 2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
9948
9949 * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
9950 condition to avoid overflow.
9951
9952 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
9953
9954 * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
9955 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
9956 * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
9957 OPTION_MASK_PPC_GFXOPT.
9958 * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
9959 * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
9960 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
9961 * config/rs6000/rs6000-c.cc: Update comment.
9962 * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
9963 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
9964 MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
9965 (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
9966 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
9967 * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
9968 MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
9969 MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
9970 MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
9971
9972 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
9973
9974 * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
9975 OPTION_MASK_MFCRF.
9976 * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
9977 OPTION_MASK_MULTIPLE.
9978 * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
9979 * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
9980 OPTION_MASK_MFCRF.
9981 * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
9982 OPTION_MASK_EABI.
9983 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
9984 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
9985 MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
9986 * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
9987 MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
9988 MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
9989 MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
9990 MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
9991 Replace with
9992 OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
9993 OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
9994 OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
9995 OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
9996 OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
9997 OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
9998 OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
9999 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
10000 MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
10001 * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
10002 with OPTION_MASK_MULTIPLE.
10003 (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
10004 MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
10005 MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
10006 MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
10007 MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
10008 * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
10009 with OPTION_MASK_EABI.
10010
10011 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
10012
10013 * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
10014 RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
10015 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
10016 RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
10017 OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
10018 OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
10019 OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
10020 * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
10021 RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
10022 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
10023 RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
10024
10025 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
10026
10027 * config/rs6000/rs6000-c.cc: Update comments.
10028 * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
10029 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
10030 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
10031 RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
10032 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
10033 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
10034 OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
10035 OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
10036 OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
10037 OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
10038 OPTION_MASK_MMA, OPTION_MASK_POWER10.
10039 * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
10040 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
10041 RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
10042 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
10043 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
10044
10045 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
10046
10047 * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
10048 MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
10049 OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
10050
10051 2022-06-24 Richard Biener <rguenther@suse.de>
10052
10053 PR middle-end/106070
10054 * match.pd (a != b ? a : b): Fix translation of
10055 operand_equal_for_comparison_p.
10056
10057 2022-06-24 Jan Hubicka <jh@suse.cz>
10058
10059 PR ipa/106057
10060 * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
10061
10062 2022-06-24 Martin Liska <mliska@suse.cz>
10063
10064 PR middle-end/106059
10065 * profile-count.h: *= and /= operators need to modify this
10066 object.
10067
10068 2022-06-24 Roger Sayle <roger@nextmovesoftware.com>
10069 Uroš Bizjak <ubizjak@gmail.com>
10070
10071 PR target/105930
10072 * config/i386/i386.md (*<any_or>di3_doubleword): Split after
10073 reload. Use rtx_equal_p to avoid creating memory-to-memory moves,
10074 and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
10075
10076 2022-06-24 Alexandre Oliva <oliva@adacore.com>
10077
10078 * common.opt (nostdlib++): New.
10079 * doc/invoke.texi (-nostdlib++): Document it.
10080
10081 2022-06-24 Alexandre Oliva <oliva@adacore.com>
10082
10083 * doc/sourcebuild.texi (Environment attributes): Document
10084 two_plus_gigs.
10085
10086 2022-06-23 David Malcolm <dmalcolm@redhat.com>
10087
10088 * common.opt (fdiagnostics-show-rules): New option.
10089 * diagnostic-format-json.cc (diagnostic_output_format_init_json):
10090 Fix up context->show_rules.
10091 * diagnostic-format-sarif.cc
10092 (diagnostic_output_format_init_sarif): Likewise.
10093 * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
10094 (diagnostic_metadata::precanned_rule): New class.
10095 (diagnostic_metadata::add_rule): New.
10096 (diagnostic_metadata::get_num_rules): New.
10097 (diagnostic_metadata::get_rule): New.
10098 (diagnostic_metadata::m_rules): New field.
10099 * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
10100 (print_any_rules): New.
10101 (diagnostic_report_diagnostic): Call it.
10102 * diagnostic.h (diagnostic_context::show_rules): New field.
10103 * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
10104 * opts.cc (common_handle_option): Handle
10105 OPT_fdiagnostics_show_rules.
10106 * toplev.cc (general_init): Set up global_dc->show_rules.
10107
10108 2022-06-23 Martin Liska <mliska@suse.cz>
10109
10110 PR c++/106062
10111 * ubsan.cc (sanitize_unreachable_fn): Change order of calls
10112 in order to initialize UBSAN built-ins.
10113
10114 2022-06-23 Martin Liska <mliska@suse.cz>
10115
10116 PR ipa/105600
10117 * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
10118 Skip variables with body_removed.
10119
10120 2022-06-23 liuhongt <hongtao.liu@intel.com>
10121
10122 * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
10123 reg_or_subregno.
10124 (sse4_2_pcmpistr): Ditto.
10125
10126 2022-06-23 Xionghu Luo <xionghuluo@tencent.com>
10127
10128 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
10129 typo.
10130 * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
10131 * tree-switch-conversion.h: Likewise.
10132
10133 2022-06-22 Jason Merrill <jason@redhat.com>
10134
10135 PR c++/104642
10136 * common.opt: Add -funreachable-traps.
10137 * doc/invoke.texi (-funreachable-traps): Document it.
10138 * opts.cc (finish_options): Enable at -O0 or -Og.
10139 * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
10140 (builtin_decl_unreachable, build_builtin_unreachable): New.
10141 * tree.h: Declare them.
10142 * ubsan.cc (sanitize_unreachable_fn): Factor out.
10143 (ubsan_instrument_unreachable): Use
10144 gimple_build_builtin_unreachable.
10145 * ubsan.h (sanitize_unreachable_fn): Declare.
10146 * gimple.cc (gimple_build_builtin_unreachable): New.
10147 * gimple.h: Declare it.
10148 * builtins.cc (expand_builtin_unreachable): Add assert.
10149 (fold_builtin_0): Call build_builtin_unreachable.
10150 * sanopt.cc: Don't run for just SANITIZE_RETURN
10151 or SANITIZE_UNREACHABLE when trapping.
10152 * cgraphunit.cc (walk_polymorphic_call_targets): Use new
10153 unreachable functions.
10154 * gimple-fold.cc (gimple_fold_call)
10155 (gimple_get_virt_method_for_vtable)
10156 * ipa-fnsummary.cc (redirect_to_unreachable)
10157 * ipa-prop.cc (ipa_make_edge_direct_to_target)
10158 (ipa_impossible_devirt_target)
10159 * ipa.cc (walk_polymorphic_call_targets)
10160 * tree-cfg.cc (pass_warn_function_return::execute)
10161 (execute_fixup_cfg)
10162 * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
10163 (unloop_loops)
10164 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
10165 Likewise.
10166
10167 2022-06-22 Richard Sandiford <richard.sandiford@arm.com>
10168
10169 PR tree-optimization/106019
10170 * tree-data-ref.cc (dr_may_alias_p): Try using the
10171 innermost_loop_behavior to disambiguate non-loop queries.
10172
10173 2022-06-22 Palmer Dabbelt <palmer@rivosinc.com>
10174
10175 * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
10176
10177 2022-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10178
10179 * config/xtensa/xtensa.md (bswapsi2_internal):
10180 Enlarge the buffer that is obviously smaller than the template
10181 string given to sprintf().
10182
10183 2022-06-21 Roger Sayle <roger@nextmovesoftware.com>
10184 Marek Polacek <polacek@redhat.com>
10185 Segher Boessenkool <segher@kernel.crashing.org>
10186 Kewen Lin <linkw@linux.ibm.com>
10187
10188 PR target/105991
10189 * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
10190 exact_log2 doesn't return -1 (or zero).
10191 (plus_xor): New code iterator.
10192 (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
10193
10194 2022-06-21 Nathan Sidwell <nathan@acm.org>
10195
10196 * doc/invoke.texi (C++ Modules): Remove language-linkage
10197 as missing feature.
10198
10199 2022-06-21 Arjun Shankar <arjun@redhat.com>
10200
10201 PR tree-optimization/94899
10202 * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
10203 0x80000000): New simplification.
10204
10205 2022-06-21 Jakub Jelinek <jakub@redhat.com>
10206
10207 PR rtl-optimization/106032
10208 * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
10209 t may_trap_or_fault_p, even if it is cheap.
10210
10211 2022-06-21 Jakub Jelinek <jakub@redhat.com>
10212
10213 PR middle-end/106030
10214 * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
10215 temp to expand_operands if mode has been promoted.
10216
10217 2022-06-21 Xionghu Luo <xionghuluo@tencent.com>
10218
10219 PR target/105740
10220 * gimple-if-to-switch.cc (find_conditions): Don't skip the first
10221 condition bb.
10222
10223 2022-06-21 Siddhesh Poyarekar <siddhesh@gotplt.org>
10224
10225 PR tree-optimization/105736
10226 * tree-object-size.cc (addr_object_size): Return size_unknown
10227 when object offset computation returns an error.
10228
10229 2022-06-20 H.J. Lu <hjl.tools@gmail.com>
10230
10231 PR target/105960
10232 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
10233 false if PIC register is used when calling ifunc functions.
10234
10235 2022-06-20 Richard Biener <rguenther@suse.de>
10236
10237 PR middle-end/106027
10238 * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
10239 type of the prevailing comparison for the new comparison type.
10240 (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
10241 to A < X && A >= Y folding.
10242
10243 2022-06-20 Kewen Lin <linkw@linux.ibm.com>
10244
10245 PR tree-optimization/105940
10246 * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
10247 slp_done_for_suggested_uf and adjust with it accordingly.
10248 (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
10249 pass it down to vect_analyze_loop_2 for the initial analysis and
10250 applying suggested unroll factor.
10251 (vect_is_simple_reduction): Add parameter slp and adjust with it.
10252 (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
10253 (vect_analyze_scalar_cycles): Likewise.
10254
10255 2022-06-20 Martin Liska <mliska@suse.cz>
10256
10257 * bb-reorder.cc (find_traces_1_round): Add operators / and * and
10258 use them.
10259 (better_edge_p): Likewise.
10260 * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
10261 * cfgloopmanip.cc (scale_loop_profile): Likewise.
10262 * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
10263 * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
10264 * config/sh/sh.cc (expand_cbranchdi4): Likewise.
10265 * dojump.cc (do_compare_rtx_and_jump): Likewise.
10266 * final.cc (compute_alignments): Likewise.
10267 * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
10268 (decide_about_value): Likewise.
10269 * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
10270 * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
10271 * modulo-sched.cc (sms_schedule): Likewise.
10272 * omp-expand.cc (extract_omp_for_update_vars): Likewise.
10273 (expand_omp_ordered_sink): Likewise.
10274 (expand_omp_for_ordered_loops): Likewise.
10275 (expand_omp_for_static_nochunk): Likewise.
10276 * predict.cc (maybe_hot_count_p): Likewise.
10277 (probably_never_executed): Likewise.
10278 (set_even_probabilities): Likewise.
10279 (handle_missing_profiles): Likewise.
10280 (expensive_function_p): Likewise.
10281 * profile-count.h: Likewise.
10282 * profile.cc (compute_branch_probabilities): Likewise.
10283 * stmt.cc (emit_case_dispatch_table): Likewise.
10284 * symtab-thunks.cc (expand_thunk): Likewise.
10285 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
10286 * tree-ssa-sink.cc (select_best_block): Likewise.
10287 * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
10288 (switch_decision_tree::balance_case_nodes): Likewise.
10289 (switch_decision_tree::emit_case_nodes): Likewise.
10290 * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
10291
10292 2022-06-20 yulong <shiyulong@iscas.ac.cn>
10293
10294 * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
10295 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
10296 of RISCV_BUILTIN.
10297 * config/riscv/riscv-ftypes.def (0): Remove unused.
10298 (1): New.
10299
10300 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10301
10302 * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
10303 Consider relaxed MOVI instructions as L32R.
10304
10305 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10306
10307 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
10308 Use can_create_pseudo_p(), instead of using individual
10309 reload_in_progress and reload_completed.
10310 (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
10311 the existing predicate function.
10312 (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
10313 Use the standard RTX code predicate macros such as MEM_P,
10314 SYMBOL_REF_P and/or CONST_INT_P.
10315 * config/xtensa/xtensa.md: Avoid using numeric literals to determine
10316 if callee-saved register, at the split patterns for indirect sibcall
10317 fixups.
10318
10319 2022-06-18 Jakub Jelinek <jakub@redhat.com>
10320
10321 * common.opt (flag_sanitize_trap): New variable.
10322 (fsanitize-trap=, fsanitize-trap): New options.
10323 (fsanitize-undefined-trap-on-error): Change into deprecated alias
10324 for -fsanitize-trap=all.
10325 * opts.h (struct sanitizer_opts_s): Add can_trap member.
10326 * opts.cc (finish_options): Complain about unsupported
10327 -fsanitize-trap= options.
10328 (sanitizer_opts): Add can_trap values to all entries.
10329 (get_closest_sanitizer_option): Ignore -fsanitize-trap=
10330 options which have can_trap false.
10331 (parse_sanitizer_options): Add support for -fsanitize-trap=.
10332 For -fsanitize-trap=all, enable
10333 SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT. Disallow
10334 -fsanitize-trap=vptr here.
10335 (common_handle_option): Handle OPT_fsanitize_trap_ and
10336 OPT_fsanitize_trap.
10337 * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
10338 flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
10339 flag_sanitize_undefined_trap_on_error.
10340 * gcc.cc (sanitize_spec_function): Use
10341 flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
10342 and drop use of flag_sanitize_undefined_trap_on_error in
10343 "undefined" handling.
10344 * ubsan.cc (ubsan_instrument_unreachable): Use
10345 flag_sanitize_trap & SANITIZE_??? instead of
10346 flag_sanitize_undefined_trap_on_error.
10347 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
10348 ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
10349 ubsan_build_overflow_builtin, instrument_bool_enum_load,
10350 ubsan_instrument_float_cast, instrument_nonnull_arg,
10351 instrument_nonnull_return, instrument_builtin): Likewise.
10352 * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
10353 (-fsanitize-undefined-trap-on-error): Document as deprecated
10354 alias of -fsanitize-trap.
10355
10356 2022-06-18 Jakub Jelinek <jakub@redhat.com>
10357
10358 PR middle-end/105998
10359 * varasm.cc (narrowing_initializer_constant_valid_p): Check
10360 SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
10361 ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
10362
10363 2022-06-18 Roger Sayle <roger@nextmovesoftware.com>
10364
10365 PR tree-optimization/105835
10366 * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
10367 Narrow integer multiplication by a zero_one_valued_p operand.
10368 (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
10369 conversions inside COND_EXPR where both data operands are
10370 integer constants.
10371
10372 2022-06-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10373
10374 * config/xtensa/constraints.md (Y):
10375 Change to include integer constants until reload begins.
10376 * config/xtensa/predicates.md (move_operand): Ditto.
10377 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
10378 Change to allow storing integer constants into litpool only after
10379 reload begins.
10380
10381 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
10382
10383 PR target/105209
10384 * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
10385 * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
10386 (alpha_store_data_bypass_p_1): Ditto.
10387 * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
10388 of generic store_data_bypass_p.
10389 (ev4_ist_c): Remove insn reservation.
10390
10391 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
10392
10393 PR target/105970
10394 * config/i386/i386.cc (ix86_function_arg): Assert that
10395 the mode of pointer argumet is equal to ptr_mode, not Pmode.
10396
10397 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
10398
10399 PR target/105993
10400 * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
10401 instead of REGNO comparisons in combine splitter.
10402
10403 2022-06-17 Segher Boessenkool <segher@kernel.crashing.org>
10404
10405 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
10406 types.
10407
10408 2022-06-17 Kito Cheng <kito.cheng@sifive.com>
10409
10410 * config/riscv/bitmanip.md: Supress warning.
10411
10412 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
10413
10414 PR target/106004
10415 * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
10416 Clear bits in the mask above bit 31.
10417
10418 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
10419
10420 * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
10421 to avoid spilling trivial literals to the constant pool.
10422
10423 2022-06-16 David Malcolm <dmalcolm@redhat.com>
10424
10425 * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
10426 auto_diagnostic_group to group any warning with its note.
10427 (maybe_warn_for_bound): Likewise.
10428 (check_access): Likewise.
10429 (warn_dealloc_offset): Likewise.
10430 (pass_waccess::maybe_warn_memmodel): Likewise.
10431 (pass_waccess::maybe_check_dealloc_call): Likewise.
10432 (pass_waccess::warn_invalid_pointer): Likewise.
10433 (pass_waccess::check_dangling_stores): Likewise.
10434
10435 2022-06-16 Jason Merrill <jason@redhat.com>
10436
10437 * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
10438 opts_set->x_flag_sanitize.
10439
10440 2022-06-16 Jason Merrill <jason@redhat.com>
10441
10442 * flags.h (issue_strict_overflow_warning): Comment #endif.
10443
10444 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
10445
10446 * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
10447 was invaraint before, clear the invariant bit.
10448 * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
10449 * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
10450
10451 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
10452
10453 * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
10454
10455 2022-06-16 Jakub Jelinek <jakub@redhat.com>
10456
10457 PR tree-optimization/105983
10458 * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
10459 y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
10460 on non-equality comparisons.
10461
10462 2022-06-16 Jakub Jelinek <jakub@redhat.com>
10463
10464 PR tree-optimization/105984
10465 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
10466 x > stype_max / cst || x < stype_min / cst): fold_convert @1
10467 to TREE_TYPE (@0) just once and test for negative divisor
10468 also on that folded constant instead of on @1.
10469
10470 2022-06-16 Jakub Jelinek <jakub@redhat.com>
10471
10472 PR middle-end/105951
10473 * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
10474 optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
10475 as last argument to the internal functions.
10476 * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
10477 extra call argument to ifns. If expand_atomic_fetch_op fails for the
10478 lhs == NULL_TREE case, fall through into the optab code with
10479 gen_reg_rtx (mode) as target. If second expand_atomic_fetch_op
10480 fails, construct a CALL_EXPR and expand that.
10481 (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
10482 to ifns. If expand_atomic_fetch_op fails, construct a CALL_EXPR and
10483 expand that.
10484
10485 2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org>
10486
10487 PR target/103316
10488 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
10489 gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
10490 RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
10491 RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
10492 * config/rs6000/vector.md (VEC_IC): New mode iterator. Add support
10493 for new Power10 V1TI instructions.
10494 (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
10495 (vec_cmpu<mode><mode>): Likewise.
10496 (vector_nlt<mode>): Set mode iterator to VEC_IC.
10497 (vector_nltv1ti): Remove.
10498 (vector_gtu<mode>): Set mode iterator to VEC_IC.
10499 (vector_gtuv1ti): Remove.
10500 (vector_nltu<mode>): Set mode iterator to VEC_IC.
10501 (vector_nltuv1ti): Remove.
10502 (vector_geu<mode>): Set mode iterator to VEC_IC.
10503 (vector_ngt<mode>): Likewise.
10504 (vector_ngtv1ti): Remove.
10505 (vector_ngtu<mode>): Set mode iterator to VEC_IC.
10506 (vector_ngtuv1ti): Remove.
10507 (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
10508 (vector_gtu_v1ti_p): Remove.
10509 (vrotl<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
10510 (vrotlv1ti3): Remove.
10511 (vashr<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
10512 (vashrv1ti3): Remove.
10513
10514 2022-06-16 Martin Liska <mliska@suse.cz>
10515
10516 * gengtype-state.cc (read_a_state_token): Do not skip extra
10517 character after escaped sequence.
10518
10519 2022-06-16 Martin Liska <mliska@suse.cz>
10520
10521 PR driver/105564
10522 * spellcheck.cc (test_find_closest_string): Add new test.
10523 * spellcheck.h (class best_match): Prefer a difference in
10524 trailing sign symbol.
10525
10526 2022-06-16 liuhongt <hongtao.liu@intel.com>
10527
10528 PR tree-optimization/53533
10529 * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
10530 (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
10531 and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
10532
10533 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10534
10535 * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
10536
10537 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10538
10539 * config/xtensa/predicates.md (reload_operand):
10540 New predicate.
10541 * config/xtensa/xtensa.md: New peephole2 pattern.
10542
10543 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10544
10545 * config/xtensa/xtensa.md (*round_up_to_even):
10546 New insn-and-split pattern.
10547 (*signed_ge_zero): Ditto.
10548
10549 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10550
10551 * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
10552 xtensa_emit_sibcall): New prototypes.
10553 (xtensa_expand_epilogue): Add new argument that specifies whether
10554 or not sibling call.
10555 * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
10556 New macro definition.
10557 (xtensa_prepare_expand_call): New function in order to share
10558 the common code.
10559 (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
10560 New functions.
10561 (xtensa_expand_epilogue): Add new argument sibcall_p and use it
10562 for sibling call handling.
10563 * config/xtensa/xtensa.md (call, call_value):
10564 Use xtensa_prepare_expand_call.
10565 (call_internal, call_value_internal):
10566 Add the condition in order to be disabled if sibling call.
10567 (sibcall, sibcall_value, sibcall_epilogue): New expansions.
10568 (sibcall_internal, sibcall_value_internal): New insn patterns,
10569 and split ones in order to take care of the indirect sibcalls.
10570
10571 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10572
10573 * doc/invoke.texi: Document -mextra-l32r-costs= option.
10574
10575 2022-06-15 David Malcolm <dmalcolm@redhat.com>
10576
10577 PR analyzer/105962
10578 * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
10579 * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
10580 Extend -fdiagnostics-path-format=separate-events so that with
10581 -fdiagnostics-show-path-depths it prints fndecls as well as stack
10582 depths.
10583
10584 2022-06-15 David Malcolm <dmalcolm@redhat.com>
10585
10586 * value-relation.h: Add "final" and "override" to relation_oracle
10587 vfunc implementations as appropriate.
10588
10589 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
10590
10591 PR middle-end/105975
10592 Revert everything apart from the expand_fn_using_insn and
10593 expand_direct_optab_fn changes from:
10594 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
10595 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
10596 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
10597 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
10598 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
10599 member variable.
10600 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
10601 (direct_internal_fn_p): Also return true for internal functions
10602 that map directly to instructions defined target-insns.def.
10603 (direct_internal_fn): Adjust comment accordingly.
10604 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
10605 (vectorizable_optab2): New local macros.
10606 (not_direct): Initialize directly_mapped.
10607 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
10608 (gather_load_direct, len_load_direct, mask_store_direct)
10609 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
10610 (vec_cond_direct, scatter_store_direct, len_store_direct)
10611 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
10612 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
10613 (while_direct, fold_extract_direct, fold_left_direct)
10614 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
10615 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
10616 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
10617 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
10618 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
10619 (direct_internal_fn_types): Handle functions that map to instructions
10620 defined in target-insns.def.
10621 (direct_internal_fn_types): Likewise.
10622 (direct_internal_fn_supported_p): Likewise.
10623 (internal_fn_expanders): Likewise.
10624 (expand_fn_using_insn): New function,
10625 split out and adapted from...
10626 (expand_direct_optab_fn): ...here.
10627 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
10628 (expand_GOMP_SIMT_EXIT): Likewise.
10629 (expand_GOMP_SIMT_LANE): Likewise.
10630 (expand_GOMP_SIMT_LAST_LANE): Likewise.
10631 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
10632 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
10633 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
10634 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
10635
10636 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
10637
10638 PR target/105981
10639 * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
10640 to first_reg and second_reg respectively. Initialize them correctly
10641 when generating big-endian code.
10642
10643 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
10644
10645 PR target/105974
10646 * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
10647
10648 2022-06-15 Richard Biener <rguenther@suse.de>
10649
10650 PR tree-optimization/105971
10651 * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
10652 FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
10653 to leak less surprising alias results.
10654
10655 2022-06-15 Richard Biener <rguenther@suse.de>
10656
10657 PR tree-optimization/105969
10658 * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
10659 by zero in overflow check.
10660
10661 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
10662
10663 PR tree-optimization/105254
10664 PR tree-optimization/105940
10665 Revert:
10666 * config/aarch64/aarch64.cc
10667 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
10668 loop_vec_info as argument. Restrict the unroll factor to values
10669 that divide the VF.
10670 (aarch64_vector_costs::finish_cost): Update call accordingly.
10671
10672 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
10673
10674 * read-rtl.cc (find_int): Substitute symbolic constants
10675 before converting the string to an integer.
10676
10677 2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
10678 Richard Biener <rguenther@suse.de>
10679
10680 * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
10681 left shifts by a constant when the result is truncated, and the
10682 shift constant is well-defined.
10683 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
10684 support for rotations of signed integer types, by lowering
10685 using unsigned vector shifts.
10686
10687 2022-06-15 liuhongt <hongtao.liu@intel.com>
10688
10689 PR target/105953
10690 * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
10691 operands[3].
10692
10693 2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
10694
10695 PR rtl-optimization/105041
10696 * regrename.cc (check_new_reg_p): Use nregs value from du chain.
10697
10698 2022-06-14 Segher Boessenkool <segher@kernel.crashing.org>
10699
10700 * config/rs6000/vsx.md (VS_scalar): Delete.
10701 (rest of file): Adjust.
10702
10703 2022-06-14 Jan Hubicka <hubicka@ucw.cz>
10704
10705 PR ipa/105739
10706 * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
10707
10708 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
10709
10710 * config/riscv/bitmanip.md: Add split to handle opportunities
10711 for slli + sh[123]add.uw
10712
10713 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
10714
10715 * config/riscv/predicates.md (consecutive_bits_operand):
10716 Implement new predicate.
10717
10718 2022-06-14 Richard Biener <rguenther@suse.de>
10719
10720 PR tree-optimization/105946
10721 * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
10722 Do not look at arguments not specified in the function call.
10723
10724 2022-06-14 Richard Biener <rguenther@suse.de>
10725
10726 PR middle-end/105965
10727 * match.pd (view_convert CONSTRUCTOR): Handle single-element
10728 CTOR case.
10729
10730 2022-06-14 Eric Botcazou <ebotcazou@adacore.com>
10731
10732 * warning-control.cc (copy_warning) [generic version]: Do not erase
10733 the warning data of the destination location when the no-warning
10734 bit is not set on the source.
10735 (copy_warning) [tree version]: Return early if TO is equal to FROM.
10736 (copy_warning) [gimple version]: Likewise.
10737
10738 2022-06-14 Kewen Lin <linkw@linux.ibm.com>
10739
10740 PR tree-optimization/105940
10741 * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
10742 applying suggested_unroll_factor after start_over.
10743
10744 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10745
10746 * config/xtensa/predicates.md (shifted_mask_operand):
10747 New predicate.
10748 * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
10749 New insn-and-split pattern.
10750 (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
10751 *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
10752 *masktrue_const_shifted_mask): Ditto.
10753
10754 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10755
10756 * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
10757
10758 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10759
10760 * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
10761 Remove the first argument.
10762 (xtensa_emit_bit_branch): Remove it because now called only from the
10763 output statement of *bittrue insn pattern.
10764 * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
10765 argument 'p_invert', and make so that the condition is reversed by
10766 itself as needed.
10767 (xtensa_expand_conditional_branch): Share the common path, and remove
10768 condition inversion code.
10769 (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
10770 "false side" pattern.
10771 (xtensa_emit_bit_branch): Remove it because of the abovementioned
10772 reason, and move the function body to *bittrue insn pattern.
10773 * config/xtensa/xtensa.md (*bittrue): Transplant the output
10774 statement from removed xtensa_emit_bit_branch().
10775 (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
10776 insn patterns.
10777
10778 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10779
10780 * config/xtensa/predicates.md (logical_shift_operator,
10781 xtensa_shift_per_byte_operator): New predicates.
10782 * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
10783 New prototype.
10784 * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
10785 New helper function for funnel shift patterns.
10786 * config/xtensa/xtensa.md (ior_op): New code iterator.
10787 (*ashlsi3_1): Replace with new split pattern.
10788 (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
10789 (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
10790 New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
10791 in order to omit unnecessary bitwise AND operation.
10792 (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
10793 *shlrd_per_byte_<code>_omit_AND):
10794 New insn patterns for funnel shifts.
10795
10796 2022-06-13 Jason Merrill <jason@redhat.com>
10797
10798 * tree-cfg.cc (pass_warn_function_return::execute): Also check
10799 BUILT_IN_TRAP.
10800
10801 2022-06-13 Maciej W. Rozycki <macro@embecosm.com>
10802
10803 * config/riscv/riscv.md (length): Remove the explicit setting
10804 for "fcmp".
10805
10806 2022-06-13 H.J. Lu <hjl.tools@gmail.com>
10807
10808 * common/config/i386/cpuinfo.h (get_available_features): Require
10809 AVX for F16C and VAES.
10810
10811 2022-06-13 Uroš Bizjak <ubizjak@gmail.com>
10812
10813 PR target/105927
10814 * config/i386/predicates.md (register_no_elim_operand):
10815 Return true for subreg of a memory operand.
10816
10817 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
10818
10819 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
10820 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
10821 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
10822 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
10823 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
10824 member variable.
10825 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
10826 (direct_internal_fn_p): Also return true for internal functions
10827 that map directly to instructions defined target-insns.def.
10828 (direct_internal_fn): Adjust comment accordingly.
10829 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
10830 (vectorizable_optab2): New local macros.
10831 (not_direct): Initialize directly_mapped.
10832 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
10833 (gather_load_direct, len_load_direct, mask_store_direct)
10834 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
10835 (vec_cond_direct, scatter_store_direct, len_store_direct)
10836 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
10837 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
10838 (while_direct, fold_extract_direct, fold_left_direct)
10839 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
10840 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
10841 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
10842 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
10843 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
10844 (direct_internal_fn_types): Handle functions that map to instructions
10845 defined in target-insns.def.
10846 (direct_internal_fn_types): Likewise.
10847 (direct_internal_fn_supported_p): Likewise.
10848 (internal_fn_expanders): Likewise.
10849
10850 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
10851
10852 * internal-fn.cc (expand_fn_using_insn): New function,
10853 split out and adapted from...
10854 (expand_direct_optab_fn): ...here.
10855 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
10856 (expand_GOMP_SIMT_EXIT): Likewise.
10857 (expand_GOMP_SIMT_LANE): Likewise.
10858 (expand_GOMP_SIMT_LAST_LANE): Likewise.
10859 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
10860 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
10861 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
10862 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
10863
10864 2022-06-13 Jakub Jelinek <jakub@redhat.com>
10865
10866 * omp-expand.cc (expand_omp_target): Remap user provided
10867 device clause arguments, -1 to -2 and -2 to -3, either
10868 at compile time if constant, or at runtime.
10869
10870 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
10871
10872 * common.opt (finstrument-functions): Set explicit value.
10873 (-finstrument-functions-once): New option.
10874 * doc/invoke.texi (Program Instrumentation Options): Document it.
10875 * gimplify.cc (build_instrumentation_call): New static function.
10876 (gimplify_function_tree): Call it to emit the instrumentation calls
10877 if -finstrument-functions[-once] is specified.
10878
10879 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
10880
10881 * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
10882 * gimple.h (gimple_set_location): Do not copy warning data from
10883 the previous location when it is UNKNOWN_LOCATION.
10884 * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
10885
10886 2022-06-13 Jakub Jelinek <jakub@redhat.com>
10887
10888 PR target/105911
10889 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
10890 *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
10891 (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
10892 operands[3] unmodified.
10893
10894 2022-06-12 Simon Wright <simon@pushface.org>
10895
10896 PR target/104871
10897 * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
10898 version is darwin20 (macOS 11) or greater, truncate the version to the
10899 major number.
10900
10901 2022-06-12 Mark Mentovai <mark@mentovai.com>
10902
10903 * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
10904
10905 2022-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10906
10907 PR target/96463
10908 * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
10909 (svld1rq_impl::fold): Define.
10910 * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
10911 op_mode and op_vec_flags.
10912 (aarch64_evpc_reencode): Initialize newd.op_mode and
10913 newd.op_vec_flags.
10914 (aarch64_evpc_sve_dup): New function.
10915 (aarch64_expand_vec_perm_const_1): Gate existing calls to
10916 aarch64_evpc_* functions under d->vmode == d->op_mode,
10917 and call aarch64_evpc_sve_dup.
10918 (aarch64_vectorize_vec_perm_const): Remove assert
10919 d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
10920 * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
10921 vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
10922 constant.
10923
10924 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10925
10926 * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
10927 New prototype.
10928 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
10929 xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
10930 xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
10931 New backend functions that process the abovementioned logic.
10932 (xtensa_emit_move_sequence): Revert the previous changes.
10933 * config/xtensa/xtensa.md: New split patterns for integer
10934 and floating-point, as the frontend part.
10935
10936 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10937
10938 * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
10939 for ABS and NEG, add missing case for BSWAP and CLRSB, and
10940 double the costs for integer divisions using libfuncs if
10941 optimizing for speed, in order to take advantage of fast constant
10942 division by multiplication.
10943 (TARGET_INSN_COST): New macro definition.
10944 (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
10945 calculating relative costs of a RTL insns, for both of speed and
10946 size.
10947 * config/xtensa/xtensa.md (return, nop, trap): Correct values of
10948 the attribute "length" that depends on TARGET_DENSITY.
10949 (define_asm_attributes, blockage, frame_blockage): Add missing
10950 attributes.
10951 * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
10952 dependent option, however, preparatory work for now.
10953
10954 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10955
10956 * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
10957 Pass through the block length / loop count conditions if
10958 zero-overhead looping is configured and active,
10959
10960 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10961
10962 * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
10963 Split into individual signedness, in order to use libcall
10964 "__umulsidi3" but not the other.
10965 (<u>mulhisi3): Merge into one by using code iterator.
10966 (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
10967
10968 2022-06-11 Michael Meissner <meissner@linux.ibm.com>
10969
10970 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
10971 not generate block copies with vector pair instructions if we are
10972 tuning for power10.
10973
10974 2022-06-10 Roger Sayle <roger@nextmovesoftware.com>
10975
10976 PR rtl-optimization/7061
10977 * expr.cc (emit_group_store): For groups that consist of a single
10978 scalar integer register that hold a complex mode value, use
10979 gen_lowpart to generate a SUBREG to "view_convert" to the complex
10980 mode. For modes of different sizes, first convert to an integer
10981 mode of the appropriate size.
10982
10983 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10984
10985 * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
10986
10987 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10988
10989 * config/xtensa/xtensa.md (*andsi3_bitcmpl):
10990 New insn_and_split pattern.
10991
10992 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10993
10994 * config/xtensa/xtensa.md (one_cmplsi2):
10995 Rearrange as an insn_and_split pattern.
10996
10997 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10998
10999 * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
11000
11001 2022-06-09 Segher Boessenkool <segher@kernel.crashing.org>
11002
11003 * config/rs6000/rs6000.md (FP_ISA3): Delete.
11004 (float<QHI:mode><FP_ISA3:mode>2): Rename to...
11005 (float<QHI:mode><SFDF:mode>2): ... this. Adjust.
11006 (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
11007 (*float<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
11008 (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
11009 (floatuns<QHI:mode><SFDF:mode>2): ... this. Adjust.
11010 (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
11011 (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
11012
11013 2022-06-09 Maciej W. Rozycki <macro@embecosm.com>
11014
11015 * config/riscv/riscv.md
11016 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
11017 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
11018 rather than space with FSFLAGS.
11019
11020 2022-06-09 Tobias Burnus <tobias@codesourcery.com>
11021
11022 * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
11023 omp_discover_declare_target_fn_r): Don't walk reverse-offload
11024 target regions.
11025
11026 2022-06-09 Jakub Jelinek <jakub@redhat.com>
11027
11028 * doc/invoke.texi (-Waddress): Fix a typo in small example.
11029 Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
11030
11031 2022-06-09 Cui,Lili <lili.cui@intel.com>
11032
11033 PR target/105493
11034 * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
11035 from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
11036 unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
11037 (icelake_cost): Ditto.
11038 (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
11039 stores and unaligned stores cost from {6, 6, 6, 10, 15} to
11040 {8, 8, 8, 10, 15}.
11041
11042 2022-06-09 Haochen Gui <guihaoc@gcc.gnu.org>
11043
11044 * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
11045 and ior insns to one rotate and mask insn.
11046 (define_split for bswapdi register): Likewise.
11047
11048 2022-06-08 Roger Sayle <roger@nextmovesoftware.com>
11049
11050 PR middle-end/105874
11051 * expr.cc (expand_expr_real_1) <normal_inner_ref>: New local
11052 variable tem_modifier for calculating the expand_modifier enum to
11053 use for expanding tem. If tem is a VAR_DECL, use EXPAND_MEMORY.
11054
11055 2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
11056
11057 PR target/105879
11058 * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
11059 to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
11060 'gen_highpart' bitwise semantics and fix order of highpart and
11061 lowpart depending on target endianness.
11062
11063 2022-06-08 Chung-Ju Wu <jasonwucj@gmail.com>
11064
11065 * config/arm/arm-cpus.in (star-mc1): New cpu.
11066 * config/arm/arm-tables.opt: Regenerate.
11067 * config/arm/arm-tune.md: Regenerate.
11068 * doc/invoke.texi: Update docs.
11069
11070 2022-06-08 liuhongt <hongtao.liu@intel.com>
11071
11072 PR target/105513
11073 PR target/105504
11074 * config/i386/i386.md (*movsi_internal): Change alternative
11075 from *v to ?v.
11076 (*movdi_internal): Ditto.
11077 * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
11078 to ?r.
11079 (*vec_extractv4sf_mem): Ditto.
11080 (*vec_extracthf): Ditto.
11081
11082 2022-06-07 Richard Earnshaw <rearnsha@arm.com>
11083
11084 PR target/105090
11085 * config/arm/arm.cc (arm_bfi_1_p): New function.
11086 (arm_bfi_p): New function.
11087 (arm_rtx_costs_internal): Add costs for BFI idioms.
11088 (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
11089 * config/arm/constraints.md (Dj): New constraint.
11090 * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
11091 (insv_zero): Convert to an insn with a split.
11092 (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
11093
11094 2022-06-07 liuhongt <hongtao.liu@intel.com>
11095
11096 PR target/105854
11097 * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
11098 from Yv to Yw.
11099
11100 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
11101
11102 PR middle-end/105853
11103 PR target/105856
11104 * calls.cc (load_register_parameters): Call store_constructor
11105 and int_expr_size directly instead of expanding via expand_expr.
11106 * expr.cc (static void store_constructor): Don't prototype here.
11107 (static HOST_WIDE_INT int_expr_size): Likewise.
11108 (store_constructor): No longer static.
11109 (int_expr_size): Likewise, no longer static.
11110 * expr.h (store_constructor): Prototype here.
11111 (int_expr_size): Prototype here.
11112
11113 2022-06-07 Jan Beulich <jbeulich@suse.com>
11114
11115 Revert:
11116 2022-06-03 Jan Beulich <jbeulich@suse.com>
11117
11118 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
11119 * configure.ac: Check for objcopy, producing
11120 ORIGINAL_OBJCOPY_FOR_TARGET.
11121 * configure: Update accordingly.
11122 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
11123 Handle objcopy.
11124
11125 2022-06-07 Jakub Jelinek <jakub@redhat.com>
11126
11127 * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
11128 * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
11129 Adjust clause printing style depending on
11130 OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
11131
11132 2022-06-07 Jan Beulich <jbeulich@suse.com>
11133
11134 * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
11135 Change type.
11136 * config/i386/i386-builtin-types.def: New function type
11137 (V4DI, V32QI, V32QI).
11138 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
11139 V4DI_FTYPE_V32QI_V32QI.
11140
11141 2022-06-07 Jan Beulich <jbeulich@suse.com>
11142
11143 * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
11144 into account for reg-only insns.
11145
11146 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
11147
11148 * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
11149 IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
11150 TARGET_CMOVE's (scalar integer) conditional moves.
11151 * config/i386/sse.md (define_split): Recognize XOP's vpcmov
11152 from its equivalent (canonical) pxor;pand;pxor sequence.
11153
11154 2022-06-07 Kewen Lin <linkw@linux.ibm.com>
11155
11156 * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
11157 parameter ORDER.
11158
11159 2022-06-06 Andrew Stubbs <ams@codesourcery.com>
11160
11161 * config.in: Regenerate.
11162 * configure: Regenerate.
11163 * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
11164
11165 2022-06-04 Roger Sayle <roger@nextmovesoftware.com>
11166
11167 PR middle-end/95126
11168 * calls.cc (load_register_parameters): When loading a suitable
11169 immediate_const_ctor_p VAR_DECL into a single word_mode register,
11170 construct it directly in a pseudo rather than read it (by parts)
11171 from memory.
11172 * expr.cc (int_expr_size): Make tree argument a const_tree.
11173 (immediate_const_ctor_p): Helper predicate. Return true for
11174 simple constructors that may be materialized in a register.
11175 (expand_expr_real_1) [VAR_DECL]: When expanding a constant
11176 VAR_DECL with a suitable immediate_const_ctor_p constructor
11177 use store_constructor to materialize it directly in a pseudo.
11178 * expr.h (immediate_const_ctor_p): Prototype here.
11179 * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
11180 VALUE argument from tree to const_tree.
11181 * varasm.h (initializer_constant_valid_for_bitfield_p): Update
11182 prototype.
11183
11184 2022-06-04 Jakub Jelinek <jakub@redhat.com>
11185
11186 PR target/105825
11187 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
11188 *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
11189 bits of mask aren't all set, use operands[2] mode for the AND
11190 operation instead of always SImode.
11191
11192 2022-06-03 Jakub Jelinek <jakub@redhat.com>
11193
11194 PR middle-end/30314
11195 PR middle-end/105777
11196 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
11197 x > stype_max / cst || x < stype_min / cst): New simplification.
11198
11199 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
11200
11201 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
11202 Value_Range.
11203 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
11204 * value-range.h (Value_Range::Value_Range): Implement copy
11205 constructor for Value_Range.
11206
11207 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
11208
11209 * value-range.h (struct vrange_traits): Remove.
11210 (is_a): Rewrite without vrange_traits.
11211 (as_a): Same.
11212
11213 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
11214
11215 * value-range.cc (vrange::contains_p): Implement.
11216 (vrange::type): Return void.
11217 (vrange::supports_type_p): Implement.
11218 (irange::fits_p): Same.
11219 (vrange::set_undefined): Same.
11220 (irange::set_nonnegative): Same.
11221 (vrange::set_varying): Same.
11222 (vrange::union_): Same.
11223 (unsupported_range::set): Move to vrange.
11224 (unsupported_range::type): Move to vrange.
11225 (vrange::intersect): Implement for varying and undefined.
11226 (vrange::zero_p): Implement.
11227 (unsupported_range::supports_type_p): Move to vrange.
11228 (vrange::nonzero_p): Implement.
11229 (unsupported_range::set_undefined): Move to vrange.
11230 (unsupported_range::set_varying): Same.
11231 (unsupported_range::dump): Same.
11232 (unsupported_range::union_): Same. Implement for varying and
11233 undefined.
11234 (unsupported_range::intersect): Move to vrange.
11235 (unsupported_range::zero_p): Same.
11236 (unsupported_range::nonzero_p): Same.
11237 (unsupported_range::set_nonzero): Same.
11238 (unsupported_range::set_zero): Same.
11239 (unsupported_range::set_nonnegative): Same.
11240 (unsupported_range::fits_p): Same.
11241 * value-range.h (class vrange): Remove abstract markers for most
11242 methods.
11243 (class unsupported_range): Remove most methods as they will now be
11244 inherited from vrange.
11245
11246 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
11247
11248 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
11249 an object level supports_type_p for irange and a static
11250 Value_Range::supports_type_p.
11251 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
11252 (fold_using_range::range_of_address): Same.
11253 (fold_using_range::range_of_builtin_call): Same.
11254 * gimple-range-fold.h (gimple_range_type): Same.
11255 (gimple_range_ssa_p): Same.
11256 * gimple-range-path.cc (path_range_query::internal_range_of_expr):
11257 Same.
11258 (path_range_query::range_of_stmt): Same.
11259 (path_range_query::add_to_imports): Same.
11260 * gimple-range.cc (gimple_ranger::range_on_edge): Same.
11261 (gimple_ranger::export_global_ranges): Same.
11262 * gimple-ssa-evrp-analyze.cc
11263 (evrp_range_analyzer::record_ranges_from_phis): Same.
11264 * range-op.cc (range_operator::wi_fold): Same.
11265 (range_operator::fold_range): Same.
11266 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
11267 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
11268 (evaluate_control_stmt_using_entry_checks): Same.
11269 * tree-ssa-threadedge.cc
11270 (hybrid_jt_simplifier::compute_ranges_from_state): Same.
11271 * tree-vrp.cc (supported_types_p): Same.
11272 * value-query.cc (range_query::value_of_expr): Same.
11273 (range_query::value_on_edge): Same.
11274 (range_query::value_of_stmt): Same.
11275 (range_query::get_tree_range): Same.
11276 (get_range_global): Same.
11277 (global_range_query::range_of_expr): Same.
11278 * value-range-equiv.h (class value_range_equiv): Same.
11279 * value-range.cc (irange::supports_type_p): Same.
11280 (unsupported_range::supports_type_p): Same.
11281 * value-range.h (enum value_range_discriminator): Same.
11282 (Value_Range::init): Same.
11283 (Value_Range::supports_type_p): Same.
11284 (irange::supports_type_p): Same.
11285 (irange::supports_p): Same.
11286 (vrange::supports_type_p): Same.
11287 (vrange_allocator::alloc_vrange): Same.
11288
11289 2022-06-03 Jan Beulich <jbeulich@suse.com>
11290
11291 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
11292 * configure.ac: Check for objcopy, producing
11293 ORIGINAL_OBJCOPY_FOR_TARGET.
11294 * configure: Update accordingly.
11295 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
11296 Handle objcopy.
11297
11298 2022-06-03 Jan Beulich <jbeulich@suse.com>
11299
11300 * config/i386/mmx.md (mmx_psadbw): Convert to expander.
11301 (*mmx_psadbw): New. Mark as commutative.
11302 * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
11303 (*<sse2_avx2>_psadbw): New. Mark as commutative.
11304
11305 2022-06-03 Alexandre Oliva <oliva@adacore.com>
11306
11307 PR tree-optimization/105665
11308 PR tree-optimization/100810
11309 * tree-ssa-loop-ivopts.cc
11310 (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
11311 (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
11312 (find_ssa_undef): Check precomputed flag and intervening uses.
11313 (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
11314
11315 2022-06-02 David Malcolm <dmalcolm@redhat.com>
11316
11317 * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
11318 tree-logical-location.o.
11319 (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
11320 (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
11321 * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
11322 (sarif-stderr, sarif-file): New enum values.
11323 * diagnostic-client-data-hooks.h: New file.
11324 * diagnostic-format-sarif.cc: New file.
11325 * diagnostic-path.h (enum diagnostic_event::verb): New enum.
11326 (enum diagnostic_event::noun): New enum.
11327 (enum diagnostic_event::property): New enum.
11328 (struct diagnostic_event::meaning): New struct.
11329 (diagnostic_event::get_logical_location): New vfunc.
11330 (diagnostic_event::get_meaning): New vfunc.
11331 (simple_diagnostic_event::get_logical_location): New vfunc impl.
11332 (simple_diagnostic_event::get_meaning): New vfunc impl.
11333 * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
11334 (diagnostic_initialize): Initialize m_client_data_hooks.
11335 (diagnostic_finish): Clean up m_client_data_hooks.
11336 (diagnostic_event::meaning::dump_to_pp): New.
11337 (diagnostic_event::meaning::maybe_get_verb_str): New.
11338 (diagnostic_event::meaning::maybe_get_noun_str): New.
11339 (diagnostic_event::meaning::maybe_get_property_str): New.
11340 (get_cwe_url): Make non-static.
11341 (diagnostic_output_format_init): Handle
11342 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
11343 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
11344 * diagnostic.h (enum diagnostics_output_format): Add
11345 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
11346 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
11347 (class diagnostic_client_data_hooks): New forward decl.
11348 (class logical_location): New forward decl.
11349 (diagnostic_context::m_client_data_hooks): New field.
11350 (diagnostic_output_format_init_sarif_stderr): New decl.
11351 (diagnostic_output_format_init_sarif_file): New decl.
11352 (get_cwe_url): New decl.
11353 * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
11354 sarif-file.
11355 * doc/sourcebuild.texi (Scan a particular file): Add
11356 scan-sarif-file and scan-sarif-file-not.
11357 * langhooks-def.h (lhd_get_sarif_source_language): New decl.
11358 (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
11359 (LANG_HOOKS_INITIALIZER): Add
11360 LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
11361 * langhooks.cc (lhd_get_sarif_source_language): New.
11362 * langhooks.h (lang_hooks::get_sarif_source_language): New field.
11363 * logical-location.h: New file.
11364 * plugin.cc (struct for_each_plugin_closure): New.
11365 (for_each_plugin_cb): New.
11366 (for_each_plugin): New.
11367 * plugin.h (for_each_plugin): New decl.
11368 * tree-diagnostic-client-data-hooks.cc: New file.
11369 * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
11370 (tree_diagnostics_defaults): Populate m_client_data_hooks.
11371 * tree-logical-location.cc: New file.
11372 * tree-logical-location.h: New file.
11373
11374 2022-06-02 David Malcolm <dmalcolm@redhat.com>
11375
11376 * common.opt (fdiagnostics-format=): Add json-stderr and json-file
11377 to description.
11378 (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
11379 (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
11380 (diagnostics_output_format): Add json-stderr and json-file.
11381 * diagnostic-format-json.cc (json_flush_to_file): New.
11382 (json_final_cb): Convert to...
11383 (json_flush_to_file): ...this, ...
11384 (json_stderr_final_cb): ...this, and...
11385 (json_file_final_cb): ...this.
11386 (diagnostic_output_format_init): Move to diagnostic.cc.
11387 (json_output_base_file_name): New.
11388 (diagnostic_output_format_init_json): New.
11389 (diagnostic_output_format_init_json_stderr): New.
11390 (diagnostic_output_format_init_json_file): New.
11391 * diagnostic.cc (diagnostic_output_format_init): Move here from
11392 diagnostic-format-json.cc; update for changes to enum.
11393 * diagnostic.h (enum diagnostics_output_format): Rename
11394 DIAGNOSTICS_OUTPUT_FORMAT_JSON to
11395 DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
11396 DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
11397 (diagnostic_output_format_init): Add base_file_name param.
11398 (diagnostic_output_format_init_json_stderr): New decl.
11399 (diagnostic_output_format_init_json_file): New dec.
11400 * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
11401 "json-file". Rewrite so that the existing "json" is a synonym of
11402 "json-stderr".
11403 * gcc.cc (driver_handle_option): Pass dump_base_name to
11404 diagnostic_output_format_init.
11405 * opts.cc (common_handle_option): Likewise.
11406
11407 2022-06-02 David Malcolm <dmalcolm@redhat.com>
11408
11409 * json.cc (string::print): Fix escaping of '\'.
11410
11411 2022-06-02 Philipp Tomsich <philipp.tomsich@vrull.eu>
11412
11413 * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
11414 (-1 << 31) for the single-bit case, when operating on (1 << 31)
11415 in SImode.
11416 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
11417 any single-bit value, moving the special case for (1 << 31) to
11418 riscv_build_integer_1 (in riscv.c).
11419
11420 2022-06-02 Roger Sayle <roger@nextmovesoftware.com>
11421
11422 PR target/105791
11423 * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
11424 (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
11425
11426 2022-06-02 Jakub Jelinek <jakub@redhat.com>
11427
11428 PR target/105778
11429 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
11430 from AND and its operands and just verify operands[2] has HImode,
11431 SImode or for TARGET_64BIT DImode. Allow operands[3] to be a mask
11432 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
11433 just throw away the masking. Use force_reg before calling
11434 gen_lowpart.
11435 (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
11436 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
11437 just throw away the masking.
11438 (*ashl<mode>3_doubleword): Rename to ...
11439 (ashl<mode>3_doubleword): ... this.
11440 (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
11441 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
11442 Use force_reg before calling gen_lowpart.
11443 (*<insn><mode>3_mask): Likewise.
11444 (*<insn><dwi>3_doubleword_mask): Likewise. Allow operands[3] to be
11445 a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
11446 case just throw away the masking. Use force_reg before calling
11447 gen_lowpart.
11448 (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
11449 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
11450 throw away the masking.
11451 (*<insn><mode>3_doubleword): Rename to ...
11452 (<insn><mode>3_doubleword): ... this.
11453 (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
11454 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
11455 Use force_reg before calling gen_lowpart.
11456 (splitter after it): Remove :SI from AND and its operands and just
11457 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
11458 (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
11459 operands and just verify operands[1] has HImode, SImode or for
11460 TARGET_64BIT DImode. Use force_reg before calling gen_lowpart.
11461 (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
11462 * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
11463 ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
11464
11465 2022-06-02 Richard Biener <rguenther@suse.de>
11466
11467 PR tree-optimization/101668
11468 * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
11469 for vector types with compatible lane types.
11470 (vect_build_slp_tree_2): Deal with this.
11471 (vect_add_slp_permutation): Adjust. Emit lowpart/concat
11472 special cases without VEC_PERM.
11473 (vectorizable_slp_permutation): Select the operand vector
11474 type and relax requirements. Handle identity permutes
11475 with mismatching operand types.
11476 * optabs-query.cc (can_vec_perm_const_p): Only allow variable
11477 permutes for op_mode == mode.
11478
11479 2022-06-02 Richard Biener <rguenther@suse.de>
11480
11481 PR tree-optimization/105802
11482 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
11483 Make sure to also compute the range in the type of the switch index.
11484
11485 2022-06-01 David Seifert <soap@gentoo.org>
11486
11487 PR plugins/95648
11488 * configure: Regenerate.
11489
11490 2022-06-01 H.J. Lu <hjl.tools@gmail.com>
11491
11492 PR rtl-optimization/105638
11493 * df-core.cc (df_find_single_def_src): Moved and renamed from
11494 find_single_def_src in loop-iv.cc. Change the argument to rtx
11495 and use rtx_equal_p. Return null for partial or conditional
11496 defs.
11497 * df.h (df_find_single_def_src): New prototype.
11498 * dse.cc (record_store): Use the constant source if the source
11499 register is set only once.
11500 * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
11501 (replace_single_def_regs): Replace find_single_def_src with
11502 df_find_single_def_src.
11503
11504 2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com>
11505
11506 * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
11507 selected_tune.
11508 (explicit_arch): Rename to selected_arch.
11509 (x_aarch64_override_tune_string): Remove.
11510 (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
11511 (aarch64_override_tune_string): Add Save so it gets saved/restored.
11512 * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
11513 * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
11514 (processor): Remove archtecture_version field.
11515 (selected_arch): Remove global.
11516 (selected_cpu): Remove global.
11517 (selected_tune): Remove global.
11518 (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
11519 (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
11520 (aarch64_override_options): Further simplify code to only set
11521 selected_arch and selected_tune globals.
11522 (aarch64_option_save): Remove now that target options are saved.
11523 (aarch64_option_restore): Remove redundant target option restores.
11524 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
11525 AARCH64_ISA_V9.
11526 * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
11527 * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
11528 (aarch64_ra_sign_key): Remove.
11529
11530 2022-06-01 Jakub Jelinek <jakub@redhat.com>
11531
11532 PR middle-end/30314
11533 * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
11534 x > ~(utype)0 / cst): New simplification.
11535
11536 2022-06-01 Richard Biener <rguenther@suse.de>
11537
11538 PR tree-optimization/105786
11539 * tree-loop-distribution.cc
11540 (loop_distribution::transform_reduction_loop): Only do strlen
11541 replacement for integer type reductions.
11542
11543 2022-06-01 Jakub Jelinek <jakub@redhat.com>
11544
11545 PR tree-optimization/105770
11546 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
11547 CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
11548
11549 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
11550
11551 * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
11552 (sbr_vector::sbr_vector): Same.
11553 (sbr_vector::grow): Same.
11554 (sbr_vector::set_bb_range): Same.
11555 (sbr_vector::get_bb_range): Same.
11556 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
11557 (sbr_sparse_bitmap::set_bb_range): Same.
11558 (sbr_sparse_bitmap::get_bb_range): Same.
11559 (block_range_cache::set_bb_range): Same.
11560 (block_range_cache::get_bb_range): Same.
11561 (block_range_cache::dump): Same.
11562 (ssa_global_cache::get_global_range): Same.
11563 (ssa_global_cache::set_global_range): Same.
11564 (ssa_global_cache::clear): Same.
11565 (ssa_global_cache::dump): Same.
11566 (ranger_cache::get_global_range): Same.
11567 (ranger_cache::set_global_range): Same.
11568 (ranger_cache::range_of_def): Same.
11569 (ranger_cache::entry_range): Same.
11570 (ranger_cache::exit_range): Same.
11571 (ranger_cache::edge_range): Same.
11572 (ranger_cache::range_of_expr): Same.
11573 (ranger_cache::range_on_edge): Same.
11574 (ranger_cache::block_range): Same.
11575 (ranger_cache::propagate_cache): Same.
11576 (ranger_cache::fill_block_cache): Same.
11577 (ranger_cache::range_from_dom): Same.
11578 * gimple-range-cache.h: Same.
11579 * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
11580 Same.
11581 (gimple_outgoing_range::switch_edge_range): Same.
11582 (gimple_outgoing_range::edge_range_p): Same.
11583 * gimple-range-edge.h: Same.
11584 * gimple-range-fold.cc (fur_source::get_operand): Same.
11585 (fur_source::get_phi_operand): Same.
11586 (fur_edge::get_operand): Same.
11587 (fur_edge::get_phi_operand): Same.
11588 (fur_stmt::get_operand): Same.
11589 (fur_stmt::get_phi_operand): Same.
11590 (fur_list::fur_list): Same.
11591 (fur_list::get_operand): Same.
11592 (fur_list::get_phi_operand): Same.
11593 (fold_range): Same.
11594 (adjust_imagpart_expr): Same.
11595 (adjust_realpart_expr): Same.
11596 (gimple_range_adjustment): Same.
11597 (fold_using_range::fold_stmt): Same.
11598 (fold_using_range::range_of_range_op): Same.
11599 (fold_using_range::range_of_address): Same.
11600 (fold_using_range::range_of_phi): Same.
11601 (fold_using_range::range_of_call): Same.
11602 (fold_using_range::range_of_builtin_call): Same.
11603 (fold_using_range::range_of_builtin_int_call): Same.
11604 (fold_using_range::range_of_cond_expr): Same.
11605 (fur_source::register_outgoing_edges): Same.
11606 * gimple-range-fold.h (fold_range): Same.
11607 (gimple_range_type): Same.
11608 (gimple_range_ssa_p): Same.
11609 * gimple-range-gori.cc (gimple_range_calc_op1): Same.
11610 (gimple_range_calc_op2): Same.
11611 (gori_compute::compute_operand_range_switch): Same.
11612 (gori_compute::compute_operand_range): Same.
11613 (gori_compute::logical_combine): Same.
11614 (gori_compute::compute_logical_operands): Same.
11615 (gori_compute::compute_operand1_range): Same.
11616 (gori_compute::compute_operand2_range): Same.
11617 (gori_compute::compute_operand1_and_operand2_range): Same.
11618 (gori_compute::outgoing_edge_range_p): Same.
11619 (gori_compute::condexpr_adjust): Same.
11620 * gimple-range-gori.h (gimple_range_calc_op1): Same.
11621 (gimple_range_calc_op2): Same.
11622 * gimple-range-path.cc (path_range_query::get_cache): Same.
11623 (path_range_query::set_cache): Same.
11624 (path_range_query::range_on_path_entry): Same.
11625 (path_range_query::internal_range_of_expr): Same.
11626 (path_range_query::range_of_expr): Same.
11627 (path_range_query::ssa_range_in_phi): Same.
11628 (path_range_query::range_defined_in_block): Same.
11629 (path_range_query::compute_ranges_in_phis): Same.
11630 (path_range_query::compute_ranges_in_block): Same.
11631 (path_range_query::add_to_imports): Same.
11632 (path_range_query::range_of_stmt): Same.
11633 * gimple-range-path.h: Same.
11634 * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
11635 (gimple_infer_range::~side_effect_manager): Same.
11636 (gimple_infer_range::get_nonzero): Same.
11637 (gimple_infer_range::maybe_adjust_range): Same.
11638 (gimple_infer_range::add_range): Same.
11639 * gimple-range-infer.h: Same.
11640 * gimple-range-tests.cc: Same.
11641 * gimple-range-trace.cc (range_tracer::trailer): Same.
11642 (debug_seed_ranger): Same.
11643 * gimple-range-trace.h: Same.
11644 * gimple-range.cc (gimple_ranger::range_of_expr): Same.
11645 (gimple_ranger::range_on_entry): Same.
11646 (gimple_ranger::range_on_exit): Same.
11647 (gimple_ranger::range_on_edge): Same.
11648 (gimple_ranger::fold_range_internal): Same.
11649 (gimple_ranger::range_of_stmt): Same.
11650 (gimple_ranger::prefill_name): Same.
11651 (gimple_ranger::prefill_stmt_dependencies): Same.
11652 (gimple_ranger::export_global_ranges): Same.
11653 (gimple_ranger::dump_bb): Same.
11654 * gimple-range.h: Same.
11655 * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
11656 (memmodel_to_uhwi): Same.
11657 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
11658 (determine_value_range): Same.
11659 (record_nonwrapping_iv): Same.
11660 (infer_loop_bounds_from_signedness): Same.
11661 (scev_var_range_cant_overflow): Same.
11662 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
11663 * value-query.cc (range_query::range_on_edge): Same.
11664 (range_query::range_of_stmt): Same.
11665 (range_query::value_of_expr): Same.
11666 (range_query::value_on_edge): Same.
11667 (range_query::value_of_stmt): Same.
11668 (range_query::get_tree_range): Same.
11669 (update_global_range): Same.
11670 (get_range_global): Same.
11671 (gimple_range_global): Same.
11672 (global_range_query::range_of_expr): Same.
11673 (range_query::query_relation): Same.
11674 * value-query.h (gimple_range_global): Same.
11675 (update_global_range): Same.
11676 * vr-values.cc (vr_values::range_of_expr): Same.
11677 (bounds_of_var_in_loop): Same.
11678 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
11679 * vr-values.h (class vr_values): Same.
11680 * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
11681
11682 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
11683
11684 * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
11685 vrange allocator.
11686 (sbr_vector::grow): Same.
11687 (sbr_vector::set_bb_range): Same.
11688 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
11689 (sbr_sparse_bitmap::set_bb_range): Same.
11690 (block_range_cache::~block_range_cache): Same.
11691 (block_range_cache::set_bb_range): Same.
11692 (ssa_global_cache::ssa_global_cache): Same.
11693 (ssa_global_cache::~ssa_global_cache): Same.
11694 (ssa_global_cache::set_global_range): Same.
11695 * gimple-range-cache.h (block_range_cache): Same.
11696 (ssa_global_cache): Same.
11697 * gimple-range-edge.cc
11698 (gimple_outgoing_range::calc_switch_ranges): Same.
11699 * gimple-range-edge.h (gimple_outgoing_range): Same.
11700 * gimple-range-infer.cc (infer_range_manager::get_nonzero):
11701 Same.
11702 (infer_range_manager::add_range): Same.
11703 * gimple-range-infer.h (class infer_range_manager): Same.
11704 * value-range.h (class irange_allocator): Rename to...
11705 (class vrange_allocator): ...this.
11706 (irange_allocator::irange_allocator): New.
11707 (vrange_allocator::vrange_allocator): New.
11708 (irange_allocator::~irange_allocator): New.
11709 (vrange_allocator::~vrange_allocator): New.
11710 (irange_allocator::get_memory): Rename to...
11711 (vrange_allocator::alloc): ...this.
11712 (vrange_allocator::alloc_vrange): Rename from...
11713 (irange_allocator::allocate): ...this.
11714 (vrange_allocator::alloc_irange): New.
11715
11716 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
11717
11718 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
11719 vrange and convert range_op_handler function calls to use the
11720 identically named object.
11721 * gimple-range-fold.cc (gimple_range_operand1): Same.
11722 (gimple_range_operand2): Same.
11723 (fold_using_range::fold_stmt): Same.
11724 (fold_using_range::range_of_range_op): Same.
11725 (fold_using_range::range_of_builtin_ubsan_call): Same.
11726 (fold_using_range::relation_fold_and_or): Same.
11727 (fur_source::register_outgoing_edges): Same.
11728 * gimple-range-fold.h (gimple_range_handler): Remove.
11729 * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
11730 (gimple_range_calc_op2): Same.
11731 (range_def_chain::get_def_chain): Same.
11732 (gori_compute::compute_operand_range): Same.
11733 (gori_compute::condexpr_adjust): Same.
11734 * gimple-range.cc (gimple_ranger::prefill_name): Same.
11735 (gimple_ranger::prefill_stmt_dependencies): Same.
11736 * range-op.cc (get_bool_state): Same.
11737 (class operator_equal): Add using clause.
11738 (class operator_not_equal): Same.
11739 (class operator_lt): Same.
11740 (class operator_le): Same.
11741 (class operator_gt): Same.
11742 (class operator_ge): Same.
11743 (class operator_plus): Same.
11744 (class operator_minus): Same.
11745 (class operator_mult): Same.
11746 (class operator_exact_divide): Same.
11747 (class operator_lshift): Same.
11748 (class operator_rshift): Same.
11749 (class operator_cast): Same.
11750 (class operator_logical_and): Same.
11751 (class operator_bitwise_and): Same.
11752 (class operator_logical_or): Same.
11753 (class operator_bitwise_or): Same.
11754 (class operator_bitwise_xor): Same.
11755 (class operator_trunc_mod): Same.
11756 (class operator_logical_not): Same.
11757 (class operator_bitwise_not): Same.
11758 (class operator_cst): Same.
11759 (class operator_identity): Same.
11760 (class operator_unknown): Same.
11761 (class operator_abs): Same.
11762 (class operator_negate): Same.
11763 (class operator_addr_expr): Same.
11764 (class pointer_or_operator): Same.
11765 (operator_plus::op1_range): Adjust for vrange.
11766 (operator_minus::op1_range): Same.
11767 (operator_mult::op1_range): Same.
11768 (operator_cast::op1_range): Same.
11769 (operator_bitwise_not::fold_range): Same.
11770 (operator_negate::fold_range): Same.
11771 (range_op_handler): Rename to...
11772 (get_handler): ...this.
11773 (range_op_handler::range_op_handler): New.
11774 (range_op_handler::fold_range): New.
11775 (range_op_handler::op1_range): New.
11776 (range_op_handler::op2_range): New.
11777 (range_op_handler::lhs_op1_relation): New.
11778 (range_op_handler::lhs_op2_relation): New.
11779 (range_op_handler::op1_op2_relation): New.
11780 (range_cast): Adjust for vrange.
11781 * range-op.h (range_op_handler): Remove function.
11782 (range_cast): Adjust for vrange.
11783 (class range_op_handler): New.
11784 (get_bool_state): Adjust for vrange.
11785 (empty_range_varying): Same.
11786 (relop_early_resolve): Same.
11787 * tree-data-ref.cc (compute_distributive_range): Same.
11788 * tree-vrp.cc (get_range_op_handler): Remove.
11789 (range_fold_binary_symbolics_p): Use range_op_handler class
11790 instead of get_range_op_handler.
11791 (range_fold_unary_symbolics_p): Same.
11792 (range_fold_binary_expr): Same.
11793 (range_fold_unary_expr): Same.
11794 * value-query.cc (range_query::get_tree_range): Adjust for vrange.
11795
11796 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
11797
11798 * gimple-range-fold.h (gimple_range_type): Check type before
11799 calling supports_type_p.
11800 * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
11801 * value-query.cc (range_query::get_tree_range): Same.
11802 * value-range.cc (Value_Range::lower_bound): New.
11803 (Value_Range::upper_bound): New.
11804 (Value_Range::dump): New.
11805 * value-range.h (class Value_Range): New.
11806 (irange::supports_type_p): Do not check if type is non-zero.
11807
11808 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
11809
11810 * value-range-equiv.cc (value_range_equiv::set): New.
11811 * value-range-equiv.h (class value_range_equiv): Make set method
11812 virtual.
11813 Remove default bitmap argument from set method.
11814 * value-range.cc (vrange::contains_p): New.
11815 (vrange::singleton_p): New.
11816 (vrange::operator=): New.
11817 (vrange::operator==): New.
11818 (irange::fits_p): Move to .cc file.
11819 (irange::set_nonnegative): New.
11820 (unsupported_range::unsupported_range): New.
11821 (unsupported_range::set): New.
11822 (unsupported_range::type): New.
11823 (unsupported_range::set_undefined): New.
11824 (unsupported_range::set_varying): New.
11825 (unsupported_range::dump): New.
11826 (unsupported_range::union_): New.
11827 (unsupported_range::intersect): New.
11828 (unsupported_range::zero_p): New.
11829 (unsupported_range::nonzero_p): New.
11830 (unsupported_range::set_nonzero): New.
11831 (unsupported_range::set_zero): New.
11832 (unsupported_range::set_nonnegative): New.
11833 (unsupported_range::fits_p): New.
11834 (irange::set): Call irange::set_undefined.
11835 (irange::verify_range): Check discriminator field.
11836 (irange::dump): Dump [irange] marker.
11837 (irange::debug): Move to...
11838 (vrange::debug): ...here.
11839 (dump_value_range): Accept vrange.
11840 (debug): Same.
11841 * value-range.h (enum value_range_discriminator): New.
11842 (class vrange): New.
11843 (class unsupported_range): New.
11844 (struct vrange_traits): New.
11845 (is_a): New.
11846 (as_a): New.
11847 (class irange): Inherit from vrange.
11848 (dump_value_range): Adjust for vrange.
11849 (irange::kind): Rename to...
11850 (vrange::kind): ...this.
11851 (irange::varying_p): Rename to...
11852 (vrange::varying_p): ...this.
11853 (irange::undefined_p): Rename to...
11854 (vrange::undefined_p): ...this.
11855 (irange::irange): Set discriminator.
11856 (irange::union_): Convert to irange before passing to irange
11857 method.
11858 (irange::intersect): Same.
11859 (vrange::supports_type_p): New.
11860 * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
11861 NULL bitmap argument to value_range_equiv::set.
11862 (vr_values::extract_range_basic): Same.
11863
11864 2022-06-01 Richard Biener <rguenther@suse.de>
11865
11866 PR tree-optimization/105763
11867 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
11868 Check gimple_range_ssa_p.
11869
11870 2022-05-31 Jason Merrill <jason@redhat.com>
11871
11872 * Makefile.in (TAGS): Look at libcpp/*.cc.
11873
11874 2022-05-31 Christophe Lyon <christophe.lyon@arm.com>
11875
11876 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
11877 Prefix mode names with E_.
11878
11879 2022-05-31 Alan Modra <amodra@gmail.com>
11880
11881 * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
11882 spelling of DW_AT_namelist_item.
11883
11884 2022-05-31 Jakub Jelinek <jakub@redhat.com>
11885
11886 * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
11887 allow var to be private in the outer context.
11888 (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
11889 to build_outer_var_ref.
11890
11891 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
11892
11893 * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
11894 tieable with DImode on TARGET_64BIT, and SCmode tieable with
11895 V2SFmode, and DCmode with V2DFmode.
11896
11897 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
11898
11899 PR rtl-optimization/101617
11900 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
11901 special case (indicated by negate_cc_compare_p) to generate a
11902 -1/0 mask using neg;sbb.
11903 * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
11904 to generate an *x86_neg<mode>_ccc instruction.
11905 (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
11906 generate a *x86_mov<mode>cc_0_m1_neg instruction.
11907
11908 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
11909
11910 * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
11911 SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
11912 <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
11913
11914 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
11915
11916 PR target/70321
11917 * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
11918 DI mode equality/inequality using XOR here. Instead generate a
11919 COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
11920 * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
11921 gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
11922 (general_scalar_chain::convert_compare): New function to convert
11923 scalar equality/inequality comparison into vector operations.
11924 (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
11925 new convert_compare helper method.
11926 (convertible_comparion_p): Update to match doubleword COMPARE
11927 of two register, memory or integer constant operands.
11928 * config/i386/i386-features.h (general_scalar_chain::convert_compare):
11929 Prototype/declare member function here.
11930 * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
11931 only allow new doubleword modes for EQ and NE operators.
11932 (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
11933 doubleword comparison into a pair of XORs followed by an IOR to
11934 set the (zero) flags register, optimizing the XORs if possible.
11935 * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
11936 iterator; V_AVX is (currently) only used by ptest.
11937 (sse4_1 mode attribute): Update to support V1TI and V2TI.
11938
11939 2022-05-30 Uroš Bizjak <ubizjak@gmail.com>
11940
11941 * config/i386/i386.md: Remove constraints when used with
11942 const_int_operand, const0_operand, const_1_operand, constm1_operand,
11943 const8_operand, const128_operand, const248_operand, const123_operand,
11944 const2367_operand, const1248_operand, const359_operand,
11945 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
11946 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
11947 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
11948 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
11949 const_0_to_255_mul_8_operand, const_1_to_31_operand,
11950 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
11951 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
11952 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
11953 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
11954 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
11955 const_24_to_27_operand and const_28_to_31_operand.
11956 * config/i386/mmx.md: Ditto.
11957 * config/i386/sse.md: Ditto.
11958 * config/i386/subst.md: Ditto.
11959 * config/i386/sync.md: Ditto.
11960
11961 2022-05-30 Jan Beulich <jbeulich@suse.com>
11962
11963 * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
11964 arguments.
11965
11966 2022-05-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11967
11968 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
11969
11970 2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
11971
11972 PR target/105599
11973 * config/darwin.h: Move versions-specific handling of multiply_defined
11974 from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
11975
11976 2022-05-29 Eric Gallager <egallager@gcc.gnu.org>
11977
11978 PR other/82383
11979 * doc/sourcebuild.texi: Add entries for the c++tools,
11980 gotools, libbacktrace, libcc1, libcody, liboffloadmic,
11981 and libsanitizer directories. Remove entry for boehm-gc.
11982 Fix alphabetization for libquadmath.
11983
11984 2022-05-28 Joel Holdsworth <jholdsworth@nvidia.com>
11985
11986 * config/avr/avr-mcus.def: Add device definitions.
11987 * doc/avr-mmcu.texi: Corresponding changes.
11988 * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
11989 device prefix.
11990 * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
11991 from leaking into cc1.
11992
11993 2022-05-28 Vladimir Makarov <vmakarov@gcc.gnu.org>
11994
11995 PR target/103722
11996 * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
11997 is special) for various scenarios.
11998
11999 2022-05-28 Iain Sandoe <iain@sandoe.co.uk>
12000
12001 * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
12002 describing this macro.
12003
12004 2022-05-27 Richard Biener <rguenther@suse.de>
12005
12006 * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
12007
12008 2022-05-27 Martin Jambor <mjambor@suse.cz>
12009
12010 PR ipa/105639
12011 * ipa-prop.cc (propagate_controlled_uses): Check type of the
12012 constant before adding a LOAD reference.
12013
12014 2022-05-27 Jakub Jelinek <jakub@redhat.com>
12015
12016 * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
12017 to OMP_CLAUSE_ENTER.
12018 * tree.h (OMP_CLAUSE_ENTER_TO): Define.
12019 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
12020 OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
12021 * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
12022 instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
12023 "to" instead of "enter".
12024 * tree-nested.cc (convert_nonlocal_omp_clauses,
12025 convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
12026 OMP_CLAUSE_TO_DECLARE.
12027
12028 2022-05-27 Richard Biener <rguenther@suse.de>
12029
12030 PR tree-optimization/105726
12031 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
12032 Constrain array-of-flexarray case more.
12033
12034 2022-05-27 Jakub Jelinek <jakub@redhat.com>
12035
12036 PR sanitizer/105729
12037 * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
12038 to (X &) z + w if -fsanitize=null during GENERIC folding.
12039
12040 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
12041
12042 * match.pd (match_zero_one_valued_p): New predicate.
12043 (mult @0 @1): Use zero_one_valued_p for optimization to the
12044 expression "bit_and @0 @1".
12045 (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
12046 (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
12047 (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
12048 (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
12049 Remove three redundant transforms obsoleted by the three above.
12050
12051 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
12052
12053 * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
12054 to split a combined "and;cmp" sequence into "not;test".
12055
12056 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12057
12058 * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
12059 (bswapsi2_internal): Revise the template and condition, and add
12060 detection code for preceding the same insn in order to omit a
12061 "SSAI 8" instruction of the latter.
12062 (bswapdi2): Suppress built-in insn expansion with the corresponding
12063 library call when optimizing for size.
12064
12065 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12066
12067 * config/xtensa/xtensa-protos.h
12068 (xtensa_expand_block_set_unrolled_loop,
12069 xtensa_expand_block_set_small_loop): New prototypes.
12070 * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
12071 xtensa_expand_block_set_unrolled_loop,
12072 xtensa_expand_block_set_small_loop): New functions.
12073 * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
12074 * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
12075
12076 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12077
12078 * config/xtensa/xtensa.cc (xtensa_expand_block_move):
12079 Make instruction counting more accurate, and simplify emitting insns.
12080
12081 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12082
12083 * config/xtensa/constraints.md (M, O): Use the macro.
12084 * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
12085 sext_fldsz_operand): Ditto.
12086 * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
12087 xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
12088 xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
12089 xtensa_expand_prologue): Ditto.
12090 * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
12091
12092 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12093
12094 * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
12095 * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
12096 Ditto.
12097
12098 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
12099
12100 * gimple-range-cache.cc: Adjust comments.
12101 * gimple-range-infer.cc: Adjust comments.
12102 * gimple-range-infer.h: Adjust comments.
12103 * gimple-range.cc: Adjust comments.
12104
12105 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
12106
12107 * Makefile.in (OBJS): Use gimple-range-infer.o.
12108 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
12109 (ranger_cache::range_from_dom): Rename var side_effect to infer.
12110 (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
12111 * gimple-range-cache.h: Include gimple-range-infer.h.
12112 (class ranger_cache): Adjust prototypes, use infer_range_manager.
12113 * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
12114 (gimple_infer_range::*): Rename from stmt_side_effects.
12115 (infer_range_manager::*): Rename from side_effect_manager.
12116 * gimple-range-side-effect.cc: Rename.
12117 * gimple-range-side-effect.h: Rename.
12118 * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
12119 (class gimple_infer_range): Rename from stmt_side_effects.
12120 (class infer_range_manager): Rename from side_effect_manager.
12121 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
12122 from register_side_effects.
12123 * gimple-range.h (register_inferred_ranges): Adjust prototype.
12124 * range-op.h: Adjust comment.
12125 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
12126 (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
12127
12128 2022-05-25 Simon Cook <simon.cook@embecosm.com>
12129
12130 * config/riscv/arch-canonicalize: Only add mafd extension if
12131 base was rv32/rv64g.
12132
12133 2022-05-25 Tobias Burnus <tobias@codesourcery.com>
12134
12135 * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
12136
12137 2022-05-25 Jakub Jelinek <jakub@redhat.com>
12138
12139 PR sanitizer/105714
12140 * asan.cc (has_stmt_been_instrumented_p): For assignments which
12141 are both stores and loads, return true only if both destination
12142 and source have been instrumented.
12143
12144 2022-05-25 Martin Liska <mliska@suse.cz>
12145 Richard Biener <rguenther@suse.de>
12146
12147 * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
12148 * params.opt (max-unswitch-level): Remove.
12149 * doc/invoke.texi (max-unswitch-level): Likewise.
12150 * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
12151 gimplified expressions.
12152 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
12153 (tree_may_unswitch_on): Rename to ...
12154 (find_unswitching_predicates_for_bb): ... this and handle
12155 switch statements.
12156 (get_predicates_for_bb): Likewise.
12157 (set_predicates_for_bb): Likewise.
12158 (init_loop_unswitch_info): Likewise.
12159 (tree_ssa_unswitch_loops): Prepare stuff before calling
12160 tree_unswitch_single_loop.
12161 (tree_unswitch_single_loop): Rework the function using
12162 pre-computed predicates and with a per original loop cost model.
12163 (merge_last): New.
12164 (add_predicate_to_path): Likewise.
12165 (find_range_for_lhs): Likewise.
12166 (simplify_using_entry_checks): Rename to ...
12167 (evaluate_control_stmt_using_entry_checks): ... this, handle
12168 switch statements and improve simplifications using ranger.
12169 (simplify_loop_version): Rework using
12170 evaluate_control_stmt_using_entry_checks.
12171 (evaluate_bbs): New.
12172 (evaluate_loop_insns_for_predicate): Likewise.
12173 (tree_unswitch_loop): Adjust to allow switch statements and
12174 pass in the edge to unswitch.
12175 (clean_up_after_unswitching): New.
12176 (pass_tree_unswitch::execute): Pass down fun.
12177
12178 2022-05-24 Eugene Rozenfeld <erozen@microsoft.com>
12179
12180 * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
12181 counts for the epilog loop.
12182
12183 2022-05-24 Martin Sebor <msebor@redhat.com>
12184 Richard Biener <rguenther@suse.de>
12185
12186 PR middle-end/105604
12187 * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
12188 (get_origin_and_offset_r): Remove null handling. Handle variable array
12189 sizes.
12190 (get_origin_and_offset): Handle null argument here. Simplify.
12191 (alias_offset): Update comment.
12192 * pointer-query.cc (field_at_offset): Update comment. Handle members
12193 of variable-length types.
12194
12195 2022-05-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12196
12197 * target.def (vec_perm_const): Define new parameter op_mode and
12198 update doc.
12199 * doc/tm.texi: Regenerate.
12200 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
12201 vec_perm_const hook to add new parameter op_mode and return false
12202 if result and operand modes do not match.
12203 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
12204 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
12205 * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
12206 * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
12207 * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
12208 * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
12209 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
12210 * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
12211 * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
12212 prototype.
12213 * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
12214 (ashrv2di3): Likewise.
12215 * optabs.cc (expand_vec_perm_const): Likewise.
12216 * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
12217 * optabs-query.cc (can_vec_perm_const_p): Define new parameter
12218 op_mode and pass it to vec_perm_const hook.
12219 (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
12220 * match.pd (vec_perm X Y CST): Likewise.
12221 * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
12222 * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
12223 (vect_grouped_load_supported): Likewise.
12224 (vect_shift_permute_load_chain): Likewise.
12225 * tree-vect-generic.cc (lower_vec_perm): Likewise.
12226 * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
12227 * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
12228 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
12229 * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
12230 (vect_transform_slp_perm_load): Likewise.
12231 (vectorizable_slp_permutation): Likewise.
12232 * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
12233 (vectorizable_bswap): Likewise.
12234 (scan_store_can_perm_p): Likewise.
12235 (vect_gen_perm_mask_checked): Likewise.
12236
12237 2022-05-24 H.J. Lu <hjl.tools@gmail.com>
12238
12239 PR target/104816
12240 * config/i386/i386.opt: Remove Undocumented.
12241 * doc/invoke.texi: Document -mcet-switch.
12242
12243 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
12244
12245 * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
12246 * config/gcn/gcn-opts.h (enum gcn_isa): New.
12247 (TARGET_GCN3): Use enum gcn_isa.
12248 (TARGET_GCN3_PLUS): Likewise.
12249 (TARGET_GCN5): Likewise.
12250 (TARGET_GCN5_PLUS): Likewise.
12251 (TARGET_CDNA1): New.
12252 (TARGET_CDNA1_PLUS): New.
12253 (TARGET_CDNA2): New.
12254 (TARGET_CDNA2_PLUS): New.
12255 (TARGET_M0_LDS_LIMIT): New.
12256 (TARGET_PACKED_WORK_ITEMS): New.
12257 * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
12258 (gcn_option_override): Recognise CDNA ISA variants.
12259 (gcn_omp_device_kind_arch_isa): Support gfx90a.
12260 (gcn_expand_prologue): Make m0 init optional.
12261 Add support for packed work items.
12262 (output_file_start): Support gfx90a.
12263 (gcn_hsa_declare_function_name): Support gfx90a metadata.
12264 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
12265 __CDNA2__.
12266 * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
12267 (<su>mulsi3_highpart_imm): Likewise.
12268 (<su>mulsidi3): Likewise.
12269 (<su>mulsidi3_imm): Likewise.
12270 * config/gcn/gcn.opt (gpu_type): Add gfx90a.
12271 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
12272 (main): Support gfx90a.
12273 * config/gcn/t-gcn-hsa: Add gfx90a multilib.
12274 * config/gcn/t-omp-device: Add gfx90a isa.
12275
12276 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
12277
12278 * config.in: Regenerate.
12279 * config/gcn/gcn-hsa.h (X_FIJI): Delete.
12280 (X_900): Delete.
12281 (X_906): Delete.
12282 (X_908): Delete.
12283 (S_FIJI): Delete.
12284 (S_900): Delete.
12285 (S_906): Delete.
12286 (S_908): Delete.
12287 (NO_XNACK): New macro.
12288 (NO_SRAM_ECC): New macro.
12289 (SRAMOPT): Keep only v4 variant.
12290 (HSACO3_SELECT_OPT): Delete.
12291 (DRIVER_SELF_SPECS): Delete.
12292 (ASM_SPEC): Remove LLVM 9 support.
12293 * config/gcn/gcn-valu.md
12294 (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
12295 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
12296 * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
12297 (print_operand_address): Remove assembler bug workaround.
12298 * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
12299 (EF_AMDGPU_SRAM_ECC_V3): Delete.
12300 (SET_XNACK_ON): Delete v3 variants.
12301 (SET_XNACK_OFF): Delete v3 variants.
12302 (TEST_XNACK): Delete v3 variants.
12303 (SET_SRAM_ECC_ON): Delete v3 variants.
12304 (SET_SRAM_ECC_ANY): Delete v3 variants.
12305 (SET_SRAM_ECC_OFF): Delete v3 variants.
12306 (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
12307 (TEST_SRAM_ECC_ANY): Delete v3 variants.
12308 (TEST_SRAM_ECC_ON): Delete v3 variants.
12309 (copy_early_debug_info): Remove v3 support.
12310 (main): Remove v3 support.
12311 * configure: Regenerate.
12312 * configure.ac: Replace all GCN feature checks with a version check.
12313
12314 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
12315
12316 * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
12317 i.e. a double word negation of a zero extended operand, to
12318 neg;sbb.
12319
12320 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
12321
12322 PR tree-optimization/105668
12323 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
12324 V1TImode, just like V2DImode.
12325 * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
12326 Use VI_128 mode iterator instead of VI124_128 to include V2DI.
12327 (vcond_mask_v2div2di): Delete.
12328 (vcond_mask_v1tiv1ti): New define_expand.
12329
12330 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
12331
12332 * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
12333 to strncmp for strings of length one.
12334
12335 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
12336
12337 * config/riscv/predicates.md (imm5_operand): Add a new operand type for
12338 prefetch instructions.
12339 * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
12340 Extensions.
12341 (RISCV_ATYPE_SI): New.
12342 (RISCV_ATYPE_DI): New.
12343 * config/riscv/riscv-ftypes.def (0): New.
12344 (1): New.
12345 * config/riscv/riscv.md (riscv_clean_<mode>): New.
12346 (riscv_flush_<mode>): New.
12347 (riscv_inval_<mode>): New.
12348 (riscv_zero_<mode>): New.
12349 (prefetch): New.
12350 (riscv_prefetchi_<mode>): New.
12351 * config/riscv/riscv-cmo.def: New file.
12352
12353 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
12354
12355 * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
12356 * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
12357 (MASK_ZICBOM): New.
12358 (MASK_ZICBOP): New.
12359 (TARGET_ZICBOZ): New.
12360 (TARGET_ZICBOM): New.
12361 (TARGET_ZICBOP): New.
12362 * config/riscv/riscv.opt (riscv_zicmo_subext): New.
12363
12364 2022-05-24 David Malcolm <dmalcolm@redhat.com>
12365
12366 * tree-vect-slp-patterns.cc: Add "final" and "override" to
12367 vect_pattern::build impls as appropriate.
12368
12369 2022-05-24 David Malcolm <dmalcolm@redhat.com>
12370
12371 * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
12372 implementations, removing redundant "virtual" as appropriate.
12373 * ipa-fnsummary.h: Likewise.
12374 * ipa-modref.cc: Likewise.
12375 * ipa-param-manipulation.cc: Likewise.
12376 * ipa-profile.cc: Likewise.
12377 * ipa-prop.h: Likewise.
12378 * ipa-pure-const.cc: Likewise.
12379 * ipa-reference.cc: Likewise.
12380 * ipa-sra.cc: Likewise.
12381 * symbol-summary.h: Likewise.
12382 * symtab-thunks.cc: Likewise.
12383
12384 2022-05-24 Martin Liska <mliska@suse.cz>
12385
12386 Revert:
12387 2022-05-24 Martin Liska <mliska@suse.cz>
12388
12389 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
12390 warning.
12391
12392 2022-05-24 Martin Liska <mliska@suse.cz>
12393
12394 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
12395 warning.
12396
12397 2022-05-24 Bruno Haible <bruno@clisp.org>
12398
12399 PR other/105527
12400 * doc/install.texi (Configuration): Add more details about --with-zstd.
12401 Document --with-zstd-include and --with-zstd-lib
12402
12403 2022-05-24 Richard Biener <rguenther@suse.de>
12404
12405 PR middle-end/105711
12406 * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
12407 and use it.
12408 (extract_bit_field_1): Pass down the mode of op0 to
12409 extract_bit_field_as_subreg.
12410
12411 2022-05-24 Vineet Gupta <vineetg@rivosinc.com>
12412
12413 * config/riscv/riscv.cc: (struct riscv_tune_param): Add
12414 fmv_cost.
12415 (rocket_tune_info): Add default fmv_cost 8.
12416 (sifive_7_tune_info): Ditto.
12417 (thead_c906_tune_info): Ditto.
12418 (optimize_size_tune_info): Ditto.
12419 (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
12420
12421 2022-05-24 Jakub Jelinek <jakub@redhat.com>
12422
12423 PR c/105378
12424 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
12425 builtin.
12426 * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
12427 clause but no depend clauses.
12428 * omp-expand.cc (expand_taskwait_call): Use
12429 BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
12430 BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
12431
12432 2022-05-24 Richard Biener <rguenther@suse.de>
12433
12434 PR tree-optimization/100221
12435 * tree-ssa-dse.cc (contains_phi_arg): New function.
12436 (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
12437
12438 2022-05-24 Richard Biener <rguenther@suse.de>
12439
12440 PR tree-optimization/105629
12441 * tree-ssa-phiopt.cc (spaceship_replacement): Allow
12442 a sign-extending conversion.
12443
12444 2022-05-24 Kewen Lin <linkw@linux.ibm.com>
12445
12446 PR target/105627
12447 * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
12448 be a debug insn.
12449 (union_uses): Skip debug use_insn.
12450
12451 2022-05-23 Vineet Gupta <vineetg@rivosinc.com>
12452
12453 * config/riscv/predicates.md (const_0_operand): Remove
12454 const_double.
12455 * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
12456 CONST_DOUBLE.
12457 * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
12458
12459 2022-05-23 Mayshao <mayshao-oc@zhaoxin.com>
12460
12461 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
12462 the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
12463 (cpu_indicator_init): Handle Zhaoxin processors.
12464 * common/config/i386/i386-common.cc: Add lujiazui.
12465 * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
12466 VENDOR_ZHAOXIN.
12467 (enum processor_types): Add ZHAOXIN_FAM7H.
12468 (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
12469 * config.gcc: Add lujiazui.
12470 * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
12471 Signatures for zhaoxin
12472 (signature_SHANGHAI_ecx): Ditto.
12473 (signature_SHANGHAI_edx): Ditto.
12474 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
12475 -march=native recognize lujiazui processors.
12476 * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
12477 * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
12478 * config/i386/i386.h (enum processor_type): Ditto.
12479 * config/i386/i386.md: Add lujiazui.
12480 * config/i386/x86-tune-costs.h (struct processor_costs): Add
12481 lujiazui costs.
12482 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
12483 (ix86_adjust_cost): Ditto.
12484 * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
12485 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
12486 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
12487 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
12488 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
12489 (X86_TUNE_MOVX): Ditto.
12490 (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
12491 (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
12492 (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
12493 (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
12494 (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
12495 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
12496 (X86_TUNE_USE_LEAVE): Ditto.
12497 (X86_TUNE_PUSH_MEMORY): Ditto.
12498 (X86_TUNE_LCP_STALL): Ditto.
12499 (X86_TUNE_USE_INCDEC): Ditto.
12500 (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
12501 (X86_TUNE_OPT_AGU): Ditto.
12502 (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
12503 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
12504 (X86_TUNE_USE_SAHF): Ditto.
12505 (X86_TUNE_USE_BT): Ditto.
12506 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
12507 (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
12508 (X86_TUNE_AVOID_MFENCE): Ditto.
12509 (X86_TUNE_EXPAND_ABS): Ditto.
12510 (X86_TUNE_USE_SIMODE_FIOP): Ditto.
12511 (X86_TUNE_USE_FFREEP): Ditto.
12512 (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
12513 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
12514 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
12515 (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
12516 (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
12517 * doc/extend.texi: Add details about lujiazui.
12518 * doc/invoke.texi: Add details about lujiazui.
12519 * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
12520
12521 2022-05-23 Martin Liska <mliska@suse.cz>
12522
12523 * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
12524
12525 2022-05-23 Richard Biener <rguenther@suse.de>
12526
12527 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
12528 (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
12529
12530 2022-05-23 Richard Biener <rguenther@suse.de>
12531
12532 * gimple-expr.cc (is_gimple_condexpr): Remove.
12533 * gimple-expr.h (is_gimple_condexpr): Likewise.
12534 * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
12535 * tree-if-conv.cc (set_bb_predicate): Likewie.
12536 (add_to_predicate_list): Likewise.
12537 (gen_phi_arg_condition): Likewise.
12538 (predicate_scalar_phi): Likewise.
12539 (predicate_statements): Likewise.
12540
12541 2022-05-23 Richard Biener <rguenther@suse.de>
12542
12543 * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
12544 * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
12545 as is_gimple_val.
12546 * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
12547 * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
12548 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
12549 Build the condition of the COND_EXPR separately.
12550 * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
12551 * tree-vect-generic.cc (expand_vector_condition): Likewise.
12552 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
12553 Likewise.
12554 * vr-values.cc (simplify_using_ranges::simplify): Likewise.
12555 * tree-vect-patterns.cc: Add comment indicating we are
12556 building invalid COND_EXPRs and why.
12557 * omp-expand.cc (expand_omp_simd): Gimplify the condition
12558 to the COND_EXPR separately.
12559 (expand_omp_atomic_cas): Note part that should be unreachable
12560 now.
12561 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
12562 condition for valid replacements.
12563 * tree-if-conv.cc (predicate_bbs): Simulate previous
12564 re-folding of the condition in folded COND_EXPRs which
12565 is necessary because of unfolded GIMPLE_CONDs in the IL
12566 as in for example gcc.dg/fold-bopcond-1.c.
12567 * gimple-range-gori.cc (gori_compute::condexpr_adjust):
12568 Handle that the comparison is now in the def stmt of
12569 the select operand. Required by gcc.dg/pr104526.c.
12570
12571 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
12572
12573 PR fortran/104949
12574 * langhooks-def.h (lhd_omp_array_size): New.
12575 (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
12576 (LANG_HOOKS_DECLS): Add it.
12577 * langhooks.cc (lhd_omp_array_size): New.
12578 * langhooks.h (struct lang_hooks_for_decls): Add hook.
12579 * omp-low.cc (scan_sharing_clauses, lower_omp_target):
12580 Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
12581
12582 2022-05-23 Roger Sayle <roger@nextmovesoftware.com>
12583
12584 * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
12585 XOR/IOR case. Account for two instructions for double-word
12586 operations. In case of vector pandn, account for single
12587 instruction. Likewise for integer andn with TARGET_BMI.
12588 <case NOT>: Vector NOT requires more than 1 instruction (pxor).
12589 <case NEG>: Double-word negation requires 3 instructions.
12590
12591 2022-05-23 Tsukasa OI <research_trasio@irq.a4lg.com>
12592
12593 * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
12594 Fix "K" extension prefix to be placed before "J".
12595 * config/riscv/arch-canonicalize: Likewise.
12596
12597 2022-05-23 liuhongt <hongtao.liu@intel.com>
12598
12599 * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
12600 <-> mask cost from 5 to 6.
12601 (icelake_cost): Ditto.
12602
12603 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
12604
12605 * config/aarch64/aarch64.md
12606 (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
12607 (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
12608 (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
12609 (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
12610 (one_cmpl_<optab><mode>2): Likewise.
12611 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
12612 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
12613 (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
12614 (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
12615 (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
12616 (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
12617 (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
12618 (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
12619 (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
12620 (rolsi3_insn_uxtw): New pattern.
12621 * config/aarch64/iterators.md (SHIFT): Add rotate left.
12622 (SHIFT_no_rotate): Add new iterator.
12623 (SHIFT:shift): Print rotate left as ror.
12624 (is_rotl): Add test for left rotate.
12625
12626 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
12627
12628 * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
12629 processing. Add support for architectural extensions.
12630 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
12631 AARCH64_CPU_DEFAULT_FLAGS.
12632 (TARGET_CPU_NBITS): Remove.
12633 (TARGET_CPU_MASK): Remove.
12634 * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
12635 (get_tune_cpu): Assert CPU is always valid.
12636 (get_arch): Assert architecture is always valid.
12637 (aarch64_override_options): Cleanup CPU selection code and simplify logic.
12638 (aarch64_option_restore): Remove unnecessary checks on tune.
12639
12640 2022-05-20 David Malcolm <dmalcolm@redhat.com>
12641
12642 * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
12643 "FINAL" and "OVERRIDE" with "final" and "override".
12644 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
12645 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
12646 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
12647 * diagnostic-path.h: Likewise.
12648 * digraph.cc: Likewise.
12649 * gcc-rich-location.h: Likewise.
12650 * gimple-array-bounds.cc: Likewise.
12651 * gimple-loop-versioning.cc: Likewise.
12652 * gimple-range-cache.cc: Likewise.
12653 * gimple-range-cache.h: Likewise.
12654 * gimple-range-fold.cc: Likewise.
12655 * gimple-range-fold.h: Likewise.
12656 * gimple-range-tests.cc: Likewise.
12657 * gimple-range.h: Likewise.
12658 * gimple-ssa-evrp.cc: Likewise.
12659 * input.cc: Likewise.
12660 * json.h: Likewise.
12661 * read-rtl-function.cc: Likewise.
12662 * tree-complex.cc: Likewise.
12663 * tree-diagnostic-path.cc: Likewise.
12664 * tree-ssa-ccp.cc: Likewise.
12665 * tree-ssa-copy.cc: Likewise.
12666 * tree-vrp.cc: Likewise.
12667 * value-query.h: Likewise.
12668 * vr-values.h: Likewise.
12669
12670 2022-05-20 Marcel Vollweiler <marcel@codesourcery.com>
12671
12672 * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
12673 target_memcpy_rect_async to omp_runtime_apis array.
12674
12675 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
12676
12677 * doc/sourcebuild.texi (Decimal floating point attributes): Document
12678 dfp_bid effective-target.
12679
12680 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
12681
12682 * config/aarch64/aarch64.cc
12683 (aarch64_split_128bit_move): Handle DFP modes.
12684 (aarch64_mode_valid_for_sched_fusion_p): Likewise.
12685 (aarch64_classify_address): Likewise.
12686 (aarch64_legitimize_address_displacement): Likewise.
12687 (aarch64_reinterpret_float_as_int): Likewise.
12688 (aarch64_float_const_zero_rtx_p): Likewise.
12689 (aarch64_can_const_movi_rtx_p): Likewise.
12690 (aarch64_anchor_offset): Likewise.
12691 (aarch64_secondary_reload): Likewise.
12692 (aarch64_rtx_costs): Likewise.
12693 (aarch64_legitimate_constant_p): Likewise.
12694 (aarch64_gimplify_va_arg_expr): Likewise.
12695 (aapcs_vfp_sub_candidate): Likewise.
12696 (aarch64_vfp_is_call_or_return_candidate): Likewise.
12697 (aarch64_output_scalar_simd_mov_immediate): Likewise.
12698 (aarch64_gen_adjusted_ldpstp): Likewise.
12699 (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
12700 * config/aarch64/aarch64.md
12701 (movsf_aarch64): Use SFD iterator and rename into
12702 mov<mode>_aarch64.
12703 (movdf_aarch64): Use DFD iterator and rename into
12704 mov<mode>_aarch64.
12705 (movtf_aarch64): Use TFD iterator and rename into
12706 mov<mode>_aarch64.
12707 (split pattern for move TF mode): Use TFD iterator.
12708 * config/aarch64/iterators.md
12709 (GPF_TF_F16_MOV): Add DFP modes.
12710 (SFD, DFD, TFD): New iterators.
12711 (GPF_TF): Add DFP modes.
12712 (TX, DX, DX2): Likewise.
12713
12714 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
12715
12716 * configure: Regenerate.
12717
12718 2022-05-19 Roger Sayle <roger@nextmovesoftware.com>
12719
12720 PR middle-end/98865
12721 * expr.cc (expand_expr_real_2) [MULT_EXPR]: Expand X*Y as X&Y
12722 when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
12723 likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
12724
12725 2022-05-19 Will Schmidt <will_schmidt@vnet.ibm.com>
12726
12727 * config/rs6000/rs6000-builtins.def: Rephrase
12728 to remove RS6000_BTC_SPECIAL from comment.
12729 * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
12730 RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
12731 RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
12732 RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
12733 RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
12734 RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
12735 RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
12736 RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
12737 RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
12738 RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
12739 RS6000_BTM_ALWAYS): Delete.
12740
12741 2022-05-19 Richard Biener <rguenther@suse.de>
12742
12743 * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
12744 computation of the new value.
12745
12746 2022-05-19 Richard Biener <rguenther@suse.de>
12747
12748 * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
12749 (add_to_value): Use get_expression_id.
12750 (bitmap_insert_into_set): Likewise.
12751 (bitmap_value_insert_into_set): Likewise.
12752
12753 2022-05-19 David Malcolm <dmalcolm@redhat.com>
12754
12755 * doc/invoke.texi (-fanalyzer-checker=): Add
12756 -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
12757 the list of analyzer warnings disabled by
12758 -fanalyzer-checker=taint.
12759
12760 2022-05-19 Jakub Jelinek <jakub@redhat.com>
12761
12762 PR debug/105630
12763 * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
12764 global vars without symtab node even when they have DECL_RTL
12765 set.
12766
12767 2022-05-19 Jakub Jelinek <jakub@redhat.com>
12768
12769 PR c/105635
12770 * pointer-query.cc (gimple_parm_array_size): Return NULL if var
12771 doesn't have pointer or reference type.
12772
12773 2022-05-18 Marek Polacek <polacek@redhat.com>
12774
12775 PR c/105131
12776 * doc/invoke.texi: Document -Wenum-int-mismatch.
12777
12778 2022-05-18 Uros Bizjak <ubizjak@gmail.com>
12779
12780 * config/i386/gnu-user-common.h (defined): Only define
12781 TARGET_CAN_SPLIT_STACK for glibc targets.
12782 * config/i386/gnu.h (defined): Ditto.
12783
12784 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
12785
12786 * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
12787 is wider than word_mode, a multiplication costs three word_mode
12788 multiplications and two word_mode additions.
12789
12790 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
12791
12792 * config/i386/i386.md (define_split): Split *andsi_1
12793 and *andn_si_ccno after reload with -Oz.
12794
12795 2022-05-18 Frederik Harwath <frederik@codesourcery.com>
12796
12797 * graphite-scop-detection.cc (scop_detection::can_represent_loop):
12798 Output reason for failure to dump file.
12799 (scop_detection::harmful_loop_in_region): Likewise.
12800 (scop_detection::graphite_can_represent_expr): Likewise.
12801 (scop_detection::stmt_has_simple_data_refs_p): Likewise.
12802 (scop_detection::stmt_simple_for_scop_p): Likewise.
12803 (print_sese_loop_numbers): New function.
12804 (scop_detection::add_scop): Use from here.
12805
12806 2022-05-18 liuhongt <hongtao.liu@intel.com>
12807
12808 PR middle-end/103462
12809 * match.pd (bitwise_induction_p): New match.
12810 * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
12811 Declare.
12812 (analyze_and_compute_bitwise_induction_effect): New function.
12813 (enum bit_op_kind): New enum.
12814 (final_value_replacement_loop): Enhanced to handle bitwise
12815 induction.
12816
12817 2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org>
12818
12819 PR target/95737
12820 * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
12821
12822 2022-05-18 liuhongt <hongtao.liu@intel.com>
12823
12824 PR target/104375
12825 * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
12826 define_insn.
12827
12828 2022-05-18 liuhongt <hongtao.liu@intel.com>
12829
12830 PR target/104610
12831 * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
12832 for QImode when code is EQ or NE.
12833 * config/i386/i386.md (cbranchoi4): New expander.
12834
12835 2022-05-18 Peter Bergner <bergner@linux.ibm.com>
12836 Segher Boessenkool <segher@kernel.crashing.org>
12837
12838 PR target/105556
12839 * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
12840 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
12841 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
12842 mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
12843 Update other operands accordingly.
12844
12845 2022-05-17 Marek Polacek <polacek@redhat.com>
12846
12847 * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
12848
12849 2022-05-17 Pat Haugen <pthaugen@linux.ibm.com>
12850
12851 PR target/99685
12852 * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
12853 register count when not splitting IEEE 128-bit Complex.
12854
12855 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
12856
12857 * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
12858 target inside target if inner is reverse offload.
12859
12860 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
12861
12862 * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
12863 * config/nvptx/mkoffload.cc (process): Likewise.
12864
12865 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
12866
12867 * Makefile.in (OBJS): Add gimple-range-side-effect.o.
12868 * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
12869 (non_null_ref::~non_null_ref): Delete.
12870 (non_null_ref::set_nonnull): Delete.
12871 (non_null_ref::non_null_deref_p): Delete.
12872 (non_null_ref::process_name): Delete.
12873 (ranger_cache::ranger_cache): Initialize m_exit object.
12874 (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
12875 (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
12876 (ranger_cache::update_to_nonnull): Delete.
12877 (non_null_loadstore): Delete.
12878 (ranger_cache::block_apply_nonnull): Delete.
12879 (ranger_cache::apply_side_effects): New.
12880 * gimple-range-cache.h (class non_null_ref): Delete.
12881 (non_null_ref::adjust_range): Delete.
12882 (class ranger_cache): Adjust prototypes, add side effect manager.
12883 * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
12884 side effect manager for queries.
12885 (path_range_query::adjust_for_non_null_uses): Ditto.
12886 * gimple-range-path.h (class path_range_query): Delete non_null_ref.
12887 * gimple-range-side-effect.cc: New.
12888 * gimple-range-side-effect.h: New.
12889 * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
12890 (gimple_ranger::range_of_expr): Check def block for override value.
12891 (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
12892 (gimple_ranger::range_on_edge): Check for outgoing side-effects.
12893 (gimple_ranger::register_side_effects): Call apply_side_effects.
12894 (enable_ranger): Update contructor.
12895 * gimple-range.h (class gimple_ranger): Update prototype.
12896 (enable_ranger): Update prototype.
12897 * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
12898
12899 2022-05-17 Giuliano Belinassi <gbelinassi@suse.de>
12900
12901 PR c++/105169
12902 * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
12903 * varasm.cc (switch_to_comdat_section): New
12904 (handle_vtv_comdat_section): Call switch_to_comdat_section.
12905 * varasm.h: Declare switch_to_comdat_section.
12906
12907 2022-05-17 Richard Biener <rguenther@suse.de>
12908
12909 * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
12910 not clear bb->aux of the copied blocks.
12911
12912 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
12913
12914 PR tree-optimization/105458
12915 * value-relation.cc (path_oracle::register_relation): Merge, then check
12916 for equivalence.
12917
12918 2022-05-17 Uroš Bizjak <ubizjak@gmail.com>
12919
12920 PR target/105624
12921 Revert:
12922 * config/i386/i386.md: Remove constraints when used with
12923 const_int_operand, const0_operand, const_1_operand, constm1_operand,
12924 const8_operand, const128_operand, const248_operand, const123_operand,
12925 const2367_operand, const1248_operand, const359_operand,
12926 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
12927 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
12928 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
12929 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
12930 const_0_to_255_mul_8_operand, const_1_to_31_operand,
12931 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
12932 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
12933 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
12934 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
12935 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
12936 const_24_to_27_operand and const_28_to_31_operand.
12937 * config/i386/mmx.md: Ditto.
12938 * config/i386/sse.md: Ditto.
12939 * config/i386/subst.md: Ditto.
12940 * config/i386/sync.md: Ditto.
12941
12942 2022-05-17 Thomas Schwinge <thomas@codesourcery.com>
12943
12944 * diagnostic.cc: Don't advise to call 'abort' instead of
12945 'internal_error'.
12946 * system.h: Advise to call 'internal_error' instead of 'abort' or
12947 'fancy_abort'.
12948
12949 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
12950
12951 * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
12952 a reference to a variable which does not exist.
12953 * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
12954 in comment.
12955
12956 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
12957
12958 * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
12959 (isl_id_for_parameter): ... this new function name.
12960 (build_scop_context): Adjust function use.
12961
12962 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
12963
12964 PR target/105602
12965 * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
12966 * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
12967
12968 2022-05-17 Jakub Jelinek <jakub@redhat.com>
12969
12970 * tree-core.h (enum omp_clause_depend_kind): Add
12971 OMP_CLAUSE_DEPEND_INOUTSET.
12972 * tree-pretty-print.cc (dump_omp_clause): Handle
12973 OMP_CLAUSE_DEPEND_INOUTSET.
12974 * gimplify.cc (gimplify_omp_depend): Likewise.
12975 * omp-low.cc (lower_depend_clauses): Likewise.
12976
12977 2022-05-17 Jakub Jelinek <jakub@redhat.com>
12978
12979 PR target/105613
12980 * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
12981 andv4si3 only for EQ, for NE use iorv4si3 instead.
12982
12983 2022-05-17 Richard Biener <rguenther@suse.de>
12984
12985 PR tree-optimization/105618
12986 * tree-ssa-sink.cc (statement_sink_location): For virtual
12987 PHI uses ignore those defining the used virtual operand.
12988
12989 2022-05-17 Jakub Jelinek <jakub@redhat.com>
12990
12991 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
12992 hanlde -> handle. Fix up comment formatting.
12993
12994 2022-05-17 liuhongt <hongtao.liu@intel.com>
12995
12996 PR target/105033
12997 * config/i386/sse.md (*vec_concatv4si): Extend to ..
12998 (*vec_concat<mode>): .. V16QI and V8HImode.
12999 (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
13000 (*vec_concatv8hi_permt2): Ditto.
13001
13002 2022-05-17 liuhongt <hongtao.liu@intel.com>
13003
13004 PR tree-optimization/105591
13005 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
13006 vec_perm_expr index.
13007
13008 2022-05-16 Jason Merrill <jason@redhat.com>
13009
13010 PR c/105492
13011 * attribs.cc (decl_attributes): Fix broken typedefs here.
13012
13013 2022-05-16 David Malcolm <dmalcolm@redhat.com>
13014
13015 PR analyzer/105103
13016 * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
13017 * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
13018 -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
13019 -Wanalyzer-va-list-use-after-va-end.
13020
13021 2022-05-16 Richard Biener <rguenther@suse.de>
13022
13023 * gimple-match.h (gimple_build): Move code_helper overloads ...
13024 * gimple-fold.h (gimple_build): ... here.
13025 (gimple_build): Transition to new worker API. Provide
13026 overloads from sequence-based API.
13027 (gimple_convert): Likewise.
13028 (gimple_convert_to_ptrofftype): Likewise.
13029 (gimple_build_vector_from_val): Likewise.
13030 (gimple_build_vector): Likewise.
13031 (gimple_build_round_up): Likewise.
13032 * gimple-fold.cc (gimple_build_insert_seq): New helper.
13033 (gimple_build): Use it. Transition combined_fn and code_helper
13034 API parts.
13035 (gimple_convert): Transition to new worker API.
13036 (gimple_convert_to_ptrofftype): Likewise.
13037 (gimple_build_vector_from_val): Likewise.
13038 (gimple_build_vector): Likewise.
13039 (gimple_build_round_up): Likewise.
13040
13041 2022-05-16 Richard Biener <rguenther@suse.de>
13042
13043 * gimple-match.h (code_helper): Move class ...
13044 * tree.h (code_helper): ... here.
13045
13046 2022-05-16 Martin Liska <mliska@suse.cz>
13047
13048 * opts-global.cc (write_langs): Add comment.
13049
13050 2022-05-16 Eric Botcazou <ebotcazou@adacore.com>
13051
13052 * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
13053 instead of a bitwise negation.
13054 <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
13055
13056 2022-05-16 Martin Liska <mliska@suse.cz>
13057
13058 * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
13059 (decls_mismatched_attributes): Likewise.
13060 * builtins.cc (c_strlen): Likewise.
13061 * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
13062 * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
13063 * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
13064 (aarch64_init_simd_builtin_types): Likewise.
13065 (aarch64_init_builtin_rsqrt): Likewise.
13066 * config/aarch64/aarch64.cc (is_madd_op): Likewise.
13067 * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
13068 (arm_init_simd_builtin_types): Likewise.
13069 * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
13070 (c_prefix): Likewise.
13071 (main): Likewise.
13072 * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
13073 * config/darwin-c.cc (darwin_register_frameworks): Likewise.
13074 * config/gcn/mkoffload.cc (process_obj): Likewise.
13075 * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
13076 (fold_builtin_cpu): Likewise.
13077 * config/m32c/m32c.cc (PUSHM_N): Likewise.
13078 * config/nvptx/mkoffload.cc (process): Likewise.
13079 * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
13080 * config/s390/s390.cc (NR_C_MODES): Likewise.
13081 * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
13082 (create_insn_code_compression_table): Likewise.
13083 * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
13084 * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
13085 * dwarf2out.cc (ARRAY_SIZE): Likewise.
13086 * genhooks.cc (emit_documentation): Likewise.
13087 (emit_init_macros): Likewise.
13088 * gimple-ssa-sprintf.cc (format_floating): Likewise.
13089 * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
13090 * godump.cc (keyword_hash_init): Likewise.
13091 * hash-table.cc (hash_table_higher_prime_index): Likewise.
13092 * input.cc (for_each_line_table_case): Likewise.
13093 * ipa-free-lang-data.cc (free_lang_data): Likewise.
13094 * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
13095 * optc-save-gen.awk: Likewise.
13096 * spellcheck.cc (test_metric_conditions): Likewise.
13097 * tree-vect-slp-patterns.cc (sizeof): Likewise.
13098 (ARRAY_SIZE): Likewise.
13099 * tree.cc (build_common_tree_nodes): Likewise.
13100
13101 2022-05-16 Martin Liska <mliska@suse.cz>
13102
13103 * opts-global.cc (write_langs): Allocate at least one byte.
13104
13105 2022-05-16 Richard Biener <rguenther@suse.de>
13106
13107 * match.pd (A cmp B ? A : B -> min/max): New patterns
13108 carried over from fold_cond_expr_with_comparison.
13109
13110 2022-05-16 liuhongt <hongtao.liu@intel.com>
13111
13112 PR target/105587
13113 * config/i386/i386-expand.cc
13114 (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
13115 d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
13116
13117 2022-05-15 Uroš Bizjak <ubizjak@gmail.com>
13118
13119 * config/i386/i386.md: Remove constraints when used with
13120 const_int_operand, const0_operand, const_1_operand, constm1_operand,
13121 const8_operand, const128_operand, const248_operand, const123_operand,
13122 const2367_operand, const1248_operand, const359_operand,
13123 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
13124 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
13125 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
13126 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
13127 const_0_to_255_mul_8_operand, const_1_to_31_operand,
13128 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
13129 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
13130 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
13131 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
13132 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
13133 const_24_to_27_operand and const_28_to_31_operand.
13134 * config/i386/mmx.md: Ditto.
13135 * config/i386/sse.md: Ditto.
13136 * config/i386/subst.md: Ditto.
13137 * config/i386/sync.md: Ditto.
13138
13139 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
13140 Uroš Bizjak <ubizjak@gmail.com>
13141
13142 * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
13143 For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
13144 by a pshufd and pand.
13145 (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
13146 vector equality as a V2DImode vector comparison (see above),
13147 followed by a pshufd and pand.
13148
13149 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
13150
13151 PR tree-optimization/83907
13152 * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
13153 for memset with an constant char value.
13154 (handle_store): Improved handling of stores with a first byte
13155 of zero, but not storing_all_zeros_p.
13156
13157 2022-05-13 Philipp Tomsich <philipp.tomsich@vrull.eu>
13158 Manolis Tsamis <manolis.tsamis@vrull.eu>
13159
13160 * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
13161 (CTZ_DEFINED_VALUE_AT_ZERO): Same.
13162 * doc/sourcebuild.texi: add documentation for RISC-V specific
13163 test target keywords
13164
13165 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13166
13167 PR tree-optimization/105597
13168 * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
13169 of the lhs and make sure it is not undefined.
13170
13171 2022-05-13 Sebastian Pop <spop@amazon.com>
13172
13173 PR target/105162
13174 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
13175 of str array.
13176 * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
13177 memmodel_from_int and handle MEMMODEL_SYNC_*.
13178 (DEF0): Add __aarch64_*_sync functions.
13179
13180 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13181
13182 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
13183 enumerated values.
13184 * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
13185 * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
13186 new VREL enumerated values.
13187 (*::lhs_op2_relation): Ditto.
13188 (*::op1_op2_relation): Ditto.
13189 (*::fold_range): Use new VREL enumerated values.
13190 (minus_op1_op2_relation_effect): Ditto.
13191 (range_relational_tests): Ditto.
13192 * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
13193 (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
13194 relation_kind.
13195 (*_op1_op2_relation): Return relation_kind.
13196 (relop_early_resolve): Use VREL_UNDEFINED.
13197 * value-query.cc (range_query::query_relation): Use VREL_VARYING.
13198 * value-relation.cc (VREL_LAST): Change enumerated value.
13199 (vrel_range_assert): Delete.
13200 (print_relation): Remove range assert.
13201 (rr_negate_table): Adjust table to use new enumerated values..
13202 (relation_negate): Remove range assert.
13203 (rr_swap_table): Adjust.
13204 (relation_swap): Remove range assert.
13205 (rr_intersect_table): Adjust.
13206 (relation_intersect): Remove range assert.
13207 (rr_union_table): Adjust.
13208 (relation_union): Remove range assert.
13209 (rr_transitive_table): Adjust.
13210 (relation_transitive): Remove range assert.
13211 (equiv_oracle::query_relation): Use new VREL enumerated values.
13212 (equiv_oracle::register_relation): Ditto.
13213 (relation_oracle::register_stmt): Ditto.
13214 (dom_oracle::set_one_relation): Ditto.
13215 (dom_oracle::register_transitives): Ditto.
13216 (dom_oracle::query_relation): Ditto.
13217 (path_oracle::register_relation): Ditto.
13218 (path_oracle::query_relation): Ditto.
13219 * value-relation.h (enum relation_kind_t): New relation_kind.
13220 (*_op1_op2_relation): Adjust prototypes.
13221
13222 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13223
13224 * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
13225 * value-range.cc (irange::legacy_verbose_union_): Add return value.
13226 (irange::irange_single_pair_union): New.
13227 (irange::irange_union): Add return value.
13228 * value-range.h (class irange): Adjust prototypes.
13229
13230 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13231
13232 * value-range.cc (irange::legacy_verbose_intersect): Add return value.
13233 (irange::irange_contains_p): New.
13234 (irange::irange_intersect): Add return value.
13235 * value-range.h (class irange): Adjust prototypes.
13236
13237 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13238
13239 * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
13240 had_global value instead.
13241
13242 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13243
13244 PR tree-optimization/104547
13245 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
13246 the op1/op2 relation to the relation call.
13247 * range-op.cc (*::lhs_op1_relation): Add param.
13248 (*::lhs_op2_relation): Ditto.
13249 (operator_minus::lhs_op1_relation): New.
13250 (range_relational_tests): Add relation param.
13251 * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
13252
13253 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13254
13255 * gimple-range.cc (gimple_ranger::register_side_effects): First check
13256 if the DEF should be exported as a global.
13257 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
13258 which will export globals.
13259 (execute_ranger_vrp): Remove call to export_global_ranges.
13260
13261 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13262
13263 * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
13264
13265 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13266
13267 * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
13268 worlist truncated.
13269 (ranger_cache::entry_range): Add rfd_mode parameter.
13270 (ranger_cache::exit_range): Ditto.
13271 (ranger_cache::edge_range): New. Incorporate from range_on_edge.
13272 (ranger_cache::range_of_expr): Adjust call to entry_range.
13273 (ranger_cache::range_on_edge): Split to edge_range and call.
13274 (ranger_cache::fill_block_cache): Always invoke range_from_dom.
13275 (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
13276 mutiple predecessors.
13277 (ranger_cache::update_to_nonnull): Adjust call to exit_range.
13278 * gimple-range-cache.h (ranger_cache): Add enum rfd_mode. Adjust
13279 prototypes.
13280
13281 2022-05-13 Alexandre Oliva <oliva@adacore.com>
13282
13283 * gimple-harden-conditionals.cc: Include sbitmap.h.
13284 (pass_harden_conditional_branches::execute): Skip new blocks.
13285 (pass_harden_compares::execute): Likewise.
13286
13287 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
13288
13289 PR target/105463
13290 * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
13291 mve_memory_operand.
13292 (*movmisalign<mode>_mve_load): Likewise.
13293 * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
13294 form...
13295 (@movmisalign<mode>): ... thus. Use generic predicates and then
13296 rework operands if they are not valid. For MVE rework to a
13297 narrower element size if the alignment is not high enough.
13298
13299 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
13300
13301 * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
13302 when there is no write-back. Fix use when strict is true.
13303
13304 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13305
13306 * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
13307 definition.
13308
13309 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13310
13311 * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
13312 extzvsi_internal): Rename from extv, extv_internal, extzv and
13313 extzv_internal, respectively.
13314
13315 2022-05-13 Eric Botcazou <ebotcazou@adacore.com>
13316
13317 * tree-sra.cc (sra_modify_assign): Check that scalar storage order
13318 is the same on the LHS and RHS before rewriting one with the model
13319 of the other.
13320
13321 2022-05-13 Richard Biener <rguenther@suse.de>
13322
13323 * gimple-fold.cc (gimple_build): Adjust for new
13324 main API.
13325 * gimple-fold.h (gimple_build): New main APIs with
13326 iterator, insert direction and iterator update.
13327 (gimple_build): New forwarder template.
13328 (clear_padding_type_may_have_padding_p): Remove.
13329 (clear_type_padding_in_mask): Likewise.
13330 (arith_overflowed_p): Likewise.
13331 * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
13332 (clear_type_padding_in_mask): Likewise.
13333 (arith_overflowed_p): Likewise.
13334 * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
13335 (gimplify_build2): Likewise.
13336 (gimplify_build1): Likewise.
13337 * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
13338 compare stmt.
13339 * gengtype.cc (open_base_files): Re-order includes.
13340 * builtins.cc: Re-order gimple-fold.h include.
13341 * calls.cc: Likewise.
13342 * cgraphbuild.cc: Likewise.
13343 * cgraphunit.cc: Likewise.
13344 * config/rs6000/rs6000-builtin.cc: Likewise.
13345 * config/rs6000/rs6000-call.cc: Likewise.
13346 * config/rs6000/rs6000.cc: Likewise.
13347 * config/s390/s390.cc: Likewise.
13348 * expr.cc: Likewise.
13349 * fold-const.cc: Likewise.
13350 * function-tests.cc: Likewise.
13351 * gimple-match-head.cc: Likewise.
13352 * gimple-range-fold.cc: Likewise.
13353 * gimple-ssa-evrp-analyze.cc: Likewise.
13354 * gimple-ssa-evrp.cc: Likewise.
13355 * gimple-ssa-sprintf.cc: Likewise.
13356 * gimple-ssa-warn-access.cc: Likewise.
13357 * gimplify.cc: Likewise.
13358 * graphite-isl-ast-to-gimple.cc: Likewise.
13359 * ipa-cp.cc: Likewise.
13360 * ipa-devirt.cc: Likewise.
13361 * ipa-prop.cc: Likewise.
13362 * omp-low.cc: Likewise.
13363 * pointer-query.cc: Likewise.
13364 * range-op.cc: Likewise.
13365 * tree-cfg.cc: Likewise.
13366 * tree-if-conv.cc: Likewise.
13367 * tree-inline.cc: Likewise.
13368 * tree-object-size.cc: Likewise.
13369 * tree-ssa-ccp.cc: Likewise.
13370 * tree-ssa-dom.cc: Likewise.
13371 * tree-ssa-forwprop.cc: Likewise.
13372 * tree-ssa-ifcombine.cc: Likewise.
13373 * tree-ssa-loop-ivcanon.cc: Likewise.
13374 * tree-ssa-math-opts.cc: Likewise.
13375 * tree-ssa-pre.cc: Likewise.
13376 * tree-ssa-propagate.cc: Likewise.
13377 * tree-ssa-reassoc.cc: Likewise.
13378 * tree-ssa-sccvn.cc: Likewise.
13379 * tree-ssa-strlen.cc: Likewise.
13380 * tree-ssa.cc: Likewise.
13381 * value-pointer-equiv.cc: Likewise.
13382 * vr-values.cc: Likewise.
13383
13384 2022-05-13 Alexandre Oliva <oliva@adacore.com>
13385
13386 PR rtl-optimization/105455
13387 * gimple-harden-conditionals.cc (insert_check_and_trap): Set
13388 probabilities for newly-conditional edges.
13389
13390 2022-05-13 liuhongt <hongtao.liu@intel.com>
13391
13392 PR tree-optimization/102583
13393 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
13394 contiguous stride in the VEC_PERM_EXPR.
13395
13396 2022-05-12 Richard Biener <rguenther@suse.de>
13397
13398 PR rtl-optimization/105577
13399 * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
13400 edges before running fast DCE via df_analyze.
13401
13402 2022-05-12 Richard Biener <rguenther@suse.de>
13403
13404 PR tree-optimization/105562
13405 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
13406 against all CLOBBER defs if there's not an obvious must-alias
13407 and we are not doing redundant store elimination.
13408 (vn_walk_cb_data::redundant_store_removal_p): New field.
13409 (vn_reference_lookup_pieces): Initialize it.
13410 (vn_reference_lookup): Add argument to specify if we are
13411 doing redundant store removal.
13412 (eliminate_dom_walker::eliminate_stmt): Specify we do.
13413 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
13414
13415 2022-05-12 Haochen Jiang <haochen.jiang@intel.com>
13416
13417 PR target/104371
13418 * config/i386/sse.md (vi1avx2const): New define_mode_attr.
13419 (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
13420 New define_split pattern.
13421
13422 2022-05-12 Jakub Jelinek <jakub@redhat.com>
13423
13424 * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
13425 if null_pointer_node.
13426 (gimplify_scan_omp_clauses): Likewise.
13427 * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
13428 as omp_all_memory.
13429
13430 2022-05-11 Patrick Palka <ppalka@redhat.com>
13431
13432 * tree.h (TREE_VEC_BEGIN): Define.
13433 (TREE_VEC_END): Correct 'length' member access.
13434 (class tree_vec_range): Define.
13435
13436 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
13437
13438 * config/rs6000/rs6000.md: Use wa instead of <Fv>.
13439
13440 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
13441
13442 * config/rs6000/rs6000.md: Use d instead of <Ff>.
13443
13444 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
13445
13446 * config/rs6000/constraints.md (register_constraint "f"): Use
13447 RS6000_CONSTRAINT_d.
13448 * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
13449 RS6000_CONSTRAINT_f.
13450 (rs6000_init_hard_regno_mode_ok): Ditto. Reorder and simplify a bit.
13451 * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
13452 RS6000_CONSTRAINT_d.
13453
13454 2022-05-11 Richard Biener <rguenther@suse.de>
13455
13456 * gimple-fold.h (gimple_build): Use variadic template
13457 functions for the gimple_build API forwarders without
13458 location_t argument.
13459
13460 2022-05-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
13461
13462 PR middle-end/70090
13463 * asan.cc (initialize_sanitizer_builtins): Register
13464 __builtin_dynamic_object_size if necessary.
13465
13466 2022-05-11 Richard Biener <rguenther@suse.de>
13467
13468 PR rtl-optimization/105559
13469 * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
13470 for non-debug insns.
13471
13472 2022-05-11 Richard Biener <rguenther@suse.de>
13473
13474 * generic-match-head.cc: Include tree-eh.h.
13475 * match.pd ((cond ...) cmp X): New simplification inspired
13476 by fold_binary_op_with_conditional_arg.
13477 (eq/ne (cmp ...) true/false): Likewise.
13478
13479 2022-05-11 Thomas Schwinge <thomas@codesourcery.com>
13480
13481 * doc/install.texi: Don't document '--with-hsa-runtime',
13482 '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
13483
13484 2022-05-11 Martin Liska <mliska@suse.cz>
13485
13486 PR other/105527
13487 * doc/install.texi: Document the configure option --with-zstd.
13488
13489 2022-05-11 Martin Liska <mliska@suse.cz>
13490
13491 * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
13492 compute index in cpu_features2.
13493 (set_cpu_feature): Likewise.
13494 * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
13495 loop for cpu_features2 and use NOP_EXPRs.
13496
13497 2022-05-11 Richard Biener <rguenther@suse.de>
13498
13499 PR bootstrap/105551
13500 * opts.cc (finish_options): Also disable var-tracking if
13501 !DWARF2_DEBUGGING_INFO.
13502
13503 2022-05-11 liuhongt <hongtao.liu@intel.com>
13504
13505 PR target/104915
13506 * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
13507 pre_reload define_insn_and_split.
13508 (*vec_setv2di_0_zero_extendhi_1): Ditto.
13509 (*vec_set<mode>_0_zero_extendsi): Ditto.
13510 (*vec_setv2di_0_zero_extendsi_1): Ditto.
13511 (ssewvecmode): New mode attr.
13512 (ssewvecmodelower): Ditto.
13513 (ssepackmodelower): Ditto.
13514
13515 2022-05-11 Kewen Lin <linkw@linux.ibm.com>
13516
13517 * config/rs6000/constraints.md (register constraint v): Use
13518 rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
13519
13520 2022-05-11 Martin Liska <mliska@suse.cz>
13521
13522 PR target/105355
13523 * config/riscv/riscv.opt: Remove Separate from
13524 -msmall-data-limit=.
13525 * optc-gen.awk: Report error for the described situation.
13526 * gcc.cc: Use Separate syntax.
13527 * opts.cc (gen_command_line_string): Change option name.
13528
13529 2022-05-11 Haochen Gui <guihaoc@gcc.gnu.org>
13530
13531 PR target/105414
13532 * match.pd (minmax): Skip constant folding for fmin/fmax when both
13533 arguments are sNaN or one is sNaN and another is NaN.
13534
13535 2022-05-10 Jakub Jelinek <jakub@redhat.com>
13536
13537 PR tree-optimization/105528
13538 * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
13539 set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment.
13540
13541 2022-05-10 Segher Boessenkool <segher@kernel.crashing.org>
13542
13543 * doc/md.texi (Defining Mode Iterators): Correct example replacement
13544 text.
13545
13546 2022-05-10 Maciej W. Rozycki <macro@embecosm.com>
13547
13548 * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
13549 constants.
13550 (fmin<mode>3, fmax<mode>3): New insns.
13551
13552 2022-05-10 Richard Biener <rguenther@suse.de>
13553
13554 * tree-if-conv.cc (fold_build_cond_expr): Use
13555 match-and-simplify to simplify the condition.
13556 (ifcvt_follow_ssa_use_edges): Remove.
13557 (predicate_scalar_phi): Use follow_all_ssa_edges.
13558
13559 2022-05-10 Thomas Schwinge <thomas@codesourcery.com>
13560
13561 PR middle-end/100400
13562 * omp-oacc-kernels-decompose.cc
13563 (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
13564 call 'internal_error'.
13565
13566 2022-05-10 Richard Biener <rguenther@suse.de>
13567
13568 PR middle-end/105537
13569 * toplev.cc (process_options): Move flag_var_tracking
13570 handling ...
13571 * opts.cc (finish_options): ... here.
13572
13573 2022-05-10 Martin Liska <mliska@suse.cz>
13574
13575 * basic-block.h (struct basic_block_d): Use void *
13576 instead PTR.
13577 * cfgloop.h: Likewise.
13578 * cgraph.h: Likewise.
13579 * gengtype-state.cc (state_ident_by_name): Likewise.
13580 (record_type): Likewise.
13581 (read_state_already_seen_type): Likewise.
13582 * gengtype.cc (dump_type): Likewise.
13583 (input_file_by_name): Likewise.
13584 (main): Likewise.
13585 * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
13586 * ipa-utils.h (struct ipa_dfs_info): Likewise.
13587 * plugin.cc (htab_hash_plugin): Likewise.
13588
13589 2022-05-10 Richard Biener <rguenther@suse.de>
13590
13591 * flags.h (dwarf_debuginfo_p): Add opts argument, guard
13592 API with !GENERATOR_FILE.
13593 * opts.cc (global_options): Poison.
13594 (global_options_set): Likewise.
13595 (finish_options): Refer to options via opts.
13596
13597 2022-05-10 Uroš Bizjak <ubizjak@gmail.com>
13598 Roger Sayle <roger@nextmovesoftware.com>
13599
13600 * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
13601 alternative when optimizing for size and the immediate operand is
13602 const_0_to_127_operand.
13603 (*andqi_2_maybe_si): Likewise.
13604 * config/i386/predicates.md (const_0_to_127_operand): New predicate.
13605
13606 2022-05-10 Roger Sayle <roger@nextmovesoftware.com>
13607
13608 * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
13609 "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
13610 can't be negative.
13611
13612 2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
13613
13614 PR target/105292
13615 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
13616 true only for 8-byte vector modes.
13617
13618 2022-05-10 Siddhesh Poyarekar <siddhesh@gotplt.org>
13619
13620 PR middle-end/70090
13621 * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
13622 (instrument_object_size): Get dynamic object size expression.
13623
13624 2022-05-10 Jiufu Guo <guojiufu@linux.ibm.com>
13625
13626 PR preprocessor/101168
13627 * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
13628 Avoid empty identifier.
13629
13630 2022-05-09 Qing Zhao <qing.zhao@oracle.com>
13631
13632 PR target/101891
13633 * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
13634 as a generic MMX mode instead of V4HImode.
13635 (zero_all_mm_registers): Use SET to zero instead of MOV for
13636 zeroing scratch registers.
13637 (ix86_zero_call_used_regs): Likewise.
13638
13639 2022-05-09 liuhongt <hongtao.liu@intel.com>
13640
13641 PR target/105354
13642 * config/i386/i386-expand.cc
13643 (expand_vec_perm_pslldq_psrldq_por): New function.
13644 (ix86_expand_vec_perm_const_1): Try
13645 expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
13646 4/5-instruction sequence.
13647
13648 2022-05-09 Martin Liška <mliska@suse.cz>
13649
13650 * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
13651 * system.h (STATIC_ASSERT): Define as static_assert for C++
13652 and fallback to array index in C.
13653
13654 2022-05-09 Richard Biener <rguenther@suse.de>
13655
13656 PR tree-optimization/105517
13657 * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
13658 offset can be represented in the POINTER_PLUS_EXPR IL.
13659 (vn_reference_insert): Likewise.
13660 * poly-int.h (sext_hwi): Add poly version of sext_hwi.
13661
13662 2022-05-09 Richard Biener <rguenther@suse.de>
13663
13664 * match.pd: Remove #if GIMPLE guards around ! using patterns.
13665
13666 2022-05-09 liuhongt <hongtao.liu@intel.com>
13667
13668 PR target/105072
13669 * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
13670 New define_insn.
13671 (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
13672 define_insn_and_split.
13673
13674 2022-05-09 Alex Coplan <alex.coplan@arm.com>
13675
13676 * cgraph.cc (cgraph_node::get_create): Don't dump if the current
13677 symtab state is PARSING.
13678
13679 2022-05-09 Martin Liska <mliska@suse.cz>
13680
13681 * system.h (LIKELY): Define.
13682 (UNLIKELY): Likewise.
13683 * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
13684 macros.
13685 * dse.cc (set_position_unneeded): Likewise.
13686 (set_all_positions_unneeded): Likewise.
13687 (any_positions_needed_p): Likewise.
13688 (all_positions_needed_p): Likewise.
13689 * expmed.cc (flip_storage_order): Likewise.
13690 * genmatch.cc (dt_simplify::gen_1): Likewise.
13691 * ggc-common.cc (gt_pch_save): Likewise.
13692 * print-rtl.cc: Likewise.
13693 * rtl-iter.h (T>::array_type::~array_type): Likewise.
13694 (T>::next): Likewise.
13695 * rtl-ssa/internals.inl: Likewise.
13696 * rtl-ssa/member-fns.inl: Likewise.
13697 * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
13698 (rtx_properties::try_to_add_dest): Likewise.
13699 * rtlanal.h (growing_rtx_properties::repeat): Likewise.
13700 (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
13701 * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
13702 * sort.cc (likely): Likewise.
13703 (mergesort): Likewise.
13704 * wide-int.h (wi::eq_p): Likewise.
13705 (wi::ltu_p): Likewise.
13706 (wi::cmpu): Likewise.
13707 (wi::bit_and): Likewise.
13708 (wi::bit_and_not): Likewise.
13709 (wi::bit_or): Likewise.
13710 (wi::bit_or_not): Likewise.
13711 (wi::bit_xor): Likewise.
13712 (wi::add): Likewise.
13713 (wi::sub): Likewise.
13714
13715 2022-05-09 Kito Cheng <kito.cheng@sifive.com>
13716
13717 * config/riscv/arch-canonicalize: Handle g correctly.
13718
13719 2022-05-07 Marek Polacek <polacek@redhat.com>
13720
13721 PR c++/101833
13722 PR c++/47634
13723 * tree-core.h (struct attribute_spec): Update comment for HANDLER.
13724
13725 2022-05-06 Jason Merrill <jason@redhat.com>
13726
13727 * diagnostic-color.cc: Add fnname and targs color entries.
13728 * doc/invoke.texi: Document them.
13729
13730 2022-05-06 Jason Merrill <jason@redhat.com>
13731
13732 * vec.h (vec::iterate): Fix comment.
13733
13734 2022-05-06 Michael Meissner <meissner@linux.ibm.com>
13735
13736 PR target/102059
13737 * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
13738 and -mpower10-fusion options for inlining purposes.
13739
13740 2022-05-06 Christophe Lyon <christophe.lyon@arm.com>
13741
13742 * config/aarch64/iterators.md (GPF_TF_F16): Delete.
13743
13744 2022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
13745
13746 * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
13747 omp_runtime_apis array.
13748
13749 2022-05-06 Hafiz Abid Qadeer <abidh@codesourcery.com>
13750
13751 * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
13752 (scan_sharing_clauses): Check a restriction on allocate clause.
13753
13754 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
13755
13756 * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
13757 and ORDERED clause conflict errors. Add check for GRAINSIZE and
13758 NUM_TASKS on TASKLOOP.
13759
13760 2022-05-05 Martin Liska <mliska@suse.cz>
13761
13762 * genautomata.cc (create_composed_state): Remove dead code.
13763 * graphite-poly.cc (print_pdrs): Likewise.
13764 * lto-wrapper.cc (run_gcc): Likewise.
13765 * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
13766 Likewise.
13767
13768 2022-05-05 Martin Liska <mliska@suse.cz>
13769
13770 * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
13771 PROF_*.
13772 (gimple_gen_time_profiler): Likewise.
13773
13774 2022-05-05 Martin Liska <mliska@suse.cz>
13775
13776 * value-prof.cc (stream_out_histogram_value): Remove sanity
13777 checking.
13778
13779 2022-05-05 Richard Biener <rguenther@suse.de>
13780
13781 PR tree-optimization/104162
13782 * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
13783 &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
13784 becomes invariant.
13785 (vn_reference_insert): Likewise.
13786
13787 2022-05-05 Richard Biener <rguenther@suse.de>
13788
13789 * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
13790 to real_value field.
13791 (tree_real_cst::value): Add real_value field.
13792 * tree.h (TREE_REAL_CST_PTR): Adjust.
13793 * tree.cc (build_real): Remove separate allocation.
13794 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
13795 Likewise.
13796
13797 2022-05-05 Richard Biener <rguenther@suse.de>
13798
13799 * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
13800 divisions with undefined overflow unconditionally.
13801 (pass_tree_ifcombine::execute): Rewrite stmts with undefined
13802 overflow to defined.
13803
13804 2022-05-05 Richard Biener <rguenther@suse.de>
13805
13806 PR tree-optimization/105484
13807 * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
13808 whether the CFG changed.
13809 (gimple_expand_vec_exprs): When the CFG changed, clean it up.
13810
13811 2022-05-05 Richard Biener <rguenther@suse.de>
13812
13813 PR tree-optimization/104595
13814 * tree-vect-patterns.cc (vect_recog_bool_pattern): For
13815 COND_EXPR do not fail if check_bool_pattern returns false.
13816
13817 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
13818
13819 * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
13820 item that is in an outer data-sharing clause.
13821
13822 2022-05-04 Richard Biener <rguenther@suse.de>
13823
13824 PR tree-optimization/104658
13825 * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
13826 create VECTOR_BOOLEAN_TYPE_P extern defs. Reset the vector
13827 type on nodes we promote.
13828 (vectorizable_bb_reduc_epilogue): Deal with externalized
13829 root.
13830 * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
13831 not allow VECTOR_BOOLEAN_TYPE_P extern defs.
13832
13833 2022-05-04 Richard Biener <rguenther@suse.de>
13834
13835 PR tree-optimization/103116
13836 * tree-vect-stmts.cc (get_group_load_store_type): Handle the
13837 case we need peeling for gaps even though GROUP_GAP is zero.
13838
13839 2022-05-04 Martin Liska <mliska@suse.cz>
13840
13841 * gengtype-state.cc (read_a_state_token): Remove dead code.
13842 * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
13843
13844 2022-05-04 Richard Biener <rguenther@suse.de>
13845
13846 * gimplify.cc (gimplify_init_constructor): First gimplify,
13847 then simplify the result to a VECTOR_CST.
13848
13849 2022-05-04 Jakub Jelinek <jakub@redhat.com>
13850
13851 * genconditions.cc (write_conditions): Append a { nullptr, -1 }
13852 element at the end of insn_conditions.
13853 (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
13854 ARRAY_SIZE (insn_conditions).
13855
13856 2022-05-04 Christophe Lyon <christophe.lyon@arm.com>
13857
13858 PR target/104662
13859 * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
13860 vector of booleans and MVE is not enabled.
13861
13862 2022-05-04 Richard Biener <rguenther@suse.de>
13863
13864 PR debug/105158
13865 * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
13866 Move debug stmts to the predecessor if moving to the
13867 destination is not possible.
13868 (remove_forwarder_block): Adjust.
13869 (remove_forwarder_block_with_phi): Likewise.
13870
13871 2022-05-03 Roger Sayle <roger@nextmovesoftware.com>
13872
13873 PR tree-optimization/102950
13874 * range-op.cc (wi_optimize_signed_bitwise_op): New function to
13875 determine bounds of bitwise operations on signed types.
13876 (operator_bitwise_and::wi_fold): Call the above function.
13877 (operator_bitwise_or::wi_fold): Likewise.
13878 (operator_bitwise_xor::wi_fold): Likewise. Additionally, the
13879 result can't be zero if the operands can't be equal.
13880
13881 2022-05-03 Iain Sandoe <iain@sandoe.co.uk>
13882
13883 * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
13884 protocol class methods linker-visible.
13885
13886 2022-05-03 Uroš Bizjak <ubizjak@gmail.com>
13887
13888 PR target/105079
13889 * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
13890 define_insn_and_split pattern.
13891
13892 2022-05-03 Richard Biener <rguenther@suse.de>
13893
13894 PR middle-end/105083
13895 * tree-scalar-evolution.cc (scev_initialize): Verify we
13896 have appropriate loop state.
13897 * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
13898 loop init and finalization.
13899
13900 2022-05-03 Richard Biener <rguenther@suse.de>
13901
13902 PR middle-end/105461
13903 * opts.cc (finish_options): Match the condition to
13904 disable flag_var_tracking to that of process_options.
13905
13906 2022-05-03 Richard Biener <rguenther@suse.de>
13907
13908 * opts.cc: #undef OPTIONS_SET_P.
13909 (finish_options): Use opts_set instead of OPTIONS_SET_P.
13910
13911 2022-05-03 Richard Biener <rguenther@suse.de>
13912
13913 PR tree-optimization/105394
13914 * tree-vect-generic.cc (expand_vector_condition): Adjust
13915 comp_width for non-integer mode masks as well.
13916
13917 2022-05-03 Marcel Vollweiler <marcel@codesourcery.com>
13918
13919 * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
13920 omp_runtime_apis array.
13921
13922 2022-05-02 Richard Biener <rguenther@suse.de>
13923
13924 * tree-scalar-evolution.cc (expression_expensive_p):
13925 Never consider mismatched calls as cheap.
13926
13927 2022-05-02 Richard Biener <rguenther@suse.de>
13928
13929 PR tree-optimization/104240
13930 * tree-vect-slp.cc (op1_op0_map): New.
13931 (vect_get_operand_map): Handle compares.
13932 (vect_build_slp_tree_1): Support swapped operands for
13933 tcc_comparison.
13934
13935 2022-05-02 Jakub Jelinek <jakub@redhat.com>
13936
13937 PR debug/105415
13938 * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
13939 if there is no symtab node for the VAR_DECL.
13940
13941 2022-05-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
13942
13943 * gcov-io.cc (gcov_rewrite): Clear the file error status.
13944
13945 2022-05-02 Richard Biener <rguenther@suse.de>
13946
13947 PR tree-optimization/105437
13948 * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
13949 case where last_stmt alters control flow.
13950
13951 2022-05-02 Richard Biener <rguenther@suse.de>
13952
13953 * dojump.cc (do_jump): Use CASE_CONVERT.
13954 * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
13955
13956 2022-05-02 Jakub Jelinek <jakub@redhat.com>
13957
13958 * system.h: Include initializer_list.
13959
13960 2022-05-01 Segher Boessenkool <segher@kernel.crashing.org>
13961
13962 * config/rs6000/constraints.md (Y constraint): Fix comment.
13963
13964 2022-05-01 Aldy Hernandez <aldyh@redhat.com>
13965
13966 * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
13967 VR_RANGE before passing a piecewise range to set_range_info_raw.
13968
13969 2022-04-30 Patrick Palka <ppalka@redhat.com>
13970
13971 * gengtype.cc (adjust_field_tree_exp): Remove.
13972 (adjust_field_type): Don't handle the "tree_exp" special attribute.
13973 * tree-core.h (struct tree_exp): Remove "special" and "desc"
13974 attributes. Add "length" attribute.
13975
13976 2022-04-29 Martin Jambor <mjambor@suse.cz>
13977
13978 PR ipa/100413
13979 * cgraph.cc (cgraph_node::remove): Release body of the node this
13980 is clone_of if appropriate.
13981
13982 2022-04-29 Uroš Bizjak <ubizjak@gmail.com>
13983
13984 PR target/51954
13985 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
13986
13987 2022-04-29 Richard Biener <rguenther@suse.de>
13988
13989 * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
13990 (canonicalize_cond_expr_cond): Move here from gimple.cc,
13991 allow both COND_EXPR and GIMPLE_COND forms.
13992 * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
13993 * gimple.cc (canonicalize_cond_expr_cond): Remove here.
13994 * gimple.h (canonicalize_cond_expr_cond): Likewise.
13995 * gimple-loop-versioning.cc (loop_versioning::version_loop):
13996 Use is_gimple_condexpr_for_cond.
13997 * tree-parloops.cc (gen_parallel_loop): Likewise.
13998 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
13999 a proper cond expr after canonicalize_cond_expr_cond.
14000 Use is_gimple_condexpr_for_cond where appropriate.
14001 * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
14002 * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
14003
14004 2022-04-29 Richard Biener <rguenther@suse.de>
14005
14006 * gimple-iterator.h (gsi_after_labels): Add overload for
14007 gimple_seq.
14008 (gsi_start_1): Rename to gsi_start and take a reference.
14009 (gsi_last_1): Likewise.
14010 * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
14011 * omp-low.cc (lower_rec_input_clauses): Likewise.
14012 (lower_omp_scan): Likewise.
14013
14014 2022-04-29 Richard Biener <rguenther@suse.de>
14015
14016 PR tree-optimization/105431
14017 * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
14018 (powi_as_mults): Use absu_hwi.
14019 (gimple_expand_builtin_powi): Remove now pointless n != -n
14020 check.
14021
14022 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
14023
14024 * range-op.cc (empty_range_varying): Move to range-op.h.
14025 (range_true): Move to range.h.
14026 (range_false): Same.
14027 (range_true_and_false): Same.
14028 (enum bool_range_state): Move to range-op.h.
14029 (relop_early_resolve): Same.
14030 (operator_equal::op1_op2_relation): Abstract code to...
14031 (equal_op1_op2_relation): ...here.
14032 (operator_not_equal::op1_op2_relation): Abstract code to...
14033 (not_equal_op1_op2_relation): ...here.
14034 (operator_lt::op1_op2_relation): Abstract code to...
14035 (lt_op1_op2_relation): ...here.
14036 (operator_le::op1_op2_relation): Abstract code to...
14037 (le_op1_op2_relation): ...here.
14038 (operator_gt::op1_op2_relation): Abstract code to...
14039 (gt_op1_op2_relation): ...here.
14040 (operator_ge::op1_op2_relation): Abstract code to...
14041 (ge_op1_op2_relation): ...here.
14042 (class range_op_table): Move to range-op.h.
14043 * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
14044 (not_equal_op1_op2_relation): Same.
14045 (lt_op1_op2_relation): Same.
14046 (le_op1_op2_relation): Same.
14047 (gt_op1_op2_relation): Same.
14048 (ge_op1_op2_relation): Same.
14049 (enum bool_range_state): Same.
14050 (get_bool_state): Same.
14051 (empty_range_varying): Same.
14052 (relop_early_resolve): Same.
14053 (class range_op_table): Same.
14054 * range.h (range_true): Same.
14055 (range_false): Same.
14056 (range_true_and_false): Same.
14057
14058 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
14059
14060 * gimple-fold.cc (size_must_be_zero_p): Use reference
14061 instead of pointer
14062 * gimple-ssa-evrp-analyze.cc
14063 (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
14064 intersect to legacy_verbose_intersect.
14065 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
14066 of pointer.
14067 * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
14068 instead of value_range_equiv.
14069 * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
14070 instead of pointer.
14071 (find_case_label_range): Same.
14072 * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
14073 (value_range_equiv::legacy_verbose_intersect): ...this.
14074 (value_range_equiv::union_): Rename to...
14075 (value_range_equiv::legacy_verbose_union_): ...this.
14076 * value-range-equiv.h (class value_range_equiv): Rename union and
14077 intersect to legacy_verbose_{intersect,union}.
14078 * value-range.cc (irange::union_): Rename to...
14079 (irange::legacy_verbose_union_): ...this.
14080 (irange::intersect): Rename to...
14081 (irange::legacy_verbose_intersect): ...this.
14082 * value-range.h (irange::union_): Rename union_ to
14083 legacy_verbose_union.
14084 (irange::intersect): Rename intersect to legacy_verbose_intersect.
14085 * vr-values.cc (vr_values::update_value_range): Same.
14086 (vr_values::extract_range_for_var_from_comparison_expr): Same.
14087 (vr_values::extract_range_from_cond_expr): Rename union_ to
14088 legacy_verbose_union.
14089 (vr_values::extract_range_from_phi_node): Same.
14090
14091 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
14092
14093 * gimple-ssa-evrp-analyze.cc
14094 (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
14095 that take a range.
14096 * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
14097 * ipa-prop.cc (ipcp_update_vr): Same.
14098 * tree-inline.cc (remap_ssa_name): Same.
14099 * tree-ssa-copy.cc (fini_copy_prop): Same.
14100 * tree-ssa-math-opts.cc (optimize_spaceship): Same.
14101 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
14102 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
14103 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
14104 * tree-ssa-strlen.cc (set_strlen_range): Same.
14105 (strlen_pass::handle_builtin_string_cmp): Same.
14106 * tree-ssanames.cc (set_range_info): Make static.
14107 (duplicate_ssa_name_range_info): Make static and add a new variant
14108 calling the static.
14109 * tree-ssanames.h (set_range_info): Remove version taking wide ints.
14110 (duplicate_ssa_name_range_info): Remove version taking a
14111 range_info_def and replace with a version taking SSA names.
14112 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
14113 that take a range.
14114 (vect_do_peeling): Same.
14115 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
14116 * vr-values.cc (simplify_truth_ops_using_ranges): Same.
14117
14118 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
14119
14120 * value-range.h (irange::irange): Use set_undefined.
14121
14122 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
14123
14124 * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
14125 irange::intersect (wide_int, wide_int).
14126 * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
14127 (adjust_imagpart_expr): Same.
14128 * value-range.h (irange::intersect (wide_int, wide_int)): Make
14129 private.
14130
14131 2022-04-29 Richard Biener <rguenther@suse.de>
14132
14133 PR tree-optimization/104322
14134 * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
14135
14136 2022-04-29 Richard Biener <rguenther@suse.de>
14137
14138 PR middle-end/105376
14139 * tree.cc (build_real): Special case dconst* arguments
14140 for decimal floating point types.
14141
14142 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14143
14144 * doc/gcov.texi (Profiling and Test Coverage in Freestanding
14145 Environments): New section.
14146
14147 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14148
14149 * doc/gcov-tool.texi: Document merge-stream subcommand.
14150 * doc/invoke.texi (fprofile-info-section): Mention merge-stream
14151 subcommand of gcov-tool.
14152 * gcov-tool.cc (gcov_profile_merge_stream): Declare.
14153 (print_merge_stream_usage_message): New.
14154 (merge_stream_usage): Likewise.
14155 (do_merge_stream): Likewise.
14156 (print_usage): Call print_merge_stream_usage_message().
14157 (main): Call do_merge_stream() to execute merge-stream subcommand.
14158
14159 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14160
14161 * gcov-io.cc (gcov_file_error): New enum.
14162 (gcov_var): Use gcov_file_error enum for the error member.
14163 (gcov_open): Use GCOV_FILE_NO_ERROR.
14164 (gcov_close): Use GCOV_FILE_WRITE_ERROR.
14165 (gcov_write): Likewise.
14166 (gcov_write_unsigned): Likewise.
14167 (gcov_write_string): Likewise.
14168 (gcov_read_bytes): Set error code if EOF is reached.
14169 (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
14170
14171 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14172
14173 * gcov-io.cc (GCOV_MODE_STDIN): Define.
14174 (gcov_position): For gcov-tool, return calculated position if file is
14175 stdin.
14176 (gcov_open): For gcov-tool, use stdin if filename is NULL.
14177 (gcov_close): For gcov-tool, do not close stdin.
14178 (gcov_read_bytes): For gcov-tool, update position if file is stdin.
14179 (gcov_sync): For gcov-tool, discard input if file is stdin.
14180
14181 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14182
14183 * doc/invoke.texi (fprofile-info-section): Mention
14184 __gcov_filename_to_gcfn(). Use "freestanding" to match with C11
14185 standard language. Fix minor example code issues.
14186 * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
14187
14188 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14189
14190 * gcov-io.cc (gcov_seek): Make it static.
14191 * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
14192
14193 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14194
14195 * gcov-tool.cc (gcov_do_dump): Add mode parameter.
14196 (gcov_output_files): Open files for reading and writing.
14197
14198 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14199
14200 * gcov-io.cc (gcov_open): Always use the mode parameter.
14201 * gcov-io.h (gcov_open): Declare it unconditionally.
14202
14203 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14204
14205 * gcov-tool.cc (gcov_profile_merge): Adjust return type.
14206 (profile_merge): Allow merging of directories which contain no profile
14207 files.
14208
14209 2022-04-28 David Malcolm <dmalcolm@redhat.com>
14210
14211 * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
14212 fpath.txt output.
14213
14214 2022-04-28 Jakub Jelinek <jakub@redhat.com>
14215
14216 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
14217 temporary only if out overlaps compare_op, not when it overlaps
14218 op0 or op1.
14219
14220 2022-04-28 Jakub Jelinek <jakub@redhat.com>
14221
14222 PR lto/105399
14223 * cgraph.cc (cgraph_node::verify_node): Don't verify
14224 semantic_interposition flag against
14225 opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
14226
14227 2022-04-28 Jakub Jelinek <jakub@redhat.com>
14228
14229 PR target/105331
14230 * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
14231 temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
14232 of it.
14233
14234 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
14235
14236 * doc/install.texi (Configuration): Remove misleading text
14237 around LE PowerPC Linux multilibs.
14238
14239 2022-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14240
14241 PR d/103528
14242 * doc/install.texi (Tools/packages necessary for building GCC)
14243 (GDC): Document libphobos requirement.
14244 (Host/target specific installation notes for GCC, *-*-solaris2*):
14245 Document libphobos and GDC specifics.
14246
14247 2022-04-28 Richard Biener <rguenther@suse.de>
14248
14249 PR tree-optimization/105219
14250 * tree-vect-loop.cc (vect_transform_loop): Disable
14251 special code narrowing the vectorized epilogue max
14252 iterations when peeling for alignment or gaps was in effect.
14253
14254 2022-04-28 Xi Ruoyao <xry111@mengyan1223.wang>
14255
14256 * config/loongarch/loongarch.cc
14257 (loongarch_flatten_aggregate_field): Ignore empty fields for
14258 RECORD_TYPE.
14259
14260 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
14261
14262 * config/loongarch/loongarch.md: Add fdiv define_expand template,
14263 then generate floating-point division and floating-point reciprocal
14264 instructions.
14265
14266 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
14267
14268 * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
14269 to PLV instruction templates.
14270
14271 2022-04-27 Richard Biener <rguenther@suse.de>
14272
14273 PR middle-end/104492
14274 * gimple-ssa-warn-access.cc
14275 (pass_waccess::warn_invalid_pointer): Exclude equality compare
14276 diagnostics for all kind of invalidations.
14277 (pass_waccess::check_dangling_uses): Fix post-dominator query.
14278 (pass_waccess::check_pointer_uses): Likewise.
14279
14280 2022-04-27 Andreas Krebbel <krebbel@linux.ibm.com>
14281
14282 PR target/102024
14283 * config/s390/s390-protos.h (s390_function_arg_vector): Remove
14284 prototype.
14285 * config/s390/s390.cc (s390_single_field_struct_p): New function.
14286 (s390_function_arg_vector): Invoke s390_single_field_struct_p.
14287 (s390_function_arg_float): Likewise.
14288
14289 2022-04-27 Jakub Jelinek <jakub@redhat.com>
14290
14291 PR sanitizer/105396
14292 * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
14293 where offset is bigger than off but smaller than m_prev_offset + 32
14294 bits by pushing one or more 0 bytes. Sink the
14295 m_shadow_bytes.safe_push (value); flush_if_full (); statements from
14296 all cases to the end of the function.
14297
14298 2022-04-27 Kewen Lin <linkw@linux.ibm.com>
14299
14300 PR target/105271
14301 * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
14302 stanza.
14303
14304 2022-04-26 Thomas Schwinge <thomas@codesourcery.com>
14305
14306 * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
14307 data-share memory exhausted" error more verbose.
14308
14309 2022-04-26 Martin Liska <mliska@suse.cz>
14310
14311 PR lto/105364
14312 * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
14313 (run_gcc): Parse OPT_fdiagnostics_urls_.
14314 (main): Initialize global_dc.
14315
14316 2022-04-26 Jakub Jelinek <jakub@redhat.com>
14317
14318 PR rtl-optimization/105314
14319 * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
14320 operand is equal to if_info->x, instead use the non-zero operand
14321 as one of the operands of AND with if_info->x as target.
14322
14323 2022-04-26 Jakub Jelinek <jakub@redhat.com>
14324
14325 PR tree-optimization/105374
14326 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
14327 !fold_convertible_p rather than assuming fold_convert must succeed.
14328
14329 2022-04-26 Jakub Jelinek <jakub@redhat.com>
14330
14331 PR target/105367
14332 * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
14333 el_mode == DFmode ? double_type_node : float_type_node instead of
14334 TREE_TYPE (type_in) as first arguments to mathfn_built_in.
14335
14336 2022-04-25 David Malcolm <dmalcolm@redhat.com>
14337
14338 PR analyzer/104308
14339 * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
14340 the location of new_stmt in all places that don't already set it,
14341 whether explicitly, or via a call to gsi_replace.
14342
14343 2022-04-25 Paul A. Clarke <pc@us.ibm.com>
14344
14345 * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
14346
14347 2022-04-25 Andrew MacLeod <amacleod@redhat.com>
14348
14349 PR tree-optimization/105276
14350 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
14351 existing global range with calculated value.
14352
14353 2022-04-25 Richard Biener <rguenther@suse.de>
14354
14355 PR tree-optimization/105368
14356 * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
14357
14358 2022-04-25 Richard Biener <rguenther@suse.de>
14359
14360 PR tree-optimization/100810
14361 * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
14362 (find_ssa_undef): New function.
14363 (add_candidate_1): Avoid adding derived candidates with
14364 undefined SSA names and mark the original ones.
14365 (determine_group_iv_cost_generic): Reject rewriting
14366 uses with a different IV when that involves undefined SSA names.
14367
14368 2022-04-25 Steven G. Kargl <kargl@gcc.gnu.org>
14369
14370 PR target/89125
14371 * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
14372 bsd_libc_has_function.
14373 * targhooks.cc (bsd_libc_has_function): New function.
14374 Expand the supported math functions to inclue C99 libm.
14375 * targhooks.h (bsd_libc_has_function): New Prototype.
14376
14377 2022-04-25 Richard Biener <rguenther@suse.de>
14378
14379 PR rtl-optimization/105231
14380 * combine.cc (distribute_notes): Assert that a REG_EH_REGION
14381 with landing pad > 0 is from i3. Put any REG_EH_REGION note
14382 on i3 or drop it if the insn can not trap.
14383 (try_combine): Ensure that we can merge REG_EH_REGION notes
14384 with non-call exceptions. Ensure we are not splitting a
14385 trapping part of an insn with non-call exceptions when there
14386 is any REG_EH_REGION note to preserve.
14387
14388 2022-04-25 Hongyu Wang <hongyu.wang@intel.com>
14389
14390 PR target/105339
14391 * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
14392 Add parentheses for parameters and djust format.
14393 (_mm512_mask_scalef_round_pd): Ditto.
14394 (_mm512_maskz_scalef_round_pd): Ditto.
14395 (_mm512_scalef_round_ps): Ditto.
14396 (_mm512_mask_scalef_round_ps): Ditto.
14397 (_mm512_maskz_scalef_round_ps): Ditto.
14398 (_mm_scalef_round_sd): Use _mm_undefined_pd.
14399 (_mm_scalef_round_ss): Use _mm_undefined_ps.
14400 (_mm_mask_scalef_round_sd): New macro.
14401 (_mm_mask_scalef_round_ss): Ditto.
14402 (_mm_maskz_scalef_round_sd): Ditto.
14403 (_mm_maskz_scalef_round_ss): Ditto.
14404
14405 2022-04-23 Jakub Jelinek <jakub@redhat.com>
14406
14407 PR target/105338
14408 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
14409 op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
14410 cases.
14411
14412 2022-04-22 Segher Boessenkool <segher@kernel.crashing.org>
14413
14414 PR target/105334
14415 * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
14416 (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
14417 (pack<mode>_hard for FMOVE128): ... this...
14418 (pack<mode>_soft for FMOVE128): ... and this.
14419
14420 2022-04-22 Paul A. Clarke <pc@us.ibm.com>
14421
14422 * doc/extend.texi: Correct "This" to "These".
14423
14424 2022-04-22 Jakub Jelinek <jakub@redhat.com>
14425
14426 PR rtl-optimization/105333
14427 * rtlanal.cc (replace_rtx): Use simplify_subreg or
14428 simplify_unary_operation if CONST_SCALAR_INT_P rather than just
14429 CONST_INT_P.
14430
14431 2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
14432
14433 PR target/103197
14434 PR target/102146
14435 * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
14436 the "Z" alternatives in {l,st}{f,xs}iwzx.
14437 (zero_extendhi<mode>2 for EXTHI): Ditto.
14438 (zero_extendsi<mode>2 for EXTSI): Ditto.
14439 (*movsi_internal1): Ditto.
14440 (*mov<mode>_internal1 for QHI): Ditto.
14441 (movsd_hardfloat): Ditto.
14442
14443 2022-04-21 Martin Liska <mliska@suse.cz>
14444
14445 * configure.ac: Enable compressed debug sections for mold
14446 linker.
14447 * configure: Regenerate.
14448
14449 2022-04-21 Jakub Jelinek <jakub@redhat.com>
14450
14451 PR debug/105203
14452 * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
14453 on DEBUG_INSNs.
14454
14455 2022-04-20 Richard Biener <rguenther@suse.de>
14456
14457 PR tree-optimization/104912
14458 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
14459 the cost model check to a separate BB to make sure it is
14460 checked first and not combined with other version checks.
14461
14462 2022-04-20 Richard Biener <rguenther@suse.de>
14463
14464 PR tree-optimization/105312
14465 * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
14466 VCOND and VCONDU for EQ and NE.
14467
14468 2022-04-20 Jan Hubicka <hubicka@ucw.cz>
14469
14470 PR ipa/103818
14471 * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
14472 poly_offset_int to avoid overflow.
14473 (modref_access_node::update2): likewise.
14474
14475 2022-04-20 Jakub Jelinek <jakub@redhat.com>
14476
14477 PR ipa/105306
14478 * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
14479 to opt_for_fn (decl, flag_semantic_interposition).
14480 * cgraphclones.cc (cgraph_node::create_clone): Copy over
14481 semantic_interposition flag.
14482
14483 2022-04-19 Sergei Trofimovich <siarheit@google.com>
14484
14485 PR gcov-profile/105282
14486 * value-prof.cc (stream_out_histogram_value): Allow negative counts
14487 on HIST_TYPE_INDIR_CALL.
14488
14489 2022-04-19 Jakub Jelinek <jakub@redhat.com>
14490
14491 PR target/105257
14492 * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
14493 use gen_raw_REG instead of gen_rtx_REG and copy over also
14494 ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */.
14495
14496 2022-04-19 Richard Biener <rguenther@suse.de>
14497
14498 PR tree-optimization/104010
14499 PR tree-optimization/103941
14500 * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
14501 we run into stmts in patterns continue walking those
14502 for uses outside of the vectorized region instead of
14503 marking the lane live.
14504
14505 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
14506
14507 * doc/install.texi <CRIS>: Remove references to removed websites and
14508 adjust for cris-*-elf being the only remaining toolchain.
14509
14510 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
14511
14512 * doc/invoke.texi <CRIS>: Remove references to options for removed
14513 subtarget cris-axis-linux-gnu and tweak wording accordingly.
14514
14515 2022-04-16 Gerald Pfeifer <gerald@pfeifer.com>
14516
14517 * doc/install.texi (Specific): Adjust mingw-w64 download link.
14518
14519 2022-04-15 Hongyu Wang <hongyu.wang@intel.com>
14520
14521 * config/i386/smmintrin.h: Correct target pragma from sse4.1
14522 and sse4.2 to crc32 for crc32 intrinsics.
14523
14524 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
14525
14526 PR debug/105089
14527 * ctfc.cc (ctf_dvd_ignore_insert): New function.
14528 (ctf_dvd_ignore_lookup): Likewise.
14529 (ctf_add_variable): Keep track of non-defining decl DIEs.
14530 (new_ctf_container): Initialize the new hash-table.
14531 (ctfc_delete_container): Empty hash-table.
14532 * ctfc.h (struct ctf_container): Add new hash-table.
14533 (ctf_dvd_ignore_lookup): New declaration.
14534 (ctf_add_variable): Add additional argument.
14535 * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
14536 record for non-defining decl for which a defining decl exists
14537 in the same TU.
14538 (ctf_preprocess): Defer updating the number of global objts
14539 until here.
14540 (output_ctf_header): Use ctfc_vars_list_count as some CTF
14541 variables may not make it to the final output.
14542 (output_ctf_vars): Likewise.
14543 * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
14544 if this is known to be a non-defining decl DIE.
14545
14546 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
14547
14548 * ctfc.h (struct ctf_container): Introduce a new member.
14549 * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
14550 variable.
14551
14552 2022-04-14 Jakub Jelinek <jakub@redhat.com>
14553
14554 PR target/105247
14555 * simplify-rtx.cc (simplify_const_binary_operation): For shifts
14556 or rotates by VOIDmode constant integer shift count use word_mode
14557 for the operand if int_mode is narrower than word.
14558
14559 2022-04-14 Robin Dapp <rdapp@linux.ibm.com>
14560
14561 * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
14562 (s390_get_unit_mask): Likewise.
14563 (s390_is_fpd): Likewise.
14564 (s390_is_fxd): Likewise.
14565 * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
14566 * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
14567 Add z16.
14568 (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
14569 Likewise.
14570 * config/s390/3931.md: New file.
14571
14572 2022-04-13 Richard Sandiford <richard.sandiford@arm.com>
14573
14574 PR tree-optimization/105254
14575 * config/aarch64/aarch64.cc
14576 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
14577 loop_vec_info as argument. Restrict the unroll factor to values
14578 that divide the VF.
14579 (aarch64_vector_costs::finish_cost): Update call accordingly.
14580
14581 2022-04-13 Richard Biener <rguenther@suse.de>
14582
14583 PR tree-optimization/105263
14584 * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
14585 negates in multiplication chains with DFP.
14586
14587 2022-04-13 Jakub Jelinek <jakub@redhat.com>
14588
14589 PR middle-end/105253
14590 * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
14591 use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
14592 comparisons or tree_nop_conversion_p checks.
14593
14594 2022-04-13 Hongyu Wang <hongyu.wang@intel.com>
14595
14596 PR target/103069
14597 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
14598 Add missing set to target_val at pause label.
14599
14600 2022-04-13 Jakub Jelinek <jakub@redhat.com>
14601
14602 PR target/105234
14603 * attribs.cc (decl_attributes): Don't set
14604 DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
14605 NULL.
14606
14607 2022-04-13 Richard Biener <rguenther@suse.de>
14608
14609 PR tree-optimization/105250
14610 * fold-const.cc (fold_convertible_p): Revert
14611 r12-7979-geaaf77dd85c333, instead check for size equality
14612 of the vector types involved.
14613
14614 2022-04-13 Richard Biener <rguenther@suse.de>
14615
14616 Revert:
14617 2022-04-13 Richard Biener <rguenther@suse.de>
14618
14619 PR tree-optimization/104912
14620 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
14621 the cost model check to a separate BB to make sure it is
14622 checked first and not combined with other version checks.
14623
14624 2022-04-13 Richard Biener <rguenther@suse.de>
14625
14626 PR tree-optimization/104912
14627 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
14628 the cost model check to a separate BB to make sure it is
14629 checked first and not combined with other version checks.
14630
14631 2022-04-13 Jakub Jelinek <jakub@redhat.com>
14632
14633 * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
14634
14635 2022-04-12 Antoni Boucher <bouanto@zoho.com>
14636
14637 PR jit/104072
14638 * reginfo.cc: New functions (clear_global_regs_cache,
14639 reginfo_cc_finalize) to avoid an issue where compiling the same
14640 code multiple times gives an error about assigning the same
14641 register to 2 global variables.
14642 * rtl.h: New function (reginfo_cc_finalize).
14643 * toplev.cc: Call it.
14644
14645 2022-04-12 Antoni Boucher <bouanto@zoho.com>
14646
14647 PR jit/104071
14648 * toplev.cc: Call the new function tree_cc_finalize in
14649 toplev::finalize.
14650 * tree.cc: New functions (clear_nonstandard_integer_type_cache
14651 and tree_cc_finalize) to clear the cache of non-standard integer
14652 types to avoid having issues with some optimizations of
14653 bitcast where the SSA_NAME will have a size of a cached
14654 integer type that should have been invalidated, causing a
14655 comparison of integer constant to fail.
14656 * tree.h: New function (tree_cc_finalize).
14657
14658 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
14659
14660 PR target/97348
14661 * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
14662 * config/nvptx/nvptx.opt (misa): Adjust comment.
14663
14664 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
14665
14666 Revert:
14667 2022-03-03 Tom de Vries <tdevries@suse.de>
14668
14669 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
14670
14671 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
14672
14673 Revert:
14674 2022-03-31 Tom de Vries <tdevries@suse.de>
14675
14676 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
14677
14678 2022-04-12 Richard Biener <rguenther@suse.de>
14679
14680 PR ipa/104303
14681 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
14682 include local escaped memory as obviously necessary stores.
14683
14684 2022-04-12 Richard Biener <rguenther@suse.de>
14685
14686 PR tree-optimization/105235
14687 * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
14688 return whether the CFG changed.
14689 (execute_cse_sincos_1): Adjust.
14690
14691 2022-04-12 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
14692
14693 PR target/104144
14694 * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
14695 (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
14696 (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
14697 (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
14698 (MULTILIB_REUSE): Remove remap rules for Armv9-a.
14699 * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
14700 (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
14701
14702 2022-04-12 Richard Biener <rguenther@suse.de>
14703
14704 PR tree-optimization/105232
14705 * tree.cc (component_ref_size): Bail out for too large
14706 or non-constant sizes.
14707
14708 2022-04-12 Richard Biener <rguenther@suse.de>
14709
14710 PR tree-optimization/105226
14711 * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
14712 we can split the exit of an outer loop we choose to version.
14713
14714 2022-04-12 Jakub Jelinek <jakub@redhat.com>
14715
14716 * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
14717 ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
14718 ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
14719 ix86_emit_swdivsf, ix86_emit_swsqrtsf,
14720 ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
14721 Formatting fix.
14722 * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
14723
14724 2022-04-12 Jakub Jelinek <jakub@redhat.com>
14725
14726 PR target/105214
14727 * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
14728 do_pending_stack_adjust.
14729
14730 2022-04-12 Jakub Jelinek <jakub@redhat.com>
14731
14732 PR rtl-optimization/105211
14733 * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
14734 fails for TREE_TYPE (arg), retry it with
14735 TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
14736 fails, emit call normally.
14737
14738 2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
14739
14740 * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
14741 * config.gcc: Add z16 as march/mtune switch.
14742 * config/s390/driver-native.cc (s390_host_detect_local_cpu):
14743 Recognize z16 with -march=native.
14744 * config/s390/s390-opts.h (enum processor_type): Rename
14745 PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
14746 * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
14747 (PROCESSOR_3931_Z16): ... throughout the file.
14748 (s390_processor processor_table): Add z16 as cpu string.
14749 * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
14750 PF_Z16.
14751 (TARGET_CPU_ARCH14): Rename to ...
14752 (TARGET_CPU_Z16): ... this.
14753 (TARGET_CPU_ARCH14_P): Rename to ...
14754 (TARGET_CPU_Z16_P): ... this.
14755 (TARGET_ARCH14): Rename to ...
14756 (TARGET_Z16): ... this.
14757 (TARGET_ARCH14_P): Rename to ...
14758 (TARGET_Z16_P): ... this.
14759 * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
14760 check TARGET_Z16 instead of TARGET_ARCH14.
14761 * config/s390/s390.opt: Add z16 to processor_type.
14762 * doc/invoke.texi: Document z16 and arch14.
14763
14764 2022-04-12 chenglulu <chenglulu@loongson.cn>
14765
14766 * config/loongarch/loongarch.cc: Fix bug for
14767 tmpdir-g++.dg-struct-layout-1/t033.
14768
14769 2022-04-11 Peter Bergner <bergner@linux.ibm.com>
14770
14771 PR target/104894
14772 * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
14773 to longcall functions.
14774
14775 2022-04-11 Jason Merrill <jason@redhat.com>
14776
14777 * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
14778
14779 2022-04-11 Segher Boessenkool <segher@kernel.crashing.org>
14780
14781 PR target/105213
14782 PR target/103623
14783 * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
14784
14785 2022-04-11 Jakub Jelinek <jakub@redhat.com>
14786
14787 PR tree-optimization/105218
14788 * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
14789 more than one predecessor or phi's bb more than 2 predecessors,
14790 reset phi result uses instead of adding a debug temp.
14791
14792 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
14793
14794 PR target/104853
14795 * config.gcc: Pass -misa-spec to arch-canonicalize and
14796 multilib-generator.
14797 * config/riscv/arch-canonicalize: Adding -misa-spec option.
14798 (SUPPORTED_ISA_SPEC): New.
14799 (arch_canonicalize): New argument `isa_spec`.
14800 Handle multiple ISA spec versions.
14801 * config/riscv/multilib-generator: Adding -misa-spec option.
14802
14803 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
14804
14805 * config/riscv/arch-canonicalize: Add TODO item.
14806 (IMPLIED_EXT): Sync.
14807 (arch_canonicalize): Checking until no change.
14808
14809 2022-04-11 Tamar Christina <tamar.christina@arm.com>
14810
14811 PR target/105197
14812 * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
14813 not masked.
14814
14815 2022-04-11 Jason Merrill <jason@redhat.com>
14816
14817 PR c++/100370
14818 * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
14819 deref == -1.
14820
14821 2022-04-11 Jakub Jelinek <jakub@redhat.com>
14822
14823 PR tree-optimization/104639
14824 * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
14825 (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
14826 into x != cst3.
14827
14828 2022-04-11 Jeff Law <jeffreyalaw@gmail.com>
14829
14830 * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
14831 sign bit of the source ends up in CC.
14832
14833 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
14834
14835 PR ipa/103376
14836 * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
14837 flag.
14838
14839 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
14840
14841 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
14842 nondeterministic and side_effects flags.
14843
14844 2022-04-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
14845
14846 PR target/105157
14847 * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
14848 * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
14849 (TARGET_CPU_MASK): Likewise.
14850 (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
14851 * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
14852 (aarch64_get_arch): Likewise.
14853 (aarch64_override_options): Use TARGET_CPU_NBITS.
14854
14855 2022-04-08 Richard Biener <rguenther@suse.de>
14856
14857 PR tree-optimization/105198
14858 * tree-predcom.cc (find_looparound_phi): Check whether
14859 the found memory location of the entry value is clobbered
14860 inbetween the value we want to use and loop entry.
14861
14862 2022-04-08 Jakub Jelinek <jakub@redhat.com>
14863
14864 PR tree-optimization/105189
14865 * fold-const.cc (make_range_step): Fix up handling of
14866 (unsigned) x +[low, -] ranges for signed x if low fits into
14867 typeof (x).
14868
14869 2022-04-08 Richard Biener <rguenther@suse.de>
14870
14871 PR tree-optimization/105175
14872 * tree-vect-stmts.cc (vectorizable_operation): Suppress
14873 -Wvector-operation-performance if using emulated vectors.
14874 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
14875 -Wvector-operation-performance when suppressed.
14876 (expand_vector_parallel): Likewise.
14877 (expand_vector_comparison): Likewise.
14878 (expand_vector_condition): Likewise.
14879 (lower_vec_perm): Likewise.
14880 (expand_vector_conversion): Likewise.
14881
14882 2022-04-07 Tamar Christina <tamar.christina@arm.com>
14883
14884 PR target/104409
14885 * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
14886 (aarch64_general_init_builtins): Move LS64 code.
14887 * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
14888 arm_acle.h
14889 * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
14890 * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
14891
14892 2022-04-07 Richard Biener <rguenther@suse.de>
14893 Jan Hubicka <hubicka@ucw.cz>
14894
14895 PR ipa/104303
14896 * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
14897 ref_may_alias_global_p, ref_may_alias_global_p,
14898 stmt_may_clobber_global_p, pt_solution_includes_global): Add
14899 bool parameters indicating whether escaped locals should be
14900 considered global.
14901 * tree-ssa-structalias.cc (pt_solution_includes_global):
14902 When the new escaped_nonlocal_p flag is true also consider
14903 pt->vars_contains_escaped.
14904 * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
14905 Pass down new escaped_nonlocal_p flag.
14906 (ref_may_alias_global_p): Likewise.
14907 (stmt_may_clobber_global_p): Likewise.
14908 (ref_may_alias_global_p_1): Likewise. For decls also
14909 query the escaped solution if true.
14910 (ref_may_access_global_memory_p): Remove.
14911 (modref_may_conflict): Use ref_may_alias_global_p with
14912 escaped locals considered global.
14913 (ref_maybe_used_by_stmt_p): Adjust.
14914 * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
14915 Likewise.
14916 * tree-ssa-dse.cc (dse_classify_store): Likewise.
14917 * trans-mem.cc (thread_private_new_memory): Likewise, but
14918 consider escaped locals global.
14919 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
14920
14921 2022-04-07 Richard Biener <rguenther@suse.de>
14922
14923 PR tree-optimization/105185
14924 * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
14925 modref query again.
14926
14927 2022-04-07 Tamar Christina <tamar.christina@arm.com>
14928
14929 PR target/104049
14930 * config/aarch64/aarch64-simd.md
14931 (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
14932 (reduc_plus_scal_<mode>): ... This.
14933 (reduc_plus_scal_v4sf): Moved.
14934 (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
14935 (reduc_plus_scal_v2si): ... This.
14936
14937 2022-04-07 Jakub Jelinek <jakub@redhat.com>
14938
14939 PR tree-optimization/102586
14940 * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
14941 langhook.
14942 * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
14943 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
14944 * gimple-fold.cc (clear_padding_type): Use ftype instead of
14945 TREE_TYPE (field) some more. For artificial FIELD_DECLs without
14946 name try the lang_hooks.types.classtype_as_base langhook and
14947 if it returns non-NULL, use that instead of ftype for recursive call.
14948
14949 2022-04-07 Jakub Jelinek <jakub@redhat.com>
14950
14951 PR tree-optimization/105150
14952 * tree.cc (tree_builtin_call_types_compatible_p): New function.
14953 (get_call_combined_fn): Use it.
14954
14955 2022-04-07 Richard Biener <rguenther@suse.de>
14956
14957 PR middle-end/105165
14958 * tree-complex.cc (expand_complex_asm): Sorry for asm goto
14959 _Complex outputs.
14960
14961 2022-04-07 liuhongt <hongtao.liu@intel.com>
14962
14963 * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
14964 Removed.
14965 (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
14966 for mask_applied.
14967 (<code><mode>3<mask_name>): Ditto.
14968 (*<code><mode>3<mask_name>): Ditto.
14969 (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
14970 real instruction.
14971 (VFB_512): Ditto.
14972 (VFB): Ditto.
14973
14974 2022-04-06 Jakub Jelinek <jakub@redhat.com>
14975
14976 PR rtl-optimization/104985
14977 * combine.cc (struct undo): Add where.regno member.
14978 (do_SUBST_MODE): Rename to ...
14979 (subst_mode): ... this. Change first argument from rtx * into int,
14980 operate on regno_reg_rtx[regno] and save regno into where.regno.
14981 (SUBST_MODE): Remove.
14982 (try_combine): Use subst_mode instead of SUBST_MODE, change first
14983 argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use
14984 regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
14985 (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
14986 instead of *undo->where.r.
14987 (simplify_set): Use subst_mode instead of SUBST_MODE, change first
14988 argument from regno_reg_rtx[whatever] to whatever.
14989
14990 2022-04-06 Jakub Jelinek <jakub@redhat.com>
14991
14992 PR target/105069
14993 * config/sh/sh.opt (mdiv=): Add Save.
14994
14995 2022-04-06 Martin Liska <mliska@suse.cz>
14996
14997 PR driver/105096
14998 * common.opt: Document properly based on what it does.
14999 * gcc.cc (display_help): Unify with what we have in common.opt.
15000 * opts.cc (common_handle_option): Do not print undocumented
15001 options.
15002
15003 2022-04-06 Xi Ruoyao <xry111@mengyan1223.wang>
15004
15005 * config/mips/mips.cc (mips_fpr_return_fields): Ignore
15006 cxx17_empty_base_field_p fields and set an indicator.
15007 (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
15008 (mips_function_value_1): Inform psABI change about C++17 empty
15009 bases.
15010
15011 2022-04-06 Jakub Jelinek <jakub@redhat.com>
15012
15013 PR tree-optimization/105150
15014 * gimple.cc (gimple_builtin_call_types_compatible_p): Use
15015 builtin_decl_explicit here...
15016 (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
15017 here.
15018
15019 2022-04-06 Richard Biener <rguenther@suse.de>
15020
15021 PR tree-optimization/105173
15022 * tree-ssa-reassoc.cc (find_insert_point): Get extra
15023 insert_before output argument and compute it.
15024 (insert_stmt_before_use): Adjust.
15025 (rewrite_expr_tree): Likewise.
15026
15027 2022-04-06 Richard Biener <rguenther@suse.de>
15028
15029 PR ipa/105166
15030 * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
15031 out for non-pointer arguments.
15032
15033 2022-04-06 Richard Biener <rguenther@suse.de>
15034
15035 PR tree-optimization/105163
15036 * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
15037 negated abnormals.
15038
15039 2022-04-06 Jakub Jelinek <jakub@redhat.com>
15040
15041 PR tree-optimization/105150
15042 * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
15043 For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
15044 preferrably on builtin_decl_explicit decl rather than fndecl.
15045 * tree-ssa-strlen.cc (valid_builtin_call): Don't call
15046 gimple_builtin_call_types_compatible_p here.
15047
15048 2022-04-06 Richard Sandiford <richard.sandiford@arm.com>
15049
15050 PR tree-optimization/103761
15051 * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
15052 the ncopies parameter with an slp_node parameter. Calculate the
15053 number of vectors based on it and vectype. Rename lambda to
15054 group_memory_nvectors.
15055 (vectorizable_store, vectorizable_load): Update calls accordingly.
15056
15057 2022-04-06 Martin Liska <mliska@suse.cz>
15058
15059 * doc/invoke.texi: Document it.
15060
15061 2022-04-06 Richard Biener <rguenther@suse.de>
15062
15063 PR tree-optimization/105148
15064 * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
15065 2 and 3 of ARRAY_REFs.
15066
15067 2022-04-06 Roger Sayle <roger@nextmovesoftware.com>
15068
15069 * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
15070 (*andnottf3): Replace with...
15071 (*andnot<mode>3): New define_insn using ANDNOT_MODE.
15072
15073 2022-04-06 Richard Biener <rguenther@suse.de>
15074
15075 PR tree-optimization/105142
15076 * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
15077 basic-block parameter.
15078 (maybe_fold_or_comparisons): Likewise.
15079 * gimple-fold.cc (follow_outer_ssa_edges): New.
15080 (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
15081 when an outer condition basic-block is specified.
15082 (and_comparisons_1, and_var_with_comparison,
15083 and_var_with_comparison_1, or_comparisons_1,
15084 or_var_with_comparison, or_var_with_comparison_1): Receive and pass
15085 down the outer condition basic-block.
15086 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
15087 basic-block of the outer condition.
15088
15089 2022-04-06 Kewen Lin <linkw@linux.ibm.com>
15090
15091 PR target/105002
15092 * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
15093 comparison codes UNLT/UNLE/UNGT/UNGE.
15094
15095 2022-04-05 David Malcolm <dmalcolm@redhat.com>
15096
15097 * doc/extend.texi (Common Function Attributes): Document that
15098 'access' does not imply 'nonnull'.
15099
15100 2022-04-05 Uroš Bizjak <ubizjak@gmail.com>
15101
15102 PR target/105139
15103 * config/i386/mmx.md (*movv2qi_internal):
15104 Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
15105
15106 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
15107
15108 * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
15109 define_expand and turn operands 0 and 1 from REGs to MEMs.
15110 (*aarch64_cpymemdi): New pattern.
15111 (aarch64_setmemdi): Turn into a define_expand and turn operand 0
15112 from a REG to a MEM.
15113 (*aarch64_setmemdi): New pattern.
15114 * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
15115 copy_to_mode_reg on all three registers. Replace the original
15116 MEM addresses rather than creating wild reads and writes.
15117 (aarch64_expand_setmem_mops): Likewise for the size and for the
15118 destination memory and address.
15119
15120 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
15121
15122 PR target/103147
15123 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
15124 * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
15125 from aarch64_simd_switcher.
15126 * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
15127 New variable.
15128 (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
15129 (register_tuple_type): Add more asserts. Expect the alignment
15130 of the structure to be subject to flag_pack_struct and
15131 maximum_field_alignment. Set aarch64_simd_tuple_modes.
15132 (aarch64_simd_switcher::aarch64_simd_switcher): New function.
15133 (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
15134 (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
15135 (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
15136 while calling aarch64_init_simd_builtins.
15137 * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
15138 (sve_switcher::~sve_switcher): Remove code now performed by
15139 aarch64_simd_switcher.
15140
15141 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
15142
15143 PR target/104897
15144 * config/aarch64/aarch64-sve-builtins.cc
15145 (function_resolver::infer_vector_or_tuple_type): Use error_n
15146 for "%d vectors" messages.
15147
15148 2022-04-05 Chung-Lin Tang <cltang@codesourcery.com>
15149
15150 * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
15151 argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
15152 current clause.
15153
15154 2022-04-05 Richard Biener <rguenther@suse.de>
15155
15156 PR c/105151
15157 * passes.def (pass_walloca): Move early instance into
15158 pass_build_ssa_passes to make SSA form available.
15159
15160 2022-04-05 liuhongt <hongtao.liu@intel.com>
15161
15162 PR target/101908
15163 * config/i386/i386.cc (ix86_split_stlf_stall_load): New
15164 function
15165 (ix86_reorg): Call ix86_split_stlf_stall_load.
15166 * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
15167 param.
15168
15169 2022-04-05 Alexandre Oliva <oliva@adacore.com>
15170
15171 * targhooks.cc (default_zero_call_used_regs): Attempt to group
15172 regs that the target refuses to use in their natural modes.
15173 (zcur_select_mode_rtx): New.
15174 * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
15175 (hard_regno_max_nregs): Define.
15176 * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
15177
15178 2022-04-04 Alex Coplan <alex.coplan@arm.com>
15179
15180 * doc/match-and-simplify.texi: Fix typos.
15181
15182 2022-04-04 Jakub Jelinek <jakub@redhat.com>
15183
15184 PR target/105144
15185 * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
15186 only if configured with --enable-maintainer-mode, otherwise compare
15187 tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
15188 if they differ, emit a message and fail.
15189
15190 2022-04-04 Jakub Jelinek <jakub@redhat.com>
15191
15192 PR target/105144
15193 * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
15194 * config/aarch64/aarch64-tune.md: Regenerated.
15195
15196 2022-04-04 Richard Biener <rguenther@suse.de>
15197
15198 PR tree-optimization/105132
15199 * tree-vect-stmts.cc (vectorizable_operation): Check that
15200 the input vectors have the same number of elements.
15201
15202 2022-04-04 Richard Biener <rguenther@suse.de>
15203
15204 PR middle-end/105140
15205 * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
15206
15207 2022-04-03 Jeff Law <jeffreyalaw@gmail.com>
15208
15209 PR target/104987
15210 * config/iq2000/iq2000.md (bbi): New attribute, default to no.
15211 (delay slot descripts): Use different delay slot description when
15212 the insn as the "bbi" attribute.
15213 (bbi, bbin patterns): Set the bbi attribute to yes.
15214
15215 2022-04-03 Jakub Jelinek <jakub@redhat.com>
15216
15217 PR target/105123
15218 * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
15219 using word as target for expand_simple_binop when doing ASHIFT and
15220 IOR.
15221
15222 2022-04-02 Xi Ruoyao <xry111@mengyan1223.wang>
15223
15224 * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
15225 NULL before dereferencing it.
15226
15227 2022-04-01 Qing Zhao <qing.zhao@oracle.com>
15228
15229 * config/i386/i386.cc (zero_all_st_registers): Return the value of
15230 num_of_st.
15231 (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
15232 the return value of zero_all_st_registers.
15233 * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
15234 * function.cc (gen_call_used_regs_seq): Add an assertion.
15235 * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
15236
15237 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
15238
15239 PR target/102024
15240 * config/mips/mips.cc (mips_function_arg): Ignore zero-width
15241 fields, and inform if it causes a psABI change.
15242
15243 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
15244
15245 PR target/102024
15246 * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
15247 zero-width bit-fields and set up an indicator.
15248 (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
15249 (mips_function_value_1): Diagnose when the presense of a C++
15250 zero-width bit-field changes function returning in GCC 12.
15251
15252 2022-04-01 Jakub Jelinek <jakub@redhat.com>
15253
15254 PR tree-optimization/104645
15255 * tree-ssa-phiopt.cc (value_replacement): If assign has
15256 CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
15257 statement with constant evaluation.
15258
15259 2022-04-01 YunQiang Su <yunqiang.su@cipunited.com>
15260
15261 * config/mips/mips.cc (mips_expand_prologue):
15262 IPL is 8bit for MCU ASE.
15263
15264 2022-03-31 Bill Schmidt <wschmidt@linux.ibm.com>
15265
15266 PR target/104004
15267 * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
15268 (MTFSB0): Likewise.
15269 (MTFSB1): Likewise.
15270 (SET_FPSCR_RN): Likewise.
15271 (SET_FPSCR_DRN): Mark nosoft and no32bit.
15272
15273 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
15274
15275 * doc/options.texi (Option file format): Clarifications around
15276 option definition records' help texts.
15277
15278 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
15279
15280 * optc-gen.awk <END>: Fix "Multiple different help strings" error
15281 diagnostic.
15282
15283 2022-03-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
15284
15285 * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
15286 determine_suggested_unroll_factor and m_has_avg.
15287 (determine_suggested_unroll_factor): New function.
15288 (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
15289 to set m_nosve_pattern.
15290 (aarch64_vector_costs::finish_costs): Use
15291 determine_suggested_unroll_factor.
15292 * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
15293 * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
15294
15295 2022-03-31 Martin Jambor <mjambor@suse.cz>
15296
15297 PR ipa/103083
15298 * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
15299 (ipa_get_jf_ancestor_keep_null): New function.
15300 * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
15301 ancestor function.
15302 (compute_complex_assign_jump_func): Pass false to keep_null
15303 parameter of ipa_set_ancestor_jf.
15304 (compute_complex_ancestor_jump_func): Pass true to keep_null
15305 parameter of ipa_set_ancestor_jf.
15306 (update_jump_functions_after_inlining): Carry over keep_null from the
15307 original ancestor jump-function or merge them.
15308 (ipa_write_jump_function): Stream keep_null flag.
15309 (ipa_read_jump_function): Likewise.
15310 (ipa_print_node_jump_functions_for_edge): Print the new flag.
15311 * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const. New
15312 member function known_nonzero_p.
15313 (ipcp_bits_lattice::known_nonzero_p): New.
15314 (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
15315 observe it.
15316 (ipcp_bits_lattice::meet_with): Likewise.
15317 (propagate_bits_across_jump_function): Simplify. Pass true in
15318 drop_all_ones when it is necessary.
15319 (propagate_aggs_across_jump_function): Take care of keep_null
15320 flag.
15321 (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
15322 jump functions.
15323
15324 2022-03-31 Martin Jambor <mjambor@suse.cz>
15325
15326 PR ipa/102513
15327 * ipa-cp.cc (decide_whether_version_node): Skip scalar values
15328 which do not fit the known value_range.
15329
15330 2022-03-31 Martin Jambor <mjambor@suse.cz>
15331
15332 PR ipa/103171
15333 * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
15334 always when an ADDR_EXPR constant is known to reach a load because
15335 of inlining, not just when removing an ADDR reference.
15336
15337 2022-03-31 Richard Biener <rguenther@suse.de>
15338
15339 PR tree-optimization/105109
15340 * tree-ssa.cc (execute_update_addresses_taken): Suppress
15341 diagnostics on the load of the other complex component.
15342
15343 2022-03-31 Tom de Vries <tdevries@suse.de>
15344
15345 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
15346
15347 2022-03-31 Richard Biener <rguenther@suse.de>
15348
15349 PR rtl-optimization/105091
15350 * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
15351 bases.
15352
15353 2022-03-31 Richard Biener <rguenther@suse.de>
15354
15355 Revert:
15356 2021-09-13 Richard Earnshaw <rearnsha@arm.com>
15357
15358 PR target/102125
15359 * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
15360 memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
15361
15362 2022-03-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
15363
15364 * gcov-io.cc (gcov_read_string): Reword documentation comment.
15365
15366 2022-03-30 Bill Schmidt <wschmidt@linux.ibm.com>
15367
15368 * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
15369 stanza.
15370 (NEG_V4SF): Likewise.
15371 (NEG_V4SI): Likewise.
15372 (NEG_V8HI): Likewise.
15373 (NEG_V2DF): Move to [vsx] stanza.
15374 (NEG_V2DI): Likewise.
15375
15376 2022-03-30 Vladimir N. Makarov <vmakarov@redhat.com>
15377
15378 PR middle-end/105032
15379 * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
15380
15381 2022-03-30 Tom de Vries <tdevries@suse.de>
15382 Tobias Burnus <tobias@codesourcery.com>
15383
15384 * doc/invoke.texi (march): Document __PTX_SM__.
15385 (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
15386 __PTX_ISA_VERSION_MINOR__.
15387
15388 2022-03-30 Jakub Jelinek <jakub@redhat.com>
15389
15390 PR sanitizer/105093
15391 * ubsan.cc (instrument_object_size): If t is equal to inner and
15392 is a decl other than global var, punt. When emitting call to
15393 UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
15394
15395 2022-03-30 Jakub Jelinek <jakub@redhat.com>
15396
15397 PR tree-optimization/105094
15398 * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
15399 bitsize <= 0 rather than just == 0.
15400
15401 2022-03-30 Tom de Vries <tdevries@suse.de>
15402
15403 * doc/invoke.texi (misa, mptx): Update.
15404 (march, march-map): Add.
15405
15406 2022-03-30 Thomas Schwinge <thomas@codesourcery.com>
15407
15408 * opt-functions.awk (n_args): New function.
15409 (lang_enabled_by): Merge function into...
15410 * optc-gen.awk <END>: ... sole user here.
15411 Improve diagnostics.
15412
15413 2022-03-29 Marek Polacek <polacek@redhat.com>
15414 Jakub Jelinek <jakub@redhat.com>
15415
15416 PR middle-end/103597
15417 * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
15418 into labels. Maybe set prev to the statement preceding UNUSED_LABEL_P.
15419 (gimplify_cond_expr): Set UNUSED_LABEL_P.
15420 * tree.h (UNUSED_LABEL_P): New.
15421
15422 2022-03-29 Michael Meissner <meissner@linux.ibm.com>
15423
15424 * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
15425 be any VSX register.
15426
15427 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
15428
15429 PR target/102024
15430 * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
15431 zero-sized bit-fields. Detect cases where a warning may be needed.
15432 (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
15433 zero-sized bit-field has caused parameter passing to change.
15434
15435 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
15436
15437 PR target/102024
15438 * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
15439 bit-fields. Detect cases where a warning may be needed.
15440 (aapcs_vfp_is_call_or_return_candidate): Emit a note if
15441 a zero-sized bit-field has caused parameter passing to change.
15442
15443 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
15444
15445 PR target/96882
15446 * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
15447 ARM_PCS_AAPCS_LOCAL.
15448
15449 2022-03-29 Tom de Vries <tdevries@suse.de>
15450
15451 PR target/104857
15452 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
15453 __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
15454 * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
15455 * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
15456
15457 2022-03-29 Tom de Vries <tdevries@suse.de>
15458
15459 * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
15460 is ignored.
15461
15462 2022-03-29 Tom de Vries <tdevries@suse.de>
15463
15464 PR target/104714
15465 * config/nvptx/nvptx.opt (march-map=*): Add aliases.
15466
15467 2022-03-29 Jan Hubicka <hubicka@ucw.cz>
15468
15469 * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
15470 TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
15471 * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
15472 (TARGET_USE_GATHER_4PARTS): New macro.
15473 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
15474 (X86_TUNE_USE_GATHER_4PARTS): New tune
15475
15476 2022-03-29 Tom de Vries <tdevries@suse.de>
15477
15478 * config/nvptx/nvptx.opt (march): Add alias of misa.
15479
15480 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15481 Lulu Cheng <chenglulu@loongson.cn>
15482
15483 * doc/install.texi: Add LoongArch options section.
15484 * doc/invoke.texi: Add LoongArch options section.
15485 * doc/md.texi: Add LoongArch options section.
15486
15487 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15488 Lulu Cheng <chenglulu@loongson.cn>
15489
15490 * config/loongarch/loongarch-c.cc
15491
15492 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15493 Lulu Cheng <chenglulu@loongson.cn>
15494
15495 * config/loongarch/larchintrin.h: New file.
15496 * config/loongarch/loongarch-builtins.cc: New file.
15497
15498 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15499 Lulu Cheng <chenglulu@loongson.cn>
15500
15501 * config/host-linux.cc: Add LoongArch support.
15502 * config/loongarch/loongarch-protos.h: New file.
15503 * config/loongarch/loongarch-tune.h: Likewise.
15504 * config/loongarch/loongarch.cc: Likewise.
15505 * config/loongarch/loongarch.h: Likewise.
15506
15507 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15508 Lulu Cheng <chenglulu@loongson.cn>
15509
15510 * config/loongarch/constraints.md: New file.
15511 * config/loongarch/generic.md: New file.
15512 * config/loongarch/la464.md: New file.
15513 * config/loongarch/loongarch-ftypes.def: New file.
15514 * config/loongarch/loongarch-modes.def: New file.
15515 * config/loongarch/loongarch.md: New file.
15516 * config/loongarch/predicates.md: New file.
15517 * config/loongarch/sync.md: New file.
15518
15519 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15520 Lulu Cheng <chenglulu@loongson.cn>
15521
15522 * configure: Regenerate file.
15523
15524 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15525 Lulu Cheng <chenglulu@loongson.cn>
15526
15527 * common/config/loongarch/loongarch-common.cc: New file.
15528 * config/loongarch/genopts/genstr.sh: New file.
15529 * config/loongarch/genopts/loongarch-strings: New file.
15530 * config/loongarch/genopts/loongarch.opt.in: New file.
15531 * config/loongarch/loongarch-str.h: New file.
15532 * config/loongarch/gnu-user.h: New file.
15533 * config/loongarch/linux.h: New file.
15534 * config/loongarch/loongarch-cpu.cc: New file.
15535 * config/loongarch/loongarch-cpu.h: New file.
15536 * config/loongarch/loongarch-def.c: New file.
15537 * config/loongarch/loongarch-def.h: New file.
15538 * config/loongarch/loongarch-driver.cc: New file.
15539 * config/loongarch/loongarch-driver.h: New file.
15540 * config/loongarch/loongarch-opts.cc: New file.
15541 * config/loongarch/loongarch-opts.h: New file.
15542 * config/loongarch/loongarch.opt: New file.
15543 * config/loongarch/t-linux: New file.
15544 * config/loongarch/t-loongarch: New file.
15545 * config.gcc: Add LoongArch support.
15546 * configure.ac: Add LoongArch support.
15547
15548 2022-03-29 Thomas Schwinge <thomas@codesourcery.com>
15549
15550 * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
15551 typo.
15552
15553 2022-03-29 Richard Biener <rguenther@suse.de>
15554
15555 PR tree-optimization/105080
15556 * tree-ssa-strlen.cc (printf_strlen_execute): Always init
15557 loops and SCEV.
15558
15559 2022-03-28 Indu Bhagat <indu.bhagat@oracle.com>
15560
15561 * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
15562 (output_ctf_vars): Likewise.
15563
15564 2022-03-28 Jason Merrill <jason@redhat.com>
15565
15566 PR c++/59426
15567 * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
15568
15569 2022-03-28 H.J. Lu <hjl.tools@gmail.com>
15570
15571 PR target/105068
15572 * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
15573 "Yw" in clobber.
15574
15575 2022-03-28 Tom de Vries <tdevries@suse.de>
15576
15577 PR target/104818
15578 * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
15579 * config/nvptx/nvptx-gen.opt: Regenerate.
15580 * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
15581 * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
15582 gen-opt.sh.
15583
15584 2022-03-28 David Malcolm <dmalcolm@redhat.com>
15585
15586 PR analyzer/104308
15587 * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
15588 to loads then stores, set the location of the new load stmt.
15589
15590 2022-03-28 Richard Biener <rguenther@suse.de>
15591
15592 PR tree-optimization/105070
15593 * tree-switch-conversion.h
15594 (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
15595 argument.
15596 * tree-switch-conversion.cc
15597 (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
15598 cond with location.
15599 (bit_test_cluster::emit): Annotate all generated expressions
15600 with location.
15601
15602 2022-03-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
15603
15604 * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
15605
15606 2022-03-28 liuhongt <hongtao.liu@intel.com>
15607
15608 PR target/105066
15609 * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
15610 alternative 4 from sse4_noavx to noavx.
15611
15612 2022-03-28 Jakub Jelinek <jakub@redhat.com>
15613
15614 PR tree-optimization/105056
15615 * tree-predcom.cc (component::component): Initialize also comp_step.
15616
15617 2022-03-27 H.J. Lu <hjl.tools@gmail.com>
15618
15619 PR target/105068
15620 * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
15621 "Yw".
15622
15623 2022-03-26 Roger Sayle <roger@nextmovesoftware.com>
15624
15625 PR middle-end/104885
15626 * calls.cc (mark_stack_region_used): Check that the region
15627 is within the allocated size of stack_usage_map.
15628
15629 2022-03-26 Jakub Jelinek <jakub@redhat.com>
15630
15631 PR rtl-optimization/103775
15632 * recog.cc (check_invalid_inc_dec): New function.
15633 (insn_invalid_p): Return 1 if REG_INC operand overlaps
15634 any stored REGs.
15635
15636 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
15637
15638 PR target/105058
15639 * config/i386/sse.md (loadiwkey): Replace "v" with "x".
15640 (aes<aesklvariant>u8): Likewise.
15641
15642 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
15643
15644 PR target/105052
15645 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
15646 Replace "Yv" with "x".
15647 (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
15648 (ssse3_psign<mode>3): Likewise.
15649
15650 2022-03-26 Hans-Peter Nilsson <hp@axis.com>
15651
15652 * reload.cc (find_reloads): Align comment with code where
15653 considering the intersection of register classes then tweaking the
15654 regclass for the current alternative or rejecting it.
15655
15656 2022-03-25 Christophe Lyon <christohe.lyon@arm.com>
15657
15658 PR target/104882
15659 Revert
15660 2021-06-11 Christophe Lyon <christophe.lyon@linaro.org>
15661
15662 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
15663 (mve_vec_unpack<US>_hi_<mode>): Delete.
15664 (@mve_vec_pack_trunc_lo_<mode>): Delete.
15665 (mve_vmovntq_<supf><mode>): Remove '@' prefix.
15666 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
15667 from vec-common.md.
15668 (vec_unpack<US>_lo_<mode>): Likewise.
15669 (vec_pack_trunc_<mode>): Rename from
15670 neon_quad_vec_pack_trunc_<mode>.
15671 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
15672 (vec_unpack<US>_lo_<mode>): Delete.
15673 (vec_pack_trunc_<mode>): Delete.
15674
15675 2022-03-25 Vladimir N. Makarov <vmakarov@redhat.com>
15676
15677 PR middle-end/104971
15678 * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
15679 regs to clear remove_p flag.
15680
15681 2022-03-25 Richard Biener <rguenther@suse.de>
15682
15683 PR tree-optimization/105053
15684 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
15685 the correct live-out stmt for a reduction chain.
15686
15687 2022-03-25 Richard Biener <rguenther@suse.de>
15688
15689 PR middle-end/105049
15690 * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
15691 CONSTRUCTOR first elements.
15692
15693 2022-03-25 Tobias Burnus <tobias@codesourcery.com>
15694
15695 PR analyzer/103533
15696 * doc/invoke.texi (Static Analyzer Options): Move
15697 @ignore block after @gccoptlist's '}' for 'make pdf'.
15698
15699 2022-03-25 David Malcolm <dmalcolm@redhat.com>
15700
15701 PR analyzer/104954
15702 * doc/invoke.texi (Static Analyzer Options): Add
15703 -fdump-analyzer-untracked.
15704
15705 2022-03-25 Avinash Sonawane <rootkea@gmail.com>
15706
15707 PR analyzer/103533
15708 * doc/invoke.texi: Document that enabling taint analyzer
15709 checker disables some warnings from `-fanalyzer`.
15710
15711 2022-03-24 Alexandre Oliva <oliva@adacore.com>
15712
15713 PR debug/104564
15714 * gimple-harden-conditionals.cc (detach_value): Keep temps
15715 anonymous.
15716
15717 2022-03-24 Alexandre Oliva <oliva@adacore.com>
15718
15719 PR middle-end/104975
15720 * gimple-harden-conditionals.cc
15721 (pass_harden_compares::execute): Force split in case of
15722 multiple edges.
15723
15724 2022-03-24 Jakub Jelinek <jakub@redhat.com>
15725
15726 PR c++/105035
15727 * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
15728 field0 or field1 is not a FIELD_DECL, return false.
15729
15730 2022-03-24 Richard Biener <rguenther@suse.de>
15731
15732 * tree-predcom.cc (chain::chain): Add CTOR.
15733 (component::component): Likewise.
15734 (pcom_worker::release_chain): Use delete.
15735 (release_components): Likewise.
15736 (pcom_worker::filter_suitable_components): Likewise.
15737 (pcom_worker::split_data_refs_to_components): Use new.
15738 (make_invariant_chain): Likewise.
15739 (make_rooted_chain): Likewise.
15740 (pcom_worker::combine_chains): Likewise.
15741 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
15742 Make sure to release previously constructed scalar_results.
15743 * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
15744 for vec_offsets.
15745 * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
15746 Release m_flag_set_edges.
15747
15748 2022-03-24 Siddhesh Poyarekar <siddhesh@gotplt.org>
15749
15750 PR tree-optimization/104970
15751 * tree-object-size.cc (parm_object_size): Restrict size
15752 computation scenarios to explicit access attributes.
15753
15754 2022-03-24 Kewen Lin <linkw@linux.ibm.com>
15755
15756 PR target/104967
15757 * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
15758 function types.
15759
15760 2022-03-23 Richard Biener <rguenther@suse.de>
15761
15762 PR target/102125
15763 * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
15764 use of movmisalign when either the source or destination
15765 decl is properly aligned.
15766
15767 2022-03-23 Richard Biener <rguenther@suse.de>
15768
15769 PR rtl-optimization/105028
15770 * ira-color.cc (form_threads_from_copies): Remove unnecessary
15771 copying of the sorted_copies tail.
15772
15773 2022-03-23 Martin Liska <mliska@suse.cz>
15774
15775 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
15776 Use %qs in format.
15777 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
15778 Reword the error message.
15779
15780 2022-03-23 liuhongt <hongtao.liu@intel.com>
15781
15782 PR target/104976
15783 * config/i386/sse.md (ssePSmodelower): New.
15784 (*avx_cmp<mode>3_ltint_not): Force_reg operand before
15785 lowpart_subreg to avoid NULL_RTX.
15786 (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
15787 <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
15788 fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
15789 <avx512>_<complexopname>_<mode>_mask<round_name>,
15790 avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
15791 avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
15792 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
15793 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
15794 float<floatunssuffix><mode>v4hf2,
15795 float<floatunssuffix>v2div2hf2,
15796 fix<fixunssuffix>_truncv4hf<mode>2,
15797 fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
15798 extendv2hfv2df2,
15799 trunc<mode>v4hf2,truncv2dfv2hf2,
15800 *avx512bw_permvar_truncv16siv16hi_1,
15801 *avx512bw_permvar_truncv16siv16hi_1_hf,
15802 *avx512f_permvar_truncv8siv8hi_1,
15803 *avx512f_permvar_truncv8siv8hi_1_hf,
15804 *avx512f_vpermvar_truncv8div8si_1,
15805 *avx512f_permvar_truncv32hiv32qi_1,
15806 *avx512f_permvar_truncv16hiv16qi_1,
15807 *avx512f_permvar_truncv4div4si_1,
15808 *avx512f_pshufb_truncv8hiv8qi_1,
15809 *avx512f_pshufb_truncv4siv4hi_1,
15810 *avx512f_pshufd_truncv2div2si_1,
15811 sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
15812 ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
15813
15814 2022-03-22 Tom de Vries <tdevries@suse.de>
15815
15816 PR target/104925
15817 * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
15818 Use % as register prefix.
15819
15820 2022-03-22 Tom de Vries <tdevries@suse.de>
15821
15822 * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
15823 (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
15824 mexperimental.
15825
15826 2022-03-22 Tom de Vries <tdevries@suse.de>
15827
15828 * config/nvptx/nvptx.opt (mexperimental): New option.
15829
15830 2022-03-22 Tom de Vries <tdevries@suse.de>
15831
15832 PR target/104957
15833 * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
15834 * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
15835 for alias.
15836 (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
15837 (nvptx_asm_output_def_from_decls): New function.
15838 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
15839 gcc_unreachable ().
15840 (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
15841 nvptx_asm_output_def_from_decls.
15842 * config/nvptx/nvptx.opt (malias): New opt.
15843
15844 2022-03-22 Tom de Vries <tdevries@suse.de>
15845
15846 PR target/104916
15847 PR target/104783
15848 * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
15849 sync (or uniform warp check for mptx < 6.0).
15850
15851 2022-03-22 Richard Biener <rguenther@suse.de>
15852
15853 PR tree-optimization/105012
15854 * tree-if-conv.cc (ifcvt_local_dce): Only call
15855 dse_classify_store when we have a VDEF.
15856
15857 2022-03-22 Martin Liska <mliska@suse.cz>
15858
15859 PR target/104902
15860 * config/nvptx/nvptx.cc (handle_ptx_version_option):
15861 Fix option wrapping in an error message.
15862
15863 2022-03-22 Martin Liska <mliska@suse.cz>
15864
15865 PR target/104903
15866 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
15867 Wrap const keyword.
15868
15869 2022-03-22 Martin Liska <mliska@suse.cz>
15870
15871 * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
15872 name.
15873
15874 2022-03-22 Martin Liska <mliska@suse.cz>
15875
15876 PR target/104898
15877 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
15878 Use %qs instead of (%qs).
15879
15880 2022-03-22 Martin Liska <mliska@suse.cz>
15881
15882 PR target/104898
15883 * config/i386/i386-options.cc (ix86_option_override_internal):
15884 Use '%qs' instead of '(%qs)'.
15885
15886 2022-03-22 Martin Liska <mliska@suse.cz>
15887
15888 PR target/104898
15889 * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
15890 Use 'qs' and remove usage '(%qs)'.
15891 (aarch64_handle_attr_cpu): Likewise.
15892 (aarch64_handle_attr_tune): Likewise.
15893 (aarch64_handle_attr_isa_flags): Likewise.
15894
15895 2022-03-22 Tamar Christina <tamar.christina@arm.com>
15896 Andre Vieira <andre.simoesdiasvieira@arm.com>
15897
15898 * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
15899 struct.
15900 (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
15901 cost.
15902 (neoverse512tvb_tunings): Likewise.
15903
15904 2022-03-22 Tamar Christina <tamar.christina@arm.com>
15905 Andre Vieira <andre.simoesdiasvieira@arm.com>
15906
15907 * config/aarch64/aarch64.cc (demeter_addrcost_table,
15908 demeter_regmove_cost, demeter_advsimd_vector_cost,
15909 demeter_sve_vector_cost, demeter_scalar_issue_info,
15910 demeter_advsimd_issue_info, demeter_sve_issue_info,
15911 demeter_vec_issue_info, demeter_vector_cost,
15912 demeter_tunings): New tuning structs.
15913 (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
15914 tuning.
15915 * config/aarch64/aarch64-cores.def: Add entry for demeter.
15916 * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
15917
15918 2022-03-22 Tamar Christina <tamar.christina@arm.com>
15919 Andre Vieira <andre.simoesdiasvieira@arm.com>
15920
15921 * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
15922 (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
15923 * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
15924 tunings to use cpu_memmov_cost struct.
15925
15926 2022-03-22 Tamar Christina <tamar.christina@arm.com>
15927 Andre Vieira <andre.simoesdiasvieira@arm.com>
15928
15929 * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
15930 neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
15931 neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
15932 neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
15933 neoversen2_vec_issue_info, neoversen2_tunings): New structs.
15934 (neoversen2_tunings): Use new structs and update tuning flags.
15935 (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
15936 tuning.
15937
15938 2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
15939
15940 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
15941 bit.
15942
15943 2022-03-22 liuhongt <hongtao.liu@intel.com>
15944
15945 PR target/104982
15946 * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
15947 following splitter to reversed condition.
15948
15949 2022-03-22 Jakub Jelinek <jakub@redhat.com>
15950
15951 PR rtl-optimization/104989
15952 * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
15953 sorry for passing too large argument, instead set sibcall_failure
15954 for pass == 0, or a new normal_failure flag otherwise. If
15955 normal_failure is set, don't assert all stack has been deallocated
15956 at the end and throw away the whole insn sequence.
15957
15958 2022-03-22 Qian Jianhua <qianjh@cn.fujitsu.com>
15959
15960 * print-tree.cc: Change array length
15961
15962 2022-03-22 Hongyu Wang <hongyu.wang@intel.com>
15963
15964 PR target/104978
15965 * config/i386/sse.md
15966 (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
15967 Use avx512f_movsf_mask instead of vmovaps or vblend, and
15968 force_reg before lowpart_subreg.
15969 (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
15970
15971 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
15972
15973 PR target/105000
15974 * common/config/i386/i386-common.cc
15975 (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
15976 OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
15977
15978 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
15979
15980 PR target/104998
15981 * common/config/i386/cpuinfo.h (get_available_features): Pass
15982 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
15983 bit_AESKLE is set.
15984
15985 2022-03-21 Richard Sandiford <richard.sandiford@arm.com>
15986
15987 PR middle-end/104869
15988 * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
15989 (clobber_group::next_clobber): Likewise.
15990 (def_lookup::prev_def): Rename to...
15991 (def_lookup::last_def_of_prev_group): ...this.
15992 (def_lookup::next_def): Rename to...
15993 (def_lookup::first_def_of_next_group): ...this.
15994 (def_lookup::matching_or_prev_def): Rename to...
15995 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
15996 (def_lookup::matching_or_next_def): Rename to...
15997 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
15998 (def_lookup::prev_def): New function, taking the lookup insn as
15999 argument.
16000 (def_lookup::next_def): Likewise.
16001 * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
16002 (def_lookup::last_def_of_prev_group): ...this.
16003 (def_lookup::next_def): Rename to...
16004 (def_lookup::first_def_of_next_group): ...this.
16005 (def_lookup::matching_or_prev_def): Rename to...
16006 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
16007 (def_lookup::matching_or_next_def): Rename to...
16008 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
16009 * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
16010 above renaming.
16011 * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
16012 (clobber_group::next_clobber): Likewise.
16013 (def_lookup::prev_def): Likewise.
16014 (def_lookup::next_def): Likewise.
16015 (function_info::make_use_available): Pass the lookup insn to
16016 def_lookup::prev_def and def_lookup::next_def.
16017
16018 2022-03-21 Martin Liska <mliska@suse.cz>
16019
16020 * doc/invoke.texi: Document min-pagesize parameter.
16021
16022 2022-03-21 Richard Biener <rguenther@suse.de>
16023
16024 * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
16025 we are estimating niter of loop.
16026
16027 2022-03-21 Kito Cheng <kito.cheng@sifive.com>
16028
16029 * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
16030 Update flag name and mask name.
16031 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
16032 misc macro for vector extensions.
16033 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
16034 (MASK_VECTOR_ELEN_32): ... this.
16035 (MASK_VECTOR_EEW_64): Rename to ...
16036 (MASK_VECTOR_ELEN_64): ... this.
16037 (MASK_VECTOR_EEW_FP_32): Rename to ...
16038 (MASK_VECTOR_ELEN_FP_32): ... this.
16039 (MASK_VECTOR_EEW_FP_64): Rename to ...
16040 (MASK_VECTOR_ELEN_FP_64): ... this.
16041 (TARGET_VECTOR_ELEN_32): New.
16042 (TARGET_VECTOR_ELEN_64): Ditto.
16043 (TARGET_VECTOR_ELEN_FP_32): Ditto.
16044 (TARGET_VECTOR_ELEN_FP_64): Ditto.
16045 (TARGET_MIN_VLEN): Ditto.
16046 * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
16047 (riscv_vector_elen_flags): ... this.
16048
16049 2022-03-21 Hongyu Wang <hongyu.wang@intel.com>
16050
16051 PR target/104977
16052 * config/i386/sse.md
16053 (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
16054 Correct round operand for intel dialect.
16055
16056 2022-03-19 Arthur Cohen <arthur.cohen@embecosm.com>
16057
16058 * diagnostic.cc (diagnostic_cc_tests): Rename to...
16059 (c_diagnostic_cc_tests): ...this.
16060 * opt-problem.cc (opt_problem_cc_tests): Rename to...
16061 (c_opt_problem_cc_tests): ...this.
16062 * selftest-run-tests.cc (selftest::run_tests): No longer run
16063 opt_problem_cc_tests or diagnostic_cc_tests.
16064 * selftest.h (diagnostic_cc_tests): Remove declaration.
16065 (opt_problem_cc_tests): Likewise.
16066
16067 2022-03-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
16068
16069 PR jit/63854
16070 * hash-traits.h (struct typed_const_free_remove): New.
16071 (struct free_string_hash): New.
16072 * pass_manager.h: Use free_string_hash.
16073 * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
16074 (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
16075
16076 2022-03-19 Jakub Jelinek <jakub@redhat.com>
16077
16078 PR middle-end/104971
16079 * config/i386/i386-expand.cc
16080 (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
16081 don't push/pop anything and just return const0_rtx.
16082
16083 2022-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
16084
16085 PR rtl-optimization/104961
16086 * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
16087
16088 2022-03-18 Jason Merrill <jason@redhat.com>
16089
16090 * tree.h (IDENTIFIER_LENGTH): Add comment.
16091
16092 2022-03-18 Jakub Jelinek <jakub@redhat.com>
16093
16094 PR middle-end/99578
16095 PR middle-end/100680
16096 PR tree-optimization/100834
16097 * params.opt (--param=min-pagesize=): New parameter.
16098 * pointer-query.cc
16099 (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
16100 (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
16101 of zero for pointer constants equal or larger than min-pagesize.
16102
16103 2022-03-18 Tom de Vries <tdevries@suse.de>
16104
16105 * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
16106 Set gfor location only when dealing with a OMP_TASKLOOP.
16107
16108 2022-03-18 Tom de Vries <tdevries@suse.de>
16109
16110 * gimplify.cc (gimplify_omp_for): Set taskloop location.
16111
16112 2022-03-18 Tom de Vries <tdevries@suse.de>
16113
16114 PR target/104952
16115 * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
16116 is executed unconditionally.
16117
16118 2022-03-18 liuhongt <hongtao.liu@intel.com>
16119
16120 PR target/104974
16121 * config/i386/i386.md (*movhi_internal): Set attr type from HI
16122 to HF for alternative 12 under TARGET_AVX512FP16.
16123
16124 2022-03-18 Cui,Lili <lili.cui@intel.com>
16125
16126 PR target/104963
16127 * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
16128 * doc/invoke.texi: Update documents for Intel sapphirerapids.
16129
16130 2022-03-17 Roger Sayle <roger@nextmovesoftware.com>
16131
16132 PR target/86722
16133 PR tree-optimization/90356
16134 * config/i386/i386.md (*movtf_internal): Don't guard
16135 standard_sse_constant_p clause by optimize_function_for_size_p.
16136 (*movdf_internal): Likewise.
16137 (*movsf_internal): Likewise.
16138
16139 2022-03-17 Andrew MacLeod <amacleod@redhat.com>
16140
16141 PR tree-optimization/102943
16142 * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
16143 dominators and apply intermediary outgoing edge ranges.
16144
16145 2022-03-17 Richard Biener <rguenther@suse.de>
16146
16147 PR tree-optimization/104960
16148 * passes.def: Add pass parameter to pass_sink_code, mark
16149 last one to unsplit edges.
16150 * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
16151 (pass_sink_code::execute): Always execute TODO_cleanup_cfg
16152 when we need to unsplit edges.
16153
16154 2022-03-17 Jakub Jelinek <jakub@redhat.com>
16155
16156 PR middle-end/103984
16157 * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
16158 TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
16159 and asan unpoisioning, then append the temporary sequence and
16160 finally the TARGET_EXPR_CLEANUP clobbers.
16161
16162 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
16163
16164 * config/i386/sse.md: Delete corrupt character/typo.
16165
16166 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
16167
16168 PR target/94680
16169 * config/i386/sse.md (sse2_movq128): New define_expand to
16170 preserve previous named instruction.
16171 (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
16172 generalized to VI8F_128 (both V2DI and V2DF).
16173
16174 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
16175
16176 PR tree-optimization/104941
16177 * tree-object-size.cc (size_for_offset): Make useless conversion
16178 check lighter and assign result of fold_convert to OFFSET.
16179
16180 2022-03-16 H.J. Lu <hjl.tools@gmail.com>
16181
16182 PR target/104890
16183 * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
16184 pushing target("general-regs-only").
16185
16186 2022-03-16 Kito Cheng <kito.cheng@sifive.com>
16187
16188 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
16189 Add version info for zk, zks and zkn.
16190
16191 2022-03-16 LiaoShihua <shihua@iscas.ac.cn>
16192
16193 * common/config/riscv/riscv-common.cc
16194 (riscv_combine_info): New.
16195 (riscv_subset_list::handle_combine_ext): Combine back into zk to
16196 maintain the canonical order in isa strings.
16197 (riscv_subset_list::parse): Ditto.
16198 * config/riscv/riscv-subset.h (handle_combine_ext): New.
16199
16200 2022-03-16 Richard Biener <rguenther@suse.de>
16201
16202 PR tree-optimization/102008
16203 * passes.def: Move the added code sinking pass before the
16204 preceeding phiopt pass.
16205
16206 2022-03-16 Patrick Palka <ppalka@redhat.com>
16207
16208 PR c++/96780
16209 * doc/invoke.texi (C++ Dialect Options): Document
16210 -ffold-simple-inlines.
16211
16212 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
16213
16214 PR tree-optimization/104942
16215 * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
16216
16217 2022-03-16 Jakub Jelinek <jakub@redhat.com>
16218
16219 PR target/104910
16220 * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
16221 imm rtx.
16222
16223 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
16224 Richard Biener <rguenther@suse.de>
16225
16226 * gimple-match-head.cc (single_use): Implement inline using a
16227 single loop.
16228
16229 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
16230
16231 * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
16232 instead of HONOR_NANS.
16233 (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
16234 this can't trap/signal.
16235
16236 2022-03-16 liuhongt <hongtao.liu@intel.com>
16237
16238 PR target/104946
16239 * config/i386/i386-builtin.def (BDESC): Add
16240 CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
16241 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
16242 __builtin_ia32_blendvpd w/o sse4.2
16243
16244 2022-03-15 Peter Bergner <bergner@linux.ibm.com>
16245
16246 PR target/104923
16247 * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
16248 acceptable MEM addresses.
16249
16250 2022-03-15 Jakub Jelinek <jakub@redhat.com>
16251
16252 PR target/91229
16253 * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
16254 riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
16255 to warning calls.
16256
16257 2022-03-15 Jakub Jelinek <jakub@redhat.com>
16258
16259 PR target/104890
16260 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
16261 instead of general-regs-only.
16262
16263 2022-03-15 Roger Sayle <roger@nextmovesoftware.com>
16264 Marc Glisse <marc.glisse@inria.fr>
16265 Richard Biener <rguenther@suse.de>
16266
16267 PR tree-optimization/101895
16268 * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
16269 (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
16270
16271 2022-03-15 Jakub Jelinek <jakub@redhat.com>
16272
16273 PR rtl-optimization/104814
16274 * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
16275 end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL.
16276
16277 2022-03-15 Martin Sebor <msebor@redhat.com>
16278
16279 PR middle-end/104436
16280 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
16281 Check for warning suppression. Avoid by-value arguments transformed
16282 into by-transparent-reference.
16283
16284 2022-03-14 Roger Sayle <roger@nextmovesoftware.com>
16285 Uroš Bizjak <ubizjak@gmail.com>
16286
16287 * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
16288 transformation when *zero_extend<mode>si2 is not available.
16289
16290 2022-03-14 Xi Ruoyao <xry111@mengyan1223.wang>
16291
16292 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
16293 * config/mips/mips.cc (mips_option_override): Make
16294 -fsanitize=address imply -fasynchronous-unwind-tables. This is
16295 needed by libasan for stack backtrace on MIPS.
16296 (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
16297
16298 2022-03-14 Jakub Jelinek <jakub@redhat.com>
16299
16300 PR debug/104778
16301 * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
16302 SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
16303 call simplified the first operand into VOIDmode constant.
16304
16305 2022-03-14 Jakub Jelinek <jakub@redhat.com>
16306
16307 PR tree-optimization/102586
16308 * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
16309 argument type should be pointer to trivially-copyable type unless it
16310 is address of a variable or parameter.
16311
16312 2022-03-14 Jakub Jelinek <jakub@redhat.com>
16313
16314 PR target/99754
16315 * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
16316 first rather than last element of the vector, use __m32_u to do
16317 a really unaligned load, use just 0 instead of (int)0.
16318 (_mm_loadu_si16): Put loaded value into first rather than last
16319 element of the vector, use __m16_u to do a really unaligned load,
16320 use just 0 instead of (short)0.
16321
16322 2022-03-14 Jakub Jelinek <jakub@redhat.com>
16323
16324 PR other/104899
16325 * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
16326 in diagnostic message - cannott -> cannot. Use %< and %> around
16327 names of attribute. Avoid too long line.
16328 * range-op.cc (operator_logical_and::op1_range): Fix up a typo
16329 in comment - cannott -> cannot. Use 2 spaces after . instead of one.
16330
16331 2022-03-14 liuhongt <hongtao.liu@intel.com>
16332
16333 PR target/104666
16334 * config/i386/i386-expand.cc
16335 (ix86_check_builtin_isa_match): New func.
16336 (ix86_expand_builtin): Move code to
16337 ix86_check_builtin_isa_match and call it.
16338 * config/i386/i386-protos.h
16339 (ix86_check_builtin_isa_match): Declare.
16340 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
16341 builtin into gimple when isa mismatches.
16342
16343 2022-03-13 Tobias Burnus <tobias@codesourcery.com>
16344
16345 * doc/invoke.texi: Fix typos.
16346 * doc/tm.texi.in: Remove duplicated word.
16347 * doc/tm.texi: Regenerate.
16348
16349 2022-03-12 Segher Boessenkool <segher@kernel.crashing.org>
16350
16351 PR target/104829
16352 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
16353 "ppc" and "ppc64" based on rs6000_cpu.
16354
16355 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
16356
16357 PR middle-end/100280
16358 PR middle-end/104892
16359 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
16360 Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
16361
16362 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
16363
16364 PR middle-end/100280
16365 PR middle-end/104086
16366 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
16367 Mark variables used in 'present' clauses as addressable.
16368 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
16369 handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
16370
16371 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
16372
16373 PR other/65095
16374 * tree-core.h (user_omp_claus_code_name): Declare function.
16375 * tree.cc (user_omp_clause_code_name): New function.
16376
16377 2022-03-12 Roger Sayle <roger@nextmovesoftware.com>
16378
16379 PR middle-end/98420
16380 * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
16381 (the defaut) or -fno-signed-zeros.
16382
16383 2022-03-12 Michael Meissner <meissner@linux.ibm.com>
16384
16385 PR target/104868
16386 * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
16387 moving from a GPR register to an Altivec register.
16388
16389 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
16390
16391 PR tree-optimization/98335
16392 * config/i386/i386.md (peephole2): Eliminate redundant insv.
16393 Combine movl followed by movb. Transform xorl followed by
16394 a suitable movb or movw into the equivalent movz[bw]l.
16395
16396 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
16397 Richard Biener <rguenther@suse.de>
16398
16399 PR tree-optimization/98335
16400 * builtins.cc (get_object_alignment_2): Export.
16401 * builtins.h (get_object_alignment_2): Likewise.
16402 * tree-ssa-alias.cc (ao_ref_alignment): New.
16403 * tree-ssa-alias.h (ao_ref_alignment): Declare.
16404 * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
16405 to align head/tail, writing more bytes but using fewer store insns.
16406
16407 2022-03-11 Richard Biener <rguenther@suse.de>
16408
16409 PR tree-optimization/104880
16410 * tree-ssa.cc (execute_update_address_taken): Remember if we
16411 optimistically made something not addressable and
16412 prepare to undo it.
16413
16414 2022-03-11 Richard Biener <rguenther@suse.de>
16415
16416 PR target/104762
16417 * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
16418 cost the first lane of SSE pieces as inserts for vec_construct.
16419
16420 2022-03-10 Roger Sayle <roger@nextmovesoftware.com>
16421
16422 PR c++/84964
16423 * calls.cc (expand_call): Ignore stack adjustments after sorry.
16424
16425 2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
16426
16427 PR target/103074
16428 * lra-constraints.cc (split_reg): Set up
16429 check_and_force_assignment_correctness_p when splitting hard
16430 register live range.
16431
16432 2022-03-10 Martin Jambor <mjambor@suse.cz>
16433
16434 PR ipa/104813
16435 * ipa-cp.cc (create_specialized_node): Move removal of
16436 self-recursive calls from callers vector before refrence
16437 adjustments.
16438
16439 2022-03-10 Richard Biener <rguenther@suse.de>
16440
16441 PR tree-optimization/102943
16442 * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
16443 Make a bitmap_head.
16444 (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
16445 to tree view.
16446 (sbr_sparse_bitmap::set_bb_range): Adjust.
16447 (sbr_sparse_bitmap::get_bb_range): Likewise.
16448
16449 2022-03-10 Richard Biener <rguenther@suse.de>
16450
16451 PR tree-optimization/102943
16452 * tree-ssa-dom.cc (back_propagate_equivalences): Only
16453 populate the dominance bitmap if fast queries are not
16454 available. Use a tree view bitmap.
16455 (record_temporary_equivalences): Cache the dominance bitmap
16456 across all equivalences on the edge.
16457
16458 2022-03-10 Tom de Vries <tdevries@suse.de>
16459
16460 PR target/104840
16461 * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
16462 of false,true.
16463
16464 2022-03-10 Tom de Vries <tdevries@suse.de>
16465
16466 PR target/104783
16467 * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
16468 (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
16469 (nvptx_get_unisimt_outside_simt_predicate): New function.
16470 (predicate_insn): New function, factored out of ...
16471 (nvptx_reorg_uniform_simt): ... here. Predicate all emitted insns.
16472 * config/nvptx/nvptx.h (struct machine_function): Add
16473 unisimt_outside_simt_predicate field.
16474 * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
16475 (define_insn "nvptx_uniform_warp_check"): Make predicable.
16476
16477 2022-03-10 Tom de Vries <tdevries@suse.de>
16478
16479 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
16480 result.
16481
16482 2022-03-10 Tom de Vries <tdevries@suse.de>
16483
16484 PR target/104815
16485 * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
16486 modifier.
16487 * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
16488
16489 2022-03-10 Tom de Vries <tdevries@suse.de>
16490
16491 * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
16492 Emit atom.and.b64 instead of atom.b64.and.
16493
16494 2022-03-10 Tom de Vries <tdevries@suse.de>
16495
16496 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
16497 (MULTILIB_OPTIONS): ... here.
16498
16499 2022-03-10 Tom de Vries <tdevries@suse.de>
16500
16501 PR target/104758
16502 * config/nvptx/nvptx.opt (misa): Set default to sm_30.
16503 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
16504
16505 2022-03-10 Thomas Schwinge <thomas@codesourcery.com>
16506
16507 PR middle-end/90115
16508 PR middle-end/102330
16509 PR middle-end/104774
16510 * omp-low.cc (oacc_privatization_candidate_p)
16511 (oacc_privatization_scan_clause_chain)
16512 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
16513 Analyze 'lookup_decl'-translated DECL.
16514
16515 2022-03-10 Jakub Jelinek <jakub@redhat.com>
16516
16517 PR target/99708
16518 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
16519 RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
16520 (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
16521 * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
16522 "**NULL**" if type_node is NULL first. Handle
16523 ieee128_float_type_node.
16524 (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
16525 and ptr_ibm128_float_type_node. Set ibm128_float_type_node and
16526 ieee128_float_type_node to NULL rather than long_double_type_node if
16527 they aren't supported. Do support __ibm128 even if
16528 !TARGET_FLOAT128_TYPE when long double is double double.
16529 (rs6000_expand_builtin): Error if bif_is_ibm128 and
16530 !ibm128_float_type_node. Remap RS6000_BIF_{,UN}PACK_IF to
16531 RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
16532 for it.
16533 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
16534 __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
16535 (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
16536 Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
16537 Formatting fix.
16538 * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
16539 (struct attrinfo): Add isibm128 member.
16540 (TYPE_MAP_SIZE): Remove.
16541 (type_map): Use [] instead of [TYPE_MAP_SIZE]. For "if" use
16542 ibm128_float_type_node only if it is non-NULL, otherwise fall back
16543 to long_double_type_node. Remove "pif" entry.
16544 (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
16545 (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
16546 (write_type_node): Use sizeof type_map / sizeof type_map[0]
16547 instead of TYPE_MAP_SIZE.
16548 (write_bif_static_init): Handle isibm128.
16549 * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
16550 (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
16551 attribute.
16552
16553 2022-03-09 Richard Biener <rguenther@suse.de>
16554
16555 * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
16556 with non-decl operand, avoiding a copy.
16557
16558 2022-03-09 Jakub Jelinek <jakub@redhat.com>
16559
16560 PR target/104781
16561 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
16562
16563 2022-03-09 Richard Biener <rguenther@suse.de>
16564
16565 PR middle-end/104786
16566 * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
16567 for VLAs without an upper size bound.
16568
16569 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
16570
16571 PR tree-optimization/104851
16572 * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
16573 error.
16574
16575 2022-03-09 Jakub Jelinek <jakub@redhat.com>
16576
16577 PR c/104711
16578 * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
16579 is enabled by it only for C++11 to C++17 rather than for C++03 or
16580 later.
16581 (-Wshift-negative-value): Similarly (except here we stated
16582 that it is enabled for C++11 or later).
16583
16584 2022-03-09 Jakub Jelinek <jakub@redhat.com>
16585
16586 PR rtl-optimization/104839
16587 * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
16588 Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
16589 (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
16590 instead of incorrect 0 in SUBREG_PROMOTED_SET.
16591
16592 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
16593
16594 PR target/104842
16595 * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
16596 value before adding an offset.
16597
16598 2022-03-08 Christophe Lyon <christophe.lyon@arm.com>
16599
16600 * config/arm/arm-builtins.cc
16601 (arm_binop_none_none_unone_qualifiers): Delete.
16602 (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
16603
16604 2022-03-08 Iain Sandoe <iain@sandoe.co.uk>
16605
16606 PR translation/104552
16607 * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
16608 the PCH out of memory error message punctuation and wording.
16609
16610 2022-03-08 Marek Polacek <polacek@redhat.com>
16611
16612 PR rtl-optimization/104777
16613 * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
16614 ASM_OPERANDS_LABEL_VEC has at least one element.
16615
16616 2022-03-08 H.J. Lu <hjl.tools@gmail.com>
16617
16618 PR target/104781
16619 * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
16620 stack realignment or regparm nested function with EH return.
16621
16622 2022-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
16623
16624 PR target/104790
16625 * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
16626 * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
16627 register for non widening loads or narrowing stores.
16628
16629 2022-03-08 Eric Gallager <egallager@gcc.gnu.org>
16630
16631 PR translation/104552
16632 * params.opt: Fix typo.
16633
16634 2022-03-08 Richard Biener <rguenther@suse.de>
16635
16636 PR tree-optimization/84201
16637 * params.opt (-param=vect-induction-float): Add.
16638 * doc/invoke.texi (vect-induction-float): Document.
16639 * tree-vect-loop.cc (vectorizable_induction): Honor
16640 param_vect_induction_float.
16641
16642 2022-03-08 Martin Jambor <mjambor@suse.cz>
16643
16644 PR translation/104552
16645 * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
16646 "that" in the description.
16647
16648 2022-03-08 Richard Biener <rguenther@suse.de>
16649
16650 PR tree-optimization/104825
16651 * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
16652 guard modref get_ao_ref on a pointer typed argument.
16653
16654 2022-03-08 liuhongt <hongtao.liu@intel.com>
16655
16656 * config/i386/sse.md (*vec_dupv4si): Disable memory operand
16657 for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
16658
16659 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
16660
16661 * doc/invoke.texi (C++ Modules): Remove anachronism.
16662
16663 2022-03-07 Martin Liska <mliska@suse.cz>
16664
16665 PR middle-end/104381
16666 * opts.cc (finish_options): If debug info is disabled
16667 (debug_info_level) and -fvar-tracking is unset, disable it.
16668
16669 2022-03-07 Jakub Jelinek <jakub@redhat.com>
16670
16671 * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
16672 * config/riscv/riscv.cc: Likewise.
16673 * config/darwin.h: Likewise.
16674 * config/i386/i386.cc: Likewise.
16675 * config/aarch64/thunderx3t110.md: Likewise.
16676 * config/aarch64/fractional-cost.h: Likewise.
16677 * config/vax/vax.cc: Likewise.
16678 * config/rs6000/pcrel-opt.md: Likewise.
16679 * config/rs6000/predicates.md: Likewise.
16680 * ctfc.h: Likewise.
16681 * tree-ssa-uninit.cc: Likewise.
16682 * value-relation.h: Likewise.
16683 * gimple-range-gori.cc: Likewise.
16684 * ipa-polymorphic-call.cc: Likewise.
16685 * pointer-query.cc: Likewise.
16686 * ipa-sra.cc: Likewise.
16687 * internal-fn.cc: Likewise.
16688 * varasm.cc: Likewise.
16689 * gimple-ssa-warn-access.cc: Likewise.
16690
16691 2022-03-07 Martin Liska <mliska@suse.cz>
16692
16693 PR target/104794
16694 * config/arm/arm.cc (arm_option_override_internal): Add missing
16695 space.
16696
16697 2022-03-07 Richard Biener <rguenther@suse.de>
16698
16699 PR tree-optimization/104782
16700 * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
16701 Re-instantiate r10-5979 fix, add comment.
16702
16703 2022-03-07 Martin Liska <mliska@suse.cz>
16704
16705 PR target/104797
16706 * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
16707 parenthesis from built-in name.
16708
16709 2022-03-07 Martin Liska <mliska@suse.cz>
16710
16711 PR target/104794
16712 * config/arm/arm.cc (arm_option_override_internal): Fix quoting
16713 of options in error messages.
16714 (arm_option_reconfigure_globals): Likewise.
16715
16716 2022-03-07 Martin Liska <mliska@suse.cz>
16717
16718 PR target/104794
16719 * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
16720 message. Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
16721 have only range [0,32].
16722
16723 2022-03-07 Jakub Jelinek <jakub@redhat.com>
16724
16725 PR target/104775
16726 * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
16727 S constraint instead of T in the last alternative.
16728
16729 2022-03-07 Martin Liska <mliska@suse.cz>
16730
16731 * plugin.cc (default_plugin_dir_name): Remove <dir> from error
16732 message.
16733
16734 2022-03-07 Martin Liska <mliska@suse.cz>
16735
16736 PR translation/90148
16737 * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
16738 quote to a proper place.
16739 * plugin.cc (default_plugin_dir_name): Likewise.
16740
16741 2022-03-07 Martin Liska <mliska@suse.cz>
16742
16743 PR target/99297
16744 * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
16745 string.
16746
16747 2022-03-07 Jakub Jelinek <jakub@redhat.com>
16748
16749 PR target/104779
16750 * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
16751 define_expand pattern. Rename define_insn to ...
16752 (*avx512dq_mul<mode>3<mask_name>): ... this.
16753 (<code><mode>3_mask): New any_logic define_expand pattern.
16754 (<mask_codefor><code><mode>3<mask_name>): Rename to ...
16755 (*<code><mode>3<mask_name>): ... this.
16756
16757 2022-03-05 Jakub Jelinek <jakub@redhat.com>
16758
16759 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
16760 visited bitmap and its use. Also punt on EDGE_ABNORMAL edges.
16761
16762 2022-03-05 Roger Sayle <roger@nextmovesoftware.com>
16763 Uroš Bizjak <ubizjak@gmail.com>
16764
16765 PR testsuite/104732
16766 * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
16767 Include DI mode unconditionally.
16768 (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
16769 i.e. always split on !TARGET_64BIT.
16770 (*<any_or>di3_doubleword): Likewise.
16771 (*one_cmpldi2_doubleword): Likewise.
16772 (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
16773 (<any_or><mode>3 expander): Likewise.
16774 (one_cmpl<mode>2 expander): Likewise.
16775
16776 2022-03-05 Michael Meissner <meissner@linux.ibm.com>
16777
16778 PR target/104698
16779 * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
16780 (mtvsrdd_diti_w1): Delete.
16781 (extendditi2): Convert from define_expand to
16782 define_insn_and_split. Replace with code to deal with both GPR
16783 registers and with altivec registers.
16784
16785 2022-03-04 Segher Boessenkool <segher@kernel.crashing.org>
16786
16787 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
16788 bit. Handle most older CPUs.
16789
16790 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
16791
16792 * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
16793 avoid a mismatch with DECL_MD_FUNCTION_CODE().
16794
16795 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
16796
16797 PR target/104117
16798 * config/rs6000/darwin.md (@machopic_high_<mode>): New.
16799 (@machopic_low_<mode>): New.
16800 * config/rs6000/predicates.md (macho_pic_address): New.
16801 * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
16802 apply the TLS processing to Darwin.
16803 * lra-constraints.cc (process_address_1): Revert the changes
16804 in r12-7209.
16805
16806 2022-03-04 Peter Bergner <bergner@linux.ibm.com>
16807
16808 PR target/87496
16809 PR target/104208
16810 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
16811 ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
16812 -mlong-double-128.
16813 Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
16814 from here...
16815 * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
16816 ... to here.
16817
16818 2022-03-04 Jakub Jelinek <jakub@redhat.com>
16819
16820 PR middle-end/104529
16821 * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
16822 on automatic objects which will be runtime initialized.
16823
16824 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
16825
16826 PR middle-end/100280
16827 PR middle-end/104132
16828 PR middle-end/104133
16829 * omp-low.cc (task_shared_vars): Rename to
16830 'make_addressable_vars'. Adjust all users.
16831 (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
16832 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
16833
16834 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
16835
16836 PR middle-end/100280
16837 * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
16838 * tree-core.h: Document it.
16839 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
16840 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
16841 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
16842 Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
16843 'TREE_ADDRESSABLE'.
16844
16845 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
16846
16847 PR middle-end/100280
16848 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
16849 Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
16850 '[...]' declared in block made addressable".
16851
16852 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
16853
16854 PR middle-end/100400
16855 PR middle-end/103836
16856 PR middle-end/104061
16857 * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
16858 Catch 'GIMPLE_DEBUG'.
16859
16860 2022-03-04 Jakub Jelinek <jakub@redhat.com>
16861
16862 PR c/104627
16863 * tree.cc (warn_deprecated_use): For types prefer to use node
16864 and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
16865 NULL.
16866
16867 2022-03-04 H.J. Lu <hjl.tools@gmail.com>
16868
16869 PR target/104704
16870 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
16871 a pseudo register.
16872
16873 2022-03-03 Martin Sebor <msebor@redhat.com>
16874
16875 PR middle-end/104761
16876 * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
16877 mark_dfs_back_edges.
16878
16879 2022-03-03 Martin Liska <mliska@suse.cz>
16880
16881 * configure.ac: Use linker plug-in by default.
16882 * configure: Regenerate.
16883
16884 2022-03-03 Martin Liska <mliska@suse.cz>
16885
16886 * configure.ac: Now ld.mold support LTO plugin API, use it.
16887 * configure: Regenerate.
16888
16889 2022-03-03 Tom de Vries <tdevries@suse.de>
16890
16891 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
16892
16893 2022-03-03 Tom de Vries <tdevries@suse.de>
16894
16895 PR target/104758
16896 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
16897
16898 2022-03-03 Tom de Vries <tdevries@suse.de>
16899
16900 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
16901
16902 2022-03-03 Jakub Jelinek <jakub@redhat.com>
16903
16904 PR middle-end/104757
16905 * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
16906 gimplify_omp_for.
16907 (gimplify_expr) <case OMP_SIMD>: Temporarily disable
16908 gimplify_ctxp->into_ssa around call to gimplify_omp_for.
16909
16910 2022-03-03 Jakub Jelinek <jakub@redhat.com>
16911
16912 PR middle-end/104558
16913 * calls.cc (store_one_arg): When not calling emit_push_insn
16914 because size_rtx is const0_rtx, call at least anti_adjust_stack
16915 on arg->locate.alignment_pad if !argblock and the alignment might
16916 be non-zero.
16917
16918 2022-03-02 Alexandre Oliva <oliva@adacore.com>
16919
16920 * lra-constraints.cc (undo_optional_reloads): Recognize and
16921 drop insns of multi-word move sequences, tolerate removal
16922 iteration on an already-removed clobber, and refuse to
16923 substitute original pseudos into clobbers.
16924
16925 2022-03-02 Qing Zhao <qing.zhao@oracle.com>
16926
16927 PR middle-end/102276
16928 * common.opt (-Wtrivial-auto-var-init): New option.
16929 * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
16930 (-ftrivial-auto-var-init): Update option;
16931 * gimplify.cc (emit_warn_switch_unreachable): New function.
16932 (warn_switch_unreachable_r): Rename to ...
16933 (warn_switch_unreachable_and_auto_init_r): This.
16934 (maybe_warn_switch_unreachable): Rename to ...
16935 (maybe_warn_switch_unreachable_and_auto_init): This.
16936 (gimplify_switch_expr): Update calls to renamed function.
16937
16938 2022-03-02 Richard Biener <rguenther@suse.de>
16939
16940 PR rtl-optimization/104686
16941 * ira-color.cc (object_conflicts_with_allocno_p): New function
16942 using a bitvector test instead of iterating when possible.
16943 (allocnos_conflict_p): Choose the best allocno to iterate over
16944 object conflicts.
16945 (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
16946 last.
16947
16948 2022-03-02 Jakub Jelinek <jakub@redhat.com>
16949
16950 * cfg.cc (dump_edge_info): Dump goto_locus if present.
16951
16952 2022-03-02 Jakub Jelinek <jakub@redhat.com>
16953
16954 PR rtl-optimization/104589
16955 * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
16956 INSN_LOCATION comparison with goto_locus.
16957
16958 2022-03-02 Jakub Jelinek <jakub@redhat.com>
16959
16960 * tree-ssa-strlen.cc (strlen_pass::handle_assign,
16961 strlen_pass::before_dom_children): Comment spelling fixes.
16962
16963 2022-03-02 Jakub Jelinek <jakub@redhat.com>
16964
16965 * ipa-modref-tree.cc (modref_access_node::contains,
16966 modref_access_node::closer_pair_p, modref_access_node::insert,
16967 modref_access_node::insert_kill): Comment spelling fixes.
16968 * ipa-modref.cc: Likewise.
16969 (modref_summary::finalize, ignore_nondeterminism_p,
16970 class modref_access_analysis,
16971 modref_access_analysis::set_side_effects,
16972 modref_access_analysis::set_nondeterministic,
16973 modref_access_analysis::record_global_memory_load,
16974 modref_access_analysis::propagate, modref_access_analysis::analyze,
16975 struct escape_point, class modref_lattice, modref_lattice::merge,
16976 modref_lattice::merge_deref, class modref_eaf_analysis,
16977 modref_eaf_analysis::merge_call_lhs_flags,
16978 modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
16979 modref_eaf_analysis::record_escape_points, remap_kills,
16980 update_escape_summary, remove_useless_summaries,
16981 ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
16982 Likewise.
16983 * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
16984 Likewise.
16985 * ipa-modref-tree.h (enum modref_special_parms,
16986 struct modref_access_node): Likewise.
16987
16988 2022-03-01 Jakub Jelinek <jakub@redhat.com>
16989
16990 PR tree-optimization/104715
16991 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
16992 unnecessarily test if ptr is a SSA_NAME, it has to be. Only push lhs
16993 of a call if gimple_call_return_arg is equal to ptr, not just when it
16994 is non-NULL.
16995
16996 2022-03-01 Jakub Jelinek <jakub@redhat.com>
16997
16998 * gimple-ssa-warn-access.cc (warn_string_no_nul,
16999 maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
17000 matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
17001 pass_waccess::check_alloca, pass_waccess::check_strcat,
17002 memmodel_to_uhwi, fntype_argno_type,
17003 pass_waccess::maybe_check_access_sizes,
17004 pass_waccess::check_call_access,
17005 pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
17006 Comment spelling fixes.
17007
17008 2022-03-01 Richard Biener <rguenther@suse.de>
17009
17010 PR tree-optimization/104716
17011 * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
17012 Check if we can copy the loop.
17013
17014 2022-03-01 H.J. Lu <hjl.tools@gmail.com>
17015
17016 PR middle-end/104721
17017 * cfgexpand.cc (expand_gimple_basic_block): Clear
17018 currently_expanding_gimple_stmt when returning inside the loop.
17019
17020 2022-03-01 Martin Liska <mliska@suse.cz>
17021
17022 PR ipa/104533
17023 * multiple_target.cc (get_attr_len): Move to tree.c.
17024 (expand_target_clones): Remove single value checking.
17025 * tree.cc (get_target_clone_attr_len): New fn.
17026 * tree.h (get_target_clone_attr_len): Likewise.
17027
17028 2022-03-01 Martin Liska <mliska@suse.cz>
17029
17030 PR gcov-profile/104677
17031 * doc/invoke.texi: Document more .gcda file name generation.
17032
17033 2022-03-01 Tom de Vries <tdevries@suse.de>
17034
17035 PR target/102429
17036 * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
17037 * config/nvptx/nvptx.md
17038 (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
17039 New predicate.
17040 (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
17041 Use nvptx_register_or_complex_di_df_register_operand.
17042
17043 2022-03-01 Tom de Vries <tdevries@suse.de>
17044
17045 * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
17046 * config/nvptx/gen-copyright.sh: New file.
17047 * config/nvptx/gen-h.sh: New file.
17048 * config/nvptx/gen-opt.sh: New file.
17049 * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
17050 (TARGET_SM75, TARGET_SM80): Move ...
17051 * config/nvptx/nvptx-gen.h: ... here. New file, generate.
17052 * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
17053 * config/nvptx/nvptx-gen.opt: ... here. New file, generate.
17054 * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
17055 ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
17056
17057 2022-03-01 Tom de Vries <tdevries@suse.de>
17058
17059 * config/nvptx/gen-omp-device-properties.sh: New file.
17060 * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
17061
17062 2022-03-01 Tom de Vries <tdevries@suse.de>
17063
17064 * config/nvptx/nvptx-sm.def: New file.
17065 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
17066 * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
17067 * config/nvptx/nvptx.cc (sm_version_to_string)
17068 (nvptx_omp_device_kind_arch_isa): Same.
17069
17070 2022-03-01 Robin Dapp <rdapp@linux.ibm.com>
17071
17072 PR rtl-optimization/104154
17073 * config/arc/arc.cc (gen_compare_reg): Return the CC-mode
17074 comparison ifcvt passed us.
17075
17076 2022-03-01 Hongyu Wang <hongyu.wang@intel.com>
17077
17078 PR target/104664
17079 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
17080 Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
17081
17082 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
17083
17084 PR tree-optimization/91384
17085 * config/i386/i386.md (peephole2): Eliminate final testl insn
17086 from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
17087 transforming using *negsi_2 for the negation.
17088
17089 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
17090 Eric Botcazou <ebotcazou@adacore.com>
17091
17092 PR middle-end/80270
17093 * expmed.cc (extract_integral_bit_field): If OP0 is a hard
17094 register, copy it to a pseudo before calling simplify_gen_subreg.
17095
17096 2022-02-28 Vladimir N. Makarov <vmakarov@redhat.com>
17097
17098 PR rtl-optimization/104637
17099 * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
17100 as possible on one subpass.
17101
17102 2022-02-28 Qing Zhao <qing.zhao@oracle.com>
17103
17104 PR middle-end/104550
17105 * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
17106 created uses.
17107
17108 2022-02-28 Martin Liska <mliska@suse.cz>
17109
17110 PR ipa/104648
17111 * main.cc (main): Use flag_checking instead of CHECKING_P
17112 and run toplev::finalize only if there is not error seen.
17113
17114 2022-02-28 Richard Biener <rguenther@suse.de>
17115
17116 * tree-ssa-pre.cc (compute_avail): Revert part of last change.
17117
17118 2022-02-28 Richard Biener <rguenther@suse.de>
17119
17120 PR tree-optimization/104700
17121 * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
17122 into ...
17123 (find_or_generate_expression): ... here, simplifying code.
17124
17125 2022-02-28 Tom de Vries <tdevries@suse.de>
17126
17127 * config/nvptx/nvptx-opts.h (enum ptx_version): Add
17128 PTX_VERSION_default.
17129 * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
17130 PTX_VERSION_default.
17131 * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
17132
17133 2022-02-28 Richard Biener <rguenther@suse.de>
17134
17135 PR rtl-optimization/104686
17136 * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
17137 skipping bits that are zero.
17138 (ira_object_conflict_iter_cond): Likewise.
17139
17140 2022-02-28 Hongyu Wang <hongyu.wang@intel.com>
17141
17142 * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
17143 (_mm512_ternarylogic_epi64): Truncate imm to unsigned
17144 char to avoid error when using ~enum as parameter.
17145 (_mm512_mask_ternarylogic_epi64): Likewise.
17146 (_mm512_maskz_ternarylogic_epi64): Likewise.
17147 (_mm512_ternarylogic_epi32): Likewise.
17148 (_mm512_mask_ternarylogic_epi32): Likewise.
17149 (_mm512_maskz_ternarylogic_epi32): Likewise.
17150 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
17151 Adjust imm param type to unsigned char.
17152 (_mm256_mask_ternarylogic_epi64): Likewise.
17153 (_mm256_maskz_ternarylogic_epi64): Likewise.
17154 (_mm256_ternarylogic_epi32): Likewise.
17155 (_mm256_mask_ternarylogic_epi32): Likewise.
17156 (_mm256_maskz_ternarylogic_epi32): Likewise.
17157 (_mm_ternarylogic_epi64): Likewise.
17158 (_mm_mask_ternarylogic_epi64): Likewise.
17159 (_mm_maskz_ternarylogic_epi64): Likewise.
17160 (_mm_ternarylogic_epi32): Likewise.
17161 (_mm_mask_ternarylogic_epi32): Likewise.
17162 (_mm_maskz_ternarylogic_epi32): Likewise.
17163
17164 2022-02-25 Jakub Jelinek <jakub@redhat.com>
17165 Marc Glisse <marc.glisse@inria.fr>
17166
17167 PR tree-optimization/104675
17168 * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
17169 Restrict simplifications to INTEGRAL_TYPE_P.
17170
17171 2022-02-25 Jakub Jelinek <jakub@redhat.com>
17172
17173 PR target/104681
17174 * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
17175
17176 2022-02-25 Claudiu Zissulescu <claziss@synopsys.com>
17177
17178 * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
17179 comparison is not valid.
17180 * config/arc/arc.md (movsicc): Fail if comparison is not valid.
17181 (movdicc): Likewise.
17182 (movsfcc): Likewise.
17183 (movdfcc): Likewise.
17184
17185 2022-02-25 Richard Biener <rguenther@suse.de>
17186
17187 PR tree-optimization/103037
17188 * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
17189 (vn_nary_length_from_stmt): Likewise.
17190 (init_vn_nary_op_from_stmt): Likewise.
17191 (vn_nary_op_compute_hash): Likewise.
17192 * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
17193 (vn_nary_length_from_stmt): Likewise.
17194 (init_vn_nary_op_from_stmt): Likewise.
17195 (vn_nary_op_compute_hash): Likewise.
17196 * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
17197 (get_or_alloc_expr_for_nary): Pass in the value-id to use,
17198 (re-)compute the hash value and if the expression is not
17199 found allocate it from pre_expr_obstack.
17200 (phi_translate_1): Do not insert the NARY found in the
17201 VN tables but build a PRE expression from the valueized
17202 NARY with the value-id we eventually found.
17203 (find_or_generate_expression): Assert we have an entry
17204 for constant values.
17205 (compute_avail): Insert not valueized expressions into
17206 EXP_GEN using the value-id from the VN tables.
17207 (init_pre): Allocate pre_expr_obstack.
17208 (fini_pre): Free pre_expr_obstack.
17209
17210 2022-02-25 Jakub Jelinek <jakub@redhat.com>
17211
17212 PR target/104674
17213 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
17214 * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
17215 SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
17216
17217 2022-02-25 Jakub Jelinek <jakub@redhat.com>
17218
17219 * warning-control.cc (get_nowarn_spec): Comment spelling fix.
17220
17221 2022-02-25 Jakub Jelinek <jakub@redhat.com>
17222
17223 PR middle-end/104679
17224 * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
17225
17226 2022-02-25 Jakub Jelinek <jakub@redhat.com>
17227
17228 PR tree-optimization/104675
17229 * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
17230 COMPLEX_TYPE.
17231
17232 2022-02-25 Alexandre Oliva <oliva@adacore.com>
17233
17234 PR target/104121
17235 PR target/103302
17236 * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
17237
17238 2022-02-25 Alexandre Oliva <oliva@adacore.com>
17239
17240 PR middle-end/104540
17241 * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
17242 dw_cfi_cfa_loc.
17243
17244 2022-02-25 Alexandre Oliva <oliva@adacore.com>
17245
17246 PR tree-optimization/103856
17247 * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
17248 eh edge to be requested through an extra parameter.
17249 (pass_harden_compares::execute): Copy PHI args in the EH dest
17250 block for the new EH edge added for the inverted compare.
17251
17252 2022-02-24 Palmer Dabbelt <palmer@rivosinc.com>
17253
17254 * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
17255 of position independence that -mcmodel=medany affords.
17256
17257 2022-02-24 Jose E. Marchesi <jose.marchesi@oracle.com>
17258
17259 PR target/104656
17260 * configure.ac: --disable-gcov if targetting bpf-*.
17261 * configure: Regenerate.
17262
17263 2022-02-24 Richard Biener <rguenther@suse.de>
17264
17265 PR tree-optimization/104676
17266 * tree-loop-distribution.cc (loop_distribution::execute):
17267 Do a full scev_reset.
17268
17269 2022-02-24 Jakub Jelinek <jakub@redhat.com>
17270
17271 PR tree-optimization/104601
17272 * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
17273 non-SSA_NAME lhs value number vdef to itself instead of e.g. the
17274 vuse value number.
17275
17276 2022-02-24 Tom de Vries <tdevries@suse.de>
17277 Tobias Burnus <tobias@codesourcery.com>
17278
17279 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
17280 sm_70, sm_75 and sm_80.
17281 * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
17282
17283 2022-02-24 Tom de Vries <tdevries@suse.de>
17284
17285 * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
17286 "rotrsi3"): New define_insn.
17287
17288 2022-02-24 Tom de Vries <tdevries@suse.de>
17289
17290 * config/nvptx/nvptx.cc (gen_comment): Use
17291 DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
17292
17293 2022-02-24 liuhongt <hongtao.liu@intel.com>
17294
17295 * config/i386/sse.md (<code>v1ti3): Add suffix and replace
17296 isa attr of alternative 2 from avx to avx512vl.
17297
17298 2022-02-23 Richard Biener <rguenther@suse.de>
17299 Jakub Jelinek <jakub@redhat.com>
17300
17301 PR tree-optimization/104644
17302 * doc/match-and-simplify.texi: Amend ! documentation.
17303 * genmatch.cc (expr::gen_transform): Code-generate ! support
17304 for GENERIC.
17305 (parser::parse_expr): Allow ! for GENERIC.
17306 * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
17307 bswap.
17308
17309 2022-02-23 Richard Biener <rguenther@suse.de>
17310
17311 PR tree-optimization/101636
17312 * tree-vect-slp.cc (vect_print_slp_tree): Dump the
17313 vector type of the node.
17314 (vect_slp_analyze_operations): Make sure the CTOR
17315 is vectorized with an expected type.
17316 (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
17317
17318 2022-02-23 Jakub Jelinek <jakub@redhat.com>
17319
17320 PR c/104633
17321 * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
17322 Don't warn about calls to corresponding builtin from extern inline
17323 gnu_inline wrappers.
17324
17325 2022-02-23 Roger Sayle <roger@nextmovesoftware.com>
17326
17327 PR target/104489
17328 * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
17329
17330 2022-02-23 Christophe Lyon <christophe.lyon@arm.com>
17331
17332 PR target/100757
17333 PR target/101325
17334 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
17335 typo.
17336
17337 2022-02-23 Cui,Lili <lili.cui@intel.com>
17338
17339 * doc/invoke.texi: Update documents for Intel architectures.
17340
17341 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
17342
17343 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
17344 bootstrap.
17345
17346 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
17347
17348 * omp-low.cc (omp_build_component_ref): Move function...
17349 * omp-general.cc (omp_build_component_ref): ... here. Remove
17350 'static'.
17351 * omp-general.h (omp_build_component_ref): Declare function.
17352 * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
17353 function.
17354 (build_receiver_ref, build_sender_ref): Call
17355 'omp_build_component_ref' instead.
17356
17357 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
17358
17359 * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
17360 simplify. Adjust all users.
17361
17362 2022-02-22 Segher Boessenkool <segher@kernel.crashing.org>
17363
17364 PR target/88134
17365 * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
17366 atomic_update_decl): Add GTY markup.
17367
17368 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17369
17370 * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
17371
17372 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17373
17374 PR target/100757
17375 PR target/101325
17376 * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
17377 predicate.
17378 (CX_BINARY_UNONE_QUALIFIERS): Likewise.
17379 (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
17380 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
17381 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
17382 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
17383 * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
17384 * config/arm/mve.md: Use VxBI instead of HI.
17385
17386 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17387
17388 PR target/100757
17389 PR target/101325
17390 * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
17391 qualifier.
17392 (STRSBU_P_QUALIFIERS): Likewise.
17393 (LDRGBS_Z_QUALIFIERS): Likewise.
17394 (LDRGBU_Z_QUALIFIERS): Likewise.
17395 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
17396 (LDRGBWBS_Z_QUALIFIERS): Likewise.
17397 (LDRGBWBU_Z_QUALIFIERS): Likewise.
17398 (STRSBWBS_P_QUALIFIERS): Likewise.
17399 (STRSBWBU_P_QUALIFIERS): Likewise.
17400 * config/arm/mve.md: Use VxBI instead of HI.
17401
17402 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17403
17404 PR target/100757
17405 PR target/101325
17406 * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
17407 (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
17408 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
17409 (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
17410 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
17411 (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
17412 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
17413 (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
17414 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
17415 (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
17416 (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
17417 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
17418 (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
17419 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
17420 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
17421 (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
17422 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
17423 (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
17424 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
17425 (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
17426 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
17427 (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
17428 (STRS_P_QUALIFIERS): Use predicate qualifier.
17429 (STRU_P_QUALIFIERS): Likewise.
17430 (STRSU_P_QUALIFIERS): Likewise.
17431 (STRSS_P_QUALIFIERS): Likewise.
17432 (LDRGS_Z_QUALIFIERS): Likewise.
17433 (LDRGU_Z_QUALIFIERS): Likewise.
17434 (LDRS_Z_QUALIFIERS): Likewise.
17435 (LDRU_Z_QUALIFIERS): Likewise.
17436 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
17437 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
17438 (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
17439 (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
17440 * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
17441 * config/arm/mve.md: Use MVE_VPRED instead of HI.
17442
17443 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17444
17445 PR target/100757
17446 PR target/101325
17447 * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
17448 Delete.
17449 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
17450 (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
17451 (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
17452 * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
17453 predicated qualifiers.
17454 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
17455 (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
17456
17457 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17458
17459 PR target/100757
17460 * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
17461 (arm_expand_vector_compare): Update prototype.
17462 * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
17463 (arm_vector_mode_supported_p): Add support for VxBI modes.
17464 (arm_expand_vector_compare): Remove useless generation of vpsel.
17465 (arm_expand_vcond): Fix select operands.
17466 (arm_get_mask_mode): New.
17467 * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
17468 (vec_cmpu<mode><MVE_vpred>): New.
17469 (vcond_mask_<mode><MVE_vpred>): New.
17470 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
17471 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
17472 * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
17473 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
17474 and disable for MVE.
17475 * doc/sourcebuild.texi (arm_mve): Document new effective-target.
17476
17477 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17478
17479 PR target/100757
17480 PR target/101325
17481 * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
17482 (BINOP_PRED_NONE_NONE_QUALIFIERS)
17483 (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
17484 (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
17485 * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
17486 * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
17487 modes.
17488 (arm_mode_to_pred_mode): New.
17489 (arm_expand_vector_compare): Use the right VxBI mode instead of
17490 HI.
17491 (arm_expand_vcond): Likewise.
17492 (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
17493 (mve_bool_vec_to_const): New.
17494 (neon_make_constant): Call mve_bool_vec_to_const when needed.
17495 * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
17496 (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
17497 (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
17498 (vpselq_s, vpselq_f): Use new predicated qualifiers.
17499 * config/arm/constraints.md (DB): New.
17500 * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
17501 (MVE_VPRED, MVE_vpred): New attribute iterators.
17502 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
17503 (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
17504 (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
17505 (@mve_vpselq_<supf>v2di): Define separately.
17506 (mov<mode>): New expander for VxBI modes.
17507 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
17508 MVE_7_HI iterator and add support for DB constraint.
17509
17510 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17511 Richard Sandiford <richard.sandiford@arm.com>
17512
17513 PR target/100757
17514 PR target/101325
17515 * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
17516 VNx2BI): Update definition.
17517 * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
17518 simd types.
17519 (arm_init_builtin): Map predicate vectors arguments to HImode.
17520 (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
17521 rtx. Move return value to HImode rtx.
17522 * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
17523 * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
17524 * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
17525 Pred2x8_t,Pred4x4_t): New.
17526 * emit-rtl.cc (init_emit_once): Handle all boolean modes.
17527 * genmodes.cc (mode_data): Add boolean field.
17528 (blank_mode): Initialize it.
17529 (make_complex_modes): Fix handling of boolean modes.
17530 (make_vector_modes): Likewise.
17531 (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
17532 (make_vector_bool_mode): Likewise.
17533 (BOOL_MODE): New.
17534 (make_bool_mode): New.
17535 (emit_insn_modes_h): Fix generation of boolean modes.
17536 (emit_class_narrowest_mode): Likewise.
17537 * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
17538 parameter. Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
17539 define BImode.
17540 * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
17541 Fix handling of constm1_rtx for VECTOR_BOOL.
17542 * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
17543 (native_decode_vector_rtx): Likewise.
17544 (test_vector_ops_duplicate): Skip vec_merge test
17545 with vectors of booleans.
17546 * varasm.cc (output_constant_pool_2): Likewise.
17547
17548 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17549
17550 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
17551 for operand 1.
17552
17553 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17554
17555 * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
17556
17557 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17558
17559 * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
17560 (REG_CLASS_NAMES): Likewise.
17561 (REG_CLASS_CONTENTS): Likewise.
17562 (CLASS_MAX_NREGS): Handle VPR.
17563 * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
17564
17565 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
17566 Tom de Vries <tdevries@suse.de>
17567
17568 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
17569 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
17570 Likewise.
17571 * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
17572
17573 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
17574 Tom de Vries <tdevries@suse.de>
17575
17576 * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
17577 * doc/invoke.texi (-mptx): Update for new values and defaults.
17578
17579 2022-02-22 Tom de Vries <tdevries@suse.de>
17580
17581 * config/nvptx/nvptx.cc (gen_comment): New function.
17582 (workaround_uninit_method_1, workaround_uninit_method_2)
17583 (workaround_uninit_method_3): : Use gen_comment.
17584 * config/nvptx/nvptx.opt (mptx-comment): New option.
17585
17586 2022-02-22 Richard Biener <rguenther@suse.de>
17587
17588 * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
17589 for a splat.
17590
17591 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
17592 Richard Biener <rguenther@suse.de>
17593
17594 * fold-const.cc (ctor_single_nonzero_element): New function to
17595 return the single non-zero element of a (vector) constructor.
17596 * fold-const.h (ctor_single_nonzero_element): Prototype here.
17597 * match.pd (reduc (constructor@0)): Simplify reductions of a
17598 constructor containing a single non-zero element.
17599 (reduc (@0 op VECTOR_CST) -> (reduc @0) op CONST): Simplify
17600 reductions of vector operations of the same operator with
17601 constant vector operands.
17602
17603 2022-02-22 Jakub Jelinek <jakub@redhat.com>
17604
17605 PR tree-optimization/104604
17606 * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
17607 Only check if gimple_assign_rhs1 is COMPLEX_CST if
17608 gimple_assign_rhs_code is COMPLEX_CST.
17609
17610 2022-02-22 Jakub Jelinek <jakub@redhat.com>
17611
17612 PR target/104612
17613 * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
17614 on input operands before calling lowpart_subreg on it. For output
17615 operand, use a vmode pseudo as destination and then move its lowpart
17616 subreg into operands[0] if lowpart_subreg fails on dest.
17617 (ix86_expand_xorsign): Likewise.
17618
17619 2022-02-22 Richard Biener <rguenther@suse.de>
17620
17621 PR tree-optimization/104582
17622 PR target/99881
17623 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
17624 Cost GPR to vector register moves for integer vector construction.
17625
17626 2022-02-22 Richard Biener <rguenther@suse.de>
17627
17628 PR tree-optimization/104582
17629 * tree-vectorizer.h (stmt_info_for_cost::node): New field.
17630 (vector_costs::add_stmt_cost): Add SLP node parameter.
17631 (dump_stmt_cost): Likewise.
17632 (add_stmt_cost): Likewise, new overload and adjust.
17633 (add_stmt_costs): Adjust.
17634 (record_stmt_cost): New overload.
17635 * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
17636 (vector_costs::add_stmt_cost): Adjust.
17637 * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
17638 Adjust.
17639 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
17640 the SLP node for costing.
17641 (vectorizable_slp_permutation): Likewise.
17642 * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
17643 new overloads.
17644 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
17645 Adjust.
17646 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
17647 Adjust.
17648 * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
17649 Adjust.
17650 (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
17651
17652 2022-02-22 Richard Biener <rguenther@suse.de>
17653
17654 PR tree-optimization/104582
17655 * tree-vectorizer.h (add_stmt_cost): New overload.
17656 (record_stmt_cost): Likewise.
17657 * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
17658 Use add_stmt_costs.
17659 (vect_get_known_peeling_cost): Use new overloads.
17660 (vect_estimate_min_profitable_iters): Likewise. Consistently
17661 use scalar_stmt for costing versioning checks.
17662 * tree-vect-stmts.cc (record_stmt_cost): New overload.
17663
17664 2022-02-22 Hongyu Wang <hongyu.wang@intel.com>
17665
17666 PR target/103069
17667 * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
17668 Split atomic fetch and loop part.
17669 (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
17670 * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
17671 prototype.
17672 * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
17673 expander under TARGET_RELAX_CMPXCHG_LOOP.
17674 (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
17675
17676 2022-02-21 Dan Li <ashimida@linux.alibaba.com>
17677
17678 * config/aarch64/aarch64.cc (SLOT_REQUIRED):
17679 Change wb_candidate[12] to wb_push_candidate[12].
17680 (aarch64_layout_frame): Likewise, and
17681 change callee_adjust when scs is enabled.
17682 (aarch64_save_callee_saves):
17683 Change wb_candidate[12] to wb_push_candidate[12].
17684 (aarch64_restore_callee_saves):
17685 Change wb_candidate[12] to wb_pop_candidate[12].
17686 (aarch64_get_separate_components):
17687 Change wb_candidate[12] to wb_push_candidate[12].
17688 (aarch64_expand_prologue): Push x30 onto SCS before it's
17689 pushed onto stack.
17690 (aarch64_expand_epilogue): Pop x30 frome SCS, while
17691 preventing it from being popped from the regular stack again.
17692 (aarch64_override_options_internal): Add SCS compile option check.
17693 (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
17694 * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
17695 wb_pop_candidate[12], and rename wb_candidate[12] to
17696 wb_push_candidate[12].
17697 * config/aarch64/aarch64.md (scs_push): New template.
17698 (scs_pop): Likewise.
17699 * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
17700 * doc/tm.texi: Regenerate.
17701 * doc/tm.texi.in: Add hook have_shadow_call_stack.
17702 * flag-types.h (enum sanitize_code):
17703 Add SANITIZE_SHADOW_CALL_STACK.
17704 * opts.cc (parse_sanitizer_options): Add shadow-call-stack
17705 and exclude SANITIZE_SHADOW_CALL_STACK.
17706 * target.def: New hook.
17707 * toplev.cc (process_options): Add SCS compile option check.
17708 * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
17709
17710 2022-02-21 Tom de Vries <tdevries@suse.de>
17711
17712 PR target/104440
17713 * config/nvptx/nvptx.cc (workaround_uninit_method_1)
17714 (workaround_uninit_method_2, workaround_uninit_method_3)
17715 (workaround_uninit): New function.
17716 (nvptx_reorg): Use workaround_uninit.
17717 * config/nvptx/nvptx.opt (minit-regs): New option.
17718
17719 2022-02-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
17720
17721 PR rtl-optimization/104498
17722 * alias.cc (compare_base_symbol_refs): Correct distance computation
17723 when swapping x and y.
17724
17725 2022-02-21 Andrew Pinski <apinski@marvell.com>
17726
17727 PR c/104506
17728 * tree-ssa.cc (tree_ssa_useless_type_conversion):
17729 Check the inner type before calling useless_type_conversion_p.
17730
17731 2022-02-19 Tom de Vries <tdevries@suse.de>
17732
17733 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
17734 * config/nvptx/nvptx.md
17735 (define_insn "nvptx_atomic_store<mode>"): Rename to ...
17736 (define_insn "nvptx_atomic_store_sm70<mode>"): This.
17737 (define_insn "nvptx_atomic_store<mode>"): New define_insn.
17738 (define_expand "atomic_store<mode>"): Handle rename. Use
17739 nvptx_atomic_store instead of atomic_exchange.
17740
17741 2022-02-19 Tom de Vries <tdevries@suse.de>
17742
17743 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
17744 insns with atomic attribute. Assert that all handled insns are
17745 PARALLELs.
17746 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
17747 Set atomic attribute to false.
17748
17749 2022-02-19 Tom de Vries <tdevries@suse.de>
17750
17751 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
17752 type to bool.
17753 (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
17754 nvptx_warpsync, if necessary.
17755
17756 2022-02-19 Jakub Jelinek <jakub@redhat.com>
17757
17758 PR sanitizer/102656
17759 * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
17760 known to be within bounds, treat it like automatic variables.
17761 If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
17762 current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
17763 it addressable.
17764
17765 2022-02-18 Pat Haugen <pthaugen@linux.ibm.com>
17766
17767 * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
17768 (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
17769 mpower10-fusion-logical-add, mpower10-fusion-add-logical,
17770 mpower10-fusion-2add, mpower10-fusion-2store): Remove.
17771 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
17772 OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
17773 * config/rs6000/rs6000.cc (rs6000_option_override_internal,
17774 power10_sched_reorder): Likewise.
17775 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
17776 gen_addadd): Likewise
17777 * config/rs6000/fusion.md: Regenerate.
17778
17779 2022-02-18 Jakub Jelinek <jakub@redhat.com>
17780
17781 PR target/104257
17782 PR target/104598
17783 * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
17784 rather than __posix_memalign.
17785
17786 2022-02-18 Richard Biener <rguenther@suse.de>
17787
17788 PR target/104581
17789 * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
17790 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
17791 of calling ix86_avx_u128_mode_source which would eventually
17792 have returned AVX_U128_ANY in some very special case.
17793
17794 2022-02-18 Richard Biener <rguenther@suse.de>
17795
17796 PR tree-optimization/96881
17797 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
17798 CLOBBER handling.
17799 (control_parents_preserved_p): New function.
17800 (eliminate_unnecessary_stmts): Check that we preserved control
17801 parents before retaining a CLOBBER.
17802 (perform_tree_ssa_dce): Pass down aggressive flag
17803 to eliminate_unnecessary_stmts.
17804
17805 2022-02-17 Jason Merrill <jason@redhat.com>
17806
17807 * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
17808 on TYPE_MAIN_VARIANT.
17809
17810 2022-02-17 Paul A. Clarke <pc@us.ibm.com>
17811
17812 PR target/104257
17813 * config/rs6000/bmi2intrin.h: Uglify local variables.
17814 * config/rs6000/emmintrin.h: Likewise.
17815 * config/rs6000/mm_malloc.h: Likewise.
17816 * config/rs6000/mmintrin.h: Likewise.
17817 * config/rs6000/pmmintrin.h: Likewise.
17818 * config/rs6000/smmintrin.h: Likewise.
17819 * config/rs6000/tmmintrin.h: Likewise.
17820 * config/rs6000/xmmintrin.h: Likewise.
17821
17822 2022-02-17 Robin Dapp <rdapp@linux.ibm.com>
17823
17824 PR target/104335
17825 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
17826 if the expected comparison's first operand is of mode MODE_CC.
17827
17828 2022-02-17 Vladimir N. Makarov <vmakarov@redhat.com>
17829
17830 PR rtl-optimization/104447
17831 * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
17832 hard reg set by lra_no_alloc_regs.
17833
17834 2022-02-17 liuhongt <hongtao.liu@intel.com>
17835
17836 PR tree-optimization/104551
17837 PR tree-optimization/103771
17838 * match.pd (cond_expr_convert_p): Add types_match check when
17839 convert is extension.
17840 * tree-vect-patterns.cc
17841 (gimple_cond_expr_convert_p): Adjust comments.
17842 (vect_recog_cond_expr_convert_pattern): Ditto.
17843
17844 2022-02-17 Jakub Jelinek <jakub@redhat.com>
17845
17846 PR debug/104557
17847 * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
17848 if expr has VOIDmode.
17849
17850 2022-02-17 liuhongt <hongtao.liu@intel.com>
17851
17852 * config/i386/cpuid.h (bit_MPX): Removed.
17853 (bit_BNDREGS): Ditto.
17854 (bit_BNDCSR): Ditto.
17855
17856 2022-02-17 Michael Meissner <meissner@the-meissners.org>
17857
17858 PR target/99708
17859 * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
17860 __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
17861 Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
17862 is created.
17863
17864 2022-02-16 Andrew MacLeod <amacleod@redhat.com>
17865
17866 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
17867 range_compatible_p instead of direct type comparison.
17868
17869 2022-02-16 Jakub Jelinek <jakub@redhat.com>
17870
17871 PR rtl-optimization/104544
17872 * combine.cc (try_combine): When looking for insn whose links
17873 should be updated from i3 to i2, don't stop on debug insns, instead
17874 skip over them.
17875
17876 2022-02-16 Richard Sandiford <richard.sandiford@arm.com>
17877
17878 PR target/100056
17879 * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
17880 * config/aarch64/aarch64.md: Extend the PR100056 patterns
17881 to handle plus in the same way as ior, if the operands have
17882 no set bits in common.
17883
17884 2022-02-15 Andrew MacLeod <amacleod@redhat.com>
17885
17886 PR tree-optimization/104526
17887 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
17888 new routine.
17889 * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
17890 of dependency chain if there isn't one.
17891 (gori_compute::condexpr_adjust): New.
17892 * gimple-range-gori.h (class gori_compute): New prototype.
17893
17894 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
17895
17896 PR target/100874
17897 * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
17898 Declare.
17899 * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
17900 * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
17901
17902 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
17903
17904 * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
17905 (vect_scalar_ops_slice_hash): Likewise.
17906 (vect_scalar_ops_slice::op): New function.
17907 * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
17908 (vect_scalar_ops_slice_hash::hash): Likewise.
17909 (vect_scalar_ops_slice_hash::equal): Likewise.
17910 (vect_prologue_cost_for_slp): Check for duplicate vectors.
17911 * config/aarch64/aarch64.cc
17912 (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
17913 (aarch64_aligned_constant_offset_p): New function.
17914 (aarch64_stp_sequence_cost): Likewise.
17915 (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
17916 (aarch64_vector_costs::finish_cost): Likewise.
17917
17918 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
17919
17920 * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
17921 use after free.
17922
17923 2022-02-15 Richard Biener <rguenther@suse.de>
17924
17925 PR tree-optimization/104543
17926 * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
17927 come after the inner loop.
17928
17929 2022-02-15 Jakub Jelinek <jakub@redhat.com>
17930
17931 PR target/104536
17932 * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
17933 cannot instead of can%'t in diagnostics. Formatting fixes.
17934
17935 2022-02-15 Jakub Jelinek <jakub@redhat.com>
17936
17937 PR middle-end/104522
17938 * fold-const.h (native_interpret_real): Declare.
17939 * fold-const.cc (native_interpret_real): No longer static. Don't
17940 perform MODE_COMPOSITE_P verification here.
17941 (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
17942 for all modes.
17943 * gimple-fold.cc (clear_padding_type): Call native_interpret_real
17944 instead of native_interpret_expr.
17945 * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
17946 and comparison verification for all FLOAT_MODE_P modes, not just
17947 MODE_COMPOSITE_P.
17948
17949 2022-02-15 Richard Biener <rguenther@suse.de>
17950
17951 PR tree-optimization/104519
17952 * fold-const.cc (multiple_of_p): Remove never true condition.
17953 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
17954 the appropriate types for determining whether the difference
17955 of final and base is a multiple of the step.
17956
17957 2022-02-15 Jakub Jelinek <jakub@redhat.com>
17958
17959 PR debug/104517
17960 * omp-low.cc (task_cpyfns): New variable.
17961 (delete_omp_context): Don't call finalize_task_copyfn from here.
17962 (create_task_copyfn): Push task_stmt into task_cpyfns.
17963 (execute_lower_omp): Call finalize_task_copyfn here on entries from
17964 task_cpyfns vector and release the vector.
17965
17966 2022-02-14 Martin Sebor <msebor@redhat.com>
17967
17968 PR middle-end/104355
17969 * doc/invoke.texi (-Warray-bounds): Update documentation.
17970
17971 2022-02-14 Michael Meissner <meissner@the-meissners.org>
17972
17973 PR target/104253
17974 * config/rs6000/rs6000.cc (init_float128_ibm): Update the
17975 conversion functions used to convert IFmode types.
17976
17977 2022-02-14 Andrew Stubbs <ams@codesourcery.com>
17978
17979 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
17980
17981 2022-02-14 Richard Biener <rguenther@suse.de>
17982
17983 PR tree-optimization/104528
17984 * tree-ssa.h (find_released_ssa_name): Declare.
17985 * tree-ssa.cc (find_released_ssa_name): Export.
17986 * cfgloop.cc (verify_loop_structure): Look for released
17987 SSA names in loops nb_iterations.
17988 * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
17989 estimates.
17990
17991 2022-02-14 Richard Biener <rguenther@suse.de>
17992
17993 PR tree-optimization/104511
17994 * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
17995 touching DFP <-> FP conversions.
17996
17997 2022-02-14 Richard Biener <rguenther@suse.de>
17998
17999 PR middle-end/104497
18000 * gimplify.cc (gimplify_compound_lval): Make sure the
18001 base is a non-register if needed and possible.
18002
18003 2022-02-13 liuhongt <hongtao.liu@intel.com>
18004
18005 PR target/103771
18006 * match.pd (cond_expr_convert_p): New match.
18007 * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
18008 (vect_recog_cond_expr_convert_pattern): New.
18009
18010 2022-02-12 Jakub Jelinek <jakub@redhat.com>
18011
18012 PR sanitizer/104449
18013 * asan.cc: Include tree-eh.h.
18014 (handle_builtin_alloca): Handle the case when __builtin_alloca or
18015 __builtin_alloca_with_align can throw.
18016
18017 2022-02-12 Jakub Jelinek <jakub@redhat.com>
18018
18019 PR target/104502
18020 * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
18021 and AVX512VL isn't available, move operands[1] to operands[0] first.
18022
18023 2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
18024
18025 PR target/79754
18026 * config/i386/i386.cc (type_natural_mode):
18027 Skip decimal float vector modes.
18028
18029 2022-02-11 Iain Sandoe <iain@sandoe.co.uk>
18030 Vladimir Makarov <vmakarov@redhat.com>
18031
18032 PR target/104117
18033 * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
18034 Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
18035 emitting PIC code.
18036 (legitimate_lo_sum_address_p): Likewise.
18037 * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
18038 load from an invalid lo_sum address.
18039
18040 2022-02-11 Jakub Jelinek <jakub@redhat.com>
18041
18042 PR tree-optimization/104499
18043 * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
18044 of convert.
18045
18046 2022-02-11 Jakub Jelinek <jakub@redhat.com>
18047
18048 * tree.cc (build_common_builtin_nodes): Fix up formatting in
18049 __builtin_clear_padding decl creation.
18050 * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
18051 for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
18052 argument rather than in 3rd argument.
18053 (gimplify_call_expr): Likewise. Fix up comment formatting.
18054 * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
18055 2 arguments instead of 3, take for_auto_init from the value
18056 of 2nd argument.
18057
18058 2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com>
18059
18060 PR rtl-optimization/104400
18061 * lra-constraints.cc (process_alt_operands): Don't make union of
18062 this_alternative_exclude_start_hard_regs when reg class in insn
18063 alternative covers other reg classes in the same alternative.
18064
18065 2022-02-11 Jakub Jelinek <jakub@redhat.com>
18066
18067 PR middle-end/104446
18068 * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
18069 operands.
18070
18071 2022-02-11 Richard Biener <rguenther@suse.de>
18072
18073 PR middle-end/104496
18074 * internal-fn.cc (vectorized_internal_fn_supported_p):
18075 Bail out for integer mode vector types.
18076
18077 2022-02-11 Jakub Jelinek <jakub@redhat.com>
18078
18079 PR rtl-optimization/104459
18080 * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
18081 moving DEBUG_INSNs between bbs.
18082
18083 2022-02-11 liuhongt <hongtao.liu@intel.com>
18084
18085 PR tree-optimization/104479
18086 * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
18087 for the dest of uncond_op.
18088
18089 2022-02-11 Tom de Vries <tdevries@suse.de>
18090
18091 PR target/104456
18092 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
18093 insn.
18094
18095 2022-02-10 Qing Zhao <qing.zhao@oracle.com>
18096
18097 PR middle-end/100775
18098 * function.cc (gen_call_used_regs_seq): Call
18099 df_update_exit_block_uses when updating df.
18100
18101 2022-02-10 Uroš Bizjak <ubizjak@gmail.com>
18102
18103 PR target/104469
18104 * config/i386/sse.md (vec_unpacks_float_lo_v4si):
18105 Change operand 1 constraint to register_operand.
18106
18107 2022-02-10 Richard Biener <rguenther@suse.de>
18108
18109 PR tree-optimization/104373
18110 * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
18111 walk kind.
18112 * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
18113 walk kind as argument.
18114 (run_rpo_vn): Adjust.
18115 (pass_fre::execute): Likewise.
18116 * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
18117 blocks not reachable.
18118 (execute_late_warn_uninitialized): Mark all edges as
18119 executable.
18120 (execute_early_warn_uninitialized): Use VN to compute
18121 executable edges.
18122 (pass_data_early_warn_uninitialized): Enable a dump file,
18123 change dump name to warn_uninit.
18124
18125 2022-02-10 Richard Biener <rguenther@suse.de>
18126
18127 PR middle-end/104467
18128 * match.pd (vector extract simplification): Multiply the
18129 number of CTOR elements with the number of element elements.
18130
18131 2022-02-10 Richard Biener <rguenther@suse.de>
18132
18133 PR tree-optimization/104466
18134 * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
18135 for the MR_DEPENDENCE checks as intended.
18136
18137 2022-02-10 Tom de Vries <tdevries@suse.de>
18138
18139 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
18140 define_insn.
18141 (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
18142 TARGET_SM70.
18143 (define_c_enum "unspecv"): Add UNSPECV_ST.
18144
18145 2022-02-10 Tom de Vries <tdevries@suse.de>
18146
18147 * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
18148 * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
18149 (nvptx_mem_maybe_shared_p): New function.
18150 * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
18151 define_expand.
18152
18153 2022-02-10 Tom de Vries <tdevries@suse.de>
18154
18155 PR target/97005
18156 * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
18157 driver JIT bug by using sub.s16 instead of sub.u16.
18158
18159 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
18160
18161 * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
18162 floating point constants as operands 1 and/or 2.
18163
18164 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
18165
18166 PR target/104345
18167 * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
18168 (sel_false<mode>): Likewise.
18169 (define_code_iterator eqne): New code iterator for EQ and NE.
18170 (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
18171 the negation of a selp instruction.
18172 (*selp<mode>_not_<code>): New define_insn_and_split to optimize
18173 the bitwise not of a selp instruction.
18174 (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
18175
18176 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
18177
18178 * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
18179 in machine description.
18180 (logic): Move code attribute earlier in machine description.
18181 (ilogic): New code attribute, like logic but "ior" for IOR.
18182 (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
18183 (<ilogic><mode>3): New define_insn for HSDIM logic operations.
18184 (<ilogic>bi3): New define_insn for BI mode logic operations.
18185 (define_split): Lower logic operations from integer modes to
18186 BI mode predicate operations.
18187
18188 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
18189
18190 * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
18191 (one_cmplbi2): New define_insn for not.pred.
18192 (mulditi3): New define_expand for signed widening multiply.
18193 (umulditi3): New define_expand for unsigned widening multiply.
18194 (smul<mode>3_highpart): New define_insn for signed highpart mult.
18195 (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
18196 (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
18197 (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
18198 (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
18199 (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
18200 (*setcc<mode>_from_not_bi): New define_insn.
18201 (*setcc_isinf<mode>): New define_insn for testp.infinite.
18202 (isinf<mode>2): New define_expand.
18203
18204 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
18205
18206 * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
18207 (setcc<mode>_from_bi): Additionally support QImode.
18208 (extendbi<mode>2): Additionally support QImode.
18209 (zero_extendbi<mode>2): Additionally support QImode.
18210 (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
18211 iterators for signed and unsigned, binary and unary operations.
18212 (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
18213 expanders to perform QImode operations using SImode instructions.
18214 (cstoreqi4): New define_expand.
18215 (*ext_truncsi2_qi): New define_insn.
18216 (*zext_truncsi2_qi): New define_insn.
18217
18218 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
18219
18220 * config/nvptx/nvptx.md (*cmpf): New define_insn.
18221 (cstorehf4): New define_expand.
18222 (fmahf4): New define_insn.
18223 (neghf2): New define_insn.
18224 (abshf2): New define_insn.
18225
18226 2022-02-10 Gerald Pfeifer <gerald@pfeifer.com>
18227
18228 * doc/install.texi (Specific): Change the www.bitwizard.nl
18229 reference to use https.
18230
18231 2022-02-10 Marcel Vollweiler <marcel@codesourcery.com>
18232
18233 * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
18234 OMP_CLAUSE_HAS_DEVICE_ADDR
18235 and handle array sections.
18236 (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
18237 * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
18238 (lower_omp_target): Same.
18239 * tree-core.h (enum omp_clause_code): Same.
18240 * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
18241 (convert_local_omp_clauses): Same.
18242 * tree-pretty-print.cc (dump_omp_clause): Same.
18243 * tree.cc: Same.
18244
18245 2022-02-10 Eugene Rozenfeld <erozen@microsoft.com>
18246
18247 * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
18248 that will result in direct recursive calls.
18249
18250 2022-02-10 Andrew Pinski <apinski@marvell.com>
18251
18252 PR target/104474
18253 * config/aarch64/aarch64.cc
18254 (aarch64_sve_expand_vector_init_handle_trailing_constants):
18255 Use CONST0_RTX instead of const0_rtx for the non-constant elements.
18256
18257 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
18258
18259 PR target/104462
18260 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
18261 Also include OPTION_MASK_ISA2_AVX2_UNSET.
18262
18263 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
18264
18265 PR target/104458
18266 * config/i386/i386-expand.cc (ix86_split_idivmod):
18267 Force operands[2] and operands[3] into a register..
18268
18269 2022-02-09 Jeff Law <jeffreyalaw@gmail.com>
18270
18271 PR target/97040
18272 * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
18273 (*v850_fnmssf4): Renamed from fnmssf4
18274
18275 2022-02-09 Ian Lance Taylor <iant@golang.org>
18276
18277 * godump.cc (go_force_record_alignment): Really name the alignment
18278 field "_" (complete 2021-12-29 change).
18279
18280 2022-02-09 Bill Schmidt <wschmidt@linux.ibm.com>
18281
18282 * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
18283 function prototype.
18284 (VREPLACE_UN_UV4SI): Likewise.
18285 (VREPLACE_UN_V2DF): Likewise.
18286 (VREPLACE_UN_V2DI): Likewise.
18287 (VREPLACE_UN_V4SF): Likewise.
18288 (VREPLACE_UN_V4SI): Likewise.
18289 * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
18290 function prototypes.
18291 * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
18292 (vreplace_un_<mode>): New define_insn.
18293
18294 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18295
18296 * config/aarch64/iterators.md (VDCSIF): New mode iterator.
18297 (VDBL): Handle SF.
18298 (single_wx, single_type, single_dtype, dblq): New mode attributes.
18299 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
18300 from VDC to VDCSIF.
18301 (store_pair_lanes<mode>): Likewise.
18302 (*aarch64_combine_internal<mode>): Likewise.
18303 (*aarch64_combine_internal_be<mode>): Likewise.
18304 (*aarch64_combinez<mode>): Likewise.
18305 (*aarch64_combinez_be<mode>): Likewise.
18306 * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
18307 8-byte modes for ADDR_QUERY_LDP_STP_N.
18308 (aarch64_print_operand): Likewise for %y.
18309
18310 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18311
18312 * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
18313 Use aarch64_combine instead of move_lo/hi_quad. Tabify.
18314 (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
18315 (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
18316 (vec_pack_trunc_<mode>): Take general_operand elements and use
18317 aarch64_combine rather than move_lo/hi_quad to combine them.
18318 (vec_pack_trunc_df): Likewise.
18319
18320 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18321
18322 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
18323 Delete.
18324 * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
18325 to...
18326 (*aarch64_combinez<mode>): ...this.
18327 (@aarch64_combinez_be<mode>): Rename to...
18328 (*aarch64_combinez_be<mode>): ...this.
18329 (@aarch64_vec_concat<mode>): New expander.
18330 (aarch64_combine<mode>): Use it.
18331 (@aarch64_simd_combine<mode>): Delete.
18332 * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
18333 (aarch64_expand_vector_init): Use aarch64_vec_concat.
18334
18335 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18336
18337 * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
18338 New predicate.
18339 * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
18340 (*aarch64_combine_internal_be<mode>): New patterns.
18341
18342 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18343
18344 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
18345 (move_lo_quad_internal_be_<mode>): Delete.
18346 (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
18347
18348 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18349
18350 * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
18351 Declare.
18352 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
18353 aarch64_mergeable_load_pair_p instead of inline check.
18354 * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
18355 (aarch64_check_consecutive_mems): Allow the reversed parameter
18356 to be null.
18357 (aarch64_mergeable_load_pair_p): New function.
18358
18359 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18360
18361 * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
18362 element to be an aarch64_simd_nonimmediate_operand.
18363
18364 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18365
18366 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
18367 aarch64_simd_nonimmediate_operand instead of
18368 aarch64_simd_general_operand.
18369 (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
18370 general_operand.
18371 (@aarch64_combinez_be<mode>): Likewise.
18372
18373 2022-02-09 Richard Biener <rguenther@suse.de>
18374
18375 PR middle-end/104464
18376 * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
18377 throwing check to after unproblematic replacement.
18378
18379 2022-02-09 Roger Sayle <roger@nextmovesoftware.com>
18380
18381 PR tree-optimization/104420
18382 * match.pd (mult @0 real_zerop): Tweak conditions for constant
18383 folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
18384
18385 2022-02-09 Jakub Jelinek <jakub@redhat.com>
18386
18387 PR debug/104407
18388 * dwarf2out.cc (mangle_referenced_decls): New function.
18389 (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
18390 early_dwarf. Instead walk the initializer and try to mangle vars or
18391 functions referenced from it.
18392
18393 2022-02-09 Andrew MacLeod <amacleod@redhat.com>
18394
18395 PR tree-optimization/104288
18396 * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
18397 (non_null_ref::adjust_range): Move to header.
18398 (ranger_cache::range_of_def): Don't check non-null.
18399 (ranger_cache::entry_range): Don't check non-null.
18400 (ranger_cache::range_on_edge): Check for nonnull on normal edges.
18401 (ranger_cache::update_to_nonnull): New.
18402 (non_null_loadstore): New.
18403 (ranger_cache::block_apply_nonnull): New.
18404 * gimple-range-cache.h (class non_null_ref): Update prototypes.
18405 (non_null_ref::adjust_range): Move to here and inline.
18406 (class ranger_cache): Update prototypes.
18407 * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
18408 not search dominators.
18409 (path_range_query::adjust_for_non_null_uses): Ditto.
18410 * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
18411 def overrides. Do not check nonnull.
18412 (gimple_ranger::range_on_entry): Check dominators for nonnull.
18413 (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
18414 (gimple_ranger::register_side_effects): New.
18415 * gimple-range.h (gimple_ranger::register_side_effects): New.
18416 * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
18417
18418 2022-02-09 Richard Biener <rguenther@suse.de>
18419
18420 PR tree-optimization/104445
18421 PR tree-optimization/102832
18422 * optabs-query.h (can_vec_extract): New.
18423 * optabs-query.cc (can_vec_extract): Likewise.
18424 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
18425 we can extract a hi/lo part from the larger vector, rework
18426 check iteration from larger to smaller sizes.
18427
18428 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
18429
18430 PR target/35513
18431 PR target/100593
18432 * config/i386/gnu-property.cc: Include "i386-protos.h".
18433 (file_end_indicate_exec_stack_and_gnu_property): Generate
18434 a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
18435 nodirect_extern_access attribute.
18436 * config/i386/i386-options.cc
18437 (handle_nodirect_extern_access_attribute): New function.
18438 (ix86_attribute_table): Add nodirect_extern_access attribute.
18439 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
18440 bool argument.
18441 (ix86_has_no_direct_extern_access): New.
18442 * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
18443 (ix86_force_load_from_GOT_p): Add a bool argument to indicate
18444 call operand. Force non-call load from GOT for
18445 -mno-direct-extern-access or nodirect_extern_access attribute.
18446 (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
18447 for -mno-direct-extern-access or nodirect_extern_access attribute.
18448 (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
18449 for call operand.
18450 (asm_preferred_eh_data_format): Use PC-relative format for
18451 -mno-direct-extern-access to avoid copy relocation. Check
18452 ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
18453 (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
18454 true for -mno-direct-extern-access or nodirect_extern_access
18455 attribute. Don't treat protected data as extern and avoid copy
18456 relocation on common symbol with -mno-direct-extern-access or
18457 nodirect_extern_access attribute.
18458 (ix86_reloc_rw_mask): New to avoid copy relocation for
18459 -mno-direct-extern-access.
18460 (TARGET_ASM_RELOC_RW_MASK): New.
18461 * config/i386/i386.opt: Add -mdirect-extern-access.
18462 * doc/extend.texi: Document nodirect_extern_access attribute.
18463 * doc/invoke.texi: Document -m[no-]direct-extern-access.
18464
18465 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
18466
18467 PR target/104441
18468 * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
18469 (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
18470 Call ix86_avx_u128_mode_source to check mode for each component
18471 of source operand.
18472
18473 2022-02-09 liuhongt <hongtao.liu@intel.com>
18474
18475 PR target/104451
18476 * config/i386/sse.md (<insn><mode>3): lowpart_subreg
18477 operands[2] from SImode to QImode.
18478
18479 2022-02-09 Richard Biener <rguenther@suse.de>
18480
18481 PR middle-end/104450
18482 * gimple-isel.cc: Pass cfun around.
18483 (+gimple_expand_vec_cond_expr): Do not combine a throwing
18484 comparison with the select.
18485
18486 2022-02-09 Richard Biener <rguenther@suse.de>
18487
18488 PR target/104453
18489 * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
18490 folding for NULL LHS.
18491
18492 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
18493
18494 PR rtl-optimization/104198
18495 PR rtl-optimization/104153
18496 * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
18497 using it directly. Rework comparison handling and always
18498 perform a second pass.
18499
18500 2022-02-08 Jakub Jelinek <jakub@redhat.com>
18501
18502 PR target/102140
18503 * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
18504 split1 pass has finished already.
18505
18506 2022-02-08 Bill Schmidt <wschmidt@linux.ibm.com>
18507
18508 * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
18509 * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
18510 * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
18511 (vmsumcud): New define_insn.
18512
18513 2022-02-08 Tom de Vries <tdevries@suse.de>
18514
18515 * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
18516 * config/nvptx/nvptx.h (TARGET_SM70): Define.
18517
18518 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
18519
18520 * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
18521 on condition.
18522 * config/s390/s390.md: Use paradoxical subreg.
18523
18524 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
18525
18526 * combine.cc (reg_subword_p): Check for paradoxical subreg.
18527
18528 2022-02-08 Tom de Vries <tdevries@suse.de>
18529
18530 PR target/104283
18531 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
18532 and PTX_VERSION_4_2.
18533 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
18534 (default_ptx_version_option, ptx_version_to_string)
18535 (sm_version_to_string, handle_ptx_version_option): New function.
18536 (nvptx_option_override): Call handle_ptx_version_option.
18537 (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
18538 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
18539 (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
18540 * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
18541
18542 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
18543
18544 * doc/install.texi (Configuration): Document `--with-isa-spec='
18545 RISC-V option.
18546 * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
18547 option.
18548 (RISC-V Options): Document it.
18549
18550 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
18551
18552 * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
18553
18554 2022-02-08 Tom de Vries <tdevries@suse.de>
18555
18556 * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
18557
18558 2022-02-08 Tom de Vries <tdevries@suse.de>
18559
18560 PR target/104364
18561 * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
18562 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
18563 change is validated.
18564 (nvptx_mem_local_p): New function.
18565 * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
18566 (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
18567 (define_insn "atomic_compare_and_swap<mode>_1_local"): New
18568 non-atomic, non-predicable define_insn, factored out of ...
18569 (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
18570 Make predicable again.
18571 (define_expand "atomic_compare_and_swap<mode>"): Use
18572 atomic_compare_and_swap<mode>_1_local.
18573
18574 2022-02-08 liuhongt <hongtao.liu@intel.com>
18575
18576 PR rtl-optimization/104059
18577 * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
18578 for a more expensive reg-reg move.
18579
18580 2022-02-07 Tamar Christina <tamar.christina@arm.com>
18581
18582 * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
18583 vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
18584 * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
18585 (usdot_laneq, sudot_laneq): New.
18586 * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
18587 (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
18588
18589 2022-02-07 Tamar Christina <tamar.christina@arm.com>
18590
18591 * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
18592 vdot_laneq_s32, vdotq_laneq_s32): New.
18593 * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
18594 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
18595 (<sup>dot_prod<vsi2qi>): Re-order rtl.
18596 (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
18597 (neon_<sup>dot_laneq<vsi2qi>): New.
18598
18599 2022-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
18600
18601 PR target/104327
18602 * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
18603 if always_inline is set. Don't inline when tune differs without
18604 always_inline.
18605
18606 2022-02-07 Richard Biener <rguenther@suse.de>
18607
18608 PR middle-end/104402
18609 * gimple-expr.cc (is_gimple_condexpr): _Complex typed
18610 compares are not valid.
18611 * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
18612 check is_gimple_condexpr.
18613
18614 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
18615
18616 PR target/103627
18617 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
18618 hunk affecting VSX and ALTIVEC to appropriate place.
18619
18620 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
18621
18622 PR target/103627
18623 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
18624 MMA if !TARGET_VSX.
18625
18626 2022-02-06 Jakub Jelinek <jakub@redhat.com>
18627
18628 PR c++/89074
18629 PR c++/104033
18630 * fold-const.h (folding_initializer): Adjust comment.
18631 (folding_cxx_constexpr): Declare.
18632 * fold-const.cc (folding_initializer): Adjust comment.
18633 (folding_cxx_constexpr): New variable.
18634 (address_compare): Restrict the decl vs. STRING_CST
18635 or vice versa or STRING_CST vs. STRING_CST or
18636 is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
18637 Punt for FUNCTION_DECLs with non-zero offsets. If folding_initializer,
18638 assume non-aliased functions have non-zero size and have different
18639 addresses. For folding_cxx_constexpr, punt on comparisons of start
18640 of some object and end of another one, regardless whether it is a decl
18641 or string literal. Also punt for folding_cxx_constexpr on
18642 STRING_CST vs. STRING_CST comparisons if the two literals could be
18643 overlapping.
18644
18645 2022-02-05 Jakub Jelinek <jakub@redhat.com>
18646
18647 PR tree-optimization/104389
18648 * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
18649 honored.
18650
18651 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
18652
18653 * configure.ac: Fix detection for zifencei support.
18654 * configure: Regenerate.
18655
18656 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
18657
18658 PR target/104219
18659 * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
18660 (all_defaults): Add isa_spec.
18661 * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
18662
18663 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
18664
18665 * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
18666 parameters instead of arglist and nargs. Simplify accordingly. Remove
18667 unnecessary test for argument count mismatch.
18668 (resolve_vec_cmpne): Likewise.
18669 (resolve_vec_adde_sube): Likewise.
18670 (resolve_vec_addec_subec): Likewise.
18671 (altivec_resolve_overloaded_builtin): Move overload special handling
18672 after the gathering of arguments into args[] and types[] and the test
18673 for correct number of arguments. Don't perform the test for correct
18674 number of arguments for certain special cases. Call the other special
18675 cases with args and types instead of arglist and nargs.
18676
18677 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
18678
18679 PR target/100808
18680 * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
18681 3.1): Provide consistent type names. Remove unnecessary semicolons.
18682 Fix bad line breaks.
18683
18684 2022-02-04 Jakub Jelinek <jakub@redhat.com>
18685
18686 PR target/104380
18687 * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
18688 adjust mangling of __builtin*printf_chk.
18689
18690 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
18691
18692 * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
18693
18694 2022-02-04 Richard Biener <rguenther@suse.de>
18695 Bin Cheng <bin.cheng@linux.alibaba.com>
18696
18697 PR tree-optimization/100499
18698 * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
18699 to true.
18700 * fold-const.cc (multiple_of_p): Likewise. Honor it for
18701 MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
18702 switching to false for conversions.
18703 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
18704 claim the outermost expression does not wrap when calling
18705 multiple_of_p. Refactor the check done to check the
18706 original IV, avoiding a bias that might wrap.
18707
18708 2022-02-04 Richard Biener <rguenther@suse.de>
18709
18710 * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
18711 handling.
18712
18713 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
18714
18715 PR debug/104366
18716 * dwarf2out.cc (dwarf2out_finish): Empty base_types.
18717 (dwarf2out_early_finish): Likewise.
18718
18719 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
18720
18721 PR tree-optimization/104356
18722 * match.pd (X / bool_range_Y is X): Add guard.
18723 (X / X is one): Likewise.
18724 (X / abs (X) is X < 0 ? -1 : 1): Likewise.
18725 (X / -X is -1): Likewise.
18726 (1 / X -> X == 1): Likewise.
18727
18728 2022-02-04 Richard Biener <rguenther@suse.de>
18729
18730 PR tree-optimization/103641
18731 * tree-vect-patterns.cc (vect_synth_mult_by_constant):
18732 Pass the vector mode to choose_mult_variant.
18733
18734 2022-02-04 Roger Sayle <roger@nextmovesoftware.com>
18735
18736 PR rtl-optimization/101885
18737 * combine.cc (try_combine): When splitting a parallel into two
18738 sequential sets, check not only that the first doesn't clobber
18739 the second but also that the second doesn't clobber the first.
18740
18741 2022-02-04 Richard Biener <rguenther@suse.de>
18742
18743 PR middle-end/90348
18744 PR middle-end/104092
18745 * tree-core.h (clobber_kind): New enum.
18746 (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
18747 * tree.h (CLOBBER_KIND): Add.
18748 (build_clobber): Add clobber kind argument, defaulted to
18749 CLOBBER_UNDEF.
18750 * tree.cc (build_clobber): Likewise.
18751 * gimple.h (gimple_clobber_p): New overload with specified kind.
18752 * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
18753 CLOBBER_KIND.
18754 * tree-streamer-out.cc (streamer_write_tree_bitfields):
18755 Likewise.
18756 * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
18757 * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
18758 with CLOBBER_EOL.
18759 (gimplify_target_expr): Likewise.
18760 * tree-inline.cc (expand_call_inline): Likewise.
18761 * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
18762 * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
18763 CLOBBER_EOL clobbers as ending lifetime of storage.
18764
18765 2022-02-04 Martin Sebor <msebor@redhat.com>
18766
18767 * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
18768 cleanup.
18769
18770 2022-02-03 Martin Sebor <msebor@redhat.com>
18771
18772 PR middle-end/104260
18773 * passes.def (pass_warn_access): Adjust pass placement.
18774
18775 2022-02-03 Uroš Bizjak <ubizjak@gmail.com>
18776
18777 PR target/104362
18778 * config/i386/i386.cc (find_drap_reg): For 32bit targets
18779 return DI_REG if function uses __builtin_eh_return.
18780
18781 2022-02-03 Martin Sebor <msebor@redhat.com>
18782
18783 * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
18784 (pass_wrestrict::m_ptr_qry): New member.
18785 (wrestrict_walk): Rename...
18786 (pass_wrestrict::check_block): ...to this.
18787 (pass_wrestrict::execute): Set up and tear down pointer_query and
18788 ranger.
18789 (builtin_memref::builtin_memref): Change ctor argument. Simplify.
18790 (builtin_access::builtin_access): Same.
18791 (builtin_access::m_ptr_qry): New member.
18792 (check_call): Rename...
18793 (pass_wrestrict::check_call): ...to this.
18794 (check_bounds_or_overlap): Change argument.
18795 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
18796
18797 2022-02-03 Martin Sebor <msebor@redhat.com>
18798
18799 * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
18800 Define ctor.
18801 (array_bounds_checker::get_value_range): Use new member.
18802 (array_bounds_checker::check_mem_ref): Same.
18803 * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
18804 Outline ctor.
18805 (array_bounds_checker::m_ptr_query): New member.
18806
18807 2022-02-03 Martin Sebor <msebor@redhat.com>
18808
18809 * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
18810 pointer_query cache.
18811 * pointer-query.cc (pointer_query::pointer_query): Remove cache
18812 argument. Zero-initialize new cache member.
18813 (pointer_query::get_ref): Replace cache pointer with direct access.
18814 (pointer_query::put_ref): Same.
18815 (pointer_query::flush_cache): Same.
18816 (pointer_query::dump): Same.
18817 * pointer-query.h (class pointer_query): Remove cache argument from
18818 ctor. Change cache pointer to cache subobject member.
18819 * tree-ssa-strlen.cc: Remove pointer_query cache.
18820
18821 2022-02-03 Martin Sebor <msebor@redhat.com>
18822
18823 PR tree-optimization/104119
18824 * gimple-ssa-sprintf.cc (struct directive): Change argument type.
18825 (format_none): Same.
18826 (format_percent): Same.
18827 (format_integer): Same.
18828 (format_floating): Same.
18829 (get_string_length): Same.
18830 (format_character): Same.
18831 (format_string): Same.
18832 (format_plain): Same.
18833 (format_directive): Same.
18834 (compute_format_length): Same.
18835 (handle_printf_call): Same.
18836 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same. Call
18837 get_maxbound.
18838 (get_range_strlen_phi): Same.
18839 (get_maxbound): New function.
18840 (strlen_pass::get_len_or_size): Adjust to parameter change.
18841 * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
18842
18843 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
18844
18845 PR target/103686
18846 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
18847 test for !rs6000_fold_gimple.
18848 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
18849 * config/rs6000/rs6000.opt (mfold-gimple): Remove.
18850
18851 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
18852
18853 PR target/95082
18854 * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
18855 endianness for vclzlsbb and vctzlsbb.
18856 * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
18857 default pattern and indicate a different pattern will be used for
18858 big endian.
18859 (VCLZLSBB_V4SI): Likewise.
18860 (VCLZLSBB_V8HI): Likewise.
18861 (VCTZLSBB_V16QI): Likewise.
18862 (VCTZLSBB_V4SI): Likewise.
18863 (VCTZLSBB_V8HI): Likewise.
18864
18865 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
18866
18867 * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
18868 * config/rs6000/rs6000-builtin.cc: New file, containing code moved
18869 from other files.
18870 * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
18871 rs6000-builtin.cc.
18872 (cpu_supports_info): Likewise.
18873 (rs6000_type_string): Likewise.
18874 (altivec_expand_predicate_builtin): Likewise.
18875 (rs6000_htm_spr_icode): Likewise.
18876 (altivec_expand_vec_init_builtin): Likewise.
18877 (get_element_number): Likewise.
18878 (altivec_expand_vec_set_builtin): Likewise.
18879 (altivec_expand_vec_ext_builtin): Likewise.
18880 (rs6000_invalid_builtin): Likewise.
18881 (rs6000_fold_builtin): Likewise.
18882 (fold_build_vec_cmp): Likewise.
18883 (fold_compare_helper): Likewise.
18884 (map_to_integral_tree_type): Likewise.
18885 (fold_mergehl_helper): Likewise.
18886 (fold_mergeeo_helper): Likewise.
18887 (rs6000_builtin_valid_without_lhs): Likewise.
18888 (rs6000_builtin_is_supported): Likewise.
18889 (rs6000_gimple_fold_mma_builtin): Likewise.
18890 (rs6000_gimple_fold_builtin): Likewise.
18891 (rs6000_expand_ldst_mask): Likewise.
18892 (cpu_expand_builtin): Likewise.
18893 (elemrev_icode): Likewise.
18894 (ldv_expand_builtin): Likewise.
18895 (lxvrse_expand_builtin): Likewise.
18896 (lxvrze_expand_builtin): Likewise.
18897 (stv_expand_builtin): Likewise.
18898 (mma_expand_builtin): Likewise.
18899 (htm_spr_num): Likewise.
18900 (htm_expand_builtin): Likewise.
18901 (rs6000_expand_builtin): Likewise.
18902 (rs6000_vector_type): Likewise.
18903 (rs6000_init_builtins): Likewise. Remove initialization of
18904 builtin_mode_to_type entries.
18905 (rs6000_builtin_decl): Move to rs6000-builtin.cc.
18906 * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
18907 external declaration.
18908 (rs6000_builtin_md_vectorized_function): Likewise.
18909 (rs6000_builtin_reciprocal): Likewise.
18910 (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
18911 (rs6000_builtin_types): Likewise.
18912 (builtin_mode_to_type): Remove.
18913 (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc. Remove
18914 static qualifier.
18915 (rs6000_builtin_md_vectorized_function): Likewise.
18916 (rs6000_builtin_reciprocal): Likewise.
18917 * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
18918 * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
18919
18920 2022-02-03 Richard Biener <rguenther@suse.de>
18921
18922 PR debug/104337
18923 * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
18924 together via DECL_ABSTRACT_ORIGIN.
18925
18926 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
18927
18928 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
18929 message for RES_BITS case.
18930
18931 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
18932
18933 * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
18934
18935 2022-02-03 Jakub Jelinek <jakub@redhat.com>
18936
18937 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
18938 mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
18939
18940 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
18941
18942 * cfganal.cc (verify_marked_backedges): New.
18943 * cfganal.h (verify_marked_backedges): New.
18944 * gimple-range-path.cc (path_range_query::path_range_query):
18945 Verify freshness of back edges.
18946 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
18947 mark_dfs_back_edges.
18948 * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
18949 path_range_query construction after backedges have been
18950 updated.
18951
18952 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
18953
18954 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
18955 VALL to VALL_F16.
18956
18957 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
18958
18959 * config/aarch64/iterators.md (VALL_F16MOV): Delete.
18960 * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
18961 of VALL_F16MOV.
18962
18963 2022-02-03 Martin Liska <mliska@suse.cz>
18964
18965 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
18966 Change subject and object in the error message.
18967 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
18968 Likewise.
18969
18970 2022-02-03 Martin Liska <mliska@suse.cz>
18971
18972 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
18973 Use the error message for i386 target.
18974
18975 2022-02-03 Jakub Jelinek <jakub@redhat.com>
18976
18977 PR tree-optimization/104334
18978 * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
18979 and rh_range type to widest_int and subtract in widest_int. Remove
18980 ov_rh, ov_lh and sign vars, always perform comparisons as signed
18981 and use >, < and == operators for it.
18982
18983 2022-02-03 Martin Sebor <msebor@redhat.com>
18984
18985 * common.opt (-Wuse-after-free): Correct typos.
18986
18987 2022-02-02 David Malcolm <dmalcolm@redhat.com>
18988
18989 PR analyzer/104270
18990 * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
18991 -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
18992 -ftrivial-auto-var-init= doesn't suppress warnings.
18993
18994 2022-02-02 Martin Liska <mliska@suse.cz>
18995
18996 * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
18997
18998 2022-02-02 Bernd Kuhls <bernd.kuhls@t-online.de>
18999
19000 PR target/94372
19001 * config/or1k/linux.h (CPP_SPEC): Define.
19002
19003 2022-02-02 Tamar Christina <tamar.christina@arm.com>
19004
19005 PR tree-optimization/102819
19006 PR tree-optimization/103169
19007 * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
19008 canonical order.
19009
19010 2022-02-02 Tamar Christina <tamar.christina@arm.com>
19011
19012 PR tree-optimization/102819
19013 PR tree-optimization/103169
19014 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
19015 canonical order.
19016 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
19017
19018 2022-02-02 Tamar Christina <tamar.christina@arm.com>
19019
19020 PR tree-optimization/102819
19021 PR tree-optimization/103169
19022 * doc/md.texi: Update docs for cfms, cfma.
19023 * tree-data-ref.h (same_data_refs): Accept optional offset.
19024 * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
19025 patterns.
19026 (vect_normalize_conj_loc): Remove.
19027 (is_eq_or_top): Change to take two nodes.
19028 (enum _conj_status, compatible_complex_nodes_p,
19029 vect_validate_multiplication): New.
19030 (class complex_add_pattern, complex_add_pattern::matches,
19031 complex_add_pattern::recognize, class complex_mul_pattern,
19032 complex_mul_pattern::recognize, class complex_fms_pattern,
19033 complex_fms_pattern::recognize, class complex_operations_pattern,
19034 complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
19035 new cache.
19036 (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
19037 cache and use new validation code.
19038 * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
19039 vect_analyze_slp): Pass along cache.
19040 (compatible_calls_p): Expose.
19041 * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
19042 slp_compat_nodes_map_t): New.
19043 (class vect_pattern): Update signatures include new cache.
19044
19045 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
19046
19047 * config/cris/cris.cc (cris_preferred_reload_class): Reject
19048 "eliminated" registers and small-enough constants unless
19049 reloaded into a class that is a subset of GENERAL_REGS.
19050 * config/cris/cris.md (attribute "cpu_variant"): New.
19051 (attribute "enabled"): Conditionalize on a matching attribute
19052 cpu_variant, if specified.
19053 ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
19054 memory, add cpu-variant-enabled variants for "r" alternatives on
19055 the far side of the "x" alternatives, preferring the "x" ones
19056 only for variants where MOF is present (in addition to SRP).
19057
19058 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
19059
19060 * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
19061 extra cost for ALL_REGS.
19062
19063 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
19064
19065 * config/cris/constraints.md (define_register_constraint "b"): Now
19066 GENERAL_REGS.
19067 * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
19068 * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
19069 (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
19070 and SPEC_GENNONACR_REGS.
19071 * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
19072 ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
19073
19074 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
19075
19076 * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
19077 Conditionalize on (sub-)register operands or operand 1 being 0.
19078
19079 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
19080
19081 * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
19082 (MUL_BUG_ASM_DEFAULT): New macro.
19083 (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
19084 * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
19085 accordingly.
19086
19087 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
19088
19089 * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
19090 to 10 for AutoFDO.
19091
19092 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
19093
19094 * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
19095
19096 2022-02-01 Andrew Pinski <apinski@marvell.com>
19097
19098 * doc/install.texi:
19099
19100 2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com>
19101
19102 * config/s390/s390.cc (s390_code_end): Do not switch back to
19103 code section.
19104
19105 2022-02-01 Jakub Jelinek <jakub@redhat.com>
19106
19107 PR target/104323
19108 * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
19109 rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
19110 * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
19111 GTY((user)) for struct bifdata and struct ovlddata. Instead add
19112 GTY((skip(""))) to members with pointer and enum types that don't need
19113 to be tracked. Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
19114 declarations. Don't emit gt_ggc_mx and gt_pch_nx declarations.
19115 (write_extern_fntype, write_fntype): Remove.
19116 (write_fntype_init): Emit the fntype vars as automatic vars instead
19117 of file scope ones.
19118 (write_header_file): Don't iterate with write_extern_fntype.
19119 (write_init_file): Don't iterate with write_fntype. Don't emit
19120 gt_ggc_mx and gt_pch_nx definitions.
19121
19122 2022-02-01 Jason Merrill <jason@redhat.com>
19123
19124 * tree.h (struct tree_vec_map_cache_hasher): Move from...
19125 * tree.cc (struct tree_vec_map_cache_hasher): ...here.
19126
19127 2022-02-01 Tom de Vries <tdevries@suse.de>
19128
19129 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
19130 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
19131 UNSPECV_UNIFORM_WARP_CHECK.
19132 (define_insn "nvptx_uniform_warp_check"): New define_insn.
19133
19134 2022-02-01 Tom de Vries <tdevries@suse.de>
19135
19136 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
19137 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
19138 UNSPECV_WARPSYNC.
19139 (define_insn "nvptx_warpsync"): New define_insn.
19140
19141 2022-02-01 Tom de Vries <tdevries@suse.de>
19142
19143 * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
19144
19145 2022-02-01 Tom de Vries <tdevries@suse.de>
19146
19147 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
19148 * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
19149 * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
19150 insn for TARGET_PTX_6_0.
19151
19152 2022-02-01 Tom de Vries <tdevries@suse.de>
19153
19154 PR target/100428
19155 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
19156 insn.
19157
19158 2022-02-01 Tom de Vries <tdevries@suse.de>
19159
19160 * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
19161 (define_insn "atomic_exchange<mode>")
19162 (define_insn "atomic_fetch_add<mode>")
19163 (define_insn "atomic_fetch_addsf")
19164 (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
19165 if memory operands is frame-relative.
19166
19167 2022-02-01 Tom de Vries <tdevries@suse.de>
19168
19169 * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
19170 NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
19171 (VOID): New macro.
19172 (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
19173 (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
19174 NVPTX_BUILTIN_MEMBAR_CTA.
19175 (nvptx_lockfull_update): Add level parameter. Emit barriers.
19176 (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
19177 nvptx_lockfull_update.
19178 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
19179 UNSPECV_MEMBAR_GL.
19180 (define_expand "nvptx_membar_gl"): New expand.
19181 (define_insn "*nvptx_membar_gl"): New insn.
19182
19183 2022-02-01 Martin Liska <mliska@suse.cz>
19184
19185 * doc/install.texi: Remove option for GCC < 4.8.
19186
19187 2022-02-01 Jakub Jelinek <jakub@redhat.com>
19188
19189 PR middle-end/104307
19190 * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
19191 stmts to uses vector, just set vec_cond_expr_only to false for
19192 non-VEC_COND_EXPRs instead of pushing them into uses. Treat
19193 VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
19194 like non-VEC_COND_EXPRs.
19195
19196 2022-02-01 Bill Schmidt <wschmidt@linux.ibm.com>
19197
19198 * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
19199 (VEC_BLENDV): Likewise.
19200 (VEC_BPERM): Likewise.
19201 (VEC_CFUGE): Likewise.
19202 (VEC_CIPHER_BE): Likewise.
19203 (VEC_CIPHERLAST_BE): Likewise.
19204 (VEC_CLRL): Likewise.
19205 (VEC_CLRR): Likewise.
19206 (VEC_CMPNEZ): Likewise.
19207 (VEC_CNTLZ): Likewise.
19208 (VEC_CNTLZM): Likewise.
19209 (VEC_CNTTZM): Likewise.
19210 (VEC_CNTLZ_LSBB): Likewise.
19211 (VEC_CNTM): Likewise.
19212 (VEC_CNTTZ): Likewise.
19213 (VEC_CNTTZ_LSBB): Likewise.
19214 (VEC_CONVERT_4F32_8F16): Likewise.
19215 (VEC_DIV): Likewise.
19216 (VEC_DIVE): Likewise.
19217 (VEC_EQV): Likewise.
19218 (VEC_EXPANDM): Likewise.
19219 (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
19220 (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
19221 (VEC_EXTRACTH): Likewise.
19222 (VEC_EXTRACTL): Likewise.
19223 (VEC_EXTRACTM): Likewise.
19224 (VEC_EXTRACT4B): Likewise.
19225 (VEC_EXTULX): Likewise.
19226 (VEC_EXTURX): Likewise.
19227 (VEC_FIRSTMATCHINDEX): Likewise.
19228 (VEC_FIRSTMACHOREOSINDEX): Likewise.
19229 (VEC_FIRSTMISMATCHINDEX): Likewise.
19230 (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
19231 (VEC_GB): Likewise.
19232 (VEC_GENBM): Likewise.
19233 (VEC_GENHM): Likewise.
19234 (VEC_GENWM): Likewise.
19235 (VEC_GENDM): Likewise.
19236 (VEC_GENQM): Likewise.
19237 (VEC_GENPCVM): Likewise.
19238 (VEC_GNB): Likewise.
19239 (VEC_INSERTH): Likewise.
19240 (VEC_INSERTL): Likewise.
19241 (VEC_INSERT4B): Likewise.
19242 (VEC_LXVL): Likewise.
19243 (VEC_MERGEE): Likewise.
19244 (VEC_MERGEO): Likewise.
19245 (VEC_MOD): Likewise.
19246 (VEC_MSUB): Likewise.
19247 (VEC_MULH): Likewise.
19248 (VEC_NAND): Likewise.
19249 (VEC_NCIPHER_BE): Likewise.
19250 (VEC_NCIPHERLAST_BE): Likewise.
19251 (VEC_NEARBYINT): Likewise.
19252 (VEC_NMADD): Likewise.
19253 (VEC_ORC): Likewise.
19254 (VEC_PDEP): Likewise.
19255 (VEC_PERMX): Likewise.
19256 (VEC_PEXT): Likewise.
19257 (VEC_POPCNT): Likewise.
19258 (VEC_PARITY_LSBB): Likewise.
19259 (VEC_REPLACE_ELT): Likewise.
19260 (VEC_REPLACE_UN): Likewise.
19261 (VEC_REVB): Likewise.
19262 (VEC_RINT): Likewise.
19263 (VEC_RLMI): Likewise.
19264 (VEC_RLNM): Likewise.
19265 (VEC_SBOX_BE): Likewise.
19266 (VEC_SIGNEXTI): Likewise.
19267 (VEC_SIGNEXTLL): Likewise.
19268 (VEC_SIGNEXTQ): Likewise.
19269 (VEC_SLDB): Likewise.
19270 (VEC_SLV): Likewise.
19271 (VEC_SPLATI): Likewise.
19272 (VEC_SPLATID): Likewise.
19273 (VEC_SPLATI_INS): Likewise.
19274 (VEC_SQRT): Likewise.
19275 (VEC_SRDB): Likewise.
19276 (VEC_SRV): Likewise.
19277 (VEC_STRIL): Likewise.
19278 (VEC_STRIL_P): Likewise.
19279 (VEC_STRIR): Likewise.
19280 (VEC_STRIR_P): Likewise.
19281 (VEC_STXVL): Likewise.
19282 (VEC_TERNARYLOGIC): Likewise.
19283 (VEC_TEST_LSBB_ALL_ONES): Likewise.
19284 (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
19285 (VEC_VEE): Likewise.
19286 (VEC_VES): Likewise.
19287 (VEC_VIE): Likewise.
19288 (VEC_VPRTYB): Likewise.
19289 (VEC_VSCEEQ): Likewise.
19290 (VEC_VSCEGT): Likewise.
19291 (VEC_VSCELT): Likewise.
19292 (VEC_VSCEUO): Likewise.
19293 (VEC_VSEE): Likewise.
19294 (VEC_VSES): Likewise.
19295 (VEC_VSIE): Likewise.
19296 (VEC_VSTDC): Likewise.
19297 (VEC_VSTDCN): Likewise.
19298 (VEC_VTDC): Likewise.
19299 (VEC_XL): Likewise.
19300 (VEC_XL_BE): Likewise.
19301 (VEC_XL_LEN_R): Likewise.
19302 (VEC_XL_SEXT): Likewise.
19303 (VEC_XL_ZEXT): Likewise.
19304 (VEC_XST): Likewise.
19305 (VEC_XST_BE): Likewise.
19306 (VEC_XST_LEN_R): Likewise.
19307 (VEC_XST_TRUNC): Likewise.
19308 (VEC_XXPERMDI): Likewise.
19309 (VEC_XXSLDWI): Likewise.
19310 (VEC_TSTSFI_EQ_DD): Likewise.
19311 (VEC_TSTSFI_EQ_TD): Likewise.
19312 (VEC_TSTSFI_GT_DD): Likewise.
19313 (VEC_TSTSFI_GT_TD): Likewise.
19314 (VEC_TSTSFI_LT_DD): Likewise.
19315 (VEC_TSTSFI_LT_TD): Likewise.
19316 (VEC_TSTSFI_OV_DD): Likewise.
19317 (VEC_TSTSFI_OV_TD): Likewise.
19318 (VEC_VADDCUQ): Likewise.
19319 (VEC_VADDECUQ): Likewise.
19320 (VEC_VADDEUQM): Likewise.
19321 (VEC_VADDUDM): Likewise.
19322 (VEC_VADDUQM): Likewise.
19323 (VEC_VBPERMQ): Likewise.
19324 (VEC_VCLZB): Likewise.
19325 (VEC_VCLZD): Likewise.
19326 (VEC_VCLZH): Likewise.
19327 (VEC_VCLZW): Likewise.
19328 (VEC_VCTZB): Likewise.
19329 (VEC_VCTZD): Likewise.
19330 (VEC_VCTZH): Likewise.
19331 (VEC_VCTZW): Likewise.
19332 (VEC_VEEDP): Likewise.
19333 (VEC_VEESP): Likewise.
19334 (VEC_VESDP): Likewise.
19335 (VEC_VESSP): Likewise.
19336 (VEC_VIEDP): Likewise.
19337 (VEC_VIESP): Likewise.
19338 (VEC_VPKSDSS): Likewise.
19339 (VEC_VPKSDUS): Likewise.
19340 (VEC_VPKUDUM): Likewise.
19341 (VEC_VPKUDUS): Likewise.
19342 (VEC_VPOPCNT): Likewise.
19343 (VEC_VPOPCNTB): Likewise.
19344 (VEC_VPOPCNTD): Likewise.
19345 (VEC_VPOPCNTH): Likewise.
19346 (VEC_VPOPCNTW): Likewise.
19347 (VEC_VPRTYBD): Likewise.
19348 (VEC_VPRTYBQ): Likewise.
19349 (VEC_VPRTYBW): Likewise.
19350 (VEC_VRLD): Likewise.
19351 (VEC_VSLD): Likewise.
19352 (VEC_VSRAD): Likewise.
19353 (VEC_VSRD): Likewise.
19354 (VEC_VSTDCDP): Likewise.
19355 (VEC_VSTDCNDP): Likewise.
19356 (VEC_VSTDCNQP): Likewise.
19357 (VEC_VSTDCNSP): Likewise.
19358 (VEC_VSTDCQP): Likewise.
19359 (VEC_VSTDCSP): Likewise.
19360 (VEC_VSUBECUQ): Likewise.
19361 (VEC_VSUBEUQM): Likewise.
19362 (VEC_VSUBUDM): Likewise.
19363 (VEC_VSUBUQM): Likewise.
19364 (VEC_VTDCDP): Likewise.
19365 (VEC_VTDCSP): Likewise.
19366 (VEC_VUPKHSW): Likewise.
19367 (VEC_VUPKLSW): Likewise.
19368
19369 2022-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
19370
19371 PR rtl-optimization/101260
19372 * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
19373 copy_regno.
19374
19375 2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang>
19376
19377 PR middle-end/95115
19378 * fold-const.cc (const_binop): Do not fold NaN result from
19379 non-NaN operands.
19380
19381 2022-02-01 Tom de Vries <tdevries@suse.de>
19382
19383 * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
19384 -ftree-loop-distribute-patterns.
19385 (loop_distribution::execute): Don't call transform_reduction_loop for
19386 -fno-tree-loop-distribute-patterns.
19387
19388 2022-01-31 Andrew Pinski <apinski@marvell.com>
19389
19390 * fold-const.h (operand_compare::operand_equal_p):
19391 Fix comment about OEP_* flags.
19392
19393 2022-01-31 Jakub Jelinek <jakub@redhat.com>
19394
19395 PR target/104298
19396 * config/rs6000/aix.h (OPTION_GLIBC): Remove.
19397 * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
19398 * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
19399 if not already defined.
19400
19401 2022-01-31 Martin Sebor <msebor@redhat.com>
19402
19403 PR middle-end/104232
19404 * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
19405 Handle PHIs. Add a synonymous overload.
19406 (pass_waccess::check_pointer_uses): Call pointers_related_p.
19407
19408 2022-01-31 Richard Biener <rguenther@suse.de>
19409
19410 PR tree-optimization/100499
19411 * fold-const.cc (multiple_of_p): Pass the correct type of
19412 the expression to the recursive invocation of multiple_of_p
19413 for conversions and use CASE_CONVERT.
19414
19415 2022-01-31 Eric Botcazou <ebotcazou@adacore.com>
19416
19417 PR target/104189
19418 * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
19419
19420 2022-01-31 Richard Biener <rguenther@suse.de>
19421
19422 PR tree-optimization/100499
19423 * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
19424 on poly-ints instead of multiple_of_p.
19425 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
19426 (non_rewritable_mem_ref_base): Likewise.
19427 (non_rewritable_lvalue_p): Likewise.
19428 (execute_update_addresses_taken): Likewise.
19429
19430 2022-01-29 Jakub Jelinek <jakub@redhat.com>
19431 Andrew Pinski <apinski@marvell.com>
19432
19433 PR tree-optimization/104279
19434 PR tree-optimization/104280
19435 PR tree-optimization/104281
19436 * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
19437 boolean_type_node and convert to type. Formatting fixes.
19438
19439 2022-01-28 Yoshinori Sato <yo-satoh@sios.com>
19440
19441 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
19442
19443 2022-01-28 Navid Rahimi <navidrahimi@microsoft.com>
19444
19445 PR tree-optimization/103514
19446 * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
19447 (a & b) == (a ^ b) -> !(a | b): New optimization.
19448
19449 2022-01-28 Marek Polacek <polacek@redhat.com>
19450
19451 * doc/invoke.texi: Update -Wbidi-chars documentation.
19452
19453 2022-01-28 Iain Sandoe <iain@sandoe.co.uk>
19454
19455 * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
19456
19457 2022-01-28 Zhao Wei Liew <zhaoweiliew@gmail.com>
19458
19459 PR tree-optimization/95424
19460 * match.pd: Simplify 1 / X where X is an integer.
19461
19462 2022-01-28 Jakub Jelinek <jakub@redhat.com>
19463
19464 PR tree-optimization/104263
19465 * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
19466 cfun->can_throw_non_call_exceptions && cfun->eh test whether
19467 last non-debug stmt in the bb is store_valid_for_store_merging_p
19468 rather than last stmt.
19469
19470 2022-01-28 Martin Liska <mliska@suse.cz>
19471
19472 * diagnostic.cc (diagnostic_action_after_output): Remove extra
19473 newline.
19474
19475 2022-01-28 Martin Liska <mliska@suse.cz>
19476
19477 * config/rs6000/host-darwin.cc (segv_crash_handler):
19478 Do not use leading capital letter.
19479 (segv_handler): Likewise.
19480 * ipa-sra.cc (verify_splitting_accesses): Likewise.
19481 * varasm.cc (get_section): Likewise.
19482
19483 2022-01-28 Richard Biener <rguenther@suse.de>
19484
19485 PR tree-optimization/104267
19486 * tree-vect-stmts.cc (vectorizable_call): Properly use the
19487 per-argument determined vector type for externals and
19488 invariants.
19489
19490 2022-01-28 Richard Biener <rguenther@suse.de>
19491
19492 PR tree-optimization/104263
19493 * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
19494 Purge edges also when !cfun->has_nonlocal_label
19495 and !cfun->calls_setjmp.
19496
19497 2022-01-28 Maciej W. Rozycki <macro@embecosm.com>
19498
19499 * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
19500 attributes.
19501
19502 2022-01-28 Jakub Jelinek <jakub@redhat.com>
19503
19504 PR lto/104237
19505 * cfgrtl.cc (loc_equal): New function.
19506 (unique_locus_on_edge_between_p): Use it.
19507
19508 2022-01-28 Richard Biener <rguenther@suse.de>
19509
19510 * cfganal.h (mark_dfs_back_edges): Provide API with struct
19511 function argument.
19512 * cfganal.cc (mark_dfs_back_edges): Take a struct function
19513 to work on, add a wrapper passing cfun.
19514 * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
19515 uses with fun which is already passed.
19516 (draw_cfg_edges): Likewise.
19517 (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
19518 for fun != cfun.
19519
19520 2022-01-27 Patrick Palka <ppalka@redhat.com>
19521
19522 PR c++/99895
19523 * tree.cc (build_call_vec): Add const to second parameter.
19524 * tree.h (build_call_vec): Likewise.
19525
19526 2022-01-27 Martin Liska <mliska@suse.cz>
19527
19528 PR web/104254
19529 * diagnostic.cc (diagnostic_initialize):
19530 Initialize report_bug flag.
19531 (diagnostic_action_after_output):
19532 Explain that -freport-bug option can be used for pre-processed
19533 file creation. Make the message shorter.
19534 (error_recursion): Rename Internal to internal.
19535 * diagnostic.h (struct diagnostic_context): New field.
19536 * opts.cc (common_handle_option): Init the field here.
19537
19538 2022-01-27 Kewen Lin <linkw@linux.ibm.com>
19539
19540 PR target/103702
19541 * config/rs6000/rs6000.cc
19542 (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
19543 assertion with early return.
19544
19545 2022-01-27 Chung-Lin Tang <cltang@codesourcery.com>
19546
19547 PR middle-end/103642
19548 * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
19549 for non-pointer or non-reference-to-pointer cases.
19550
19551 2022-01-27 Jakub Jelinek <jakub@redhat.com>
19552
19553 PR tree-optimization/104196
19554 * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
19555 * gimple-fold.cc (rewrite_to_defined_overflow): Likewise. If true,
19556 return NULL and emit needed stmts before and after stmt.
19557 * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
19558 pick as operand_entry that will hold the merged test the one feeding
19559 earliest condition, ensure that by swapping range->idx with some
19560 other range's idx if needed. If seq is non-NULL, don't actually swap
19561 it but instead rewrite stmts with undefined overflow in between
19562 the two locations.
19563 (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
19564 corresponding condition even if they have non-NULL ops[]->op.
19565 Formatting fix.
19566
19567 2022-01-26 Jakub Jelinek <jakub@redhat.com>
19568
19569 PR target/104239
19570 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
19571 asm.
19572 * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
19573 before for loop instead of for init clause.
19574 * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
19575
19576 2022-01-26 Jakub Jelinek <jakub@redhat.com>
19577
19578 PR target/104239
19579 * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
19580 _X86INTRIN_H_INCLUDED and adjust #error wording.
19581 * config/rs6000/bmi2intrin.h: Likewise.
19582
19583 2022-01-26 Jakub Jelinek <jakub@redhat.com>
19584
19585 PR debug/104194
19586 * dwarf2out.cc (long_double_as_float128): New function.
19587 (modified_type_die): For powerpc64le IEEE 754 quad long double
19588 and complex long double emit those as DW_TAG_typedef to
19589 _Float128 or complex _Float128 base type.
19590
19591 2022-01-26 Marek Polacek <polacek@redhat.com>
19592
19593 PR target/104213
19594 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
19595 warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
19596
19597 2022-01-26 Martin Liska <mliska@suse.cz>
19598
19599 * ipa-modref-tree.cc (modref_access_node::update):
19600 Remove "--param param=foo" with "--param foo".
19601 (modref_access_node::insert): Likewise.
19602 (modref_access_node::insert_kill): Likewise.
19603 * ipa-modref-tree.h (struct modref_ref_node): Likewise.
19604 (struct modref_base_node): Likewise.
19605 (struct modref_tree): Likewise.
19606
19607 2022-01-26 Raoni Fassina Firmino <raoni@linux.ibm.com>
19608
19609 PR target/94193
19610 * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
19611 predicate check.
19612
19613 2022-01-25 Martin Sebor <msebor@redhat.com>
19614
19615 PR tree-optimization/104203
19616 * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
19617 TV_WARN_ACCESS.
19618 * pointer-query.cc (access_ref::merge_ref): Change return type.
19619 Convert failure to a conservative success.
19620 (access_ref::get_ref): Adjust to the change above. Short-circuit
19621 PHI evaluation after first failure turned into conservative success.
19622 * pointer-query.h (access_ref::merge_ref): Change return type.
19623 * timevar.def (TV_WARN_ACCESS): New timer variable.
19624
19625 2022-01-25 David Edelsohn <dje.gcc@gmail.com>
19626
19627 * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
19628
19629 2022-01-25 Richard Biener <rguenther@suse.de>
19630
19631 PR tree-optimization/104214
19632 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
19633 stronger guarantees for relational pointer compares when
19634 rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
19635 BASE0 + STEP0 - STEP1 cmp BASE1.
19636
19637 2022-01-25 Jakub Jelinek <jakub@redhat.com>
19638
19639 PR target/104172
19640 * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
19641 declare.
19642 * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
19643 ieee128_mangling_gcc_8_1): Remove.
19644 (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
19645 (rs6000_mangle_type): Return "u9__ieee128" instead of
19646 ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
19647 (rs6000_globalize_decl_name): Remove.
19648 * config/rs6000/rs6000-call.cc (init_cumulative_args,
19649 rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
19650
19651 2022-01-24 Martin Sebor <msebor@redhat.com>
19652
19653 * pointer-query.cc (pointer_query::dump): Remove duplicate
19654 block.
19655
19656 2022-01-24 Marek Polacek <polacek@redhat.com>
19657
19658 PR preprocessor/104030
19659 * doc/invoke.texi: Update documentation for -Wbidi-chars.
19660
19661 2022-01-24 Raoni Fassina Firmino <raoni@linux.ibm.com>
19662
19663 PR target/94193
19664 * builtins.cc (expand_builtin_fegetround): New function.
19665 (expand_builtin_feclear_feraise_except): New function.
19666 (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
19667 BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
19668 * config/rs6000/rs6000.md (fegetroundsi): New pattern.
19669 (feclearexceptsi): New Pattern.
19670 (feraiseexceptsi): New Pattern.
19671 * doc/extend.texi: Add a new introductory paragraph about the
19672 new builtins.
19673 * doc/md.texi: (fegetround@var{m}): Document new optab.
19674 (feclearexcept@var{m}): Document new optab.
19675 (feraiseexcept@var{m}): Document new optab.
19676 * optabs.def (fegetround_optab): New optab.
19677 (feclearexcept_optab): New optab.
19678 (feraiseexcept_optab): New optab.
19679
19680 2022-01-24 Richard Biener <rguenther@suse.de>
19681 Jiufu Guo <guojiufu@linux.ibm.com>
19682
19683 PR tree-optimization/100740
19684 PR tree-optimization/101508
19685 PR tree-optimization/101972
19686 PR tree-optimization/102131
19687 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
19688 constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
19689 BASE0 + STEP0 - STEP1 cmp BASE1 transform.
19690
19691 2022-01-24 Jakub Jelinek <jakub@redhat.com>
19692
19693 PR sanitizer/104158
19694 * opt-functions.awk (var_set): Handle EnumBitSet property.
19695 * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
19696 specified.
19697 * opts.h (enum cl_enum_var_value): New type.
19698 * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
19699 Handle CLEV_BITSET.
19700 (cmdline_handle_error): Handle CLEV_BITSET.
19701 * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
19702 * doc/options.texi (EnumBitSet): Document.
19703 * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
19704 EnumSet.
19705 (trace-pc, trace-cmp): Drop Set properties.
19706
19707 2022-01-24 Jakub Jelinek <jakub@redhat.com>
19708
19709 PR sanitizer/104158
19710 * common.opt (flag_sanitize_coverage): Remove Variable entry.
19711 (fsanitize-coverage=): Remove RejectNegative property, add
19712 Var(flag_sanitize_coverage) and EnumSet properties.
19713 (trace-pc): Add Set(1) property.
19714 (trace-cmp): Add Set(2) property.
19715 * opts.cc (common_handle_option): Don't handle
19716 OPT_fsanitize_coverage_.
19717
19718 2022-01-24 Jakub Jelinek <jakub@redhat.com>
19719
19720 PR sanitizer/104158
19721 * opt-functions.awk (var_set): Handle EnumSet property.
19722 * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
19723 specified.
19724 * opt-read.awk: Handle Set property.
19725 * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
19726 (struct cl_decoded_option): Mention enum in value description.
19727 Add mask member.
19728 (set_option): Add mask argument defaulted to 0.
19729 * opts.cc (test_enum_sets): New function.
19730 (opts_cc_tests): Call it.
19731 * opts-common.cc (enum_arg_to_value): Change return argument
19732 from bool to int, on success return index into the cl_enum_arg
19733 array, on failure -1. Add len argument, if non-0, use strncmp
19734 instead of strcmp.
19735 (opt_enum_arg_to_value): Adjust caller.
19736 (decode_cmdline_option): Handle EnumSet represented as
19737 CLVC_ENUM with non-zero var_value. Initialize decoded->mask.
19738 (decode_cmdline_options_to_array): CLear opt_array[0].mask.
19739 (handle_option): Pass decoded->mask to set_options last argument.
19740 (generate_option): Clear decoded->mask.
19741 (generate_option_input_file): Likewise.
19742 (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
19743 (set_option): Add mask argument, use it for CLVC_ENUM.
19744 (control_warning_option): Adjust enum_arg_to_value caller.
19745 * doc/options.texi: Document Set and EnumSet properties.
19746
19747 2022-01-24 Jakub Jelinek <jakub@redhat.com>
19748
19749 PR bootstrap/104170
19750 * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
19751 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
19752 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
19753 using OPTION_*_P macros.
19754 * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
19755 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
19756 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
19757 using OPTION_*_P macros.
19758 * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
19759 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
19760 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
19761 using OPTION_*_P macros.
19762 * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
19763 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
19764 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
19765 using OPTION_*_P macros.
19766 * config/fuchsia.h (OPTION_MUSL_P): Redefine.
19767 * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
19768 * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
19769 ATTRIBUTE_UNUSED to opts parameter. If OPTION_GLIBC_P is defined, use
19770 OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
19771 * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
19772 OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
19773 otherwise assume if (true).
19774
19775 2022-01-24 Kito Cheng <kito.cheng@sifive.com>
19776
19777 * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
19778 Skip zicsr and zifencei if I-ext is 2.0.
19779
19780 2022-01-24 Jia-Wei Chen <jiawei@iscas.ac.cn>
19781
19782 * config.gcc: Modify default isa_spec version.
19783
19784 2022-01-24 Jiufu Guo <guojiufu@linux.ibm.com>
19785
19786 PR tree-optimization/102087
19787 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
19788 Correct PLUS result type.
19789
19790 2022-01-24 H.J. Lu <hjl.tools@gmail.com>
19791
19792 PR target/104188
19793 * config/i386/predicates.md (bcst_mem_operand): Also check mode
19794 of memory broadcast.
19795
19796 2022-01-23 Andrew Pinski <apinski@marvell.com>
19797
19798 PR target/64821
19799 * config/aarch64/aarch64-builtins.cc
19800 (aarch64_general_gimple_fold_builtin): Handle
19801 __builtin_aarch64_sqrt* and simplify into SQRT internal
19802 function.
19803
19804 2022-01-22 Jakub Jelinek <jakub@redhat.com>
19805
19806 PR other/104176
19807 * opts-global.cc (handle_common_deferred_options): Quote
19808 --enable-plugin in diagnostics to avoid -Werror=format-diag.
19809
19810 2022-01-21 Michael Meissner <meissner@the-meissners.org>
19811
19812 PR target/104136
19813 * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
19814 * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
19815 * config/rs6000/rs6000.md (prefixed attribute): Delete section
19816 that sets the prefixed attribute for xxspltiw, xxspltidp, and
19817 xxsplti32dx instructions.
19818 (movsf_hardfloat): Explicitly set the prefixed attribute
19819 when xxspltiw and xxspltidp instructions are generated.
19820 (mov<mode>_hardfloat32): Likewise.
19821 (mov<mode>_hardfloat64): Likewise.
19822 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
19823 prefixed attribute for xxspltiw and xxspltidp instructions.
19824 (vsx_mov<mode>_32bit): Likewise.
19825
19826 2022-01-21 H.J. Lu <hjl.tools@gmail.com>
19827
19828 PR bootstrap/104170
19829 * common/config/i386/i386-common.cc (ix86_supports_split_stack):
19830 Return true only on glibc.
19831 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
19832 Revert commit c163647ffbc.
19833 * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
19834
19835 2022-01-21 Sören Tempel <soeren@soeren-tempel.net>
19836
19837 * common/config/s390/s390-common.cc (s390_supports_split_stack):
19838 Only support split-stack on glibc targets.
19839 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
19840 * config/i386/gnu.h (defined): Ditto.
19841
19842 2022-01-21 Bill Schmidt <wschmidt@linux.ibm.com>
19843
19844 * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
19845 vector float and vector double.
19846
19847 2022-01-21 Bill Seurer <seurer@gcc.gnu.org>
19848
19849 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
19850 Fix mention of ifunc in string.
19851
19852 2022-01-21 Roger Sayle <roger@nextmovesoftware.com>
19853
19854 PR middle-end/104140
19855 * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
19856 operands of the widening multiplication are either both signed or
19857 both unsigned, and abort the conversion if mismatched.
19858 * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
19859 (MULT_HIGHPART_EXPR): Clarify that operands must have the same
19860 signedness.
19861 * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
19862 integer types with the same precision and signedness.
19863 (WIDEN_MULT_EXPR): Document that operands must have integer types
19864 with the same precision, but possibly differing signedness.
19865 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
19866 riscv_current_subset_list returning a NULL pointer (empty list).
19867
19868 2022-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
19869
19870 PR target/103676
19871 * ira.h (struct target_ira): Add member
19872 x_ira_exclude_class_mode_regs.
19873 (ira_exclude_class_mode_regs): New macro.
19874 * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
19875 move from here ...
19876 * lra-int.h: ... to here.
19877 (lra_create_new_reg_with_unique_value): Add arg
19878 exclude_start_hard_regs.
19879 (class lra_reg): Add member exclude_start_hard_regs.
19880 * lra-assigns.cc (find_hard_regno_for_1): Setup
19881 impossible_start_hard_regs from exclude_start_hard_regs.
19882 * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
19883 it lra_create_new_reg[_with_unique_value].
19884 (match_reload): Ditto.
19885 (check_and_process_move): Pass NULL
19886 exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
19887 (goal_alt_exclude_start_hard_regs): New static variable.
19888 (process_addr_reg, simplify_operand_subreg): Pass NULL
19889 exclude_start_hard_regs to lra_create_new_reg_with_unique_value
19890 and get_reload_reg.
19891 (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
19892 Use this_alternative_exclude_start_hard_regs additionally to find
19893 winning operand alternative.
19894 (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
19895 exclude_start_hard_regs to lra_create_new_reg.
19896 (process_address_1, emit_inc): Ditto.
19897 (curr_insn_transform): Pass exclude_start_hard_regs value to
19898 lra_create_new_reg, get_reload_reg, match_reload.
19899 (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
19900 to lra_create_new_reg.
19901 (process_invariant_for_inheritance): Ditto.
19902 * lra-remat.cc (update_scratch_ops): Ditto.
19903 * lra.cc (lra_create_new_reg_with_unique_value): Add arg
19904 exclude_start_hard_regs. Setup the corresponding member of
19905 lra reg info.
19906 (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
19907 to lra_create_new_reg_with_unique_value.
19908 (initialize_lra_reg_info_element): Initialize member
19909 exclude_start_hard_regs.
19910 (get_scratch_reg): Pass NULL to lra_create_new_reg.
19911 * ira.cc (setup_prohibited_class_mode_regs): Rename to
19912 setup_prohibited_and_exclude_class_mode_regs and calculate
19913 ira_exclude_class_mode_regs.
19914
19915 2022-01-21 Martin Liska <mliska@suse.cz>
19916
19917 * configure.ac: Detect ld_is_mold and use it for
19918 comdat_group=yes and gcc_cv_ld_hidden=yes.
19919 * configure: Regenerate.
19920
19921 2022-01-21 Richard Biener <rguenther@suse.de>
19922
19923 PR tree-optimization/100089
19924 * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
19925 of if-converted loops with unvectorized COND_EXPRs for
19926 all but the unlimited cost models.
19927
19928 2022-01-21 Ard Biesheuvel <ardb@kernel.org>
19929
19930 * config/arm/arm-opts.h (enum stack_protector_guard): New.
19931 * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
19932 New.
19933 * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
19934 (arm_option_override_internal): Handle and put in error checks.
19935 for stack protector guard options.
19936 (arm_option_reconfigure_globals): Likewise.
19937 (arm_stack_protect_tls_canary_mem): New.
19938 (arm_stack_protect_guard): New.
19939 * config/arm/arm.md (stack_protect_set): New.
19940 (stack_protect_set_tls): Likewise.
19941 (stack_protect_test): Likewise.
19942 (stack_protect_test_tls): Likewise.
19943 (reload_tp_hard): Likewise.
19944 * config/arm/arm.opt (-mstack-protector-guard): New
19945 (-mstack-protector-guard-offset): New.
19946 * doc/invoke.texi: Document new options.
19947
19948 2022-01-21 Richard Biener <rguenther@suse.de>
19949
19950 PR tree-optimization/104156
19951 * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
19952 Collect and reset debug stmts with out-of-loop uses when
19953 hoisting guards.
19954 (find_loop_guard): Adjust.
19955 (empty_bb_without_guard_p): Likewise. Ignore debug stmts.
19956 (used_outside_loop_p): Push debug uses to a vector of
19957 debug stmts to reset.
19958 (hoist_guard): Adjust -fopt-info category.
19959
19960 2022-01-21 Richard Biener <rguenther@suse.de>
19961
19962 PR tree-optimization/104152
19963 * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
19964 can_duplicate_and_interleave_p check.
19965
19966 2022-01-21 Jakub Jelinek <jakub@redhat.com>
19967
19968 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
19969 Avoid passing var to warning_at when the format string doesn't
19970 refer to it.
19971
19972 2022-01-21 Aldy Hernandez <aldyh@redhat.com>
19973
19974 PR tree-optimization/103721
19975 * gimple-range-path.cc
19976 (path_range_query::relations_may_be_invalidated): New.
19977 (path_range_query::compute_ranges_in_block): Reset relations if
19978 they may be invalidated.
19979 (path_range_query::maybe_register_phi_relation): Exit if relations
19980 may be invalidated on incoming edge.
19981 (path_range_query::compute_phi_relations): Pass incoming PHI edge
19982 to maybe_register_phi_relation.
19983 * gimple-range-path.h (relations_may_be_invalidated): New.
19984 (maybe_register_phi_relation): Pass edge instead of tree.
19985 * tree-ssa-threadbackward.cc (back_threader::back_threader):
19986 Mark DFS edges.
19987 * value-relation.cc (path_oracle::path_oracle): Call
19988 mark_dfs_back_edges.
19989 (path_oracle::register_relation): Add SSA names to m_registered
19990 bitmap.
19991 (path_oracle::reset_path): Clear m_registered bitmap.
19992 * value-relation.h (path_oracle::set_root_oracle): New.
19993
19994 2022-01-21 Jakub Jelinek <jakub@redhat.com>
19995
19996 PR rtl-optimization/102478
19997 * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
19998 force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
19999 would be needed.
20000
20001 2022-01-20 Richard Biener <rguenther@suse.de>
20002
20003 PR middle-end/100786
20004 * gimple-fold.cc (get_symbol_constant_value): Only return
20005 values of compatible type to the symbol.
20006
20007 2022-01-20 Andrew MacLeod <amacleod@redhat.com>
20008
20009 * value-relation.cc (relation_oracle::valid_equivs): Query and add
20010 if valid members of a set.
20011 (equiv_oracle::register_equiv): Call valid_equivs rather than
20012 bitmap direct operations.
20013 (path_oracle::register_equiv): Ditto.
20014 * value-relation.h (relation_oracle::valid_equivs): New prototype.
20015
20016 2022-01-20 Richard Biener <rguenther@suse.de>
20017
20018 PR target/100784
20019 * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
20020 LHS before folding __builtin_ia32_shufpd and friends.
20021
20022 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
20023
20024 * config/arm/crypto.md (aes_op_protect): Allow moves from core
20025 registers and from memory.
20026 (aes_op_protect_misalign_load): New pattern.
20027 (aes_op_protect_neon_vld1v16qi): New pattern.
20028
20029 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
20030
20031 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
20032 New pattern.
20033 (aarch32_crypto_aese_fused_protected): Likewise.
20034 (aarch32_crypto_aesd_fused_protected): Likewise.
20035
20036 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
20037
20038 * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
20039 to define_expand. Add mitigation for the Cortex-A AES erratum
20040 when enabled.
20041 (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
20042 on original crypto_<CRYPTO_AES:crypto_pattern> insn.
20043 (aes_op_protect): New pattern.
20044 * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
20045
20046 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
20047
20048 * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
20049 (ALL_QUIRKS): Add it.
20050 (cortex-a57, cortex-a72): Enable it.
20051 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
20052 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
20053 option.
20054 (mfix-cortex-a72-aes-1655431): New option alias.
20055 * config/arm/arm.cc (arm_option_override): Handle default settings
20056 for AES erratum switch.
20057 * doc/invoke.texi (Arm Options): Document new options.
20058
20059 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
20060
20061 * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
20062 <crypto_mode> rather than hard-coding the mode.
20063 (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
20064 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
20065 (*aarch32_crypto_aese_fused): Likewise.
20066 (*aarch32_crypto_aesd_fused): Likewise.
20067 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
20068 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
20069 (crypto_sha1h_lb): Likewise.
20070 (crypto_vmullp64): Likewise.
20071 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
20072 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
20073
20074 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
20075
20076 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
20077 iterator to pattern name to disambiguate.
20078 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
20079 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
20080 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
20081 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
20082 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
20083
20084 2022-01-20 Martin Liska <mliska@suse.cz>
20085
20086 PR bootstrap/104135
20087 * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
20088 * rtl.cc: Partially disable -Wformat-diag for RTL checking
20089 error messages.
20090
20091 2022-01-20 Jakub Jelinek <jakub@redhat.com>
20092
20093 PR debug/103874
20094 * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
20095 block_num > 0, index entry even if !have_multiple_function_sections.
20096
20097 2022-01-20 liuhongt <hongtao.liu@intel.com>
20098
20099 PR target/103771
20100 * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
20101 integral mode mask pack by multi steps which takes
20102 vec_pack_sbool_trunc_optab as start when elements number is
20103 less than BITS_PER_UNITS.
20104
20105 2022-01-20 Richard Biener <rguenther@suse.de>
20106
20107 PR tree-optimization/104114
20108 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
20109 single element vector decomposition.
20110
20111 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
20112
20113 * ifcvt.cc (noce_convert_multiple_sets_1): New function.
20114 (noce_convert_multiple_sets): Call function a second time if we can
20115 improve the first try.
20116
20117 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
20118
20119 * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
20120 reversed comparison.
20121 (try_emit_cmove_seq): New function to facilitate creating a cmov
20122 sequence.
20123 (noce_convert_multiple_sets): Create two sequences and use the less
20124 expensive one.
20125
20126 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
20127
20128 * rtl.h (struct rtx_comparison): New struct that holds an rtx
20129 comparison.
20130 * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
20131 single parameters.
20132 (rs6000_emit_swsqrt): Likewise.
20133 * expmed.cc (expand_sdiv_pow2): Likewise.
20134 (emit_store_flag): Likewise.
20135 * expr.cc (expand_cond_expr_using_cmove): Likewise.
20136 (expand_expr_real_2): Likewise.
20137 * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
20138 parameters.
20139 * optabs.cc (emit_conditional_move_1): New function.
20140 (expand_doubleword_shift_condmove): Use struct.
20141 (emit_conditional_move): Use struct and allow to call directly
20142 without going through preparation steps.
20143 * optabs.h (emit_conditional_move): Use struct.
20144
20145 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
20146
20147 * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
20148 (noce_process_if_block): Use potential costs.
20149
20150 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
20151
20152 * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
20153 (bb_ok_for_noce_convert_multiple_sets): Likewise.
20154
20155 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
20156
20157 * ifcvt.cc (need_cmov_or_rewire): New function.
20158 (noce_convert_multiple_sets): Call it.
20159
20160 2022-01-19 David Malcolm <dmalcolm@redhat.com>
20161
20162 * attribs.cc (attribute_c_tests): Rename to...
20163 (attribs_cc_tests): ...this.
20164 * bitmap.cc (bitmap_c_tests): Rename to...
20165 (bitmap_cc_tests): ...this.
20166 * cgraph.cc (cgraph_c_finalize): Rename to...
20167 (cgraph_cc_finalize): ...this.
20168 (cgraph_c_tests): Rename to...
20169 (cgraph_cc_tests): ...this.
20170 * cgraph.h (cgraph_c_finalize): Rename to...
20171 (cgraph_cc_finalize): ...this.
20172 (cgraphunit_c_finalize): Rename to...
20173 (cgraphunit_cc_finalize): ...this.
20174 * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
20175 (cgraphunit_cc_finalize): ...this.
20176 * convert.cc (convert_c_tests): Rename to...
20177 (convert_cc_tests): ...this.
20178 * dbgcnt.cc (dbgcnt_c_tests): Rename to...
20179 (dbgcnt_cc_tests): ...this.
20180 * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
20181 (diagnostic_show_locus_cc_tests): ...this.
20182 * diagnostic.cc (diagnostic_c_tests): Rename to...
20183 (diagnostic_cc_tests): ...this.
20184 * dumpfile.cc (dumpfile_c_tests): Rename to...
20185 (dumpfile_cc_tests): ...this.
20186 * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
20187 (dwarf2out_cc_finalize): ...this.
20188 * dwarf2out.h (dwarf2out_c_finalize): Rename to...
20189 (dwarf2out_cc_finalize): ...this.
20190 * edit-context.cc (edit_context_c_tests): Rename to...
20191 (edit_context_cc_tests): ...this.
20192 * et-forest.cc (et_forest_c_tests): Rename to...
20193 (et_forest_cc_tests): ...this.
20194 * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
20195 (fibonacci_heap_cc_tests): ...this.
20196 * fold-const.cc (fold_const_c_tests): Rename to...
20197 (fold_const_cc_tests): ...this.
20198 * function-tests.cc (function_tests_c_tests): Rename to...
20199 (function_tests_cc_tests): ...this.
20200 * gcse.cc (gcse_c_finalize): Rename to...
20201 (gcse_cc_finalize): ...this.
20202 * gcse.h (gcse_c_finalize): Rename to...
20203 (gcse_cc_finalize): ...this.
20204 * ggc-tests.cc (ggc_tests_c_tests): Rename to...
20205 (ggc_tests_cc_tests): ...this.
20206 * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
20207 (store_merging_cc_tests): ...this.
20208 * gimple.cc (gimple_c_tests): Rename to...
20209 (gimple_cc_tests): ...this.
20210 * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
20211 (hash_map_tests_cc_tests): ...this.
20212 * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
20213 (hash_set_tests_cc_tests): ...this.
20214 * input.cc (input_c_tests): Rename to...
20215 (input_cc_tests): ...this.
20216 * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
20217 (ipa_cp_cc_finalize): ...this.
20218 * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
20219 (ipa_fnsummary_cc_finalize): ...this.
20220 * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
20221 (ipa_fnsummary_cc_finalize): ...this.
20222 * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
20223 (ipa_modref_tree_cc_tests): ...this.
20224 * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
20225 * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
20226 (ipa_modref_cc_finalize): ...this.
20227 * ipa-modref.h (ipa_modref_c_finalize): Rename to...
20228 (ipa_modref_cc_finalize): ...this.
20229 * ipa-prop.h (ipa_cp_c_finalize): Rename to...
20230 (ipa_cp_cc_finalize): ...this.
20231 * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
20232 (ipa_reference_cc_finalize): ...this.
20233 * ipa-reference.h (ipa_reference_c_finalize): Rename to...
20234 (ipa_reference_cc_finalize): ...this.
20235 * ira-costs.cc (ira_costs_c_finalize): Rename to...
20236 (ira_costs_cc_finalize): ...this.
20237 * ira.h (ira_costs_c_finalize): Rename to...
20238 (ira_costs_cc_finalize): ...this.
20239 * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
20240 (opt_suggestions_cc_tests): ...this.
20241 * opts.cc (opts_c_tests): Rename to...
20242 (opts_cc_tests): ...this.
20243 * predict.cc (predict_c_tests): Rename to...
20244 (predict_cc_tests): ...this.
20245 * pretty-print.cc (pretty_print_c_tests): Rename to...
20246 (pretty_print_cc_tests): ...this.
20247 * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
20248 (read_rtl_function_cc_tests): ...this.
20249 * rtl-tests.cc (rtl_tests_c_tests): Rename to...
20250 (rtl_tests_cc_tests): ...this.
20251 * sbitmap.cc (sbitmap_c_tests): Rename to...
20252 (sbitmap_cc_tests): ...this.
20253 * selftest-run-tests.cc (selftest::run_tests): Update calls for
20254 _c_ to _cc_ function renamings; fix names of attribs and
20255 opt-suggestions tests.
20256 * selftest.cc (selftest_c_tests): Rename to...
20257 (selftest_cc_tests): ...this.
20258 * selftest.h (attribute_c_tests): Rename to...
20259 (attribs_cc_tests): ...this.
20260 (bitmap_c_tests): Rename to...
20261 (bitmap_cc_tests): ...this.
20262 (cgraph_c_tests): Rename to...
20263 (cgraph_cc_tests): ...this.
20264 (convert_c_tests): Rename to...
20265 (convert_cc_tests): ...this.
20266 (diagnostic_c_tests): Rename to...
20267 (diagnostic_cc_tests): ...this.
20268 (diagnostic_show_locus_c_tests): Rename to...
20269 (diagnostic_show_locus_cc_tests): ...this.
20270 (dumpfile_c_tests): Rename to...
20271 (dumpfile_cc_tests): ...this.
20272 (edit_context_c_tests): Rename to...
20273 (edit_context_cc_tests): ...this.
20274 (et_forest_c_tests): Rename to...
20275 (et_forest_cc_tests): ...this.
20276 (fibonacci_heap_c_tests): Rename to...
20277 (fibonacci_heap_cc_tests): ...this.
20278 (fold_const_c_tests): Rename to...
20279 (fold_const_cc_tests): ...this.
20280 (function_tests_c_tests): Rename to...
20281 (function_tests_cc_tests): ...this.
20282 (ggc_tests_c_tests): Rename to...
20283 (ggc_tests_cc_tests): ...this.
20284 (gimple_c_tests): Rename to...
20285 (gimple_cc_tests): ...this.
20286 (hash_map_tests_c_tests): Rename to...
20287 (hash_map_tests_cc_tests): ...this.
20288 (hash_set_tests_c_tests): Rename to...
20289 (hash_set_tests_cc_tests): ...this.
20290 (input_c_tests): Rename to...
20291 (input_cc_tests): ...this.
20292 (opts_c_tests): Rename to...
20293 (opts_cc_tests): ...this.
20294 (predict_c_tests): Rename to...
20295 (predict_cc_tests): ...this.
20296 (pretty_print_c_tests): Rename to...
20297 (pretty_print_cc_tests): ...this.
20298 (read_rtl_function_c_tests): Rename to...
20299 (read_rtl_function_cc_tests): ...this.
20300 (rtl_tests_c_tests): Rename to...
20301 (rtl_tests_cc_tests): ...this.
20302 (sbitmap_c_tests): Rename to...
20303 (sbitmap_cc_tests): ...this.
20304 (selftest_c_tests): Rename to...
20305 (selftest_cc_tests): ...this.
20306 (simplify_rtx_c_tests): Rename to...
20307 (simplify_rtx_cc_tests): ...this.
20308 (spellcheck_c_tests): Rename to...
20309 (spellcheck_cc_tests): ...this.
20310 (spellcheck_tree_c_tests): Rename to...
20311 (spellcheck_tree_cc_tests): ...this.
20312 (sreal_c_tests): Rename to...
20313 (sreal_cc_tests): ...this.
20314 (store_merging_c_tests): Rename to...
20315 (store_merging_cc_tests): ...this.
20316 (tree_c_tests): Rename to...
20317 (tree_cc_tests): ...this.
20318 (tree_cfg_c_tests): Rename to...
20319 (tree_cfg_cc_tests): ...this.
20320 (typed_splay_tree_c_tests): Rename to...
20321 (typed_splay_tree_cc_tests): ...this.
20322 (vec_c_tests): Rename to...
20323 (vec_cc_tests): ...this.
20324 (vec_perm_indices_c_tests): Rename to...
20325 (vec_perm_indices_cc_tests): ..this.
20326 (opt_proposer_c_tests): Rename to...
20327 (opt_suggestions_cc_tests): ...this.
20328 (dbgcnt_c_tests): Rename to...
20329 (dbgcnt_cc_tests): ...this.
20330 (ipa_modref_tree_c_tests): Rename to...
20331 (ipa_modref_tree_cc_tests): ...this.
20332 * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
20333 (simplify_rtx_cc_tests): ...this.
20334 * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
20335 (spellcheck_tree_cc_tests): ...this.
20336 * spellcheck.cc (spellcheck_c_tests): Rename to...
20337 (spellcheck_cc_tests): ...this.
20338 * sreal.cc (sreal_c_tests): Rename to...
20339 (sreal_cc_tests): ...this.
20340 * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
20341 function renamings.
20342 * tree-cfg.cc (tree_cfg_c_tests): Rename to...
20343 (tree_cfg_cc_tests): ...this.
20344 * tree.cc (tree_c_tests): Rename to...
20345 (tree_cc_tests): ...this.
20346 * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
20347 (typed_splay_tree_cc_tests): ...this.
20348 * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
20349 (vec_perm_indices_cc_tests): ...this.
20350 * vec.cc (vec_c_tests): Rename to...
20351 (vec_cc_tests): ...this.
20352
20353 2022-01-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
20354
20355 PR tree-optimization/103997
20356 * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
20357 vectorization.
20358
20359 2022-01-19 Jakub Jelinek <jakub@redhat.com>
20360
20361 PR middle-end/102860
20362 * match.pd (x %[fl] y -> x % y): New simplification for
20363 unsigned integral types.
20364 * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
20365 for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
20366
20367 2022-01-19 Richard Biener <rguenther@suse.de>
20368
20369 PR tree-optimization/104112
20370 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
20371 for required intermediate vector types.
20372
20373 2022-01-19 Jakub Jelinek <jakub@redhat.com>
20374
20375 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
20376
20377 2022-01-19 Martin Liska <mliska@suse.cz>
20378
20379 * configure.ac: Remove -Wno-error=format-diag.
20380 * configure: Regenerate.
20381
20382 2022-01-19 Martin Liska <mliska@suse.cz>
20383
20384 * config/riscv/riscv.cc (riscv_handle_type_attribute):
20385 Update one -Wformat-diag string in warning message.
20386
20387 2022-01-19 Jakub Jelinek <jakub@redhat.com>
20388
20389 PR middle-end/104103
20390 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
20391 .ASAN_MARK calls.
20392
20393 2022-01-19 Jakub Jelinek <jakub@redhat.com>
20394
20395 PR c++/89074
20396 * fold-const.cc (address_compare): Consider different STRING_CSTs
20397 with the same lengths that memcmp the same as equal, not different.
20398
20399 2022-01-19 Jakub Jelinek <jakub@redhat.com>
20400
20401 * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
20402 {%0}.
20403
20404 2022-01-19 Martin Liska <mliska@suse.cz>
20405 Thomas Schwinge <thomas@codesourcery.com>
20406
20407 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
20408 warning messages.
20409
20410 2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
20411
20412 PR target/104090
20413 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
20414 rs6000_cpu.
20415
20416 2022-01-19 Jakub Jelinek <jakub@redhat.com>
20417
20418 PR target/104104
20419 * config/i386/sse.md
20420 (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
20421 avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
20422 avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
20423 avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
20424 avx512dq_rangep<mode><mask_name><round_saeonly_name>,
20425 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
20426 <avx512>_getmant<mode><mask_name><round_saeonly_name>,
20427 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
20428 Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
20429
20430 2022-01-19 Martin Sebor <msebor@redhat.com>
20431
20432 PR middle-end/104069
20433 * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
20434 an unknown result as documented.
20435
20436 2022-01-18 Andrew Pinski <apinski@marvell.com>
20437
20438 * ipa-split.cc (visit_bb): Fix comment before the
20439 warning/error attribute checking code.
20440
20441 2022-01-18 David Faust <david.faust@oracle.com>
20442
20443 * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
20444 for base strtab offset yet as it may change.
20445 (output_asm_btfext_core_reloc): Do so here instead.
20446 (output_btfext_core_sections): Likewise.
20447
20448 2022-01-18 David Faust <david.faust@oracle.com>
20449
20450 * config/bpf/coreout.cc (output_btfext_header): Account for
20451 4-byte record size in core_relo_len.
20452 (output_btfext_core_sections): Only write record size once.
20453 * config/bpf/coreout.h (btf_ext_section_header): Delete unused
20454 member.
20455
20456 2022-01-18 Maciej W. Rozycki <macro@embecosm.com>
20457
20458 * common/config/riscv/riscv-common.cc
20459 (riscv_subset_list::parse_multiletter_ext): Move pointer
20460 arithmetic ahead of `free'.
20461
20462 2022-01-18 Jason Merrill <jason@redhat.com>
20463
20464 PR c++/104007
20465 * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
20466 context.
20467
20468 2022-01-18 Sandra Loosemore <sandra@codesourcery.com>
20469
20470 PR middle-end/103163
20471 * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
20472 (init_emit_once): ...not here.
20473
20474 2022-01-18 Martin Liska <mliska@suse.cz>
20475
20476 * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
20477 * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
20478 * config/arc/arc.md: Likewise.
20479 * config/avr/avr.cc (avr_section_type_flags): Likewise.
20480 * config/bfin/bfin.cc (bfin_option_override): Likewise.
20481 (bfin_handle_longcall_attribute): Likewise.
20482 * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
20483 * config/frv/frv.cc (frv_expand_builtin): Likewise.
20484 * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
20485 * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
20486 (iq2000_print_operand_address): Likewise.
20487 (iq2000_print_operand): Likewise.
20488 * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
20489 (m32c_pragma_address): Likewise.
20490 * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
20491 * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
20492 (mips_set_compression_mode): Likewise.
20493 * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
20494 (mmix_print_operand): Likewise.
20495 (mmix_output_shiftvalue_op_from_str): Likewise.
20496 (mmix_output_shifted_value): Likewise.
20497 * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
20498 * config/msp430/msp430.cc (msp430_option_override): Likewise.
20499 (msp430_attr): Likewise.
20500 (msp430_expand_delay_cycles): Likewise.
20501 (msp430_expand_builtin): Likewise.
20502 * config/rs6000/aix73.h: Likewise.
20503 * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
20504 * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
20505 (valid_psw_flag): Likewise.
20506 * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
20507 * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
20508 (xstormy16_expand_builtin_va_start): Likewise.
20509 (xstormy16_handle_below100_attribute): Likewise.
20510
20511 2022-01-18 Martin Liska <mliska@suse.cz>
20512
20513 * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
20514 warning.
20515 (vms_pragma_standard): Likewise.
20516 (vms_pragma_extern_prefix): Likewise.
20517
20518 2022-01-18 Martin Liska <mliska@suse.cz>
20519
20520 * config/xtensa/xtensa.cc (print_operand): Fix warnings.
20521 (print_operand_address): Likewise.
20522 (xtensa_multibss_section_type_flags): Likewise.
20523
20524 2022-01-18 Martin Liska <mliska@suse.cz>
20525
20526 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
20527 wording of an error message.
20528
20529 2022-01-18 Martin Liska <mliska@suse.cz>
20530
20531 * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
20532 warning.
20533 (ghs_pragma_section): Likewise.
20534 (ghs_pragma_interrupt): Likewise.
20535 (ghs_pragma_starttda): Likewise.
20536 (ghs_pragma_startsda): Likewise.
20537 (ghs_pragma_startzda): Likewise.
20538 (ghs_pragma_endtda): Likewise.
20539 (ghs_pragma_endsda): Likewise.
20540 (ghs_pragma_endzda): Likewise.
20541
20542 2022-01-18 Martin Liska <mliska@suse.cz>
20543
20544 * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
20545 Fix warnings.
20546 * config/nds32/nds32-intrinsic.md: Likewise.
20547 * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
20548 * config/nds32/nds32.cc (nds32_print_operand): Likewise.
20549 (nds32_insert_attributes): Likewise.
20550
20551 2022-01-18 Martin Liska <mliska@suse.cz>
20552
20553 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
20554 keyword.
20555 * config/nvptx/nvptx.md: Remove trailing dot.
20556
20557 2022-01-18 Martin Liska <mliska@suse.cz>
20558
20559 * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
20560 Wrap keywords with quotes and remove trailing dots.
20561 (riscv_subset_list::parsing_subset_version): Likewise.
20562 (riscv_subset_list::parse_std_ext): Likewise.
20563 (riscv_subset_list::parse_multiletter_ext): Likewise.
20564 * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
20565
20566 2022-01-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
20567
20568 * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
20569 argument suggested_unroll_factor.
20570 (vect_analyze_loop_costing): Likewise.
20571 (_loop_vec_info::_loop_vec_info): Initialize new member
20572 suggested_unroll_factor.
20573 (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
20574 main loop use partial vectors.
20575 (vect_analyze_loop_2): Pass and use new argument
20576 suggested_unroll_factor.
20577 (vect_analyze_loop_1): Change to intialize local
20578 suggested_unroll_factor and use it.
20579 (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
20580 * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
20581 suggested_unroll_factor.
20582 (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
20583 (vector_costs::suggested_unroll_factor): New getter function.
20584 (finish_cost): Set return argument suggested_unroll_factor.
20585
20586 2022-01-18 Andrew MacLeod <amacleod@redhat.com>
20587
20588 PR tree-optimization/104038
20589 * doc/invoke.texi (relation-block-limit): New.
20590 * params.opt (relation-block-limit): New.
20591 * value-relation.cc (dom_oracle::register_relation): Check for NULL
20592 record before invoking transitive registery.
20593 (dom_oracle::set_one_relation): Check limit before creating record.
20594 (dom_oracle::register_transitives): Stop when no record created.
20595 * value-relation.h (relation_chain_head::m_num_relations): New.
20596
20597 2022-01-18 Richard Biener <rguenther@suse.de>
20598
20599 PR ipa/103989
20600 * ipa-inline.cc (inline_small_functions): Do not enqueue call
20601 edges originating in functions compiled with -Og.
20602
20603 2022-01-18 Richard Biener <rguenther@suse.de>
20604
20605 PR ipa/103989
20606 * passes.def (pass_all_optimizations_g): Remove pass_modref
20607 and pass_local_pure_const.
20608
20609 2022-01-18 Martin Liska <mliska@suse.cz>
20610
20611 * config/s390/s390.cc: Fix -Wformat-diag warnings.
20612
20613 2022-01-18 Martin Liska <mliska@suse.cz>
20614
20615 * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
20616 keyword in quotes.
20617 (s390_resolve_overloaded_builtin): Remove trailing dot.
20618 * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
20619 (s390_expand_builtin): Remove trailing dot.
20620 (s390_emit_prologue): Likewise, use semicolon.
20621 (s390_option_override_internal): Update keyword.
20622 * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
20623
20624 2022-01-18 Martin Liska <mliska@suse.cz>
20625
20626 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
20627 keywords and use %qs instead of %<%s%>.
20628
20629 2022-01-18 Richard Biener <rguenther@suse.de>
20630
20631 PR tree-optimization/103987
20632 * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
20633 query with a pointer check.
20634
20635 2022-01-18 Richard Sandiford <richard.sandiford@arm.com>
20636
20637 PR target/104005
20638 * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
20639 When using MEM_EXPR, require the base to be a decl.
20640
20641 2022-01-18 Richard Biener <rguenther@suse.de>
20642
20643 * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
20644 avoid padding.
20645 * function.h (struct function): Likewise.
20646
20647 2022-01-18 Arnaud Charlet <charlet@adacore.com>
20648
20649 * doc/install.texi: Update prerequisites for GNAT
20650
20651 2022-01-18 Andrew Pinski <apinski@marvell.com>
20652
20653 PR tree-optimization/101941
20654 * ipa-split.cc (visit_bb): Disallow function calls where
20655 the function has either error or warning attribute.
20656
20657 2022-01-18 Richard Biener <rguenther@suse.de>
20658
20659 PR tree-optimization/104064
20660 * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
20661 DR_INIT fits in a signed HWI, represent the difference from the
20662 first DR in unsigned.
20663
20664 2022-01-17 Martin Liska <mliska@suse.cz>
20665
20666 * Makefile.in: Rename .c names to .cc.
20667 * config.gcc: Likewise.
20668 * configure: Regenerate. Likewise.
20669 * configure.ac: Likewise.
20670 * gengtype.cc (set_gc_used): Likewise.
20671 (source_dot_c_frul): Likewise.
20672 (source_dot_cc_frul): Likewise.
20673 (struct file_rule_st): Likewise.
20674 (close_output_files): Likewise.
20675 * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
20676
20677 2022-01-17 Martin Liska <mliska@suse.cz>
20678
20679 * Makefile.in: Rename .c names to .cc.
20680 * alias.h: Likewise.
20681 * asan.cc: Likewise.
20682 * auto-profile.h: Likewise.
20683 * basic-block.h (struct basic_block_d): Likewise.
20684 * btfout.cc: Likewise.
20685 * builtins.cc (expand_builtin_longjmp): Likewise.
20686 (validate_arg): Likewise.
20687 (access_ref::offset_bounded): Likewise.
20688 * caller-save.cc (reg_restore_code): Likewise.
20689 (setup_save_areas): Likewise.
20690 * calls.cc (initialize_argument_information): Likewise.
20691 (expand_call): Likewise.
20692 (emit_library_call_value_1): Likewise.
20693 * cfg-flags.def (RTL): Likewise.
20694 (SIBCALL): Likewise.
20695 (CAN_FALLTHRU): Likewise.
20696 * cfganal.cc (post_order_compute): Likewise.
20697 * cfgcleanup.cc (try_simplify_condjump): Likewise.
20698 (merge_blocks_move_predecessor_nojumps): Likewise.
20699 (merge_blocks_move_successor_nojumps): Likewise.
20700 (merge_blocks_move): Likewise.
20701 (old_insns_match_p): Likewise.
20702 (try_crossjump_bb): Likewise.
20703 * cfgexpand.cc (expand_gimple_stmt): Likewise.
20704 * cfghooks.cc (split_block_before_cond_jump): Likewise.
20705 (profile_record_check_consistency): Likewise.
20706 * cfghooks.h: Likewise.
20707 * cfgrtl.cc (pass_free_cfg::execute): Likewise.
20708 (rtl_can_merge_blocks): Likewise.
20709 (try_redirect_by_replacing_jump): Likewise.
20710 (make_pass_outof_cfg_layout_mode): Likewise.
20711 (cfg_layout_can_merge_blocks_p): Likewise.
20712 * cgraph.cc (release_function_body): Likewise.
20713 (cgraph_node::get_fun): Likewise.
20714 * cgraph.h (struct cgraph_node): Likewise.
20715 (asmname_hasher::equal): Likewise.
20716 (cgraph_inline_failed_type): Likewise.
20717 (thunk_adjust): Likewise.
20718 (dump_callgraph_transformation): Likewise.
20719 (record_references_in_initializer): Likewise.
20720 (ipa_discover_variable_flags): Likewise.
20721 * cgraphclones.cc (GTY): Likewise.
20722 * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
20723 * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
20724 * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
20725 * collect2.cc (maybe_run_lto_and_relink): Likewise.
20726 * combine-stack-adj.cc: Likewise.
20727 * combine.cc (setup_incoming_promotions): Likewise.
20728 (combine_simplify_rtx): Likewise.
20729 (count_rtxs): Likewise.
20730 * common.opt: Likewise.
20731 * common/config/aarch64/aarch64-common.cc: Likewise.
20732 * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
20733 * common/config/avr/avr-common.cc: Likewise.
20734 * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
20735 * conditions.h: Likewise.
20736 * config.gcc: Likewise.
20737 * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
20738 * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
20739 (aarch64_get_extension_string_for_isa_flags): Likewise.
20740 * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
20741 * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
20742 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
20743 (aarch64_option_valid_attribute_p): Likewise.
20744 (aarch64_short_vector_p): Likewise.
20745 (aarch64_float_const_representable_p): Likewise.
20746 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
20747 (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
20748 (GTY): Likewise.
20749 * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
20750 * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
20751 * config/aarch64/t-aarch64: Likewise.
20752 * config/aarch64/x-aarch64: Likewise.
20753 * config/aarch64/x-darwin: Likewise.
20754 * config/alpha/alpha-protos.h: Likewise.
20755 * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
20756 * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
20757 (enum reg_class): Likewise.
20758 * config/alpha/alpha.md: Likewise.
20759 * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
20760 * config/alpha/x-alpha: Likewise.
20761 * config/arc/arc-protos.h (arc_eh_uses): Likewise.
20762 * config/arc/arc.cc (ARC_OPT): Likewise.
20763 (arc_ccfsm_advance): Likewise.
20764 (arc_arg_partial_bytes): Likewise.
20765 (conditionalize_nonjump): Likewise.
20766 * config/arc/arc.md: Likewise.
20767 * config/arc/builtins.def: Likewise.
20768 * config/arc/t-arc: Likewise.
20769 * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
20770 (arm_pragma_target_parse): Likewise.
20771 * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
20772 (arm_cpu_cpp_builtins): Likewise.
20773 * config/arm/arm.cc (vfp3_const_double_index): Likewise.
20774 (shift_op): Likewise.
20775 (thumb2_final_prescan_insn): Likewise.
20776 (arm_final_prescan_insn): Likewise.
20777 (arm_asm_output_labelref): Likewise.
20778 (arm_small_register_classes_for_mode_p): Likewise.
20779 * config/arm/arm.h: Likewise.
20780 * config/arm/arm.md: Likewise.
20781 * config/arm/driver-arm.cc: Likewise.
20782 * config/arm/symbian.h: Likewise.
20783 * config/arm/t-arm: Likewise.
20784 * config/arm/thumb1.md: Likewise.
20785 * config/arm/x-arm: Likewise.
20786 * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
20787 * config/avr/avr-fixed.md: Likewise.
20788 * config/avr/avr-log.cc (avr_log_vadump): Likewise.
20789 * config/avr/avr-mcus.def: Likewise.
20790 * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
20791 * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
20792 * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
20793 * config/avr/avr.cc (avr_option_override): Likewise.
20794 (avr_build_builtin_va_list): Likewise.
20795 (avr_mode_dependent_address_p): Likewise.
20796 (avr_function_arg_advance): Likewise.
20797 (avr_asm_output_aligned_decl_common): Likewise.
20798 * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
20799 (SUPPORTS_INIT_PRIORITY): Likewise.
20800 * config/avr/avr.md: Likewise.
20801 * config/avr/builtins.def: Likewise.
20802 * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
20803 * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
20804 (main): Likewise.
20805 * config/avr/t-avr: Likewise.
20806 * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
20807 * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
20808 * config/bpf/bpf.h (enum reg_class): Likewise.
20809 * config/bpf/t-bpf: Likewise.
20810 * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
20811 * config/cr16/cr16-protos.h: Likewise.
20812 * config/cris/cris.cc (cris_address_cost): Likewise.
20813 (cris_side_effect_mode_ok): Likewise.
20814 (cris_init_machine_status): Likewise.
20815 (cris_emit_movem_store): Likewise.
20816 * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
20817 (enum reg_class): Likewise.
20818 (struct cum_args): Likewise.
20819 * config/cris/cris.opt: Likewise.
20820 * config/cris/sync.md: Likewise.
20821 * config/csky/csky.cc (csky_expand_prologue): Likewise.
20822 * config/darwin-c.cc: Likewise.
20823 * config/darwin-f.cc: Likewise.
20824 * config/darwin-sections.def (zobj_const_section): Likewise.
20825 * config/darwin.cc (output_objc_section_asm_op): Likewise.
20826 (fprintf): Likewise.
20827 * config/darwin.h (GTY): Likewise.
20828 * config/elfos.h: Likewise.
20829 * config/epiphany/epiphany-sched.md: Likewise.
20830 * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
20831 * config/epiphany/epiphany.h (GTY): Likewise.
20832 (NO_FUNCTION_CSE): Likewise.
20833 * config/epiphany/mode-switch-use.cc: Likewise.
20834 * config/epiphany/predicates.md: Likewise.
20835 * config/epiphany/t-epiphany: Likewise.
20836 * config/fr30/fr30-protos.h: Likewise.
20837 * config/frv/frv-protos.h: Likewise.
20838 * config/frv/frv.cc (TLS_BIAS): Likewise.
20839 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
20840 * config/ft32/ft32-protos.h: Likewise.
20841 * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
20842 * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
20843 * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
20844 * config/gcn/t-gcn-hsa: Likewise.
20845 * config/gcn/t-omp-device: Likewise.
20846 * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
20847 (same_cmp_following_p): Likewise.
20848 * config/h8300/h8300.cc (F): Likewise.
20849 * config/h8300/h8300.h (struct cum_arg): Likewise.
20850 (BRANCH_COST): Likewise.
20851 * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
20852 * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
20853 * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
20854 * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
20855 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
20856 * config/i386/i386-c.cc (ix86_target_macros): Likewise.
20857 * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
20858 * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
20859 * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
20860 (ix86_register_pragmas): Likewise.
20861 (ix86_d_has_stdcall_convention): Likewise.
20862 (i386_pe_seh_init_sections): Likewise.
20863 * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
20864 (ix86_function_value_regno_p): Likewise.
20865 (ix86_compute_frame_layout): Likewise.
20866 (legitimize_pe_coff_symbol): Likewise.
20867 (output_pic_addr_const): Likewise.
20868 * config/i386/i386.h (defined): Likewise.
20869 (host_detect_local_cpu): Likewise.
20870 (CONSTANT_ADDRESS_P): Likewise.
20871 (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
20872 (struct machine_frame_state): Likewise.
20873 * config/i386/i386.md: Likewise.
20874 * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
20875 * config/i386/mmx.md: Likewise.
20876 * config/i386/sse.md: Likewise.
20877 * config/i386/t-cygming: Likewise.
20878 * config/i386/t-djgpp: Likewise.
20879 * config/i386/t-gnu-property: Likewise.
20880 * config/i386/t-i386: Likewise.
20881 * config/i386/t-intelmic: Likewise.
20882 * config/i386/t-omp-device: Likewise.
20883 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
20884 (i386_pe_adjust_class_at_definition): Likewise.
20885 * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
20886 (i386_pe_mangle_decl_assembler_name): Likewise.
20887 (i386_pe_encode_section_info): Likewise.
20888 * config/i386/x-cygwin: Likewise.
20889 * config/i386/x-darwin: Likewise.
20890 * config/i386/x-i386: Likewise.
20891 * config/i386/x-mingw32: Likewise.
20892 * config/i386/x86-tune-sched-core.cc: Likewise.
20893 * config/i386/x86-tune.def: Likewise.
20894 * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
20895 * config/ia64/freebsd.h: Likewise.
20896 * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
20897 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
20898 * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
20899 (ia64_secondary_reload_class): Likewise.
20900 (bundling): Likewise.
20901 * config/ia64/ia64.h: Likewise.
20902 * config/ia64/ia64.md: Likewise.
20903 * config/ia64/predicates.md: Likewise.
20904 * config/ia64/sysv4.h: Likewise.
20905 * config/ia64/t-ia64: Likewise.
20906 * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
20907 * config/iq2000/iq2000.md: Likewise.
20908 * config/linux.h (TARGET_HAS_BIONIC): Likewise.
20909 (if): Likewise.
20910 * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
20911 * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
20912 * config/m32c/t-m32c: Likewise.
20913 * config/m32r/m32r-protos.h: Likewise.
20914 * config/m32r/m32r.cc (m32r_print_operand): Likewise.
20915 * config/m32r/m32r.h: Likewise.
20916 * config/m32r/m32r.md: Likewise.
20917 * config/m68k/m68k-isas.def: Likewise.
20918 * config/m68k/m68k-microarchs.def: Likewise.
20919 * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
20920 (m68k_epilogue_uses): Likewise.
20921 * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
20922 (m68k_sched_adjust_cost): Likewise.
20923 (m68k_sched_md_init): Likewise.
20924 * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
20925 (enum m68k_function_kind): Likewise.
20926 * config/m68k/m68k.md: Likewise.
20927 * config/m68k/m68kemb.h: Likewise.
20928 * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
20929 * config/mcore/mcore-protos.h: Likewise.
20930 * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
20931 (mcore_expand_prolog): Likewise.
20932 * config/mcore/mcore.h (TARGET_MCORE): Likewise.
20933 * config/mcore/mcore.md: Likewise.
20934 * config/microblaze/microblaze-protos.h: Likewise.
20935 * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
20936 (microblaze_function_prologue): Likewise.
20937 (microblaze_function_epilogue): Likewise.
20938 (microblaze_select_section): Likewise.
20939 (microblaze_asm_output_mi_thunk): Likewise.
20940 (microblaze_eh_return): Likewise.
20941 * config/microblaze/microblaze.h: Likewise.
20942 * config/microblaze/microblaze.md: Likewise.
20943 * config/microblaze/t-microblaze: Likewise.
20944 * config/mips/driver-native.cc: Likewise.
20945 * config/mips/loongson2ef.md: Likewise.
20946 * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
20947 * config/mips/mips.cc (mips_rtx_costs): Likewise.
20948 (mips_output_filename): Likewise.
20949 (mips_output_function_prologue): Likewise.
20950 (mips_output_function_epilogue): Likewise.
20951 (mips_output_mi_thunk): Likewise.
20952 * config/mips/mips.h: Likewise.
20953 * config/mips/mips.md: Likewise.
20954 * config/mips/t-mips: Likewise.
20955 * config/mips/x-native: Likewise.
20956 * config/mmix/mmix-protos.h: Likewise.
20957 * config/mmix/mmix.cc (mmix_option_override): Likewise.
20958 (mmix_dbx_register_number): Likewise.
20959 (mmix_expand_prologue): Likewise.
20960 * config/mmix/mmix.h: Likewise.
20961 * config/mmix/mmix.md: Likewise.
20962 * config/mmix/predicates.md: Likewise.
20963 * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
20964 (mn10300_legitimate_pic_operand_p): Likewise.
20965 * config/mn10300/mn10300.h (enum reg_class): Likewise.
20966 (NO_FUNCTION_CSE): Likewise.
20967 * config/moxie/moxie-protos.h: Likewise.
20968 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
20969 * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
20970 * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
20971 (msp430_incoming_return_addr_rtx): Likewise.
20972 * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
20973 * config/msp430/t-msp430: Likewise.
20974 * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
20975 (nds32_rtx_costs_size_prefer): Likewise.
20976 (nds32_init_rtx_costs): Likewise.
20977 * config/nds32/nds32-doubleword.md: Likewise.
20978 * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
20979 (nds32_builtin_decl): Likewise.
20980 * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
20981 (enum nds32_isr_nested_type): Likewise.
20982 (enum reg_class): Likewise.
20983 * config/nds32/predicates.md: Likewise.
20984 * config/nds32/t-nds32: Likewise.
20985 * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
20986 * config/nvptx/nvptx-protos.h: Likewise.
20987 * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
20988 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
20989 * config/nvptx/t-nvptx: Likewise.
20990 * config/nvptx/t-omp-device: Likewise.
20991 * config/pa/elf.h: Likewise.
20992 * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
20993 * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
20994 * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
20995 * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
20996 (pa_legitimize_reload_address): Likewise.
20997 (pa_can_use_return_insn): Likewise.
20998 * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
20999 (som_output_text_section_asm_op): Likewise.
21000 * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
21001 * config/pa/pa.md: Likewise.
21002 * config/pa/som.h: Likewise.
21003 * config/pa/t-pa: Likewise.
21004 * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
21005 * config/pdp11/pdp11.h: Likewise.
21006 * config/pdp11/pdp11.md: Likewise.
21007 * config/pdp11/t-pdp11: Likewise.
21008 * config/pru/pru.md: Likewise.
21009 * config/pru/t-pru: Likewise.
21010 * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
21011 (riscv_gpr_save_operation_p): Likewise.
21012 (riscv_d_register_target_info): Likewise.
21013 (riscv_init_builtins): Likewise.
21014 * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
21015 * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
21016 * config/riscv/t-riscv: Likewise.
21017 * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
21018 * config/rl78/t-rl78: Likewise.
21019 * config/rs6000/aix.h: Likewise.
21020 * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
21021 * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
21022 * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
21023 * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
21024 * config/rs6000/driver-rs6000.cc: Likewise.
21025 * config/rs6000/freebsd.h: Likewise.
21026 * config/rs6000/freebsd64.h: Likewise.
21027 * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
21028 * config/rs6000/rbtree.cc: Likewise.
21029 * config/rs6000/rbtree.h: Likewise.
21030 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
21031 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
21032 (rs6000_expand_builtin): Likewise.
21033 (rs6000_init_builtins): Likewise.
21034 * config/rs6000/rs6000-cpus.def: Likewise.
21035 * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
21036 * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
21037 (quad_address_offset_p): Likewise.
21038 * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
21039 (rs6000_emit_epilogue): Likewise.
21040 * config/rs6000/rs6000-overload.def: Likewise.
21041 * config/rs6000/rs6000-p8swap.cc: Likewise.
21042 * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
21043 (rs6000_const_f32_to_i32): Likewise.
21044 * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
21045 (rs6000_debug_legitimize_address): Likewise.
21046 (rs6000_mode_dependent_address): Likewise.
21047 (rs6000_adjust_priority): Likewise.
21048 (rs6000_c_mode_for_suffix): Likewise.
21049 * config/rs6000/rs6000.h (defined): Likewise.
21050 (LONG_DOUBLE_TYPE_SIZE): Likewise.
21051 * config/rs6000/rs6000.md: Likewise.
21052 * config/rs6000/sysv4.h: Likewise.
21053 * config/rs6000/t-linux: Likewise.
21054 * config/rs6000/t-linux64: Likewise.
21055 * config/rs6000/t-rs6000: Likewise.
21056 * config/rs6000/x-darwin: Likewise.
21057 * config/rs6000/x-darwin64: Likewise.
21058 * config/rs6000/x-rs6000: Likewise.
21059 * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
21060 * config/rx/rx.cc (rx_expand_builtin): Likewise.
21061 * config/s390/constraints.md: Likewise.
21062 * config/s390/driver-native.cc: Likewise.
21063 * config/s390/htmxlintrin.h: Likewise.
21064 * config/s390/s390-builtins.def (B_DEF): Likewise.
21065 (OB_DEF_VAR): Likewise.
21066 * config/s390/s390-builtins.h: Likewise.
21067 * config/s390/s390-c.cc: Likewise.
21068 * config/s390/s390-opts.h: Likewise.
21069 * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
21070 (s390_register_target_pragmas): Likewise.
21071 * config/s390/s390.cc (s390_init_builtins): Likewise.
21072 (s390_expand_plus_operand): Likewise.
21073 (s390_expand_atomic): Likewise.
21074 (s390_valid_target_attribute_inner_p): Likewise.
21075 * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
21076 * config/s390/s390.md: Likewise.
21077 * config/s390/t-s390: Likewise.
21078 * config/s390/vx-builtins.md: Likewise.
21079 * config/s390/x-native: Likewise.
21080 * config/sh/divtab-sh4-300.cc (main): Likewise.
21081 * config/sh/divtab-sh4.cc (main): Likewise.
21082 * config/sh/divtab.cc (main): Likewise.
21083 * config/sh/elf.h: Likewise.
21084 * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
21085 * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
21086 (sh_struct_value_rtx): Likewise.
21087 (sh_remove_reg_dead_or_unused_notes): Likewise.
21088 * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
21089 * config/sh/t-sh: Likewise.
21090 * config/sol2-protos.h (solaris_override_options): Likewise.
21091 * config/sol2.h: Likewise.
21092 * config/sparc/driver-sparc.cc: Likewise.
21093 * config/sparc/freebsd.h: Likewise.
21094 * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
21095 * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
21096 (sparc_asan_shadow_offset): Likewise.
21097 * config/sparc/sparc.h: Likewise.
21098 * config/sparc/sparc.md: Likewise.
21099 * config/sparc/t-sparc: Likewise.
21100 * config/sparc/x-sparc: Likewise.
21101 * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
21102 * config/t-darwin: Likewise.
21103 * config/t-dragonfly: Likewise.
21104 * config/t-freebsd: Likewise.
21105 * config/t-glibc: Likewise.
21106 * config/t-linux: Likewise.
21107 * config/t-netbsd: Likewise.
21108 * config/t-openbsd: Likewise.
21109 * config/t-pnt16-warn: Likewise.
21110 * config/t-sol2: Likewise.
21111 * config/t-vxworks: Likewise.
21112 * config/t-winnt: Likewise.
21113 * config/tilegx/t-tilegx: Likewise.
21114 * config/tilegx/tilegx-c.cc: Likewise.
21115 * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
21116 * config/tilegx/tilegx.md: Likewise.
21117 * config/tilepro/t-tilepro: Likewise.
21118 * config/tilepro/tilepro-c.cc: Likewise.
21119 * config/v850/t-v850: Likewise.
21120 * config/v850/v850-protos.h: Likewise.
21121 * config/v850/v850.cc (F): Likewise.
21122 * config/v850/v850.h (enum reg_class): Likewise.
21123 (SLOW_BYTE_ACCESS): Likewise.
21124 * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
21125 * config/vax/vax.h (enum reg_class): Likewise.
21126 * config/vax/vax.md: Likewise.
21127 * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
21128 * config/visium/visium.h: Likewise.
21129 * config/vms/t-vms: Likewise.
21130 * config/vms/vms-crtlmap.map: Likewise.
21131 * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
21132 * config/vx-common.h: Likewise.
21133 * config/x-darwin: Likewise.
21134 * config/x-hpux: Likewise.
21135 * config/x-linux: Likewise.
21136 * config/x-netbsd: Likewise.
21137 * config/x-openbsd: Likewise.
21138 * config/x-solaris: Likewise.
21139 * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
21140 * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
21141 * config/xtensa/xtensa.h: Likewise.
21142 * configure.ac: Likewise.
21143 * context.cc: Likewise.
21144 * convert.h: Likewise.
21145 * coretypes.h: Likewise.
21146 * coverage.cc: Likewise.
21147 * coverage.h: Likewise.
21148 * cppdefault.h (struct default_include): Likewise.
21149 * cprop.cc (local_cprop_pass): Likewise.
21150 (one_cprop_pass): Likewise.
21151 * cse.cc (hash_rtx_cb): Likewise.
21152 (fold_rtx): Likewise.
21153 * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
21154 * data-streamer.h (bp_unpack_var_len_int): Likewise.
21155 (streamer_write_widest_int): Likewise.
21156 * dbgcnt.def: Likewise.
21157 * dbxout.cc (dbxout_early_global_decl): Likewise.
21158 (dbxout_common_check): Likewise.
21159 * dbxout.h: Likewise.
21160 * debug.h (struct gcc_debug_hooks): Likewise.
21161 (dump_go_spec_init): Likewise.
21162 * df-core.cc: Likewise.
21163 * df-scan.cc (df_insn_info_delete): Likewise.
21164 (df_insn_delete): Likewise.
21165 * df.h (debug_df_chain): Likewise.
21166 (can_move_insns_across): Likewise.
21167 * dfp.cc (decimal_from_binary): Likewise.
21168 * diagnostic-color.cc: Likewise.
21169 * diagnostic-event-id.h: Likewise.
21170 * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
21171 * diagnostic.cc (bt_callback): Likewise.
21172 (num_digits): Likewise.
21173 * doc/avr-mmcu.texi: Likewise.
21174 * doc/cfg.texi: Likewise.
21175 * doc/contrib.texi: Likewise.
21176 * doc/cppinternals.texi: Likewise.
21177 * doc/extend.texi: Likewise.
21178 * doc/generic.texi: Likewise.
21179 * doc/gimple.texi: Likewise.
21180 * doc/gty.texi: Likewise.
21181 * doc/invoke.texi: Likewise.
21182 * doc/loop.texi: Likewise.
21183 * doc/lto.texi: Likewise.
21184 * doc/match-and-simplify.texi: Likewise.
21185 * doc/md.texi: Likewise.
21186 * doc/optinfo.texi: Likewise.
21187 * doc/options.texi: Likewise.
21188 * doc/passes.texi: Likewise.
21189 * doc/plugins.texi: Likewise.
21190 * doc/rtl.texi: Likewise.
21191 * doc/sourcebuild.texi: Likewise.
21192 * doc/tm.texi: Likewise.
21193 * doc/tm.texi.in: Likewise.
21194 * doc/tree-ssa.texi: Likewise.
21195 * dojump.cc (do_jump): Likewise.
21196 * dojump.h: Likewise.
21197 * dumpfile.cc (test_impl_location): Likewise.
21198 (test_capture_of_dump_calls): Likewise.
21199 * dumpfile.h (enum dump_kind): Likewise.
21200 (class dump_location_t): Likewise.
21201 (dump_enabled_p): Likewise.
21202 (enable_rtl_dump_file): Likewise.
21203 (dump_combine_total_stats): Likewise.
21204 * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
21205 * dwarf2ctf.h (ctf_debug_finish): Likewise.
21206 * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
21207 (struct loc_descr_context): Likewise.
21208 (rtl_for_decl_location): Likewise.
21209 (gen_subprogram_die): Likewise.
21210 (gen_label_die): Likewise.
21211 (is_trivial_indirect_ref): Likewise.
21212 (dwarf2out_late_global_decl): Likewise.
21213 (dwarf_file_hasher::hash): Likewise.
21214 (dwarf2out_end_source_file): Likewise.
21215 (dwarf2out_define): Likewise.
21216 (dwarf2out_early_finish): Likewise.
21217 * dwarf2out.h (struct dw_fde_node): Likewise.
21218 (struct dw_discr_list_node): Likewise.
21219 (output_loc_sequence_raw): Likewise.
21220 * emit-rtl.cc (gen_raw_REG): Likewise.
21221 (maybe_set_max_label_num): Likewise.
21222 * emit-rtl.h (struct rtl_data): Likewise.
21223 * errors.cc (internal_error): Likewise.
21224 (trim_filename): Likewise.
21225 * et-forest.cc: Likewise.
21226 * except.cc (init_eh_for_function): Likewise.
21227 * explow.cc (promote_ssa_mode): Likewise.
21228 (get_dynamic_stack_size): Likewise.
21229 * explow.h: Likewise.
21230 * expmed.h: Likewise.
21231 * expr.cc (safe_from_p): Likewise.
21232 (expand_expr_real_2): Likewise.
21233 (expand_expr_real_1): Likewise.
21234 * file-prefix-map.cc (remap_filename): Likewise.
21235 * final.cc (app_enable): Likewise.
21236 (make_pass_compute_alignments): Likewise.
21237 (final_scan_insn_1): Likewise.
21238 (final_scan_insn): Likewise.
21239 * fixed-value.h (fixed_from_string): Likewise.
21240 * flag-types.h (NO_DEBUG): Likewise.
21241 (DWARF2_DEBUG): Likewise.
21242 (VMS_DEBUG): Likewise.
21243 (BTF_DEBUG): Likewise.
21244 (enum ctf_debug_info_levels): Likewise.
21245 * fold-const.cc (const_binop): Likewise.
21246 (fold_binary_loc): Likewise.
21247 (fold_checksum_tree): Likewise.
21248 * fp-test.cc: Likewise.
21249 * function.cc (expand_function_end): Likewise.
21250 * function.h (struct function): Likewise.
21251 * fwprop.cc (should_replace_address): Likewise.
21252 * gcc-main.cc: Likewise.
21253 * gcc-rich-location.h (class gcc_rich_location): Likewise.
21254 * gcc-symtab.h: Likewise.
21255 * gcc.cc (MIN_FATAL_STATUS): Likewise.
21256 (driver_handle_option): Likewise.
21257 (quote_spec_arg): Likewise.
21258 (driver::finalize): Likewise.
21259 * gcc.h (set_input): Likewise.
21260 * gcov-dump.cc: Likewise.
21261 * gcov.cc (solve_flow_graph): Likewise.
21262 * gcse-common.cc: Likewise.
21263 * gcse.cc (make_pass_rtl_hoist): Likewise.
21264 * genattr-common.cc: Likewise.
21265 * genattrtab.cc (min_fn): Likewise.
21266 (write_const_num_delay_slots): Likewise.
21267 * genautomata.cc: Likewise.
21268 * genconditions.cc (write_one_condition): Likewise.
21269 * genconstants.cc: Likewise.
21270 * genemit.cc (gen_exp): Likewise.
21271 * generic-match-head.cc: Likewise.
21272 * genextract.cc: Likewise.
21273 * gengenrtl.cc (always_void_p): Likewise.
21274 * gengtype-parse.cc (gtymarker_opt): Likewise.
21275 * gengtype-state.cc (state_writer::state_writer): Likewise.
21276 (write_state_trailer): Likewise.
21277 (equals_type_number): Likewise.
21278 (read_state): Likewise.
21279 * gengtype.cc (open_base_files): Likewise.
21280 (struct file_rule_st): Likewise.
21281 (header_dot_h_frul): Likewise.
21282 * gengtype.h: Likewise.
21283 * genmatch.cc (main): Likewise.
21284 * genmddeps.cc: Likewise.
21285 * genmodes.cc (emit_mode_inner): Likewise.
21286 (emit_mode_unit_size): Likewise.
21287 * genpeep.cc (gen_peephole): Likewise.
21288 * genpreds.cc (write_tm_preds_h): Likewise.
21289 * genrecog.cc (validate_pattern): Likewise.
21290 (write_header): Likewise.
21291 (main): Likewise.
21292 * gensupport.cc (change_subst_attribute): Likewise.
21293 (traverse_c_tests): Likewise.
21294 (add_predicate): Likewise.
21295 (init_predicate_table): Likewise.
21296 * gensupport.h (struct optab_pattern): Likewise.
21297 (get_num_insn_codes): Likewise.
21298 (maybe_eval_c_test): Likewise.
21299 (struct pred_data): Likewise.
21300 * ggc-internal.h: Likewise.
21301 * gimple-fold.cc (maybe_fold_reference): Likewise.
21302 (get_range_strlen_tree): Likewise.
21303 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
21304 * gimple-low.cc: Likewise.
21305 * gimple-match-head.cc (directly_supported_p): Likewise.
21306 * gimple-pretty-print.h: Likewise.
21307 * gimple-ssa-sprintf.cc (format_percent): Likewise.
21308 (adjust_range_for_overflow): Likewise.
21309 * gimple-streamer.h: Likewise.
21310 * gimple.h (struct GTY): Likewise.
21311 (is_gimple_resx): Likewise.
21312 * gimplify.cc (gimplify_expr): Likewise.
21313 (gimplify_init_constructor): Likewise.
21314 (omp_construct_selector_matches): Likewise.
21315 (gimplify_omp_target_update): Likewise.
21316 (gimplify_omp_ordered): Likewise.
21317 (gimplify_va_arg_expr): Likewise.
21318 * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
21319 * haifa-sched.cc (increase_insn_priority): Likewise.
21320 (try_ready): Likewise.
21321 (sched_create_recovery_edges): Likewise.
21322 * ifcvt.cc (find_if_case_1): Likewise.
21323 (find_if_case_2): Likewise.
21324 * inchash.h: Likewise.
21325 * incpath.cc (add_env_var_paths): Likewise.
21326 * input.cc (dump_location_info): Likewise.
21327 (assert_loceq): Likewise.
21328 (test_lexer_string_locations_concatenation_1): Likewise.
21329 (test_lexer_string_locations_concatenation_2): Likewise.
21330 (test_lexer_string_locations_concatenation_3): Likewise.
21331 * input.h (BUILTINS_LOCATION): Likewise.
21332 (class string_concat_db): Likewise.
21333 * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
21334 (expand_LOOP_VECTORIZED): Likewise.
21335 * ipa-cp.cc (make_pass_ipa_cp): Likewise.
21336 * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
21337 (ipa_fn_summary_t::duplicate): Likewise.
21338 (make_pass_ipa_fn_summary): Likewise.
21339 * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
21340 * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
21341 (free_lang_data_in_decl): Likewise.
21342 * ipa-inline.cc (compute_inlined_call_time): Likewise.
21343 (inline_always_inline_functions): Likewise.
21344 * ipa-inline.h (free_growth_caches): Likewise.
21345 (inline_account_function_p): Likewise.
21346 * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
21347 (modref_eaf_analysis::analyze_ssa_name): Likewise.
21348 * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
21349 (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
21350 * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
21351 * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
21352 (unadjusted_ptr_and_unit_offset): Likewise.
21353 * ipa-reference.cc (make_pass_ipa_reference): Likewise.
21354 * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
21355 * ipa-split.cc (consider_split): Likewise.
21356 * ipa-sra.cc (isra_read_node_info): Likewise.
21357 * ipa-utils.h (struct ipa_dfs_info): Likewise.
21358 (recursive_call_p): Likewise.
21359 (ipa_make_function_pure): Likewise.
21360 * ira-build.cc (ira_create_allocno): Likewise.
21361 (ira_flattening): Likewise.
21362 * ira-color.cc (do_coloring): Likewise.
21363 (update_curr_costs): Likewise.
21364 * ira-conflicts.cc (process_regs_for_copy): Likewise.
21365 * ira-int.h (struct ira_emit_data): Likewise.
21366 (ira_prohibited_mode_move_regs): Likewise.
21367 (ira_get_dup_out_num): Likewise.
21368 (ira_destroy): Likewise.
21369 (ira_tune_allocno_costs): Likewise.
21370 (ira_implicitly_set_insn_hard_regs): Likewise.
21371 (ira_build_conflicts): Likewise.
21372 (ira_color): Likewise.
21373 * ira-lives.cc (process_bb_node_lives): Likewise.
21374 * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
21375 (setup_uniform_class_p): Likewise.
21376 (def_dominates_uses): Likewise.
21377 * ira.h (ira_nullify_asm_goto): Likewise.
21378 * langhooks.cc (lhd_post_options): Likewise.
21379 * langhooks.h (class substring_loc): Likewise.
21380 (struct lang_hooks_for_tree_inlining): Likewise.
21381 (struct lang_hooks_for_types): Likewise.
21382 (struct lang_hooks): Likewise.
21383 * libfuncs.h (synchronize_libfunc): Likewise.
21384 * loop-doloop.cc (doloop_condition_get): Likewise.
21385 * loop-init.cc (fix_loop_structure): Likewise.
21386 * loop-invariant.cc: Likewise.
21387 * lower-subreg.h: Likewise.
21388 * lra-constraints.cc (curr_insn_transform): Likewise.
21389 * lra-int.h (struct lra_insn_reg): Likewise.
21390 (lra_undo_inheritance): Likewise.
21391 (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
21392 (lra_split_hard_reg_for): Likewise.
21393 (lra_coalesce): Likewise.
21394 (lra_final_code_change): Likewise.
21395 * lra-spills.cc (lra_final_code_change): Likewise.
21396 * lra.cc (lra_process_new_insns): Likewise.
21397 * lto-compress.h (struct lto_compression_stream): Likewise.
21398 * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
21399 (write_symbol): Likewise.
21400 * lto-streamer.h (enum LTO_tags): Likewise.
21401 (lto_value_range_error): Likewise.
21402 (lto_append_block): Likewise.
21403 (lto_streamer_hooks_init): Likewise.
21404 (stream_read_tree_ref): Likewise.
21405 (lto_prepare_function_for_streaming): Likewise.
21406 (select_what_to_stream): Likewise.
21407 (omp_lto_input_declare_variant_alt): Likewise.
21408 (cl_optimization_stream_in): Likewise.
21409 * lto-wrapper.cc (append_compiler_options): Likewise.
21410 * machmode.def: Likewise.
21411 * machmode.h (struct int_n_data_t): Likewise.
21412 * main.cc (main): Likewise.
21413 * match.pd: Likewise.
21414 * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
21415 (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
21416 * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
21417 (make_pass_expand_omp_ssa): Likewise.
21418 * omp-low.cc (struct omp_context): Likewise.
21419 (struct omp_taskcopy_context): Likewise.
21420 (lower_omp): Likewise.
21421 * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
21422 (mask_name): Likewise.
21423 (omp_sese_dump_pars): Likewise.
21424 (worker_single_simple): Likewise.
21425 * omp-offload.cc (omp_finish_file): Likewise.
21426 (execute_oacc_loop_designation): Likewise.
21427 * optabs-query.cc (lshift_cheap_p): Likewise.
21428 * optc-gen.awk: Likewise.
21429 * optc-save-gen.awk: Likewise.
21430 * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
21431 * opts-common.cc: Likewise.
21432 * output.h (app_enable): Likewise.
21433 (output_operand_lossage): Likewise.
21434 (insn_current_reference_address): Likewise.
21435 (get_insn_template): Likewise.
21436 (output_quoted_string): Likewise.
21437 * pass_manager.h (struct register_pass_info): Likewise.
21438 * plugin.cc: Likewise.
21439 * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
21440 * plugin.h (invoke_plugin_callbacks): Likewise.
21441 * pointer-query.cc (handle_mem_ref): Likewise.
21442 * postreload-gcse.cc (alloc_mem): Likewise.
21443 * predict.h (enum prediction): Likewise.
21444 (add_reg_br_prob_note): Likewise.
21445 * prefix.h: Likewise.
21446 * profile.h (get_working_sets): Likewise.
21447 * read-md.cc: Likewise.
21448 * read-md.h (struct mapping): Likewise.
21449 (class md_reader): Likewise.
21450 (class noop_reader): Likewise.
21451 * read-rtl-function.cc (function_reader::create_function): Likewise.
21452 (function_reader::extra_parsing_for_operand_code_0): Likewise.
21453 * read-rtl.cc (initialize_iterators): Likewise.
21454 * real.cc: Likewise.
21455 * real.h (struct real_value): Likewise.
21456 (format_helper::format_helper): Likewise.
21457 (real_hash): Likewise.
21458 (real_can_shorten_arithmetic): Likewise.
21459 * recog.cc (struct target_recog): Likewise.
21460 (offsettable_nonstrict_memref_p): Likewise.
21461 (constrain_operands): Likewise.
21462 * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
21463 (which_op_alt): Likewise.
21464 (struct insn_gen_fn): Likewise.
21465 * reg-notes.def (REG_NOTE): Likewise.
21466 * reg-stack.cc: Likewise.
21467 * regs.h (reg_is_parm_p): Likewise.
21468 * regset.h: Likewise.
21469 * reload.cc (push_reload): Likewise.
21470 (find_reloads): Likewise.
21471 (find_reloads_address_1): Likewise.
21472 (find_replacement): Likewise.
21473 (refers_to_regno_for_reload_p): Likewise.
21474 (refers_to_mem_for_reload_p): Likewise.
21475 * reload.h (push_reload): Likewise.
21476 (deallocate_reload_reg): Likewise.
21477 * reload1.cc (emit_input_reload_insns): Likewise.
21478 * reorg.cc (relax_delay_slots): Likewise.
21479 * rtl.def (UNKNOWN): Likewise.
21480 (SEQUENCE): Likewise.
21481 (BARRIER): Likewise.
21482 (ASM_OPERANDS): Likewise.
21483 (EQ_ATTR_ALT): Likewise.
21484 * rtl.h (struct GTY): Likewise.
21485 (LABEL_NAME): Likewise.
21486 (LABEL_ALT_ENTRY_P): Likewise.
21487 (SUBREG_BYTE): Likewise.
21488 (get_stack_check_protect): Likewise.
21489 (dump_rtx_statistics): Likewise.
21490 (unwrap_const_vec_duplicate): Likewise.
21491 (subreg_promoted_mode): Likewise.
21492 (gen_lowpart_common): Likewise.
21493 (operand_subword): Likewise.
21494 (immed_wide_int_const): Likewise.
21495 (decide_function_section): Likewise.
21496 (active_insn_p): Likewise.
21497 (delete_related_insns): Likewise.
21498 (try_split): Likewise.
21499 (val_signbit_known_clear_p): Likewise.
21500 (simplifiable_subregs): Likewise.
21501 (set_insn_deleted): Likewise.
21502 (subreg_get_info): Likewise.
21503 (remove_free_EXPR_LIST_node): Likewise.
21504 (finish_subregs_of_mode): Likewise.
21505 (get_mem_attrs): Likewise.
21506 (lookup_constant_def): Likewise.
21507 (rtx_to_tree_code): Likewise.
21508 (hash_rtx): Likewise.
21509 (condjump_in_parallel_p): Likewise.
21510 (validate_subreg): Likewise.
21511 (make_compound_operation): Likewise.
21512 (schedule_ebbs): Likewise.
21513 (print_inline_rtx): Likewise.
21514 (fixup_args_size_notes): Likewise.
21515 (expand_dec): Likewise.
21516 (prepare_copy_insn): Likewise.
21517 (mark_elimination): Likewise.
21518 (valid_mode_changes_for_regno): Likewise.
21519 (make_debug_expr_from_rtl): Likewise.
21520 (delete_vta_debug_insns): Likewise.
21521 (simplify_using_condition): Likewise.
21522 (set_insn_locations): Likewise.
21523 (fatal_insn_not_found): Likewise.
21524 (word_register_operation_p): Likewise.
21525 * rtlanal.cc (get_call_fndecl): Likewise.
21526 (side_effects_p): Likewise.
21527 (subreg_nregs): Likewise.
21528 (rtx_cost): Likewise.
21529 (canonicalize_condition): Likewise.
21530 * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
21531 * run-rtl-passes.cc (run_rtl_passes): Likewise.
21532 * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
21533 * sched-deps.cc (add_dependence_1): Likewise.
21534 * sched-ebb.cc (begin_move_insn): Likewise.
21535 (add_deps_for_risky_insns): Likewise.
21536 (advance_target_bb): Likewise.
21537 * sched-int.h (reemit_notes): Likewise.
21538 (struct _haifa_insn_data): Likewise.
21539 (HID): Likewise.
21540 (DEP_CANCELLED): Likewise.
21541 (debug_ds): Likewise.
21542 (number_in_ready): Likewise.
21543 (schedule_ebbs_finish): Likewise.
21544 (find_modifiable_mems): Likewise.
21545 * sched-rgn.cc (debug_rgn_dependencies): Likewise.
21546 * sel-sched-dump.cc (dump_lv_set): Likewise.
21547 * sel-sched-dump.h: Likewise.
21548 * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
21549 (setup_id_reg_sets): Likewise.
21550 (has_dependence_p): Likewise.
21551 (sel_num_cfg_preds_gt_1): Likewise.
21552 (bb_ends_ebb_p): Likewise.
21553 * sel-sched-ir.h (struct _list_node): Likewise.
21554 (struct idata_def): Likewise.
21555 (bb_next_bb): Likewise.
21556 * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
21557 (choose_best_pseudo_reg): Likewise.
21558 (verify_target_availability): Likewise.
21559 (can_speculate_dep_p): Likewise.
21560 (sel_rank_for_schedule): Likewise.
21561 * selftest-run-tests.cc (selftest::run_tests): Likewise.
21562 * selftest.h (class auto_fix_quotes): Likewise.
21563 * shrink-wrap.cc (handle_simple_exit): Likewise.
21564 * shrink-wrap.h: Likewise.
21565 * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
21566 (simplify_context::simplify_gen_vec_select): Likewise.
21567 * spellcheck-tree.h: Likewise.
21568 * spellcheck.h: Likewise.
21569 * statistics.h (struct function): Likewise.
21570 * stmt.cc (conditional_probability): Likewise.
21571 * stmt.h: Likewise.
21572 * stor-layout.h: Likewise.
21573 * streamer-hooks.h: Likewise.
21574 * stringpool.h: Likewise.
21575 * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
21576 * target.def (HOOK_VECTOR_END): Likewise.
21577 (type.): Likewise.
21578 * target.h (union cumulative_args_t): Likewise.
21579 (by_pieces_ninsns): Likewise.
21580 (class predefined_function_abi): Likewise.
21581 * targhooks.cc (default_translate_mode_attribute): Likewise.
21582 * timevar.def: Likewise.
21583 * timevar.h (class timer): Likewise.
21584 * toplev.h (enable_rtl_dump_file): Likewise.
21585 * trans-mem.cc (collect_bb2reg): Likewise.
21586 * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
21587 * tree-cfg.cc (remove_bb): Likewise.
21588 (verify_gimple_debug): Likewise.
21589 (remove_edge_and_dominated_blocks): Likewise.
21590 (push_fndecl): Likewise.
21591 * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
21592 * tree-complex.cc (expand_complex_multiplication): Likewise.
21593 (expand_complex_div_straight): Likewise.
21594 * tree-core.h (enum tree_index): Likewise.
21595 (enum operand_equal_flag): Likewise.
21596 * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
21597 * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
21598 * tree-inline.cc (initialize_inlined_parameters): Likewise.
21599 * tree-inline.h (force_value_to_type): Likewise.
21600 * tree-nested.cc (get_chain_decl): Likewise.
21601 (walk_all_functions): Likewise.
21602 * tree-object-size.h: Likewise.
21603 * tree-outof-ssa.cc: Likewise.
21604 * tree-parloops.cc (create_parallel_loop): Likewise.
21605 * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
21606 (dump_generic_node): Likewise.
21607 * tree-profile.cc (tree_profiling): Likewise.
21608 * tree-sra.cc (maybe_add_sra_candidate): Likewise.
21609 * tree-ssa-address.cc: Likewise.
21610 * tree-ssa-alias.cc: Likewise.
21611 * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
21612 (dump_alias_stats): Likewise.
21613 * tree-ssa-ccp.cc: Likewise.
21614 * tree-ssa-coalesce.h: Likewise.
21615 * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
21616 * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
21617 * tree-ssa-loop-unswitch.cc: Likewise.
21618 * tree-ssa-math-opts.cc: Likewise.
21619 * tree-ssa-operands.cc (class operands_scanner): Likewise.
21620 * tree-ssa-pre.cc: Likewise.
21621 * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
21622 (debug_range_entry): Likewise.
21623 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
21624 * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
21625 * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
21626 (equal_mem_array_ref_p): Likewise.
21627 * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
21628 * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
21629 * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
21630 * tree-ssa-ter.h: Likewise.
21631 * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
21632 * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
21633 * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
21634 (write_ts_block_tree_pointers): Likewise.
21635 * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
21636 (streamer_read_tree_bitfields): Likewise.
21637 (streamer_write_integer_cst): Likewise.
21638 * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
21639 (vect_synth_mult_by_constant): Likewise.
21640 * tree-vect-stmts.cc (vectorizable_operation): Likewise.
21641 * tree-vectorizer.cc: Likewise.
21642 * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
21643 (vect_update_inits_of_drs): Likewise.
21644 (vect_get_mask_type_for_stmt): Likewise.
21645 (vect_rgroup_iv_might_wrap_p): Likewise.
21646 (cse_and_gimplify_to_preheader): Likewise.
21647 (vect_free_slp_tree): Likewise.
21648 (vect_pattern_recog): Likewise.
21649 (vect_stmt_dominates_stmt_p): Likewise.
21650 * tree.cc (initialize_tree_contains_struct): Likewise.
21651 (need_assembler_name_p): Likewise.
21652 (type_with_interoperable_signedness): Likewise.
21653 * tree.def (SWITCH_EXPR): Likewise.
21654 * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
21655 (poly_int_tree_p): Likewise.
21656 (inlined_function_outer_scope_p): Likewise.
21657 (tree_code_for_canonical_type_merging): Likewise.
21658 * value-prof.cc: Likewise.
21659 * value-prof.h (get_nth_most_common_value): Likewise.
21660 (find_func_by_profile_id): Likewise.
21661 * value-range.cc (vrp_operand_equal_p): Likewise.
21662 * value-range.h: Likewise.
21663 * var-tracking.cc: Likewise.
21664 * varasm.cc (default_function_section): Likewise.
21665 (function_section_1): Likewise.
21666 (assemble_variable): Likewise.
21667 (handle_vtv_comdat_section): Likewise.
21668 * vec.h (struct vec_prefix): Likewise.
21669 * vmsdbgout.cc (full_name): Likewise.
21670 * vtable-verify.cc: Likewise.
21671 * vtable-verify.h (struct vtv_graph_node): Likewise.
21672 * xcoffout.cc: Likewise.
21673 * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
21674
21675 2022-01-17 Martin Liska <mliska@suse.cz>
21676
21677 * adjust-alignment.c: Moved to...
21678 * adjust-alignment.cc: ...here.
21679 * alias.c: Moved to...
21680 * alias.cc: ...here.
21681 * alloc-pool.c: Moved to...
21682 * alloc-pool.cc: ...here.
21683 * asan.c: Moved to...
21684 * asan.cc: ...here.
21685 * attribs.c: Moved to...
21686 * attribs.cc: ...here.
21687 * auto-inc-dec.c: Moved to...
21688 * auto-inc-dec.cc: ...here.
21689 * auto-profile.c: Moved to...
21690 * auto-profile.cc: ...here.
21691 * bb-reorder.c: Moved to...
21692 * bb-reorder.cc: ...here.
21693 * bitmap.c: Moved to...
21694 * bitmap.cc: ...here.
21695 * btfout.c: Moved to...
21696 * btfout.cc: ...here.
21697 * builtins.c: Moved to...
21698 * builtins.cc: ...here.
21699 * caller-save.c: Moved to...
21700 * caller-save.cc: ...here.
21701 * calls.c: Moved to...
21702 * calls.cc: ...here.
21703 * ccmp.c: Moved to...
21704 * ccmp.cc: ...here.
21705 * cfg.c: Moved to...
21706 * cfg.cc: ...here.
21707 * cfganal.c: Moved to...
21708 * cfganal.cc: ...here.
21709 * cfgbuild.c: Moved to...
21710 * cfgbuild.cc: ...here.
21711 * cfgcleanup.c: Moved to...
21712 * cfgcleanup.cc: ...here.
21713 * cfgexpand.c: Moved to...
21714 * cfgexpand.cc: ...here.
21715 * cfghooks.c: Moved to...
21716 * cfghooks.cc: ...here.
21717 * cfgloop.c: Moved to...
21718 * cfgloop.cc: ...here.
21719 * cfgloopanal.c: Moved to...
21720 * cfgloopanal.cc: ...here.
21721 * cfgloopmanip.c: Moved to...
21722 * cfgloopmanip.cc: ...here.
21723 * cfgrtl.c: Moved to...
21724 * cfgrtl.cc: ...here.
21725 * cgraph.c: Moved to...
21726 * cgraph.cc: ...here.
21727 * cgraphbuild.c: Moved to...
21728 * cgraphbuild.cc: ...here.
21729 * cgraphclones.c: Moved to...
21730 * cgraphclones.cc: ...here.
21731 * cgraphunit.c: Moved to...
21732 * cgraphunit.cc: ...here.
21733 * collect-utils.c: Moved to...
21734 * collect-utils.cc: ...here.
21735 * collect2-aix.c: Moved to...
21736 * collect2-aix.cc: ...here.
21737 * collect2.c: Moved to...
21738 * collect2.cc: ...here.
21739 * combine-stack-adj.c: Moved to...
21740 * combine-stack-adj.cc: ...here.
21741 * combine.c: Moved to...
21742 * combine.cc: ...here.
21743 * common/common-targhooks.c: Moved to...
21744 * common/common-targhooks.cc: ...here.
21745 * common/config/aarch64/aarch64-common.c: Moved to...
21746 * common/config/aarch64/aarch64-common.cc: ...here.
21747 * common/config/alpha/alpha-common.c: Moved to...
21748 * common/config/alpha/alpha-common.cc: ...here.
21749 * common/config/arc/arc-common.c: Moved to...
21750 * common/config/arc/arc-common.cc: ...here.
21751 * common/config/arm/arm-common.c: Moved to...
21752 * common/config/arm/arm-common.cc: ...here.
21753 * common/config/avr/avr-common.c: Moved to...
21754 * common/config/avr/avr-common.cc: ...here.
21755 * common/config/bfin/bfin-common.c: Moved to...
21756 * common/config/bfin/bfin-common.cc: ...here.
21757 * common/config/bpf/bpf-common.c: Moved to...
21758 * common/config/bpf/bpf-common.cc: ...here.
21759 * common/config/c6x/c6x-common.c: Moved to...
21760 * common/config/c6x/c6x-common.cc: ...here.
21761 * common/config/cr16/cr16-common.c: Moved to...
21762 * common/config/cr16/cr16-common.cc: ...here.
21763 * common/config/cris/cris-common.c: Moved to...
21764 * common/config/cris/cris-common.cc: ...here.
21765 * common/config/csky/csky-common.c: Moved to...
21766 * common/config/csky/csky-common.cc: ...here.
21767 * common/config/default-common.c: Moved to...
21768 * common/config/default-common.cc: ...here.
21769 * common/config/epiphany/epiphany-common.c: Moved to...
21770 * common/config/epiphany/epiphany-common.cc: ...here.
21771 * common/config/fr30/fr30-common.c: Moved to...
21772 * common/config/fr30/fr30-common.cc: ...here.
21773 * common/config/frv/frv-common.c: Moved to...
21774 * common/config/frv/frv-common.cc: ...here.
21775 * common/config/gcn/gcn-common.c: Moved to...
21776 * common/config/gcn/gcn-common.cc: ...here.
21777 * common/config/h8300/h8300-common.c: Moved to...
21778 * common/config/h8300/h8300-common.cc: ...here.
21779 * common/config/i386/i386-common.c: Moved to...
21780 * common/config/i386/i386-common.cc: ...here.
21781 * common/config/ia64/ia64-common.c: Moved to...
21782 * common/config/ia64/ia64-common.cc: ...here.
21783 * common/config/iq2000/iq2000-common.c: Moved to...
21784 * common/config/iq2000/iq2000-common.cc: ...here.
21785 * common/config/lm32/lm32-common.c: Moved to...
21786 * common/config/lm32/lm32-common.cc: ...here.
21787 * common/config/m32r/m32r-common.c: Moved to...
21788 * common/config/m32r/m32r-common.cc: ...here.
21789 * common/config/m68k/m68k-common.c: Moved to...
21790 * common/config/m68k/m68k-common.cc: ...here.
21791 * common/config/mcore/mcore-common.c: Moved to...
21792 * common/config/mcore/mcore-common.cc: ...here.
21793 * common/config/microblaze/microblaze-common.c: Moved to...
21794 * common/config/microblaze/microblaze-common.cc: ...here.
21795 * common/config/mips/mips-common.c: Moved to...
21796 * common/config/mips/mips-common.cc: ...here.
21797 * common/config/mmix/mmix-common.c: Moved to...
21798 * common/config/mmix/mmix-common.cc: ...here.
21799 * common/config/mn10300/mn10300-common.c: Moved to...
21800 * common/config/mn10300/mn10300-common.cc: ...here.
21801 * common/config/msp430/msp430-common.c: Moved to...
21802 * common/config/msp430/msp430-common.cc: ...here.
21803 * common/config/nds32/nds32-common.c: Moved to...
21804 * common/config/nds32/nds32-common.cc: ...here.
21805 * common/config/nios2/nios2-common.c: Moved to...
21806 * common/config/nios2/nios2-common.cc: ...here.
21807 * common/config/nvptx/nvptx-common.c: Moved to...
21808 * common/config/nvptx/nvptx-common.cc: ...here.
21809 * common/config/or1k/or1k-common.c: Moved to...
21810 * common/config/or1k/or1k-common.cc: ...here.
21811 * common/config/pa/pa-common.c: Moved to...
21812 * common/config/pa/pa-common.cc: ...here.
21813 * common/config/pdp11/pdp11-common.c: Moved to...
21814 * common/config/pdp11/pdp11-common.cc: ...here.
21815 * common/config/pru/pru-common.c: Moved to...
21816 * common/config/pru/pru-common.cc: ...here.
21817 * common/config/riscv/riscv-common.c: Moved to...
21818 * common/config/riscv/riscv-common.cc: ...here.
21819 * common/config/rs6000/rs6000-common.c: Moved to...
21820 * common/config/rs6000/rs6000-common.cc: ...here.
21821 * common/config/rx/rx-common.c: Moved to...
21822 * common/config/rx/rx-common.cc: ...here.
21823 * common/config/s390/s390-common.c: Moved to...
21824 * common/config/s390/s390-common.cc: ...here.
21825 * common/config/sh/sh-common.c: Moved to...
21826 * common/config/sh/sh-common.cc: ...here.
21827 * common/config/sparc/sparc-common.c: Moved to...
21828 * common/config/sparc/sparc-common.cc: ...here.
21829 * common/config/tilegx/tilegx-common.c: Moved to...
21830 * common/config/tilegx/tilegx-common.cc: ...here.
21831 * common/config/tilepro/tilepro-common.c: Moved to...
21832 * common/config/tilepro/tilepro-common.cc: ...here.
21833 * common/config/v850/v850-common.c: Moved to...
21834 * common/config/v850/v850-common.cc: ...here.
21835 * common/config/vax/vax-common.c: Moved to...
21836 * common/config/vax/vax-common.cc: ...here.
21837 * common/config/visium/visium-common.c: Moved to...
21838 * common/config/visium/visium-common.cc: ...here.
21839 * common/config/xstormy16/xstormy16-common.c: Moved to...
21840 * common/config/xstormy16/xstormy16-common.cc: ...here.
21841 * common/config/xtensa/xtensa-common.c: Moved to...
21842 * common/config/xtensa/xtensa-common.cc: ...here.
21843 * compare-elim.c: Moved to...
21844 * compare-elim.cc: ...here.
21845 * config/aarch64/aarch64-bti-insert.c: Moved to...
21846 * config/aarch64/aarch64-bti-insert.cc: ...here.
21847 * config/aarch64/aarch64-builtins.c: Moved to...
21848 * config/aarch64/aarch64-builtins.cc: ...here.
21849 * config/aarch64/aarch64-c.c: Moved to...
21850 * config/aarch64/aarch64-c.cc: ...here.
21851 * config/aarch64/aarch64-d.c: Moved to...
21852 * config/aarch64/aarch64-d.cc: ...here.
21853 * config/aarch64/aarch64.c: Moved to...
21854 * config/aarch64/aarch64.cc: ...here.
21855 * config/aarch64/cortex-a57-fma-steering.c: Moved to...
21856 * config/aarch64/cortex-a57-fma-steering.cc: ...here.
21857 * config/aarch64/driver-aarch64.c: Moved to...
21858 * config/aarch64/driver-aarch64.cc: ...here.
21859 * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
21860 * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
21861 * config/aarch64/host-aarch64-darwin.c: Moved to...
21862 * config/aarch64/host-aarch64-darwin.cc: ...here.
21863 * config/alpha/alpha.c: Moved to...
21864 * config/alpha/alpha.cc: ...here.
21865 * config/alpha/driver-alpha.c: Moved to...
21866 * config/alpha/driver-alpha.cc: ...here.
21867 * config/arc/arc-c.c: Moved to...
21868 * config/arc/arc-c.cc: ...here.
21869 * config/arc/arc.c: Moved to...
21870 * config/arc/arc.cc: ...here.
21871 * config/arc/driver-arc.c: Moved to...
21872 * config/arc/driver-arc.cc: ...here.
21873 * config/arm/aarch-common.c: Moved to...
21874 * config/arm/aarch-common.cc: ...here.
21875 * config/arm/arm-builtins.c: Moved to...
21876 * config/arm/arm-builtins.cc: ...here.
21877 * config/arm/arm-c.c: Moved to...
21878 * config/arm/arm-c.cc: ...here.
21879 * config/arm/arm-d.c: Moved to...
21880 * config/arm/arm-d.cc: ...here.
21881 * config/arm/arm.c: Moved to...
21882 * config/arm/arm.cc: ...here.
21883 * config/arm/driver-arm.c: Moved to...
21884 * config/arm/driver-arm.cc: ...here.
21885 * config/avr/avr-c.c: Moved to...
21886 * config/avr/avr-c.cc: ...here.
21887 * config/avr/avr-devices.c: Moved to...
21888 * config/avr/avr-devices.cc: ...here.
21889 * config/avr/avr-log.c: Moved to...
21890 * config/avr/avr-log.cc: ...here.
21891 * config/avr/avr.c: Moved to...
21892 * config/avr/avr.cc: ...here.
21893 * config/avr/driver-avr.c: Moved to...
21894 * config/avr/driver-avr.cc: ...here.
21895 * config/avr/gen-avr-mmcu-specs.c: Moved to...
21896 * config/avr/gen-avr-mmcu-specs.cc: ...here.
21897 * config/avr/gen-avr-mmcu-texi.c: Moved to...
21898 * config/avr/gen-avr-mmcu-texi.cc: ...here.
21899 * config/bfin/bfin.c: Moved to...
21900 * config/bfin/bfin.cc: ...here.
21901 * config/bpf/bpf.c: Moved to...
21902 * config/bpf/bpf.cc: ...here.
21903 * config/bpf/coreout.c: Moved to...
21904 * config/bpf/coreout.cc: ...here.
21905 * config/c6x/c6x.c: Moved to...
21906 * config/c6x/c6x.cc: ...here.
21907 * config/cr16/cr16.c: Moved to...
21908 * config/cr16/cr16.cc: ...here.
21909 * config/cris/cris.c: Moved to...
21910 * config/cris/cris.cc: ...here.
21911 * config/csky/csky.c: Moved to...
21912 * config/csky/csky.cc: ...here.
21913 * config/darwin-c.c: Moved to...
21914 * config/darwin-c.cc: ...here.
21915 * config/darwin-d.c: Moved to...
21916 * config/darwin-d.cc: ...here.
21917 * config/darwin-driver.c: Moved to...
21918 * config/darwin-driver.cc: ...here.
21919 * config/darwin-f.c: Moved to...
21920 * config/darwin-f.cc: ...here.
21921 * config/darwin.c: Moved to...
21922 * config/darwin.cc: ...here.
21923 * config/default-c.c: Moved to...
21924 * config/default-c.cc: ...here.
21925 * config/default-d.c: Moved to...
21926 * config/default-d.cc: ...here.
21927 * config/dragonfly-d.c: Moved to...
21928 * config/dragonfly-d.cc: ...here.
21929 * config/epiphany/epiphany.c: Moved to...
21930 * config/epiphany/epiphany.cc: ...here.
21931 * config/epiphany/mode-switch-use.c: Moved to...
21932 * config/epiphany/mode-switch-use.cc: ...here.
21933 * config/epiphany/resolve-sw-modes.c: Moved to...
21934 * config/epiphany/resolve-sw-modes.cc: ...here.
21935 * config/fr30/fr30.c: Moved to...
21936 * config/fr30/fr30.cc: ...here.
21937 * config/freebsd-d.c: Moved to...
21938 * config/freebsd-d.cc: ...here.
21939 * config/frv/frv.c: Moved to...
21940 * config/frv/frv.cc: ...here.
21941 * config/ft32/ft32.c: Moved to...
21942 * config/ft32/ft32.cc: ...here.
21943 * config/gcn/driver-gcn.c: Moved to...
21944 * config/gcn/driver-gcn.cc: ...here.
21945 * config/gcn/gcn-run.c: Moved to...
21946 * config/gcn/gcn-run.cc: ...here.
21947 * config/gcn/gcn-tree.c: Moved to...
21948 * config/gcn/gcn-tree.cc: ...here.
21949 * config/gcn/gcn.c: Moved to...
21950 * config/gcn/gcn.cc: ...here.
21951 * config/gcn/mkoffload.c: Moved to...
21952 * config/gcn/mkoffload.cc: ...here.
21953 * config/glibc-c.c: Moved to...
21954 * config/glibc-c.cc: ...here.
21955 * config/glibc-d.c: Moved to...
21956 * config/glibc-d.cc: ...here.
21957 * config/h8300/h8300.c: Moved to...
21958 * config/h8300/h8300.cc: ...here.
21959 * config/host-darwin.c: Moved to...
21960 * config/host-darwin.cc: ...here.
21961 * config/host-hpux.c: Moved to...
21962 * config/host-hpux.cc: ...here.
21963 * config/host-linux.c: Moved to...
21964 * config/host-linux.cc: ...here.
21965 * config/host-netbsd.c: Moved to...
21966 * config/host-netbsd.cc: ...here.
21967 * config/host-openbsd.c: Moved to...
21968 * config/host-openbsd.cc: ...here.
21969 * config/host-solaris.c: Moved to...
21970 * config/host-solaris.cc: ...here.
21971 * config/i386/djgpp.c: Moved to...
21972 * config/i386/djgpp.cc: ...here.
21973 * config/i386/driver-i386.c: Moved to...
21974 * config/i386/driver-i386.cc: ...here.
21975 * config/i386/driver-mingw32.c: Moved to...
21976 * config/i386/driver-mingw32.cc: ...here.
21977 * config/i386/gnu-property.c: Moved to...
21978 * config/i386/gnu-property.cc: ...here.
21979 * config/i386/host-cygwin.c: Moved to...
21980 * config/i386/host-cygwin.cc: ...here.
21981 * config/i386/host-i386-darwin.c: Moved to...
21982 * config/i386/host-i386-darwin.cc: ...here.
21983 * config/i386/host-mingw32.c: Moved to...
21984 * config/i386/host-mingw32.cc: ...here.
21985 * config/i386/i386-builtins.c: Moved to...
21986 * config/i386/i386-builtins.cc: ...here.
21987 * config/i386/i386-c.c: Moved to...
21988 * config/i386/i386-c.cc: ...here.
21989 * config/i386/i386-d.c: Moved to...
21990 * config/i386/i386-d.cc: ...here.
21991 * config/i386/i386-expand.c: Moved to...
21992 * config/i386/i386-expand.cc: ...here.
21993 * config/i386/i386-features.c: Moved to...
21994 * config/i386/i386-features.cc: ...here.
21995 * config/i386/i386-options.c: Moved to...
21996 * config/i386/i386-options.cc: ...here.
21997 * config/i386/i386.c: Moved to...
21998 * config/i386/i386.cc: ...here.
21999 * config/i386/intelmic-mkoffload.c: Moved to...
22000 * config/i386/intelmic-mkoffload.cc: ...here.
22001 * config/i386/msformat-c.c: Moved to...
22002 * config/i386/msformat-c.cc: ...here.
22003 * config/i386/winnt-cxx.c: Moved to...
22004 * config/i386/winnt-cxx.cc: ...here.
22005 * config/i386/winnt-d.c: Moved to...
22006 * config/i386/winnt-d.cc: ...here.
22007 * config/i386/winnt-stubs.c: Moved to...
22008 * config/i386/winnt-stubs.cc: ...here.
22009 * config/i386/winnt.c: Moved to...
22010 * config/i386/winnt.cc: ...here.
22011 * config/i386/x86-tune-sched-atom.c: Moved to...
22012 * config/i386/x86-tune-sched-atom.cc: ...here.
22013 * config/i386/x86-tune-sched-bd.c: Moved to...
22014 * config/i386/x86-tune-sched-bd.cc: ...here.
22015 * config/i386/x86-tune-sched-core.c: Moved to...
22016 * config/i386/x86-tune-sched-core.cc: ...here.
22017 * config/i386/x86-tune-sched.c: Moved to...
22018 * config/i386/x86-tune-sched.cc: ...here.
22019 * config/ia64/ia64-c.c: Moved to...
22020 * config/ia64/ia64-c.cc: ...here.
22021 * config/ia64/ia64.c: Moved to...
22022 * config/ia64/ia64.cc: ...here.
22023 * config/iq2000/iq2000.c: Moved to...
22024 * config/iq2000/iq2000.cc: ...here.
22025 * config/linux.c: Moved to...
22026 * config/linux.cc: ...here.
22027 * config/lm32/lm32.c: Moved to...
22028 * config/lm32/lm32.cc: ...here.
22029 * config/m32c/m32c-pragma.c: Moved to...
22030 * config/m32c/m32c-pragma.cc: ...here.
22031 * config/m32c/m32c.c: Moved to...
22032 * config/m32c/m32c.cc: ...here.
22033 * config/m32r/m32r.c: Moved to...
22034 * config/m32r/m32r.cc: ...here.
22035 * config/m68k/m68k.c: Moved to...
22036 * config/m68k/m68k.cc: ...here.
22037 * config/mcore/mcore.c: Moved to...
22038 * config/mcore/mcore.cc: ...here.
22039 * config/microblaze/microblaze-c.c: Moved to...
22040 * config/microblaze/microblaze-c.cc: ...here.
22041 * config/microblaze/microblaze.c: Moved to...
22042 * config/microblaze/microblaze.cc: ...here.
22043 * config/mips/driver-native.c: Moved to...
22044 * config/mips/driver-native.cc: ...here.
22045 * config/mips/frame-header-opt.c: Moved to...
22046 * config/mips/frame-header-opt.cc: ...here.
22047 * config/mips/mips-d.c: Moved to...
22048 * config/mips/mips-d.cc: ...here.
22049 * config/mips/mips.c: Moved to...
22050 * config/mips/mips.cc: ...here.
22051 * config/mmix/mmix.c: Moved to...
22052 * config/mmix/mmix.cc: ...here.
22053 * config/mn10300/mn10300.c: Moved to...
22054 * config/mn10300/mn10300.cc: ...here.
22055 * config/moxie/moxie.c: Moved to...
22056 * config/moxie/moxie.cc: ...here.
22057 * config/msp430/driver-msp430.c: Moved to...
22058 * config/msp430/driver-msp430.cc: ...here.
22059 * config/msp430/msp430-c.c: Moved to...
22060 * config/msp430/msp430-c.cc: ...here.
22061 * config/msp430/msp430-devices.c: Moved to...
22062 * config/msp430/msp430-devices.cc: ...here.
22063 * config/msp430/msp430.c: Moved to...
22064 * config/msp430/msp430.cc: ...here.
22065 * config/nds32/nds32-cost.c: Moved to...
22066 * config/nds32/nds32-cost.cc: ...here.
22067 * config/nds32/nds32-fp-as-gp.c: Moved to...
22068 * config/nds32/nds32-fp-as-gp.cc: ...here.
22069 * config/nds32/nds32-intrinsic.c: Moved to...
22070 * config/nds32/nds32-intrinsic.cc: ...here.
22071 * config/nds32/nds32-isr.c: Moved to...
22072 * config/nds32/nds32-isr.cc: ...here.
22073 * config/nds32/nds32-md-auxiliary.c: Moved to...
22074 * config/nds32/nds32-md-auxiliary.cc: ...here.
22075 * config/nds32/nds32-memory-manipulation.c: Moved to...
22076 * config/nds32/nds32-memory-manipulation.cc: ...here.
22077 * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
22078 * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
22079 * config/nds32/nds32-predicates.c: Moved to...
22080 * config/nds32/nds32-predicates.cc: ...here.
22081 * config/nds32/nds32-relax-opt.c: Moved to...
22082 * config/nds32/nds32-relax-opt.cc: ...here.
22083 * config/nds32/nds32-utils.c: Moved to...
22084 * config/nds32/nds32-utils.cc: ...here.
22085 * config/nds32/nds32.c: Moved to...
22086 * config/nds32/nds32.cc: ...here.
22087 * config/netbsd-d.c: Moved to...
22088 * config/netbsd-d.cc: ...here.
22089 * config/netbsd.c: Moved to...
22090 * config/netbsd.cc: ...here.
22091 * config/nios2/nios2.c: Moved to...
22092 * config/nios2/nios2.cc: ...here.
22093 * config/nvptx/mkoffload.c: Moved to...
22094 * config/nvptx/mkoffload.cc: ...here.
22095 * config/nvptx/nvptx-c.c: Moved to...
22096 * config/nvptx/nvptx-c.cc: ...here.
22097 * config/nvptx/nvptx.c: Moved to...
22098 * config/nvptx/nvptx.cc: ...here.
22099 * config/openbsd-d.c: Moved to...
22100 * config/openbsd-d.cc: ...here.
22101 * config/or1k/or1k.c: Moved to...
22102 * config/or1k/or1k.cc: ...here.
22103 * config/pa/pa-d.c: Moved to...
22104 * config/pa/pa-d.cc: ...here.
22105 * config/pa/pa.c: Moved to...
22106 * config/pa/pa.cc: ...here.
22107 * config/pdp11/pdp11.c: Moved to...
22108 * config/pdp11/pdp11.cc: ...here.
22109 * config/pru/pru-passes.c: Moved to...
22110 * config/pru/pru-passes.cc: ...here.
22111 * config/pru/pru-pragma.c: Moved to...
22112 * config/pru/pru-pragma.cc: ...here.
22113 * config/pru/pru.c: Moved to...
22114 * config/pru/pru.cc: ...here.
22115 * config/riscv/riscv-builtins.c: Moved to...
22116 * config/riscv/riscv-builtins.cc: ...here.
22117 * config/riscv/riscv-c.c: Moved to...
22118 * config/riscv/riscv-c.cc: ...here.
22119 * config/riscv/riscv-d.c: Moved to...
22120 * config/riscv/riscv-d.cc: ...here.
22121 * config/riscv/riscv-shorten-memrefs.c: Moved to...
22122 * config/riscv/riscv-shorten-memrefs.cc: ...here.
22123 * config/riscv/riscv-sr.c: Moved to...
22124 * config/riscv/riscv-sr.cc: ...here.
22125 * config/riscv/riscv.c: Moved to...
22126 * config/riscv/riscv.cc: ...here.
22127 * config/rl78/rl78-c.c: Moved to...
22128 * config/rl78/rl78-c.cc: ...here.
22129 * config/rl78/rl78.c: Moved to...
22130 * config/rl78/rl78.cc: ...here.
22131 * config/rs6000/driver-rs6000.c: Moved to...
22132 * config/rs6000/driver-rs6000.cc: ...here.
22133 * config/rs6000/host-darwin.c: Moved to...
22134 * config/rs6000/host-darwin.cc: ...here.
22135 * config/rs6000/host-ppc64-darwin.c: Moved to...
22136 * config/rs6000/host-ppc64-darwin.cc: ...here.
22137 * config/rs6000/rbtree.c: Moved to...
22138 * config/rs6000/rbtree.cc: ...here.
22139 * config/rs6000/rs6000-c.c: Moved to...
22140 * config/rs6000/rs6000-c.cc: ...here.
22141 * config/rs6000/rs6000-call.c: Moved to...
22142 * config/rs6000/rs6000-call.cc: ...here.
22143 * config/rs6000/rs6000-d.c: Moved to...
22144 * config/rs6000/rs6000-d.cc: ...here.
22145 * config/rs6000/rs6000-gen-builtins.c: Moved to...
22146 * config/rs6000/rs6000-gen-builtins.cc: ...here.
22147 * config/rs6000/rs6000-linux.c: Moved to...
22148 * config/rs6000/rs6000-linux.cc: ...here.
22149 * config/rs6000/rs6000-logue.c: Moved to...
22150 * config/rs6000/rs6000-logue.cc: ...here.
22151 * config/rs6000/rs6000-p8swap.c: Moved to...
22152 * config/rs6000/rs6000-p8swap.cc: ...here.
22153 * config/rs6000/rs6000-pcrel-opt.c: Moved to...
22154 * config/rs6000/rs6000-pcrel-opt.cc: ...here.
22155 * config/rs6000/rs6000-string.c: Moved to...
22156 * config/rs6000/rs6000-string.cc: ...here.
22157 * config/rs6000/rs6000.c: Moved to...
22158 * config/rs6000/rs6000.cc: ...here.
22159 * config/rx/rx.c: Moved to...
22160 * config/rx/rx.cc: ...here.
22161 * config/s390/driver-native.c: Moved to...
22162 * config/s390/driver-native.cc: ...here.
22163 * config/s390/s390-c.c: Moved to...
22164 * config/s390/s390-c.cc: ...here.
22165 * config/s390/s390-d.c: Moved to...
22166 * config/s390/s390-d.cc: ...here.
22167 * config/s390/s390.c: Moved to...
22168 * config/s390/s390.cc: ...here.
22169 * config/sh/divtab-sh4-300.c: Moved to...
22170 * config/sh/divtab-sh4-300.cc: ...here.
22171 * config/sh/divtab-sh4.c: Moved to...
22172 * config/sh/divtab-sh4.cc: ...here.
22173 * config/sh/divtab.c: Moved to...
22174 * config/sh/divtab.cc: ...here.
22175 * config/sh/sh-c.c: Moved to...
22176 * config/sh/sh-c.cc: ...here.
22177 * config/sh/sh.c: Moved to...
22178 * config/sh/sh.cc: ...here.
22179 * config/sol2-c.c: Moved to...
22180 * config/sol2-c.cc: ...here.
22181 * config/sol2-cxx.c: Moved to...
22182 * config/sol2-cxx.cc: ...here.
22183 * config/sol2-d.c: Moved to...
22184 * config/sol2-d.cc: ...here.
22185 * config/sol2-stubs.c: Moved to...
22186 * config/sol2-stubs.cc: ...here.
22187 * config/sol2.c: Moved to...
22188 * config/sol2.cc: ...here.
22189 * config/sparc/driver-sparc.c: Moved to...
22190 * config/sparc/driver-sparc.cc: ...here.
22191 * config/sparc/sparc-c.c: Moved to...
22192 * config/sparc/sparc-c.cc: ...here.
22193 * config/sparc/sparc-d.c: Moved to...
22194 * config/sparc/sparc-d.cc: ...here.
22195 * config/sparc/sparc.c: Moved to...
22196 * config/sparc/sparc.cc: ...here.
22197 * config/stormy16/stormy16.c: Moved to...
22198 * config/stormy16/stormy16.cc: ...here.
22199 * config/tilegx/mul-tables.c: Moved to...
22200 * config/tilegx/mul-tables.cc: ...here.
22201 * config/tilegx/tilegx-c.c: Moved to...
22202 * config/tilegx/tilegx-c.cc: ...here.
22203 * config/tilegx/tilegx.c: Moved to...
22204 * config/tilegx/tilegx.cc: ...here.
22205 * config/tilepro/mul-tables.c: Moved to...
22206 * config/tilepro/mul-tables.cc: ...here.
22207 * config/tilepro/tilepro-c.c: Moved to...
22208 * config/tilepro/tilepro-c.cc: ...here.
22209 * config/tilepro/tilepro.c: Moved to...
22210 * config/tilepro/tilepro.cc: ...here.
22211 * config/v850/v850-c.c: Moved to...
22212 * config/v850/v850-c.cc: ...here.
22213 * config/v850/v850.c: Moved to...
22214 * config/v850/v850.cc: ...here.
22215 * config/vax/vax.c: Moved to...
22216 * config/vax/vax.cc: ...here.
22217 * config/visium/visium.c: Moved to...
22218 * config/visium/visium.cc: ...here.
22219 * config/vms/vms-c.c: Moved to...
22220 * config/vms/vms-c.cc: ...here.
22221 * config/vms/vms-f.c: Moved to...
22222 * config/vms/vms-f.cc: ...here.
22223 * config/vms/vms.c: Moved to...
22224 * config/vms/vms.cc: ...here.
22225 * config/vxworks-c.c: Moved to...
22226 * config/vxworks-c.cc: ...here.
22227 * config/vxworks.c: Moved to...
22228 * config/vxworks.cc: ...here.
22229 * config/winnt-c.c: Moved to...
22230 * config/winnt-c.cc: ...here.
22231 * config/xtensa/xtensa.c: Moved to...
22232 * config/xtensa/xtensa.cc: ...here.
22233 * context.c: Moved to...
22234 * context.cc: ...here.
22235 * convert.c: Moved to...
22236 * convert.cc: ...here.
22237 * coverage.c: Moved to...
22238 * coverage.cc: ...here.
22239 * cppbuiltin.c: Moved to...
22240 * cppbuiltin.cc: ...here.
22241 * cppdefault.c: Moved to...
22242 * cppdefault.cc: ...here.
22243 * cprop.c: Moved to...
22244 * cprop.cc: ...here.
22245 * cse.c: Moved to...
22246 * cse.cc: ...here.
22247 * cselib.c: Moved to...
22248 * cselib.cc: ...here.
22249 * ctfc.c: Moved to...
22250 * ctfc.cc: ...here.
22251 * ctfout.c: Moved to...
22252 * ctfout.cc: ...here.
22253 * data-streamer-in.c: Moved to...
22254 * data-streamer-in.cc: ...here.
22255 * data-streamer-out.c: Moved to...
22256 * data-streamer-out.cc: ...here.
22257 * data-streamer.c: Moved to...
22258 * data-streamer.cc: ...here.
22259 * dbgcnt.c: Moved to...
22260 * dbgcnt.cc: ...here.
22261 * dbxout.c: Moved to...
22262 * dbxout.cc: ...here.
22263 * dce.c: Moved to...
22264 * dce.cc: ...here.
22265 * ddg.c: Moved to...
22266 * ddg.cc: ...here.
22267 * debug.c: Moved to...
22268 * debug.cc: ...here.
22269 * df-core.c: Moved to...
22270 * df-core.cc: ...here.
22271 * df-problems.c: Moved to...
22272 * df-problems.cc: ...here.
22273 * df-scan.c: Moved to...
22274 * df-scan.cc: ...here.
22275 * dfp.c: Moved to...
22276 * dfp.cc: ...here.
22277 * diagnostic-color.c: Moved to...
22278 * diagnostic-color.cc: ...here.
22279 * diagnostic-show-locus.c: Moved to...
22280 * diagnostic-show-locus.cc: ...here.
22281 * diagnostic-spec.c: Moved to...
22282 * diagnostic-spec.cc: ...here.
22283 * diagnostic.c: Moved to...
22284 * diagnostic.cc: ...here.
22285 * dojump.c: Moved to...
22286 * dojump.cc: ...here.
22287 * dominance.c: Moved to...
22288 * dominance.cc: ...here.
22289 * domwalk.c: Moved to...
22290 * domwalk.cc: ...here.
22291 * double-int.c: Moved to...
22292 * double-int.cc: ...here.
22293 * dse.c: Moved to...
22294 * dse.cc: ...here.
22295 * dumpfile.c: Moved to...
22296 * dumpfile.cc: ...here.
22297 * dwarf2asm.c: Moved to...
22298 * dwarf2asm.cc: ...here.
22299 * dwarf2cfi.c: Moved to...
22300 * dwarf2cfi.cc: ...here.
22301 * dwarf2ctf.c: Moved to...
22302 * dwarf2ctf.cc: ...here.
22303 * dwarf2out.c: Moved to...
22304 * dwarf2out.cc: ...here.
22305 * early-remat.c: Moved to...
22306 * early-remat.cc: ...here.
22307 * edit-context.c: Moved to...
22308 * edit-context.cc: ...here.
22309 * emit-rtl.c: Moved to...
22310 * emit-rtl.cc: ...here.
22311 * errors.c: Moved to...
22312 * errors.cc: ...here.
22313 * et-forest.c: Moved to...
22314 * et-forest.cc: ...here.
22315 * except.c: Moved to...
22316 * except.cc: ...here.
22317 * explow.c: Moved to...
22318 * explow.cc: ...here.
22319 * expmed.c: Moved to...
22320 * expmed.cc: ...here.
22321 * expr.c: Moved to...
22322 * expr.cc: ...here.
22323 * fibonacci_heap.c: Moved to...
22324 * fibonacci_heap.cc: ...here.
22325 * file-find.c: Moved to...
22326 * file-find.cc: ...here.
22327 * file-prefix-map.c: Moved to...
22328 * file-prefix-map.cc: ...here.
22329 * final.c: Moved to...
22330 * final.cc: ...here.
22331 * fixed-value.c: Moved to...
22332 * fixed-value.cc: ...here.
22333 * fold-const-call.c: Moved to...
22334 * fold-const-call.cc: ...here.
22335 * fold-const.c: Moved to...
22336 * fold-const.cc: ...here.
22337 * fp-test.c: Moved to...
22338 * fp-test.cc: ...here.
22339 * function-tests.c: Moved to...
22340 * function-tests.cc: ...here.
22341 * function.c: Moved to...
22342 * function.cc: ...here.
22343 * fwprop.c: Moved to...
22344 * fwprop.cc: ...here.
22345 * gcc-ar.c: Moved to...
22346 * gcc-ar.cc: ...here.
22347 * gcc-main.c: Moved to...
22348 * gcc-main.cc: ...here.
22349 * gcc-rich-location.c: Moved to...
22350 * gcc-rich-location.cc: ...here.
22351 * gcc.c: Moved to...
22352 * gcc.cc: ...here.
22353 * gcov-dump.c: Moved to...
22354 * gcov-dump.cc: ...here.
22355 * gcov-io.c: Moved to...
22356 * gcov-io.cc: ...here.
22357 * gcov-tool.c: Moved to...
22358 * gcov-tool.cc: ...here.
22359 * gcov.c: Moved to...
22360 * gcov.cc: ...here.
22361 * gcse-common.c: Moved to...
22362 * gcse-common.cc: ...here.
22363 * gcse.c: Moved to...
22364 * gcse.cc: ...here.
22365 * genattr-common.c: Moved to...
22366 * genattr-common.cc: ...here.
22367 * genattr.c: Moved to...
22368 * genattr.cc: ...here.
22369 * genattrtab.c: Moved to...
22370 * genattrtab.cc: ...here.
22371 * genautomata.c: Moved to...
22372 * genautomata.cc: ...here.
22373 * gencfn-macros.c: Moved to...
22374 * gencfn-macros.cc: ...here.
22375 * gencheck.c: Moved to...
22376 * gencheck.cc: ...here.
22377 * genchecksum.c: Moved to...
22378 * genchecksum.cc: ...here.
22379 * gencodes.c: Moved to...
22380 * gencodes.cc: ...here.
22381 * genconditions.c: Moved to...
22382 * genconditions.cc: ...here.
22383 * genconfig.c: Moved to...
22384 * genconfig.cc: ...here.
22385 * genconstants.c: Moved to...
22386 * genconstants.cc: ...here.
22387 * genemit.c: Moved to...
22388 * genemit.cc: ...here.
22389 * genenums.c: Moved to...
22390 * genenums.cc: ...here.
22391 * generic-match-head.c: Moved to...
22392 * generic-match-head.cc: ...here.
22393 * genextract.c: Moved to...
22394 * genextract.cc: ...here.
22395 * genflags.c: Moved to...
22396 * genflags.cc: ...here.
22397 * gengenrtl.c: Moved to...
22398 * gengenrtl.cc: ...here.
22399 * gengtype-parse.c: Moved to...
22400 * gengtype-parse.cc: ...here.
22401 * gengtype-state.c: Moved to...
22402 * gengtype-state.cc: ...here.
22403 * gengtype.c: Moved to...
22404 * gengtype.cc: ...here.
22405 * genhooks.c: Moved to...
22406 * genhooks.cc: ...here.
22407 * genmatch.c: Moved to...
22408 * genmatch.cc: ...here.
22409 * genmddeps.c: Moved to...
22410 * genmddeps.cc: ...here.
22411 * genmddump.c: Moved to...
22412 * genmddump.cc: ...here.
22413 * genmodes.c: Moved to...
22414 * genmodes.cc: ...here.
22415 * genopinit.c: Moved to...
22416 * genopinit.cc: ...here.
22417 * genoutput.c: Moved to...
22418 * genoutput.cc: ...here.
22419 * genpeep.c: Moved to...
22420 * genpeep.cc: ...here.
22421 * genpreds.c: Moved to...
22422 * genpreds.cc: ...here.
22423 * genrecog.c: Moved to...
22424 * genrecog.cc: ...here.
22425 * gensupport.c: Moved to...
22426 * gensupport.cc: ...here.
22427 * gentarget-def.c: Moved to...
22428 * gentarget-def.cc: ...here.
22429 * genversion.c: Moved to...
22430 * genversion.cc: ...here.
22431 * ggc-common.c: Moved to...
22432 * ggc-common.cc: ...here.
22433 * ggc-none.c: Moved to...
22434 * ggc-none.cc: ...here.
22435 * ggc-page.c: Moved to...
22436 * ggc-page.cc: ...here.
22437 * ggc-tests.c: Moved to...
22438 * ggc-tests.cc: ...here.
22439 * gimple-builder.c: Moved to...
22440 * gimple-builder.cc: ...here.
22441 * gimple-expr.c: Moved to...
22442 * gimple-expr.cc: ...here.
22443 * gimple-fold.c: Moved to...
22444 * gimple-fold.cc: ...here.
22445 * gimple-iterator.c: Moved to...
22446 * gimple-iterator.cc: ...here.
22447 * gimple-laddress.c: Moved to...
22448 * gimple-laddress.cc: ...here.
22449 * gimple-loop-jam.c: Moved to...
22450 * gimple-loop-jam.cc: ...here.
22451 * gimple-low.c: Moved to...
22452 * gimple-low.cc: ...here.
22453 * gimple-match-head.c: Moved to...
22454 * gimple-match-head.cc: ...here.
22455 * gimple-pretty-print.c: Moved to...
22456 * gimple-pretty-print.cc: ...here.
22457 * gimple-ssa-backprop.c: Moved to...
22458 * gimple-ssa-backprop.cc: ...here.
22459 * gimple-ssa-evrp-analyze.c: Moved to...
22460 * gimple-ssa-evrp-analyze.cc: ...here.
22461 * gimple-ssa-evrp.c: Moved to...
22462 * gimple-ssa-evrp.cc: ...here.
22463 * gimple-ssa-isolate-paths.c: Moved to...
22464 * gimple-ssa-isolate-paths.cc: ...here.
22465 * gimple-ssa-nonnull-compare.c: Moved to...
22466 * gimple-ssa-nonnull-compare.cc: ...here.
22467 * gimple-ssa-split-paths.c: Moved to...
22468 * gimple-ssa-split-paths.cc: ...here.
22469 * gimple-ssa-sprintf.c: Moved to...
22470 * gimple-ssa-sprintf.cc: ...here.
22471 * gimple-ssa-store-merging.c: Moved to...
22472 * gimple-ssa-store-merging.cc: ...here.
22473 * gimple-ssa-strength-reduction.c: Moved to...
22474 * gimple-ssa-strength-reduction.cc: ...here.
22475 * gimple-ssa-warn-alloca.c: Moved to...
22476 * gimple-ssa-warn-alloca.cc: ...here.
22477 * gimple-ssa-warn-restrict.c: Moved to...
22478 * gimple-ssa-warn-restrict.cc: ...here.
22479 * gimple-streamer-in.c: Moved to...
22480 * gimple-streamer-in.cc: ...here.
22481 * gimple-streamer-out.c: Moved to...
22482 * gimple-streamer-out.cc: ...here.
22483 * gimple-walk.c: Moved to...
22484 * gimple-walk.cc: ...here.
22485 * gimple-warn-recursion.c: Moved to...
22486 * gimple-warn-recursion.cc: ...here.
22487 * gimple.c: Moved to...
22488 * gimple.cc: ...here.
22489 * gimplify-me.c: Moved to...
22490 * gimplify-me.cc: ...here.
22491 * gimplify.c: Moved to...
22492 * gimplify.cc: ...here.
22493 * godump.c: Moved to...
22494 * godump.cc: ...here.
22495 * graph.c: Moved to...
22496 * graph.cc: ...here.
22497 * graphds.c: Moved to...
22498 * graphds.cc: ...here.
22499 * graphite-dependences.c: Moved to...
22500 * graphite-dependences.cc: ...here.
22501 * graphite-isl-ast-to-gimple.c: Moved to...
22502 * graphite-isl-ast-to-gimple.cc: ...here.
22503 * graphite-optimize-isl.c: Moved to...
22504 * graphite-optimize-isl.cc: ...here.
22505 * graphite-poly.c: Moved to...
22506 * graphite-poly.cc: ...here.
22507 * graphite-scop-detection.c: Moved to...
22508 * graphite-scop-detection.cc: ...here.
22509 * graphite-sese-to-poly.c: Moved to...
22510 * graphite-sese-to-poly.cc: ...here.
22511 * graphite.c: Moved to...
22512 * graphite.cc: ...here.
22513 * haifa-sched.c: Moved to...
22514 * haifa-sched.cc: ...here.
22515 * hash-map-tests.c: Moved to...
22516 * hash-map-tests.cc: ...here.
22517 * hash-set-tests.c: Moved to...
22518 * hash-set-tests.cc: ...here.
22519 * hash-table.c: Moved to...
22520 * hash-table.cc: ...here.
22521 * hooks.c: Moved to...
22522 * hooks.cc: ...here.
22523 * host-default.c: Moved to...
22524 * host-default.cc: ...here.
22525 * hw-doloop.c: Moved to...
22526 * hw-doloop.cc: ...here.
22527 * hwint.c: Moved to...
22528 * hwint.cc: ...here.
22529 * ifcvt.c: Moved to...
22530 * ifcvt.cc: ...here.
22531 * inchash.c: Moved to...
22532 * inchash.cc: ...here.
22533 * incpath.c: Moved to...
22534 * incpath.cc: ...here.
22535 * init-regs.c: Moved to...
22536 * init-regs.cc: ...here.
22537 * input.c: Moved to...
22538 * input.cc: ...here.
22539 * internal-fn.c: Moved to...
22540 * internal-fn.cc: ...here.
22541 * intl.c: Moved to...
22542 * intl.cc: ...here.
22543 * ipa-comdats.c: Moved to...
22544 * ipa-comdats.cc: ...here.
22545 * ipa-cp.c: Moved to...
22546 * ipa-cp.cc: ...here.
22547 * ipa-devirt.c: Moved to...
22548 * ipa-devirt.cc: ...here.
22549 * ipa-fnsummary.c: Moved to...
22550 * ipa-fnsummary.cc: ...here.
22551 * ipa-icf-gimple.c: Moved to...
22552 * ipa-icf-gimple.cc: ...here.
22553 * ipa-icf.c: Moved to...
22554 * ipa-icf.cc: ...here.
22555 * ipa-inline-analysis.c: Moved to...
22556 * ipa-inline-analysis.cc: ...here.
22557 * ipa-inline-transform.c: Moved to...
22558 * ipa-inline-transform.cc: ...here.
22559 * ipa-inline.c: Moved to...
22560 * ipa-inline.cc: ...here.
22561 * ipa-modref-tree.c: Moved to...
22562 * ipa-modref-tree.cc: ...here.
22563 * ipa-modref.c: Moved to...
22564 * ipa-modref.cc: ...here.
22565 * ipa-param-manipulation.c: Moved to...
22566 * ipa-param-manipulation.cc: ...here.
22567 * ipa-polymorphic-call.c: Moved to...
22568 * ipa-polymorphic-call.cc: ...here.
22569 * ipa-predicate.c: Moved to...
22570 * ipa-predicate.cc: ...here.
22571 * ipa-profile.c: Moved to...
22572 * ipa-profile.cc: ...here.
22573 * ipa-prop.c: Moved to...
22574 * ipa-prop.cc: ...here.
22575 * ipa-pure-const.c: Moved to...
22576 * ipa-pure-const.cc: ...here.
22577 * ipa-ref.c: Moved to...
22578 * ipa-ref.cc: ...here.
22579 * ipa-reference.c: Moved to...
22580 * ipa-reference.cc: ...here.
22581 * ipa-split.c: Moved to...
22582 * ipa-split.cc: ...here.
22583 * ipa-sra.c: Moved to...
22584 * ipa-sra.cc: ...here.
22585 * ipa-utils.c: Moved to...
22586 * ipa-utils.cc: ...here.
22587 * ipa-visibility.c: Moved to...
22588 * ipa-visibility.cc: ...here.
22589 * ipa.c: Moved to...
22590 * ipa.cc: ...here.
22591 * ira-build.c: Moved to...
22592 * ira-build.cc: ...here.
22593 * ira-color.c: Moved to...
22594 * ira-color.cc: ...here.
22595 * ira-conflicts.c: Moved to...
22596 * ira-conflicts.cc: ...here.
22597 * ira-costs.c: Moved to...
22598 * ira-costs.cc: ...here.
22599 * ira-emit.c: Moved to...
22600 * ira-emit.cc: ...here.
22601 * ira-lives.c: Moved to...
22602 * ira-lives.cc: ...here.
22603 * ira.c: Moved to...
22604 * ira.cc: ...here.
22605 * jump.c: Moved to...
22606 * jump.cc: ...here.
22607 * langhooks.c: Moved to...
22608 * langhooks.cc: ...here.
22609 * lcm.c: Moved to...
22610 * lcm.cc: ...here.
22611 * lists.c: Moved to...
22612 * lists.cc: ...here.
22613 * loop-doloop.c: Moved to...
22614 * loop-doloop.cc: ...here.
22615 * loop-init.c: Moved to...
22616 * loop-init.cc: ...here.
22617 * loop-invariant.c: Moved to...
22618 * loop-invariant.cc: ...here.
22619 * loop-iv.c: Moved to...
22620 * loop-iv.cc: ...here.
22621 * loop-unroll.c: Moved to...
22622 * loop-unroll.cc: ...here.
22623 * lower-subreg.c: Moved to...
22624 * lower-subreg.cc: ...here.
22625 * lra-assigns.c: Moved to...
22626 * lra-assigns.cc: ...here.
22627 * lra-coalesce.c: Moved to...
22628 * lra-coalesce.cc: ...here.
22629 * lra-constraints.c: Moved to...
22630 * lra-constraints.cc: ...here.
22631 * lra-eliminations.c: Moved to...
22632 * lra-eliminations.cc: ...here.
22633 * lra-lives.c: Moved to...
22634 * lra-lives.cc: ...here.
22635 * lra-remat.c: Moved to...
22636 * lra-remat.cc: ...here.
22637 * lra-spills.c: Moved to...
22638 * lra-spills.cc: ...here.
22639 * lra.c: Moved to...
22640 * lra.cc: ...here.
22641 * lto-cgraph.c: Moved to...
22642 * lto-cgraph.cc: ...here.
22643 * lto-compress.c: Moved to...
22644 * lto-compress.cc: ...here.
22645 * lto-opts.c: Moved to...
22646 * lto-opts.cc: ...here.
22647 * lto-section-in.c: Moved to...
22648 * lto-section-in.cc: ...here.
22649 * lto-section-out.c: Moved to...
22650 * lto-section-out.cc: ...here.
22651 * lto-streamer-in.c: Moved to...
22652 * lto-streamer-in.cc: ...here.
22653 * lto-streamer-out.c: Moved to...
22654 * lto-streamer-out.cc: ...here.
22655 * lto-streamer.c: Moved to...
22656 * lto-streamer.cc: ...here.
22657 * lto-wrapper.c: Moved to...
22658 * lto-wrapper.cc: ...here.
22659 * main.c: Moved to...
22660 * main.cc: ...here.
22661 * mcf.c: Moved to...
22662 * mcf.cc: ...here.
22663 * mode-switching.c: Moved to...
22664 * mode-switching.cc: ...here.
22665 * modulo-sched.c: Moved to...
22666 * modulo-sched.cc: ...here.
22667 * multiple_target.c: Moved to...
22668 * multiple_target.cc: ...here.
22669 * omp-expand.c: Moved to...
22670 * omp-expand.cc: ...here.
22671 * omp-general.c: Moved to...
22672 * omp-general.cc: ...here.
22673 * omp-low.c: Moved to...
22674 * omp-low.cc: ...here.
22675 * omp-offload.c: Moved to...
22676 * omp-offload.cc: ...here.
22677 * omp-simd-clone.c: Moved to...
22678 * omp-simd-clone.cc: ...here.
22679 * opt-suggestions.c: Moved to...
22680 * opt-suggestions.cc: ...here.
22681 * optabs-libfuncs.c: Moved to...
22682 * optabs-libfuncs.cc: ...here.
22683 * optabs-query.c: Moved to...
22684 * optabs-query.cc: ...here.
22685 * optabs-tree.c: Moved to...
22686 * optabs-tree.cc: ...here.
22687 * optabs.c: Moved to...
22688 * optabs.cc: ...here.
22689 * opts-common.c: Moved to...
22690 * opts-common.cc: ...here.
22691 * opts-global.c: Moved to...
22692 * opts-global.cc: ...here.
22693 * opts.c: Moved to...
22694 * opts.cc: ...here.
22695 * passes.c: Moved to...
22696 * passes.cc: ...here.
22697 * plugin.c: Moved to...
22698 * plugin.cc: ...here.
22699 * postreload-gcse.c: Moved to...
22700 * postreload-gcse.cc: ...here.
22701 * postreload.c: Moved to...
22702 * postreload.cc: ...here.
22703 * predict.c: Moved to...
22704 * predict.cc: ...here.
22705 * prefix.c: Moved to...
22706 * prefix.cc: ...here.
22707 * pretty-print.c: Moved to...
22708 * pretty-print.cc: ...here.
22709 * print-rtl-function.c: Moved to...
22710 * print-rtl-function.cc: ...here.
22711 * print-rtl.c: Moved to...
22712 * print-rtl.cc: ...here.
22713 * print-tree.c: Moved to...
22714 * print-tree.cc: ...here.
22715 * profile-count.c: Moved to...
22716 * profile-count.cc: ...here.
22717 * profile.c: Moved to...
22718 * profile.cc: ...here.
22719 * read-md.c: Moved to...
22720 * read-md.cc: ...here.
22721 * read-rtl-function.c: Moved to...
22722 * read-rtl-function.cc: ...here.
22723 * read-rtl.c: Moved to...
22724 * read-rtl.cc: ...here.
22725 * real.c: Moved to...
22726 * real.cc: ...here.
22727 * realmpfr.c: Moved to...
22728 * realmpfr.cc: ...here.
22729 * recog.c: Moved to...
22730 * recog.cc: ...here.
22731 * ree.c: Moved to...
22732 * ree.cc: ...here.
22733 * reg-stack.c: Moved to...
22734 * reg-stack.cc: ...here.
22735 * regcprop.c: Moved to...
22736 * regcprop.cc: ...here.
22737 * reginfo.c: Moved to...
22738 * reginfo.cc: ...here.
22739 * regrename.c: Moved to...
22740 * regrename.cc: ...here.
22741 * regstat.c: Moved to...
22742 * regstat.cc: ...here.
22743 * reload.c: Moved to...
22744 * reload.cc: ...here.
22745 * reload1.c: Moved to...
22746 * reload1.cc: ...here.
22747 * reorg.c: Moved to...
22748 * reorg.cc: ...here.
22749 * resource.c: Moved to...
22750 * resource.cc: ...here.
22751 * rtl-error.c: Moved to...
22752 * rtl-error.cc: ...here.
22753 * rtl-tests.c: Moved to...
22754 * rtl-tests.cc: ...here.
22755 * rtl.c: Moved to...
22756 * rtl.cc: ...here.
22757 * rtlanal.c: Moved to...
22758 * rtlanal.cc: ...here.
22759 * rtlhash.c: Moved to...
22760 * rtlhash.cc: ...here.
22761 * rtlhooks.c: Moved to...
22762 * rtlhooks.cc: ...here.
22763 * rtx-vector-builder.c: Moved to...
22764 * rtx-vector-builder.cc: ...here.
22765 * run-rtl-passes.c: Moved to...
22766 * run-rtl-passes.cc: ...here.
22767 * sancov.c: Moved to...
22768 * sancov.cc: ...here.
22769 * sanopt.c: Moved to...
22770 * sanopt.cc: ...here.
22771 * sbitmap.c: Moved to...
22772 * sbitmap.cc: ...here.
22773 * sched-deps.c: Moved to...
22774 * sched-deps.cc: ...here.
22775 * sched-ebb.c: Moved to...
22776 * sched-ebb.cc: ...here.
22777 * sched-rgn.c: Moved to...
22778 * sched-rgn.cc: ...here.
22779 * sel-sched-dump.c: Moved to...
22780 * sel-sched-dump.cc: ...here.
22781 * sel-sched-ir.c: Moved to...
22782 * sel-sched-ir.cc: ...here.
22783 * sel-sched.c: Moved to...
22784 * sel-sched.cc: ...here.
22785 * selftest-diagnostic.c: Moved to...
22786 * selftest-diagnostic.cc: ...here.
22787 * selftest-rtl.c: Moved to...
22788 * selftest-rtl.cc: ...here.
22789 * selftest-run-tests.c: Moved to...
22790 * selftest-run-tests.cc: ...here.
22791 * selftest.c: Moved to...
22792 * selftest.cc: ...here.
22793 * sese.c: Moved to...
22794 * sese.cc: ...here.
22795 * shrink-wrap.c: Moved to...
22796 * shrink-wrap.cc: ...here.
22797 * simplify-rtx.c: Moved to...
22798 * simplify-rtx.cc: ...here.
22799 * sparseset.c: Moved to...
22800 * sparseset.cc: ...here.
22801 * spellcheck-tree.c: Moved to...
22802 * spellcheck-tree.cc: ...here.
22803 * spellcheck.c: Moved to...
22804 * spellcheck.cc: ...here.
22805 * sreal.c: Moved to...
22806 * sreal.cc: ...here.
22807 * stack-ptr-mod.c: Moved to...
22808 * stack-ptr-mod.cc: ...here.
22809 * statistics.c: Moved to...
22810 * statistics.cc: ...here.
22811 * stmt.c: Moved to...
22812 * stmt.cc: ...here.
22813 * stor-layout.c: Moved to...
22814 * stor-layout.cc: ...here.
22815 * store-motion.c: Moved to...
22816 * store-motion.cc: ...here.
22817 * streamer-hooks.c: Moved to...
22818 * streamer-hooks.cc: ...here.
22819 * stringpool.c: Moved to...
22820 * stringpool.cc: ...here.
22821 * substring-locations.c: Moved to...
22822 * substring-locations.cc: ...here.
22823 * symtab.c: Moved to...
22824 * symtab.cc: ...here.
22825 * target-globals.c: Moved to...
22826 * target-globals.cc: ...here.
22827 * targhooks.c: Moved to...
22828 * targhooks.cc: ...here.
22829 * timevar.c: Moved to...
22830 * timevar.cc: ...here.
22831 * toplev.c: Moved to...
22832 * toplev.cc: ...here.
22833 * tracer.c: Moved to...
22834 * tracer.cc: ...here.
22835 * trans-mem.c: Moved to...
22836 * trans-mem.cc: ...here.
22837 * tree-affine.c: Moved to...
22838 * tree-affine.cc: ...here.
22839 * tree-call-cdce.c: Moved to...
22840 * tree-call-cdce.cc: ...here.
22841 * tree-cfg.c: Moved to...
22842 * tree-cfg.cc: ...here.
22843 * tree-cfgcleanup.c: Moved to...
22844 * tree-cfgcleanup.cc: ...here.
22845 * tree-chrec.c: Moved to...
22846 * tree-chrec.cc: ...here.
22847 * tree-complex.c: Moved to...
22848 * tree-complex.cc: ...here.
22849 * tree-data-ref.c: Moved to...
22850 * tree-data-ref.cc: ...here.
22851 * tree-dfa.c: Moved to...
22852 * tree-dfa.cc: ...here.
22853 * tree-diagnostic.c: Moved to...
22854 * tree-diagnostic.cc: ...here.
22855 * tree-dump.c: Moved to...
22856 * tree-dump.cc: ...here.
22857 * tree-eh.c: Moved to...
22858 * tree-eh.cc: ...here.
22859 * tree-emutls.c: Moved to...
22860 * tree-emutls.cc: ...here.
22861 * tree-if-conv.c: Moved to...
22862 * tree-if-conv.cc: ...here.
22863 * tree-inline.c: Moved to...
22864 * tree-inline.cc: ...here.
22865 * tree-into-ssa.c: Moved to...
22866 * tree-into-ssa.cc: ...here.
22867 * tree-iterator.c: Moved to...
22868 * tree-iterator.cc: ...here.
22869 * tree-loop-distribution.c: Moved to...
22870 * tree-loop-distribution.cc: ...here.
22871 * tree-nested.c: Moved to...
22872 * tree-nested.cc: ...here.
22873 * tree-nrv.c: Moved to...
22874 * tree-nrv.cc: ...here.
22875 * tree-object-size.c: Moved to...
22876 * tree-object-size.cc: ...here.
22877 * tree-outof-ssa.c: Moved to...
22878 * tree-outof-ssa.cc: ...here.
22879 * tree-parloops.c: Moved to...
22880 * tree-parloops.cc: ...here.
22881 * tree-phinodes.c: Moved to...
22882 * tree-phinodes.cc: ...here.
22883 * tree-predcom.c: Moved to...
22884 * tree-predcom.cc: ...here.
22885 * tree-pretty-print.c: Moved to...
22886 * tree-pretty-print.cc: ...here.
22887 * tree-profile.c: Moved to...
22888 * tree-profile.cc: ...here.
22889 * tree-scalar-evolution.c: Moved to...
22890 * tree-scalar-evolution.cc: ...here.
22891 * tree-sra.c: Moved to...
22892 * tree-sra.cc: ...here.
22893 * tree-ssa-address.c: Moved to...
22894 * tree-ssa-address.cc: ...here.
22895 * tree-ssa-alias.c: Moved to...
22896 * tree-ssa-alias.cc: ...here.
22897 * tree-ssa-ccp.c: Moved to...
22898 * tree-ssa-ccp.cc: ...here.
22899 * tree-ssa-coalesce.c: Moved to...
22900 * tree-ssa-coalesce.cc: ...here.
22901 * tree-ssa-copy.c: Moved to...
22902 * tree-ssa-copy.cc: ...here.
22903 * tree-ssa-dce.c: Moved to...
22904 * tree-ssa-dce.cc: ...here.
22905 * tree-ssa-dom.c: Moved to...
22906 * tree-ssa-dom.cc: ...here.
22907 * tree-ssa-dse.c: Moved to...
22908 * tree-ssa-dse.cc: ...here.
22909 * tree-ssa-forwprop.c: Moved to...
22910 * tree-ssa-forwprop.cc: ...here.
22911 * tree-ssa-ifcombine.c: Moved to...
22912 * tree-ssa-ifcombine.cc: ...here.
22913 * tree-ssa-live.c: Moved to...
22914 * tree-ssa-live.cc: ...here.
22915 * tree-ssa-loop-ch.c: Moved to...
22916 * tree-ssa-loop-ch.cc: ...here.
22917 * tree-ssa-loop-im.c: Moved to...
22918 * tree-ssa-loop-im.cc: ...here.
22919 * tree-ssa-loop-ivcanon.c: Moved to...
22920 * tree-ssa-loop-ivcanon.cc: ...here.
22921 * tree-ssa-loop-ivopts.c: Moved to...
22922 * tree-ssa-loop-ivopts.cc: ...here.
22923 * tree-ssa-loop-manip.c: Moved to...
22924 * tree-ssa-loop-manip.cc: ...here.
22925 * tree-ssa-loop-niter.c: Moved to...
22926 * tree-ssa-loop-niter.cc: ...here.
22927 * tree-ssa-loop-prefetch.c: Moved to...
22928 * tree-ssa-loop-prefetch.cc: ...here.
22929 * tree-ssa-loop-split.c: Moved to...
22930 * tree-ssa-loop-split.cc: ...here.
22931 * tree-ssa-loop-unswitch.c: Moved to...
22932 * tree-ssa-loop-unswitch.cc: ...here.
22933 * tree-ssa-loop.c: Moved to...
22934 * tree-ssa-loop.cc: ...here.
22935 * tree-ssa-math-opts.c: Moved to...
22936 * tree-ssa-math-opts.cc: ...here.
22937 * tree-ssa-operands.c: Moved to...
22938 * tree-ssa-operands.cc: ...here.
22939 * tree-ssa-phiopt.c: Moved to...
22940 * tree-ssa-phiopt.cc: ...here.
22941 * tree-ssa-phiprop.c: Moved to...
22942 * tree-ssa-phiprop.cc: ...here.
22943 * tree-ssa-pre.c: Moved to...
22944 * tree-ssa-pre.cc: ...here.
22945 * tree-ssa-propagate.c: Moved to...
22946 * tree-ssa-propagate.cc: ...here.
22947 * tree-ssa-reassoc.c: Moved to...
22948 * tree-ssa-reassoc.cc: ...here.
22949 * tree-ssa-sccvn.c: Moved to...
22950 * tree-ssa-sccvn.cc: ...here.
22951 * tree-ssa-scopedtables.c: Moved to...
22952 * tree-ssa-scopedtables.cc: ...here.
22953 * tree-ssa-sink.c: Moved to...
22954 * tree-ssa-sink.cc: ...here.
22955 * tree-ssa-strlen.c: Moved to...
22956 * tree-ssa-strlen.cc: ...here.
22957 * tree-ssa-structalias.c: Moved to...
22958 * tree-ssa-structalias.cc: ...here.
22959 * tree-ssa-tail-merge.c: Moved to...
22960 * tree-ssa-tail-merge.cc: ...here.
22961 * tree-ssa-ter.c: Moved to...
22962 * tree-ssa-ter.cc: ...here.
22963 * tree-ssa-threadbackward.c: Moved to...
22964 * tree-ssa-threadbackward.cc: ...here.
22965 * tree-ssa-threadedge.c: Moved to...
22966 * tree-ssa-threadedge.cc: ...here.
22967 * tree-ssa-threadupdate.c: Moved to...
22968 * tree-ssa-threadupdate.cc: ...here.
22969 * tree-ssa-uncprop.c: Moved to...
22970 * tree-ssa-uncprop.cc: ...here.
22971 * tree-ssa-uninit.c: Moved to...
22972 * tree-ssa-uninit.cc: ...here.
22973 * tree-ssa.c: Moved to...
22974 * tree-ssa.cc: ...here.
22975 * tree-ssanames.c: Moved to...
22976 * tree-ssanames.cc: ...here.
22977 * tree-stdarg.c: Moved to...
22978 * tree-stdarg.cc: ...here.
22979 * tree-streamer-in.c: Moved to...
22980 * tree-streamer-in.cc: ...here.
22981 * tree-streamer-out.c: Moved to...
22982 * tree-streamer-out.cc: ...here.
22983 * tree-streamer.c: Moved to...
22984 * tree-streamer.cc: ...here.
22985 * tree-switch-conversion.c: Moved to...
22986 * tree-switch-conversion.cc: ...here.
22987 * tree-tailcall.c: Moved to...
22988 * tree-tailcall.cc: ...here.
22989 * tree-vect-data-refs.c: Moved to...
22990 * tree-vect-data-refs.cc: ...here.
22991 * tree-vect-generic.c: Moved to...
22992 * tree-vect-generic.cc: ...here.
22993 * tree-vect-loop-manip.c: Moved to...
22994 * tree-vect-loop-manip.cc: ...here.
22995 * tree-vect-loop.c: Moved to...
22996 * tree-vect-loop.cc: ...here.
22997 * tree-vect-patterns.c: Moved to...
22998 * tree-vect-patterns.cc: ...here.
22999 * tree-vect-slp-patterns.c: Moved to...
23000 * tree-vect-slp-patterns.cc: ...here.
23001 * tree-vect-slp.c: Moved to...
23002 * tree-vect-slp.cc: ...here.
23003 * tree-vect-stmts.c: Moved to...
23004 * tree-vect-stmts.cc: ...here.
23005 * tree-vector-builder.c: Moved to...
23006 * tree-vector-builder.cc: ...here.
23007 * tree-vectorizer.c: Moved to...
23008 * tree-vectorizer.cc: ...here.
23009 * tree-vrp.c: Moved to...
23010 * tree-vrp.cc: ...here.
23011 * tree.c: Moved to...
23012 * tree.cc: ...here.
23013 * tsan.c: Moved to...
23014 * tsan.cc: ...here.
23015 * typed-splay-tree.c: Moved to...
23016 * typed-splay-tree.cc: ...here.
23017 * ubsan.c: Moved to...
23018 * ubsan.cc: ...here.
23019 * valtrack.c: Moved to...
23020 * valtrack.cc: ...here.
23021 * value-prof.c: Moved to...
23022 * value-prof.cc: ...here.
23023 * var-tracking.c: Moved to...
23024 * var-tracking.cc: ...here.
23025 * varasm.c: Moved to...
23026 * varasm.cc: ...here.
23027 * varpool.c: Moved to...
23028 * varpool.cc: ...here.
23029 * vec-perm-indices.c: Moved to...
23030 * vec-perm-indices.cc: ...here.
23031 * vec.c: Moved to...
23032 * vec.cc: ...here.
23033 * vmsdbgout.c: Moved to...
23034 * vmsdbgout.cc: ...here.
23035 * vr-values.c: Moved to...
23036 * vr-values.cc: ...here.
23037 * vtable-verify.c: Moved to...
23038 * vtable-verify.cc: ...here.
23039 * web.c: Moved to...
23040 * web.cc: ...here.
23041 * xcoffout.c: Moved to...
23042 * xcoffout.cc: ...here.
23043
23044 2022-01-17 qing zhao <qing.zhao@oracle.com>
23045
23046 * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
23047 .DEFERRED_INIT call with an anonymous SSA_NAME specially.
23048 (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
23049 specially.
23050 (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
23051 (warn_uninitialized_vars): Likewise.
23052 (warn_uninitialized_phi): Likewise.
23053
23054 2022-01-17 Jason Merrill <jason@redhat.com>
23055
23056 * diagnostic.h (struct diagnostic_context): Add includes_seen.
23057 * diagnostic.c (diagnostic_initialize): Initialize it.
23058 (diagnostic_finish): Clean it up.
23059 (includes_seen): New function.
23060 (diagnostic_report_current_module): Use it.
23061
23062 2022-01-17 Richard Biener <rguenther@suse.de>
23063
23064 PR middle-end/101292
23065 * diagnostic-spec.c (copy_warning): Make sure to not
23066 reference old hashtable content on possible resize.
23067 * warning-control.cc (copy_warning): Likewise.
23068
23069 2022-01-17 Jakub Jelinek <jakub@redhat.com>
23070
23071 PR target/103973
23072 * tree-cfg.h (cond_only_block_p): Declare.
23073 * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
23074 * tree-cfg.c (cond_only_block_p): ... here. No longer static.
23075 * optabs.def (spaceship_optab): New optab.
23076 * internal-fn.def (SPACESHIP): New internal function.
23077 * internal-fn.h (expand_SPACESHIP): Declare.
23078 * internal-fn.c (expand_PHI): Formatting fix.
23079 (expand_SPACESHIP): New function.
23080 * tree-ssa-math-opts.c (optimize_spaceship): New function.
23081 (math_opts_dom_walker::after_dom_children): Use it.
23082 * config/i386/i386.md (spaceship<mode>3): New define_expand.
23083 * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
23084 * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
23085 * doc/md.texi (spaceship@var{m}3): Document.
23086
23087 2022-01-17 Kewen Lin <linkw@linux.ibm.com>
23088
23089 * config/rs6000/altivec.md (altivec_vreveti2): Remove.
23090 * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
23091 *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
23092 known constant values to simplify code.
23093
23094 2022-01-17 Haochen Gui <guihaoc@gcc.gnu.org>
23095
23096 PR target/103124
23097 * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
23098
23099 2022-01-16 wwwhhhyyy <hongyu.wang@intel.com>
23100
23101 * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
23102 * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
23103 Insert zero-idiom in output template when attr enabled, set new attribute to
23104 true for non-mask/maskz insn.
23105 (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
23106 Likewise.
23107 (avx512dq_mul<mode>3<mask_name>): Likewise.
23108 (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
23109 (avx2_perm<mode>_1<mask_name>): Likewise.
23110 (avx512f_perm<mode>_1<mask_name>): Likewise.
23111 (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
23112 (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
23113 Likewise.
23114 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
23115 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
23116 Likewise.
23117 * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
23118 subst_attr.
23119 (mask4_dest_false_dep_for_glc_cond): Likewise.
23120 (mask6_dest_false_dep_for_glc_cond): Likewise.
23121 (mask10_dest_false_dep_for_glc_cond): Likewise.
23122 (maskc_dest_false_dep_for_glc_cond): Likewise.
23123 (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
23124 (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
23125 * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
23126 DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
23127
23128 2022-01-15 Martin Sebor <msebor@redhat.com>
23129
23130 PR c/63272
23131 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
23132 -Wdangling-pointer.
23133 * doc/invoke.texi (-Wdangling-pointer): Document new option.
23134 * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
23135 (pass_waccess::check_pointer_uses): New function.
23136 (pass_waccess::gimple_call_return_arg): New function.
23137 (pass_waccess::gimple_call_return_arg_ref): New function.
23138 (pass_waccess::check_call_dangling): New function.
23139 (pass_waccess::check_dangling_uses): New function overloads.
23140 (pass_waccess::check_dangling_stores): New function.
23141 (pass_waccess::check_dangling_stores): New function.
23142 (pass_waccess::m_clobbers): New data member.
23143 (pass_waccess::m_func): New data member.
23144 (pass_waccess::m_run_number): New data member.
23145 (pass_waccess::m_check_dangling_p): New data member.
23146 (pass_waccess::check_alloca): Check m_early_checks_p.
23147 (pass_waccess::check_alloc_size_call): Same.
23148 (pass_waccess::check_strcat): Same.
23149 (pass_waccess::check_strncat): Same.
23150 (pass_waccess::check_stxcpy): Same.
23151 (pass_waccess::check_stxncpy): Same.
23152 (pass_waccess::check_strncmp): Same.
23153 (pass_waccess::check_memop_access): Same.
23154 (pass_waccess::check_read_access): Same.
23155 (pass_waccess::check_builtin): Call check_pointer_uses.
23156 (pass_waccess::warn_invalid_pointer): Add arguments.
23157 (is_auto_decl): New function.
23158 (pass_waccess::check_stmt): New function.
23159 (pass_waccess::check_block): Call check_stmt.
23160 (pass_waccess::execute): Call check_dangling_uses,
23161 check_dangling_stores. Empty m_clobbers.
23162 * passes.def (pass_warn_access): Invoke pass two more times.
23163
23164 2022-01-15 Martin Sebor <msebor@redhat.com>
23165
23166 PR tree-optimization/80532
23167 * common.opt (-Wuse-after-free): New options.
23168 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
23169 OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
23170 * diagnostic-spec.h (NW_DANGLING): New enumerator.
23171 * doc/invoke.texi (-Wuse-after-free): Document new option.
23172 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
23173 (pass_waccess::check_call_access): ...to this.
23174 (pass_waccess::check): Rename...
23175 (pass_waccess::check_block): ...to this.
23176 (pass_waccess::check_pointer_uses): New function.
23177 (pass_waccess::gimple_call_return_arg): New function.
23178 (pass_waccess::warn_invalid_pointer): New function.
23179 (pass_waccess::check_builtin): Handle free and realloc.
23180 (gimple_use_after_inval_p): New function.
23181 (get_realloc_lhs): New function.
23182 (maybe_warn_mismatched_realloc): New function.
23183 (pointers_related_p): New function.
23184 (pass_waccess::check_call): Call check_pointer_uses.
23185 (pass_waccess::execute): Compute and free dominance info.
23186
23187 2022-01-15 Uroš Bizjak <ubizjak@gmail.com>
23188
23189 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
23190 expand_simple_unop and expand_simple_binop instead of manually
23191 constructing NOT, AND and IOR RTXes. Use vector_all_ones_operand
23192 consistently. Eliminate common subexpressions and simplify code.
23193 * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
23194 (<any_logic:code><MODEF:mode>3): Make public.
23195
23196 2022-01-14 Eric Botcazou <ebotcazou@adacore.com>
23197
23198 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
23199 reverse flag as "reverse" for the sake of consistency.
23200 * ipa-sra.c: Fix copyright year.
23201 (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
23202 (dump_isra_access): Tweak dump line.
23203 (isra_write_node_summary): Write the reverse flag.
23204 (isra_read_node_info): Read it.
23205 (pull_accesses_from_callee): Test its consistency and copy it.
23206
23207 2022-01-14 Richard Sandiford <richard.sandiford@arm.com>
23208
23209 PR middle-end/104026
23210 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
23211 partial_load_store_bias.
23212
23213 2022-01-14 Martin Sebor <msebor@redhat.com>
23214
23215 PR middle-end/101475
23216 * pointer-query.cc (handle_component_ref): Use the size of
23217 the enclosing object if it's smaller than the member.
23218
23219 2022-01-14 Martin Liska <mliska@suse.cz>
23220
23221 * configure: Regenerate.
23222
23223 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
23224
23225 * config/i386/i386.md (*add<mode>_1_slp"):
23226 Mark alternative 1 output operand earlyclobbered.
23227 (*sub<mode>_1_slp): Ditto.
23228 (*and<mode>_1_slp): Ditto.
23229 (*<code><mode>_1_slp): Ditto.
23230 (*neg<mode>_1_slp): Ditto.
23231 (*one_cmpl<mode>_1_slp): Ditto.
23232 (*ashl<mode>3_1_slp): Ditto.
23233 (*<insn><mode>3_1_slp): Ditto.
23234 (*<insn><mode>3_1_slp): Ditto.
23235
23236 2022-01-14 Kewen Lin <linkw@linux.ibm.com>
23237
23238 PR tree-optimization/104015
23239 * tree-vect-loop.c (vect_analyze_loop): Check
23240 param_vect_partial_vector_usage for supports_partial_vectors.
23241
23242 2022-01-14 Jakub Jelinek <jakub@redhat.com>
23243
23244 PR c++/89074
23245 * fold-const.c (address_compare): Punt on comparison of address of
23246 one object with address of end of another object if
23247 folding_initializer.
23248
23249 2022-01-14 Jakub Jelinek <jakub@redhat.com>
23250
23251 PR target/98737
23252 * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
23253 __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
23254 and __atomic_op_fetch (p, x, y) iop x into
23255 __atomic_fetch_op (p, x, y).
23256
23257 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
23258
23259 * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
23260 (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
23261 (INCOMING_RETURN_ADDR_RTX): Likewise.
23262 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
23263
23264 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
23265
23266 * config/arc/arc.c (arc_compute_frame_size): Remove condition when
23267 computin checking accumulator regs.
23268 (arc_expand_prologue): Update comments.
23269 (arc_expand_epilogue): Likewise.
23270
23271 2022-01-14 Roger Sayle <roger@nextmovesoftware.com>
23272 Uroš Bizjak <ubizjak@gmail.com>
23273
23274 * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
23275 (ix86_expand_ti_to_v1ti): Use force_reg.
23276 (ix86_expand_v1ti_shift): Use force_reg.
23277 (ix86_expand_v1ti_rotate): Use force_reg.
23278 (ix86_expand_v1ti_ashiftrt): Provide new three operation
23279 implementations for shifts by 111..126 bits. Use force_reg.
23280
23281 2022-01-14 Martin Liska <mliska@suse.cz>
23282
23283 * common/config/arm/arm-common.c (arm_target_mode): Fix
23284 warning: unterminated quoting directive [-Wformat=].
23285
23286 2022-01-14 Siddhesh Poyarekar <siddhesh@gotplt.org>
23287
23288 PR tree-optimization/104009
23289 * tree-object-size.c (compute_builtin_object_size): Bail out on
23290 negative offset.
23291 (plus_stmt_object_size): Return maximum of wholesize and minimum
23292 of 0 for negative offset.
23293
23294 2022-01-14 liuhongt <hongtao.liu@intel.com>
23295
23296 PR target/104001
23297 PR target/94790
23298 PR target/104014
23299 * config/i386/i386.md (*xor2andn): Refine predicate of
23300 operands[0] from nonimmediate_operand to
23301 register_operand, remove TARGET_AVX512BW from condition.
23302
23303 2022-01-14 David Malcolm <dmalcolm@redhat.com>
23304
23305 * doc/extend.texi (Function Attributes): Note that "tainted_args" can
23306 be used on field decls.
23307 (Common Function Attributes): Add entry on "tainted_args" attribute.
23308
23309 2022-01-13 Anthony Sharp <anthonysharp15@gmail.com>
23310 Jason Merrill <jason@redhat.com>
23311
23312 PR c++/70417
23313 * doc/invoke.texi: Documentation for Wmissing-template-keyword.
23314
23315 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
23316
23317 PR target/103861
23318 * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
23319 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
23320 * config/i386/mmx.md (<any_shift:insn>v2qi):
23321 New insn_and_split pattern.
23322
23323 2022-01-13 Robin Dapp <rdapp@linux.ibm.com>
23324
23325 * internal-fn.c (expand_partial_load_optab_fn): Add bias.
23326 (expand_partial_store_optab_fn): Likewise.
23327 (internal_len_load_store_bias): New function.
23328 * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
23329 (internal_len_load_store_bias): New function.
23330 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
23331 (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
23332 * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
23333 (vect_estimate_min_profitable_iters): Account for bias.
23334 (vect_get_loop_len): Add bias-adjusted length.
23335 * tree-vect-stmts.c (vectorizable_store): Use.
23336 (vectorizable_load): Use.
23337 * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
23338 (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
23339 * config/rs6000/vsx.md: Use const0 bias predicate.
23340 * doc/md.texi: Document bias value.
23341
23342 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
23343
23344 PR tree-optimization/83072
23345 PR tree-optimization/83073
23346 PR tree-optimization/97909
23347 * fold-const.c (expr_not_equal_to): Use a multi-range class.
23348
23349 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
23350
23351 PR tree-optimization/96707
23352 * range-op.cc (operator_rshift::lhs_op1_relation): New.
23353
23354 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
23355
23356 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
23357 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
23358 (negv2qi splitters): Use lowpart_subreg instead of
23359 gen_lowpart to create subreg.
23360 (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
23361 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
23362 (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
23363 gen_lowpart to create subreg.
23364 * config/i386/i386.md (*subqi_ext<mode>_2): Move.
23365
23366 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
23367
23368 PR target/104003
23369 * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
23370
23371 2022-01-13 Martin Liska <mliska@suse.cz>
23372
23373 * common/config/arm/arm-common.c (arm_target_mode): Wrap
23374 keywords with %<, %> and remove trailing punctuation char.
23375 (arm_canon_arch_option_1): Likewise.
23376 (arm_asm_auto_mfpu): Likewise.
23377 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
23378 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
23379 (use_vfp_abi): Likewise.
23380 (aapcs_vfp_is_call_or_return_candidate): Likewise.
23381 (arm_handle_cmse_nonsecure_entry): Likewise.
23382 (arm_handle_cmse_nonsecure_call): Likewise.
23383 (thumb1_md_asm_adjust): Likewise.
23384
23385 2022-01-13 Paul A. Clarke <pc@us.ibm.com>
23386
23387 * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
23388 _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
23389 _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
23390 _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
23391 _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
23392 _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
23393 (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
23394 _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
23395 macro.
23396
23397 2022-01-13 Jakub Jelinek <jakub@redhat.com>
23398
23399 PR tree-optimization/103989
23400 * tree-inline.c (setup_one_parameter): Don't copy parms with
23401 empty type.
23402
23403 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
23404
23405 * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
23406 'TYPE_ADDR_SPACE' for offloading.
23407 * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
23408 'TYPE_ADDR_SPACE' for offloading.
23409
23410 2022-01-13 Julian Brown <julian@codesourcery.com>
23411 Thomas Schwinge <thomas@codesourcery.com>
23412
23413 * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
23414 of...
23415 (add_async_clauses_and_wait): ...here. Call new outlined function.
23416 (decompose_kernels_region_body): Add wait at the end of
23417 explicitly-asynchronous kernels regions.
23418
23419 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
23420
23421 PR middle-end/100280
23422 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
23423 Mark variables used in synthesized data clauses as addressable.
23424
23425 2022-01-13 Martin Liska <mliska@suse.cz>
23426
23427 * config/epiphany/epiphany.c (epiphany_mode_priority):
23428 Use gcc_unreachable for not handled cases.
23429
23430 2022-01-13 Martin Liska <mliska@suse.cz>
23431
23432 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
23433 Use %qs format specifier.
23434 (epiphany_override_options): Wrap keyword in %<, %>.
23435
23436 2022-01-13 Haochen Jiang <haochen.jiang@intel.com>
23437
23438 PR target/94790
23439 * config/i386/i386.md (*xor2andn): New define_insn_and_split.
23440
23441 2022-01-13 Xionghu Luo <luoxhu@linux.ibm.com>
23442
23443 * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
23444
23445 2022-01-12 Uroš Bizjak <ubizjak@gmail.com>
23446
23447 PR target/100637
23448 PR target/103861
23449 * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
23450 (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
23451 when constructing vector logic RTXes.
23452 (expand_vec_perm_pshufb2): Ditto.
23453 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
23454 (<plusminus:insn>v2qi3): Ditto.
23455 (vcond<mode><mode>): Re-enable for TARGET_SSE2.
23456 (vcondu<mode><mode>): Ditto.
23457 (vcond_mask_<mode><mode>): Ditto.
23458 (one_cmpl<VI_32:mode>2): Remove expander.
23459 (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
23460 Use VI_16_32 mode iterator.
23461 (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
23462 Use lowpart_subreg instead of gen_lowpart to create subreg.
23463 (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
23464 "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
23465 Disparage GPR alternative a bit. Add CC clobber.
23466 (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
23467 Use lowpart_subreg instead of gen_lowpart to create subreg.
23468 (*<any_logic:code><VI_16_32:mode>3): Merge from
23469 "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
23470 using VI_16_32 mode iterator. Disparage GPR alternative a bit.
23471 Add CC clobber.
23472 (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
23473 iterator. Use lowpart_subreg instead of gen_lowpart to create subreg.
23474
23475 2022-01-12 Clément Chigot <clement.chigot@atos.net>
23476
23477 * configure.ac: Check sizeof ino_t and dev_t.
23478 (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
23479 syscall being able to handle 64bit inodes.
23480 * config.in: Regenerate.
23481 * configure: Regenerate.
23482 * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
23483 (remove_duplicates): Use it.
23484
23485 2022-01-12 Andrew MacLeod <amacleod@redhat.com>
23486
23487 PR tree-optimization/103551
23488 * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
23489
23490 2022-01-12 Richard Biener <rguenther@suse.de>
23491
23492 PR tree-optimization/103990
23493 * tree-pass.h (tail_merge_optimize): Drop unused argument.
23494 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
23495 * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
23496 and adjust call to tail_merge_optimize.
23497
23498 2022-01-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
23499
23500 * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
23501 does not add autovectorize_vector_modes.
23502
23503 2022-01-12 Martin Liska <mliska@suse.cz>
23504
23505 * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
23506 %qs where possible.
23507 (aarch64_parse_sve_width_string): Likewise.
23508 (aarch64_override_options_internal): Likewise.
23509 (aarch64_print_hint_for_extensions): Likewise.
23510 (aarch64_validate_sls_mitigation): Likewise.
23511 (aarch64_handle_attr_arch): Likewise.
23512 (aarch64_handle_attr_cpu): Likewise.
23513 (aarch64_handle_attr_tune): Likewise.
23514 (aarch64_handle_attr_isa_flags): Likewise.
23515
23516 2022-01-12 Martin Liska <mliska@suse.cz>
23517
23518 * config.gcc: Include elfos.h before ${tm_file}.
23519
23520 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
23521
23522 * config/cris/cris.c: Quote identifiers in parameters to error
23523 and internal_error, and remove extraneous spaces with punctuation.
23524 * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
23525 expression to internal_error, pass it as a parameter instead of
23526 appending it to the format part.
23527
23528 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
23529
23530 * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
23531 parameter to as_a.
23532
23533 2022-01-11 qing zhao <qing.zhao@oracle.com>
23534
23535 * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
23536 Change the 3rd argument of function .DEFERRED_INIT to the name of the
23537 decl.
23538 (gimplify_decl_expr): Delete the 3rd argument when call
23539 gimple_add_init_for_auto_var.
23540 * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
23541 the 3rd argument change of function .DEFERRED_INIT.
23542 * tree-cfg.c (verify_gimple_call): Update comments and verification
23543 to reflect the 3rd argument change of function .DEFERRED_INIT.
23544 * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
23545 (sra_modify_deferred_init): Change the 3rd argument of function
23546 .DEFERRED_INIT to the name of the decl.
23547
23548 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
23549
23550 * flag-types.h (enum gfc_convert): Add flags for
23551 conversion.
23552
23553 2022-01-11 Michael Meissner <meissner@the-meissners.org>
23554
23555 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
23556 checks for only C/C++ front ends before allowing the long double
23557 format to change without a warning.
23558
23559 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
23560
23561 PR rtl-optimization/103974
23562 * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
23563 extra argument, default true, that says whether old-reload
23564 targets should be excluded.
23565 * ira-color.c (color_pass): Pass false.
23566
23567 2022-01-11 Uroš Bizjak <ubizjak@gmail.com>
23568
23569 PR target/103861
23570 * config/i386/mmx.md (vcond<mode><mode>):
23571 Use VI_16_32 mode iterator. Enable for TARGET_SSE4_1.
23572 (vcondu<mode><mode>): Ditto.
23573 (vcond_mask_<mode><mode>): Ditto.
23574 (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
23575 (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
23576 Use VI_16_32 mode iterator.
23577 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
23578 Update for rename. Handle V2QImode.
23579 (expand_vec_perm_blend): Update for rename.
23580
23581 2022-01-11 Jakub Jelinek <jakub@redhat.com>
23582
23583 PR c++/101597
23584 * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
23585
23586 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
23587
23588 PR middle-end/70090
23589 * tree-object-size.c (size_valid_p): New function.
23590 (size_for_offset): Remove OFFSET constness assertion.
23591 (addr_object_size): Build dynamic expressions for object
23592 sizes and use size_valid_p to decide if it is valid for the
23593 given OBJECT_SIZE_TYPE.
23594 (compute_builtin_object_size): Allow dynamic offsets when
23595 computing size at O0.
23596 (call_object_size): Call size_valid_p.
23597 (plus_stmt_object_size): Allow non-constant offset and use
23598 size_valid_p to decide if it is valid for the given
23599 OBJECT_SIZE_TYPE.
23600
23601 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
23602
23603 PR middle-end/70090
23604 * tree-object-size.c (alloc_object_size): Make and return
23605 non-constant size expression.
23606 (call_object_size): Return expression or unknown based on
23607 whether dynamic object size is requested.
23608
23609 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
23610
23611 PR middle-end/70090
23612 * tree-object-size.c: Include tree-dfa.h.
23613 (parm_object_size): New function.
23614 (collect_object_sizes_for): Call it.
23615
23616 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
23617
23618 PR middle-end/70090
23619 * builtins.c (fold_builtin_object_size): Adjust for dynamic size
23620 expressions.
23621 * tree-object-size.c: Include gimplify-me.h.
23622 (struct object_size_info): New member UNKNOWNS.
23623 (size_initval_p, size_usable_p, object_sizes_get_raw): New
23624 functions.
23625 (object_sizes_get): Return suitable gimple variable for
23626 object size.
23627 (bundle_sizes): New function.
23628 (object_sizes_set): Use it and handle dynamic object size
23629 expressions.
23630 (object_sizes_set_temp): New function.
23631 (size_for_offset): Adjust for dynamic size expressions.
23632 (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
23633 New functions.
23634 (compute_builtin_object_size): Call gimplify_size_expressions
23635 for OST_DYNAMIC.
23636 (dynamic_object_size): New function.
23637 (cond_expr_object_size): Use it.
23638 (phi_dynamic_object_size): New function.
23639 (collect_object_sizes_for): Call it for OST_DYNAMIC. Adjust to
23640 accommodate dynamic object sizes.
23641
23642 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
23643 Jakub Jelinek <jakub@redhat.com>
23644
23645 PR tree-optimization/103961
23646 * tree-object-size.c (plus_stmt_object_size): Always avoid
23647 computing offset for -1 size.
23648
23649 2022-01-11 Andrew MacLeod <amacleod@redhat.com>
23650
23651 PR tree-optimization/103821
23652 * range-op.cc (range_operator::fold_range): Only do precise ranges
23653 when there are not too many subranges.
23654
23655 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
23656
23657 * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
23658 definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
23659
23660 2022-01-11 Roger Sayle <roger@nextmovesoftware.com>
23661 Richard Biener <rguenther@suse.de>
23662
23663 * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
23664 highpart_mults_inserted field.
23665 (convert_mult_to_highpart): New function to convert right shift
23666 of a widening multiply into a MULT_HIGHPART_EXPR.
23667 (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
23668 Call new convert_mult_to_highpart function.
23669 (pass_optimize_widening_mul::execute): Add a statistics counter
23670 for tracking "highpart multiplications inserted" events.
23671
23672 2022-01-11 Xionghu Luo <luoxhu@linux.ibm.com>
23673
23674 PR target/102239
23675 * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
23676 declare.
23677 * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
23678 function.
23679 * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
23680
23681 2022-01-11 Olivier Hainque <hainque@adacore.com>
23682
23683 * gcc.c (driver_handle_option): State --sysroot as
23684 validated.
23685
23686 2022-01-11 Kewen Lin <linkw@linux.ibm.com>
23687
23688 * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
23689 useless related to option -mno-power10.
23690
23691 2022-01-11 Haochen Jiang <haochen.jiang@intel.com>
23692
23693 PR target/53652
23694 * config/i386/sse.md (*andnot<mode>3): Extend predicate of
23695 operands[1] from register_operand to vector_operand.
23696
23697 2022-01-10 Uroš Bizjak <ubizjak@gmail.com>
23698
23699 PR target/103861
23700 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
23701 Handle V2QImode.
23702 * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
23703 Use VI1_16_32 mode iterator.
23704 (*eq<mode>3): Ditto.
23705 (*gt<mode>3): Ditto.
23706 (*xop_maskcmp<mode>3): Ditto.
23707 (*xop_maskcmp_uns<mode>3): Ditto.
23708 (vec_cmp<mode><mode>): Ditto.
23709 (vec_cmpu<mode><mode>): Ditto.
23710
23711 2022-01-10 Richard Biener <rguenther@suse.de>
23712
23713 PR tree-optimization/103948
23714 * tree-vect-generic.c (expand_vector_condition): Return true if
23715 all ones vector is returned for true, all zeros vector for false
23716 and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
23717
23718 2022-01-10 Paul A. Clarke <pc@us.ibm.com>
23719
23720 * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
23721 when _ARCH_PWR10. Use signed types.
23722 (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
23723 (_mm_blendv_pd): Likewise.
23724
23725 2022-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
23726
23727 * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
23728 epilogue costing.
23729 * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
23730 epilogues, unless we are guaranteed that we can't have partial vectors.
23731 * genopinit.c: (partial_vectors_supported): Generate new function.
23732
23733 2022-01-10 Jakub Jelinek <jakub@redhat.com>
23734
23735 PR target/102024
23736 * config/i386/i386.c (classify_argument): Add zero_width_bitfields
23737 argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
23738 always ignore them, when seeing other zero sized bitfields, either
23739 set zero_width_bitfields to 1 and ignore it or if equal to 2 process
23740 it. Pass it to recursive calls. Add wrapper
23741 with old arguments and diagnose ABI differences for C structures
23742 with zero width bitfields. Formatting fixes.
23743
23744 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
23745
23746 PR rtl-optimization/98782
23747 * ira-int.h (ira_soft_conflict): Declare.
23748 * ira-color.c (max_soft_conflict_loop_depth): New constant.
23749 (ira_soft_conflict): New function.
23750 (spill_soft_conflicts): Likewise.
23751 (assign_hard_reg): Use them to handle the case described by
23752 the comment above ira_soft_conflict.
23753 (improve_allocation): Likewise.
23754 * ira.c (check_allocation): Allow allocnos with "soft" conflicts
23755 to share the same register.
23756
23757 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
23758
23759 PR rtl-optimization/98782
23760 * ira-int.h (ira_caller_save_cost): New function.
23761 (ira_caller_save_loop_spill_p): Likewise.
23762 * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
23763 cheaper to spill a call-clobbered register throughout a loop rather
23764 than spill it around each individual call. If so, treat all
23765 call-clobbered registers as conflicts and...
23766 (propagate_allocno_info): ...do not propagate call information
23767 from the child to the parent.
23768 * ira-color.c (move_spill_restore): Update accordingly.
23769 * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
23770
23771 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
23772
23773 PR rtl-optimization/98782
23774 * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
23775 (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
23776 (ira_single_region_allocno_p): New function.
23777 (ira_total_conflict_hard_regs): Likewise.
23778 * ira-build.c (ira_create_allocno): Initialize
23779 ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
23780 (ira_propagate_hard_reg_costs): New function.
23781 (propagate_allocno_info): Use it. Try to avoid propagating
23782 hard register conflicts to parent allocnos if we can handle
23783 the conflicts by spilling instead. Limit the propagated
23784 register costs to the cost of spilling throughout the child loop.
23785 * ira-color.c (color_pass): Use ira_single_region_allocno_p to
23786 test whether a child and parent allocno can share the same
23787 register.
23788 (move_spill_restore): Adjust for the new behavior of
23789 propagate_allocno_info.
23790
23791 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
23792
23793 PR rtl-optimization/98782
23794 * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
23795 extracted from...
23796 * ira-color.c (color_pass): ...here.
23797
23798 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
23799
23800 PR rtl-optimization/98782
23801 * ira-color.c (color_pass): Add comments to describe the spill costs.
23802 (move_spill_restore): Likewise. Fix reversed calculation.
23803
23804 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
23805
23806 PR rtl-optimization/98782
23807 * ira-int.h (ira_loop_border_costs): New class.
23808 * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
23809 New constructor.
23810 (calculate_allocno_spill_cost): Use ira_loop_border_costs.
23811 (color_pass): Likewise.
23812 (move_spill_restore): Likewise.
23813
23814 2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
23815
23816 PR target/103465
23817 * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
23818
23819 2022-01-10 Richard Biener <rguenther@suse.de>
23820
23821 PR tree-optimization/100359
23822 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
23823 Allow non-growing peeling with !allow_peel and UL_ALL.
23824
23825 2022-01-08 Roger Sayle <roger@nextmovesoftware.com>
23826
23827 * config/i386/i386-expand.c (ix86_expand_vector_move): Add
23828 special case for TImode to V1TImode moves, going via V2DImode.
23829
23830 2022-01-08 Jakub Jelinek <jakub@redhat.com>
23831
23832 PR c++/89074
23833 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
23834 simplification.
23835
23836 2022-01-08 David Malcolm <dmalcolm@redhat.com>
23837
23838 * doc/analyzer.texi
23839 (Special Functions for Debugging the Analyzer): Document
23840 __analyzer_dump_escaped.
23841
23842 2022-01-08 David Malcolm <dmalcolm@redhat.com>
23843
23844 * doc/analyzer.texi (Other Debugging Techniques): Document
23845 region::is_named_decl_p.
23846
23847 2022-01-07 Andrew Pinski <apinski@marvell.com>
23848
23849 PR target/102941
23850 * config/arm/aarch-common.c (arm_md_asm_adjust):
23851 Use a temp if !REG_P.
23852
23853 2022-01-07 Uroš Bizjak <ubizjak@gmail.com>
23854
23855 * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
23856 (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
23857
23858 2022-01-07 liuhongt <hongtao.liu@intel.com>
23859
23860 PR rtl-optimization/103750
23861 * fwprop.c (forward_propagate_into): Allow propagations from
23862 inner loop to outer loop.
23863
23864 2022-01-07 Roger Sayle <roger@nextmovesoftware.com>
23865
23866 * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
23867
23868 2022-01-07 Haochen Gui <guihaoc@gcc.gnu.org>
23869
23870 * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
23871 (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
23872 Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
23873
23874 2022-01-07 liuhongt <hongtao.liu@intel.com>
23875
23876 * config/i386/sse.md
23877 (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
23878 UNSPEC_PCMP_UNSIGNED.
23879
23880 2022-01-07 liuhongt <hongtao.liu@intel.com>
23881
23882 PR target/103753
23883 * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
23884 gen_avx2_pblendph_1 when elt == 0.
23885 * config/i386/sse.md (avx2_pblendph): Rename to ..
23886 (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
23887 (*avx2_pblendw): Rename to ..
23888 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
23889 (avx2_pblendw): Rename to ..
23890 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
23891 (blendsuf): Removed.
23892 (sse4_1_pblend<blendsuf>): Renamed to ..
23893 (sse4_1_pblend<ssemodesuffix>): .. this.
23894
23895 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
23896
23897 PR target/103925
23898 * config/i386/i386.c (ix86_output_indirect_function_return):
23899 Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
23900
23901 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
23902
23903 PR target/102952
23904 * config/i386/i386-opts.h (harden_sls): Replace
23905 harden_sls_indirect_branch with harden_sls_indirect_jmp.
23906 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
23907 Likewise.
23908 (ix86_output_indirect_jmp): Likewise.
23909 (ix86_output_call_insn): Likewise.
23910 * config/i386/i386.opt: Replace indirect-branch with
23911 indirect-jmp. Replace harden_sls_indirect_branch with
23912 harden_sls_indirect_jmp.
23913 * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
23914 indirect-jmp.
23915
23916 2022-01-06 Uroš Bizjak <ubizjak@gmail.com>
23917
23918 * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
23919 Add %q modifier for operands in general registers.
23920 <MODE_SI>: Add %q modifier for operands in general registers.
23921 * config/i386/i386.md (*movhi_internal): Change type attribute of
23922 xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
23923 to SImode for non-avx512fp16 targets.
23924 (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
23925 * config/i386/mmx.md (*movv2qi_internal):
23926 Ditto for xmm-gpr interunit alternatives 8,9.
23927
23928 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
23929
23930 * common/config/riscv/riscv-common.c (riscv_implied_info): Add
23931 vector extensions.
23932 (riscv_ext_version_table): Add version info for vector extensions.
23933 (riscv_ext_flag_table): Add option mask for vector extensions.
23934 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
23935 (MASK_VECTOR_EEW_64): New.
23936 (MASK_VECTOR_EEW_FP_32): New.
23937 (MASK_VECTOR_EEW_FP_64): New.
23938 (MASK_ZVL32B): New.
23939 (MASK_ZVL64B): New.
23940 (MASK_ZVL128B): New.
23941 (MASK_ZVL256B): New.
23942 (MASK_ZVL512B): New.
23943 (MASK_ZVL1024B): New.
23944 (MASK_ZVL2048B): New.
23945 (MASK_ZVL4096B): New.
23946 (MASK_ZVL8192B): New.
23947 (MASK_ZVL16384B): New.
23948 (MASK_ZVL32768B): New.
23949 (MASK_ZVL65536B): New.
23950 (TARGET_ZVL32B): New.
23951 (TARGET_ZVL64B): New.
23952 (TARGET_ZVL128B): New.
23953 (TARGET_ZVL256B): New.
23954 (TARGET_ZVL512B): New.
23955 (TARGET_ZVL1024B): New.
23956 (TARGET_ZVL2048B): New.
23957 (TARGET_ZVL4096B): New.
23958 (TARGET_ZVL8192B): New.
23959 (TARGET_ZVL16384B): New.
23960 (TARGET_ZVL32768B): New.
23961 (TARGET_ZVL65536B): New.
23962 * config/riscv/riscv.opt (Mask(VECTOR)): New.
23963 (riscv_vector_eew_flags): New.
23964 (riscv_zvl_flags): New.
23965
23966 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
23967
23968 * common/config/riscv/riscv-common.c
23969 (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
23970 digit.
23971
23972 2022-01-06 Jakub Jelinek <jakub@redhat.com>
23973
23974 PR tree-optimization/103899
23975 * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
23976 warning by moving context variable to the only spot where it is used
23977 and moving gcc_assert into if body.
23978
23979 2022-01-06 Jakub Jelinek <jakub@redhat.com>
23980
23981 PR rtl-optimization/103908
23982 * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
23983 asm goto.
23984
23985 2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com>
23986
23987 PR target/103622
23988 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
23989 Skip over instances with undefined function types.
23990
23991 2022-01-05 Andrew Pinski <apinski@marvell.com>
23992
23993 PR target/103910
23994 * config/i386/i386.h (x86_mfence): Mark with GTY.
23995
23996 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
23997
23998 PR target/103861
23999 * config/i386/mmx.md (VI_16_32): New mode iterator.
24000 (VI1_16_32): Ditto.
24001 (mmxvecsize): Handle V2QI mode.
24002 (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
24003 Use VI1_16_32 mode iterator.
24004 (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
24005 Use VI1_16_32 mode iterator.
24006 (abs<mode>2): Use VI_16_32 mode iterator.
24007 (uavgv2qi3_ceil): New insn pattern.
24008
24009 2022-01-05 Martin Sebor <msebor@redhat.com>
24010
24011 * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
24012 %qs to avoid -Wformat-diag.
24013
24014 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
24015
24016 PR target/103915
24017 * config/i386/mmx.md (one_cmplv2qi2): Change
24018 alternatives 1,2 type from sselog to sselog1.
24019
24020 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
24021
24022 PR target/103905
24023 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
24024 narrow mode remapped elements for !one_operand_p case.
24025
24026 2022-01-05 Richard Biener <rguenther@suse.de>
24027
24028 PR tree-optimization/103816
24029 * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
24030 check DR_GROUP_GAP compute for overflow and representability.
24031
24032 2022-01-05 Jakub Jelinek <jakub@redhat.com>
24033
24034 PR fortran/103691
24035 * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
24036 for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
24037 it can do unwanted rhs folding like &a[0] into &2.0 etc.
24038
24039 2022-01-05 Kewen Lin <linkw@linux.ibm.com>
24040
24041 PR ipa/102059
24042 * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
24043 (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
24044 (rs6000_need_ipa_fn_target_info): New function.
24045 (rs6000_update_ipa_fn_target_info): Likewise.
24046 (rs6000_can_inline_p): Adjust for ipa function summary target info.
24047 * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
24048 * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
24049 summary target info.
24050 (analyze_function_body): Adjust for ipa function summary target info
24051 and call hook rs6000_need_ipa_fn_target_info and
24052 rs6000_update_ipa_fn_target_info.
24053 (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
24054 target info.
24055 (inline_read_section): Likewise.
24056 (ipa_fn_summary_write): Likewise.
24057 * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
24058 * doc/tm.texi: Regenerate.
24059 * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
24060 (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
24061 * target.def (update_ipa_fn_target_info): New hook.
24062 (need_ipa_fn_target_info): Likewise.
24063 * targhooks.c (default_need_ipa_fn_target_info): New function.
24064 (default_update_ipa_fn_target_info): Likewise.
24065 * targhooks.h (default_update_ipa_fn_target_info): New declare.
24066 (default_need_ipa_fn_target_info): Likewise.
24067
24068 2022-01-04 Martin Sebor <msebor@redhat.com>
24069
24070 PR middle-end/99612
24071 * builtins.c (get_memmodel): Move warning code to
24072 gimple-ssa-warn-access.cc.
24073 (expand_builtin_atomic_compare_exchange): Same.
24074 (expand_ifn_atomic_compare_exchange): Same.
24075 (expand_builtin_atomic_load): Same.
24076 (expand_builtin_atomic_store): Same.
24077 (expand_builtin_atomic_clear): Same.
24078 * doc/extend.texi (__atomic_exchange_n): Update valid memory
24079 models.
24080 * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
24081 (struct memmodel_pair): New struct.
24082 (memmodel_name): New function.
24083 (pass_waccess::maybe_warn_memmodel): New function.
24084 (pass_waccess::check_atomic_memmodel): New function.
24085 (pass_waccess::check_atomic_builtin): Handle memory model.
24086 * input.c (expansion_point_location_if_in_system_header): Return
24087 original location if expansion location is in a system header.
24088
24089 2022-01-04 Uroš Bizjak <ubizjak@gmail.com>
24090
24091 PR target/103861
24092 * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
24093 (one_cmplv2qi3 splitters): New post-reload splitters.
24094 (*andnotv2qi3): New insn pattern.
24095 (andnotv2qi3 splitters): New post-reload splitters.
24096 (<any_logic:code>v2qi3): New insn pattern.
24097 (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
24098
24099 2022-01-04 Richard Biener <rguenther@suse.de>
24100
24101 PR tree-optimization/103800
24102 * tree-vect-loop.c (vectorizable_phi): Remove assert and
24103 expand comment.
24104
24105 2022-01-04 Richard Biener <rguenther@suse.de>
24106
24107 PR tree-optimization/103690
24108 * tree-pass.h (tail_merge_optimize): Adjust.
24109 * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
24110 to re-split critical edges, move CFG cleanup ...
24111 * tree-ssa-pre.c (pass_pre::execute): ... here, before
24112 simple_dce_from_worklist and delay freeing inserted_exprs from
24113 ...
24114 (fini_pre): .. here.
24115
24116 2022-01-04 Roger Sayle <roger@nextmovesoftware.com>
24117
24118 * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
24119 * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
24120 (setcc_from_bi): Remove SImode specific pattern.
24121 (setcc<mode>_from_bi): Provide more general HSDIM pattern.
24122 (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
24123 for sign- and zero-extending BImode predicates to integers.
24124 (setcc_int<mode>): Remove previous (-1-based) instructions.
24125 (cstorebi4): Remove BImode to SImode specific expander.
24126 (cstore<mode>4): Fix indentation. Expand using setccsi_from_bi.
24127 (cstore<mode>4): For both integer and floating point modes.
24128
24129 2022-01-04 Olivier Hainque <hainque@adacore.com>
24130
24131 * gcc.c (driver_handle_option): do_save --sysroot.
24132
24133 2022-01-04 Richard Biener <rguenther@suse.de>
24134
24135 PR tree-optimization/103864
24136 PR tree-optimization/103544
24137 * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
24138 reductions wrapped in conversions from SLP handling.
24139 (vect_analyze_slp): Revert PR103544 change.
24140
24141 2022-01-04 Jakub Jelinek <jakub@redhat.com>
24142
24143 PR rtl-optimization/103860
24144 * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
24145 uselessly for blocks for which it has been called already.
24146
24147 2022-01-04 Cui,Lili <lili.cui@intel.com>
24148
24149 * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
24150 to Alderlake and Rocketlake.
24151
24152 2022-01-04 Chung-Lin Tang <cltang@codesourcery.com>
24153
24154 PR middle-end/103643
24155 * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
24156 OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
24157
24158 2022-01-04 liuhongt <hongtao.liu@intel.com>
24159
24160 PR target/103895
24161 * config/i386/sse.md (*bit_and_float_vector_all_ones):
24162 Force_reg operand 1 to avoid ICE.
24163
24164 2022-01-04 Jason Merrill <jason@redhat.com>
24165
24166 * tree-pretty-print.c (do_niy): Add spc parameter.
24167 (NIY): Pass it.
24168 (print_call_name): Add spc local variable.
24169
24170 2022-01-03 Uroš Bizjak <ubizjak@gmail.com>
24171
24172 PR target/103894
24173 * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
24174 (mov<V_32:mode>_internal): Ditto.
24175 (*push<V_32:mode>_rex64): Ditto.
24176 (movmisalign<V_32:mode>): Ditto.
24177 (*push<V_32:mode>_rex64 splitter): Enable for
24178 TARGET_64BIT && TARGET_SSE.
24179 (*push<V_32:mode>2): Remove insn pattern.
24180
24181 2022-01-03 Andrew Pinski <apinski@marvell.com>
24182
24183 PR c/33193
24184 * doc/extend.texi: Extend the documentation about Complex
24185 types for casting and also rewrite the __real__/__imag__
24186 expression portion to use tables.
24187 Move __builtin_complex to the Complex type section.
24188
24189 2022-01-03 Jakub Jelinek <jakub@redhat.com>
24190
24191 PR target/98737
24192 * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
24193 ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
24194 New internal fns.
24195 * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
24196 ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
24197 ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
24198 * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
24199 expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
24200 expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
24201 functions.
24202 * optabs.def (atomic_add_fetch_cmp_0_optab,
24203 atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
24204 atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
24205 direct optabs.
24206 * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
24207 * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
24208 * tree-ssa-ccp.c: Include internal-fn.h.
24209 (optimize_atomic_bit_test_and): Add . before internal fn call
24210 in function comment. Change return type from void to bool and
24211 return true only if successfully replaced.
24212 (optimize_atomic_op_fetch_cmp_0): New function.
24213 (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
24214 for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
24215 BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
24216 for *XOR* ones only if optimize_atomic_bit_test_and failed.
24217 * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
24218 atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
24219 (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
24220 atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
24221 * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
24222 atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
24223 atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
24224 new named patterns.
24225
24226 2022-01-03 Richard Biener <rguenther@suse.de>
24227
24228 PR middle-end/103851
24229 * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
24230
24231 2022-01-03 Jakub Jelinek <jakub@redhat.com>
24232
24233 PR c++/94716
24234 * symtab.c: Include fold-const.h.
24235 (symtab_node::equal_address_to): If folding_initializer is true,
24236 handle it like memory_accessed. Simplify.
24237
24238 2022-01-03 Martin Liska <mliska@suse.cz>
24239
24240 * doc/extend.texi: Use ; for function declarations.
24241
24242 2022-01-03 Jakub Jelinek <jakub@redhat.com>
24243
24244 PR c++/103600
24245 * symtab.c (symtab_node::equal_address_to): Return 0 if one of
24246 VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
24247
24248 2022-01-03 Jakub Jelinek <jakub@redhat.com>
24249
24250 * gcc.c (process_command): Update copyright notice dates.
24251 * gcov-dump.c (print_version): Ditto.
24252 * gcov.c (print_version): Ditto.
24253 * gcov-tool.c (print_version): Ditto.
24254 * gengtype.c (create_file): Ditto.
24255 * doc/cpp.texi: Bump @copying's copyright year.
24256 * doc/cppinternals.texi: Ditto.
24257 * doc/gcc.texi: Ditto.
24258 * doc/gccint.texi: Ditto.
24259 * doc/gcov.texi: Ditto.
24260 * doc/install.texi: Ditto.
24261 * doc/invoke.texi: Ditto.
24262
24263 2022-01-02 Uroš Bizjak <ubizjak@gmail.com>
24264
24265 PR target/103861
24266 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
24267 (VALID_INT_MODE_P): Ditto.
24268 * config/i386/i386.c (ix86_secondary_reload): Handle
24269 V2QImode reloads from SSE register to memory.
24270 (vector_mode_supported_p): Always return true for V2QImode.
24271 * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
24272 (*negqi_ext<mode>_2): Ditto.
24273 * config/i386/mmx.md (movv2qi): New expander.
24274 (movmisalignv2qi): Ditto.
24275 (*movv2qi_internal): New insn pattern.
24276 (*pushv2qi2): Ditto.
24277 (negv2qi2 and splitters): Ditto.
24278 (<plusminus:insn>v2qi3 and splitters): Ditto.
24279
24280 2022-01-02 John David Anglin <danglin@gcc.gnu.org>
24281
24282 * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
24283 sync_lock_test_and_set libfunc. Call convert_memory_address to
24284 convert memory address to Pmode.
24285 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
24286
24287 \f
24288 Copyright (C) 2022 Free Software Foundation, Inc.
24289
24290 Copying and distribution of this file, with or without modification,
24291 are permitted in any medium without royalty provided the copyright
24292 notice and this notice are preserved.