1 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
4 * value-query.cc (get_range_global): Handle non integer ranges for
7 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
9 * range-op-float.cc (foperator_unordered_lt::op1_range): New.
10 (foperator_unordered_lt::op2_range): New.
12 2022-10-20 Artem Klimov <jakmobius@gmail.com>
13 Alexander Monakov <amonakov@gcc.gnu.org>
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.
22 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
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.
33 2022-10-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
35 PR tree-optimization/107326
36 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Change
37 vectype when widening container.
39 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
41 * value-range.h (frange::set_varying): Do not set NAN flags for
43 * value-range.cc (frange::normalize_kind): Adjust for no NAN when
45 (frange::verify_range): Same.
46 * range-op-float.cc (maybe_isnan): Remove flag_finite_math_only check.
48 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
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.
62 2022-10-20 Jakub Jelinek <jakub@redhat.com>
64 * passes.cc (pass_manager::register_pass): Fix a comment
65 typo - copmilation -> compilation.
67 2022-10-20 Richard Biener <rguenther@suse.de>
69 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
70 Disallow latch PHI defs.
71 (vectorizable_recurr): Revert previous change.
73 2022-10-20 Julian Brown <julian@codesourcery.com>
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.
80 2022-10-20 Thomas Schwinge <thomas@codesourcery.com>
82 * configure.ac (AC_CONFIG_MACRO_DIRS): Instantiate.
83 * configure: Regenerate.
85 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
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.
94 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
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.
110 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
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.
119 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
121 * config/aarch64/aarch64-sve.md (*aarch64_brk<brk_op>_cc): Remove
123 (*aarch64_brk<brk_op>_ptest): Likewise.
125 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
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.
133 2022-10-20 Richard Biener <rguenther@suse.de>
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.
143 2022-10-20 Richard Biener <rguenther@suse.de>
145 PR tree-optimization/107240
146 * tree-vect-patterns.cc (vect_recog_bit_insert_pattern): Attempt to
147 simplify shifted value first.
149 2022-10-20 Andrew MacLeod <amacleod@redhat.com>
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.
166 2022-10-19 Aldy Hernandez <aldyh@redhat.com>
168 * range-op-float.cc (build_le): Document result.
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.
179 2022-10-19 Marek Polacek <polacek@redhat.com>
182 * doc/invoke.texi: Update documentation of -Wuseless-cast.
184 2022-10-19 Andrew MacLeod <amacleod@redhat.com>
186 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
187 Value_Range not int_range_max.
189 2022-10-19 Aldy Hernandez <aldyh@redhat.com>
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.
195 2022-10-19 LIU Hao <lh_mouse@126.com>
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
202 * configure.ac: Recognize `mcf` as a valid thread model
203 * config.in: Regenerate
204 * configure: Regenerate
206 2022-10-19 Lewis Hyatt <lhyatt@gmail.com>
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.
218 2022-10-19 Martin Liska <mliska@suse.cz>
220 * doc/extend.texi: Remove useless @tie{} directives.
222 2022-10-19 Martin Jambor <mjambor@suse.cz>
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.
230 2022-10-19 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
233 * config/s390/s390.cc (s390_call_saved_register_used): For a
234 parameter with BLKmode fix determining number of consecutive
237 2022-10-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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):
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
257 2022-10-19 Robin Dapp <rdapp@linux.ibm.com>
259 * config/s390/s390.md: Move reload_completed and check operands for REG_P.
261 2022-10-19 Jakub Jelinek <jakub@redhat.com>
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.
268 2022-10-19 Jakub Jelinek <jakub@redhat.com>
270 PR tree-optimization/106990
271 * match.pd ((~X - ~Y) -> Y - X, -x & 1 -> x & 1): Guard with
272 !TYPE_OVERFLOW_SANITIZED (type).
274 2022-10-19 Jakub Jelinek <jakub@redhat.com>
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.
287 2022-10-19 Richard Biener <rguenther@suse.de>
289 PR tree-optimization/106781
290 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Copy
291 LHS removal from fixup_noreturn_call.
293 2022-10-19 liuhongt <hongtao.liu@intel.com>
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
300 2022-10-18 Martin Jambor <mjambor@suse.cz>
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
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
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.
361 2022-10-18 Martin Jambor <mjambor@suse.cz>
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
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
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
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
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
435 2022-10-18 Richard Biener <rguenther@suse.de>
437 PR tree-optimization/107302
438 * tree-vect-loop.cc (vectorizable_recurrence): Fix vec_perm
439 placement for a PHI latch def.
441 2022-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
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
448 (tree_if_conversion):... to here.
450 2022-10-18 Jakub Jelinek <jakub@redhat.com>
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):
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
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
486 * lto-streamer-out.cc (output_struct_function_base): Pack
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
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.
508 2022-10-18 Richard Biener <rguenther@suse.de>
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.
515 2022-10-18 Andrew MacLeod <amacleod@redhat.com>
517 PR tree-optimization/107273
518 * value-relation.cc (equiv_oracle::add_partial_equiv): Merge
519 instead of copying precison of each member.
521 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
524 * config/h8300/combiner.md: Replace '<' preincment constraint with
525 ZA/Z1..ZH/Z7 combinations.
526 * config/h8300/movepush.md: Similarly
528 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
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.
535 2022-10-17 Jeff Law <jlaw@ventanamicro.com>
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.
550 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
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.
567 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
569 * config/h8300/extensions.md (CCZN setting zero extended load): Add
572 2022-10-17 Aldy Hernandez <aldyh@redhat.com>
574 PR tree-optimization/107293
576 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
577 Check that condition post-dominates the definition point.
579 2022-10-17 Aldy Hernandez <aldyh@redhat.com>
581 PR tree-optimization/107286
582 * value-range.cc (range_tests_floats): Do not test for -Inf when
583 flag_finite_math_only.
585 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
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
603 (*::op1_range): Ditto.
604 (*::op2_range): Ditto.
605 * range-op.cc (*::fold_range): Use relation_trio instead of
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
615 (relation_oracle::validate_relation): Use relation_trio in call
617 * value-relation.h (enum relation_kind_t): Add VREL_LAST as
619 (class relation_trio): New.
620 (TRIO_VARYING, TRIO_SHIFT, TRIO_MASK): New.
622 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
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
628 (foperator_ordered::op1_range): Set rather than clear NAN if both
629 operands are the same.
631 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
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.
637 2022-10-17 Thomas Schwinge <thomas@codesourcery.com>
639 * config/gcn/gcn.cc (VnMODE): Use 'case E_QImode:' instead of
642 2022-10-17 Thomas Schwinge <thomas@codesourcery.com>
644 * gimple-expr.cc (mark_addressable_2): Tag as 'static'.
646 2022-10-17 Richard Biener <rguenther@suse.de>
647 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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
656 (vect_analyze_scalar_cycles_1): Look for first order
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
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.
673 2022-10-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
675 * config/riscv/t-riscv: Change Tab into 2 space.
677 2022-10-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
679 * config/riscv/riscv-vector-builtins.cc (mangle_builtin_type): Move down the function.
681 2022-10-17 Arsen Arsenovic <arsen@aarsen.me>
683 * config.gcc: --target=*-elf --without-{newlib,headers} should
686 2022-10-17 Hu, Lin1 <lin1.hu@intel.com>
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.
693 2022-10-17 Haochen Jiang <haochen.jiang@intel.com>
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.
700 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
702 * config/h8300/constraints.md (Z0..Z7): New register
704 * config/h8300/h8300.h (reg_class): Add new classes.
705 (REG_CLASS_NAMES): Similarly.
706 (REG_CLASS_CONTENTS): Similarly.
708 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
710 * config/h8300/constraints.md (Zz constraint): Renamed
712 * config/h8300/movepush.md (movqi_h8sx, movhi_h8sx): Adjust
713 constraint to use Zz instead of Z.
715 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
717 * config/h8300/h8300.cc (h8300_register_move_cost): Fix typo.
719 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
721 * value-range.cc (frange::set): Implement distinction between
722 HONOR_SIGNED_ZEROS and MODE_HAS_SIGNED_ZEROS.
724 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
726 * gimple-range-op.cc (class cfn_copysign): New.
727 (gimple_range_op_handler::maybe_builtin_call): Add
728 CFN_BUILT_IN_COPYSIGN*.
730 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
732 * real.h (real_isdenormal): Check rvc_normal.
733 * value-range.cc (range_tests_floats): New test.
735 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
738 (gimple_range_op_handler::maybe_builtin_call): Replace
739 CFN_BUILTIN_SIGNBIT* cases with CASE_FLT_FN.
741 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
743 * value-range.cc (frange::set): Normalize ranges for both bounds.
745 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
747 * value-range.cc (frange::set): Drop -0.0 for !HONOR_SIGNED_ZEROS.
749 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
752 (gimple_range_op_handler::maybe_builtin_call): Add
753 CFN_BUILT_IN_SIGNBIT[FL]* entries.
755 2022-10-14 Richard Biener <rguenther@suse.de>
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
763 2022-10-14 Eric Botcazou <ebotcazou@adacore.com>
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.
772 2022-10-14 Jakub Jelinek <jakub@redhat.com>
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
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
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
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.
804 2022-10-14 Jakub Jelinek <jakub@redhat.com>
808 * doc/invoke.texi (-fexcess-precision=standard): Mention that the
809 option now also works in C++.
811 2022-10-13 Eric Botcazou <ebotcazou@adacore.com>
813 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Return
814 early for calls made from thunks.
816 2022-10-13 Eric Botcazou <ebotcazou@adacore.com>
818 * expr.cc (emit_group_stote): Fix handling of modes of different
819 sizes for big-endian targets in latest change and add commentary.
821 2022-10-13 Martin Liska <mliska@suse.cz>
823 * output.h (assemble_vtv_preinit_initializer): Remove.
824 * varasm.cc (assemble_vtv_preinit_initializer): Remove.
826 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
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.
834 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
836 * range-op.cc (operator_cast::lhs_op1_relation): New.
837 (operator_bitwise_and::lhs_op1_relation): New.
839 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
841 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Use
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.
853 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
855 * value-relation.cc (equiv_chain::dump): Don't print empty
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.
875 2022-10-13 Richard Biener <rguenther@suse.de>
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.
883 2022-10-13 Jakub Jelinek <jakub@redhat.com>
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
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
904 * config/i386/i386-expand.cc (get_mode_wider_vector): Use
905 GET_MODE_NEXT_MODE instead of GET_MODE_WIDER_MODE.
907 2022-10-13 Wilco Dijkstra <wdijkstr@arm.com>
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.
916 2022-10-13 Richard Biener <rguenther@suse.de>
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
923 2022-10-13 Aldy Hernandez <aldyh@redhat.com>
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.
935 2022-10-13 Richard Biener <rguenther@suse.de>
937 * genmatch.cc (parser::parse_c_expr): Diagnose 'return'.
938 * match.pd: Replace 'return' statements in with expressions
939 with appropriate variants.
941 2022-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com>
943 PR tree-optimization/107229
944 * tree-if-conv.cc (get_bitfield_rep): Fix bitposition calculation.
946 2022-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com>
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.
952 2022-10-13 Joseph Myers <joseph@codesourcery.com>
954 * ginclude/float.h (FLT_IS_IEC_60559, DBL_IS_IEC_60559)
955 (LDBL_IS_IEC_60559): Update comment.
957 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
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.
963 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
965 * config/riscv/riscv-vector-builtins.h: Remove unused macro.
967 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
969 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Apply
971 (add_vector_type_attribute): Ditto.
972 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Apply
974 * config/riscv/riscv-vector-builtins.h (DEF_RVV_TYPE): Apply
977 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
979 * config/riscv/riscv-vector-builtins.cc (builtin_types): Redefine
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.
987 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
989 * config/riscv/riscv-vector-builtins.h (class rvv_switcher): Move to
991 * config/riscv/riscv-vector-builtins.cc (class rvv_switcher):
994 2022-10-12 Cui,Lili <lili.cui@intel.com>
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
1001 2022-10-12 Martin Liska <mliska@suse.cz>
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.
1008 2022-10-12 Martin Liska <mliska@suse.cz>
1010 * configure: Regenerate.
1012 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
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.
1018 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
1020 * value-range.h (frange::nan_signbit_p): New.
1022 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
1024 * value-range.cc (frange::set_nonnegative): Pass bool to
1026 * value-range.h: Disallow conversion to bool in update_nan().
1028 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
1030 * value-range.h (frange::frange): Add constructor taking type.
1032 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
1034 * range-op-float.cc: Add relation_kind = VREL_VARYING to all
1037 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
1039 * gimple-range-gori.cc (gori_compute::logical_combine): Avoid
1040 calling tracer.trailer().
1042 2022-10-11 Jakub Jelinek <jakub@redhat.com>
1045 * config/i386/i386.md (*notxor<mode>_1): Use MASK_REG_P (x) instead of
1046 MASK_REGNO_P (REGNO (x)).
1048 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
1050 * range-op-float.cc (class foperator_abs): New.
1051 (floating_op_table::floating_op_table): Add ABS_EXPR entry.
1053 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
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.
1063 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
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.
1074 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
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.
1082 2022-10-11 Richard Biener <rguenther@suse.de>
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
1088 (vectorizable_live_operation): Do not pun to the SLP
1089 node representative for reduction epilogue generation.
1091 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
1093 * config/gcn/gcn-valu.md (neg<mode>2): New define_expand.
1095 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
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
1104 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
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.
1112 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
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.
1119 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
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.
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.
1193 2022-10-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
1195 * tree-if-conv.cc (if_convertible_loop_p_1): Move ordering of loop bb's from
1197 (tree_if_conversion): ... to here. Also call bitfield lowering when
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
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
1210 * tree-vect-patterns.cc (vect_recog_temp_ssa_var): Add default value for last
1212 (vect_recog_bitfield_ref_pattern): New.
1213 (vect_recog_bit_insert_pattern): New.
1215 2022-10-11 liuhongt <hongtao.liu@intel.com>
1218 * config/i386/i386.md (*notxor<mode>_1): New post_reload
1219 define_insn_and_split.
1220 (*notxorqi_1): Ditto.
1222 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
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.
1228 2022-10-11 Olivier Hainque <hainque@adacore.com>
1229 Olivier Hainque <hainque@adacore.com>
1231 * configure: Regenerate.
1233 2022-10-11 Olivier Hainque <hainque@adacore.com>
1235 * config.gcc (*vxworks*): Add t-slibgcc fragment
1238 2022-10-11 Olivier Hainque <hainque@adacore.com>
1240 * config/vxworks.h (VX_LGCC_EH_SO0, VX_LGCC_EH_SO1): New
1242 (VXWORKS_LIBGCC_SPEC): Use them and document.
1244 2022-10-11 Martin Liska <mliska@suse.cz>
1246 * gimple-range-op.cc: Add override keyword.
1248 2022-10-11 Eugene Rozenfeld <erozen@microsoft.com>
1251 * tree-cfg.cc (assign_discriminators): Move declaration of cur_locus_e
1254 2022-10-11 Liwei Xu <liwei.xu@intel.com>
1255 liuhongt <hongtao.liu@intel.com>
1257 PR tree-optimization/54346
1258 * match.pd: Merge the index of VCST then generates the new vec_perm.
1260 2022-10-11 Jeff Law <jeffreyalaw@gmail.com>
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.
1266 2022-10-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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
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.
1278 2022-10-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1280 * config/riscv/riscv.md: Add vsetvl instruction type.
1282 2022-10-10 Nathan Sidwell <nathan@acm.org>
1284 * common.opt (-fabi-version=): Document 18.
1285 * doc/invoke.texi (-fabi-version): Document 18.
1287 2022-10-10 Andrea Corallo <andrea.corallo@arm.com>
1290 * toplev.cc (toplev::main): Don't run self tests in case of
1293 2022-10-10 Kito Cheng <kito.cheng@sifive.com>
1295 * config/riscv/riscv-c.cc: Add newline to the end of file.
1297 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
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.
1309 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
1311 * value-range.h (frange::maybe_isnan): New.
1313 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
1315 * range-op-float.cc (foperator_not_equal::op1_range): Set NAN on
1316 TRUE side for x != x.
1318 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
1320 * range-op-float.cc (foperator_unordered::op1_range): Set NAN when
1321 operands are equal and result is TRUE.
1323 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
1325 * range.h (range_true): Return int_range<2>.
1326 (range_false): Same.
1327 (range_true_and_false): Same.
1329 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
1331 * gimple-range-op.cc: Add op1_range entry for __builtin_signbit.
1333 2022-10-10 liuhongt <hongtao.liu@intel.com>
1336 * config/i386/i386.md (lrint<MODEF:mode><SWI48:mode>2): Swap
1337 predicate of operands[0] and operands[1].
1339 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
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.
1346 * doc/invoke.texi (mRcw, mRcq): Update document.
1348 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
1350 * config/arc/arc.cc (arc_check_short_reg_p): New function.
1351 (arc_address_cost): Replace satisfies_constraint_Rcq with the
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.
1361 (tst_bitfield): Likewise.
1363 (addsi3_mixed): Likewise.
1364 (mulhisi3_reg): Likewise.
1365 (umulhisi3_reg): Likewise.
1366 (mulsi_600): Likewise.
1368 (subsi3_insn): Likewise.
1369 (bicsi3_insn): Likewise.
1372 (one_cmplsi2): Likewise.
1373 (lshrsi3_insn): Likewise.
1374 (cmpsi_cc_insn_mixed): Likewise.
1375 (cmpsi_cc_zn_insn): Likewise.
1377 (cmpsi_cc_z_insn): Likewise.
1378 (cmpsi_cc_c_insn): Likewise.
1379 (indirect_jump): Likewise.
1380 (casesi_jump): Likewise.
1382 (call_value_i): Likewise.
1385 (ashlsi2_cnt1): Likewise.
1386 (lshrsi3_cnt1): Likewise.
1387 (ashrsi3_cnt1): Likewise.
1388 * config/arc/constraints.md (Rcq): Remove.
1390 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
1392 * config/arc/arc.md (smaxsi3): Remove Rcw.
1393 (sminsi3): Likewise.
1394 (addsi3_mixed): Likewise.
1395 (add_f_2): Likewise.
1396 (subsi3_insn): Likewise.
1402 (bset_insn): Likewise.
1403 (bxor_insn): Likewise.
1404 (bclr_insn): Likewise.
1405 (bmsk_insn): Likewise.
1406 (bicsi3_insn): Likewise.
1409 (lshrsi3_insn): Likewise.
1412 * config/arc/constraints.md(Rcw): Remove it.
1414 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
1416 * config/arc/arc.md(mulsi3_700): Remove Rcr.
1417 (mulsi3_highpart): Likewise.
1418 (umulsi3_highpart_i): Likewise.
1419 (umulsi3_highpart_int): Likewise.
1422 * config/arc/constraints.md (Rcr): Remove it.
1424 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
1426 * config/arc/arc.cc (arc_save_callee_enter): Use negative offsets.
1428 2022-10-09 Dimitar Dimitrov <dimitar@dinux.eu>
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.
1436 2022-10-09 Dimitar Dimitrov <dimitar@dinux.eu>
1438 * config/pru/pru.md (lshrdi3): New expand pattern.
1441 2022-10-09 YunQiang Su <yunqiang.su@cipunited.com>
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.
1451 2022-10-07 Eugene Rozenfeld <erozen@microsoft.com>
1453 * tree-cfg.cc (assign_discriminators): Set discriminators for call stmts
1454 on the same line within the same basic block.
1456 2022-10-07 Qing Zhao <qing.zhao@oracle.com>
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.
1462 2022-10-07 Qing Zhao <qing.zhao@oracle.com>
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
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
1475 * tree.h (DECL_NOT_FLEXARRAY): New flag.
1477 2022-10-07 Olivier Hainque <hainque@adacore.com>
1479 * config/vxworks/_vxworks-versions.h: Use OS specific
1480 paths in #include of version.h.
1482 2022-10-07 Martin Liska <mliska@suse.cz>
1484 * opts.cc (finish_options): Print sorry message only
1485 for -flive-patching=inline-only-static.
1487 2022-10-07 Jason Merrill <jason@redhat.com>
1489 * gimplify.cc (gimplify_modify_expr_rhs): Don't optimize
1490 x = *(A*)&<expr> to x = <expr> for a TREE_ADDRESSABLE type.
1492 2022-10-07 Richard Biener <rguenther@suse.de>
1494 PR tree-optimization/107153
1495 * tree-cfg.cc (gimple_duplicate_sese_tail): Do not update
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.
1502 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
1504 * value-range.cc (irange::irange_contains_p): Fix comment typo.
1506 2022-10-07 Eric Botcazou <ebotcazou@adacore.com>
1508 * function.cc (thread_prologue_and_epilogue_insns): Update only
1509 entry and exit blocks when not optimizing. Remove dead statement.
1511 2022-10-07 Aldy Hernandez <aldyh@redhat.com>
1513 * value-range.cc (irange::irange_set): Convert nonzero mask to
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.
1523 (irange::intersect_nonzero_bits): Same.
1524 (irange::union_nonzero_bits): Same.
1525 * value-range.h (irange::varying_compatible_p): Same.
1528 (irange::set_undefined): Same.
1529 (irange::set_varying): Same.
1531 2022-10-07 Martin Liska <mliska@suse.cz>
1533 * config/i386/i386-protos.h (ix86_binary_operator_ok): Add array
1534 size to function parameter.
1535 (ix86_unary_operator_ok): Likewise.
1537 2022-10-07 Martin Liska <mliska@suse.cz>
1539 * auto-profile.cc (get_inline_stack): Remove unused variable.
1541 2022-10-07 Jakub Jelinek <jakub@redhat.com>
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.
1549 2022-10-07 Jakub Jelinek <jakub@redhat.com>
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.
1557 2022-10-07 Olivier Hainque <hainque@adacore.com>
1559 * config/vxworks.h (DWARF_VERSION_DEFAULT): Adjust from
1560 4 to 3 for VxWorks >= 7.
1562 2022-10-07 Olivier Hainque <hainque@adacore.com>
1564 * defaults.h (DWARF_DEFAULT_VERSION): Define if not
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.
1573 2022-10-07 Olivier Hainque <hainque@adacore.com>
1575 * ginclude/stddef.h: #undef offsetof before #define.
1577 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
1579 PR tree-optimization/107170
1580 * vr-values.cc (vr_values::range_of_expr): Do not die on
1583 2022-10-06 Joseph Myers <joseph@codesourcery.com>
1585 * doc/invoke.texi (-fno-asm): Update description of effects on
1588 2022-10-06 Eric Botcazou <ebotcazou@adacore.com>
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
1594 2022-10-06 Eric Botcazou <ebotcazou@adacore.com>
1596 * df-scan.cc (df_ref_create_structure): Minor cleanup.
1598 2022-10-06 Richard Biener <rguenther@suse.de>
1600 PR middle-end/107115
1601 * expr.cc (store_expr): Check mems_same_for_tbaa_p before
1602 eliding a seemingly redundant store.
1604 2022-10-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1606 * config/aarch64/atomics.md (*atomic_load<ALLX:mode>_zext<SD_HSDI:mode>):
1609 2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu>
1611 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
1612 Ampere-1 core entry.
1614 2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu>
1616 * config/aarch64/driver-aarch64.cc (readline): Fix off-by-one.
1618 2022-10-06 Richard Biener <rguenther@suse.de>
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
1625 2022-10-06 Claudiu Zissulescu <claziss@synopsys.com>
1627 * config/arc/linux.h (LINK_SPEC): Remove max-page-size and
1630 2022-10-06 Jakub Jelinek <jakub@redhat.com>
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
1645 * doc/extend.texi: Document assume attribute. Move fallthrough
1646 attribute example to its section.
1648 2022-10-06 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1650 PR rtl-optimization/107088
1651 * cselib.cc (new_cselib_val): Skip BImode while keeping track of
1654 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
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.
1663 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
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.
1671 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
1673 * value-range-pretty-print.cc (vrange_printer::print_real_value):
1674 Avoid printing INF and NAN twice.
1676 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
1678 * config/rs6000/constraints.md (wD): Delete.
1679 * doc/md.texi (Machine Constraints): Adjust.
1681 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
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.
1688 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
1690 * config/rs6000/vsx.md (*vsx_extract_<mode>_store): Use "n" instead of
1693 2022-10-05 David Malcolm <dmalcolm@redhat.com>
1696 * doc/analyzer.texi (__analyzer_get_unknown_ptr): Document.
1698 2022-10-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
1724 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
1726 * range-op.cc (operator_cast::fold_range): Handle truncating casts
1729 2022-10-05 Martin Liska <mliska@suse.cz>
1732 * attribs.h (lookup_attribute_by_prefix): Support the attribute
1733 starting with underscore (_Noreturn).
1735 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
1737 PR tree-optimization/107052
1738 * gimple-range-op.cc (cfn_popcount::fold_range): Take into account
1741 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
1743 PR tree-optimization/107052
1744 * range-op.cc (operator_cast::fold_range): Set nonzero mask.
1746 2022-10-05 Eric Botcazou <ebotcazou@adacore.com>
1748 PR tree-optimization/106698
1749 * pointer-query.cc (handle_array_ref): Fix handling of low bound.
1751 2022-10-05 Vineet Gupta <vineetg@rivosinc.com>
1753 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
1754 Remove __riscv_cmodel_pic, that deprecated in last version.
1756 2022-10-05 David Malcolm <dmalcolm@redhat.com>
1759 * Makefile.in (ANALYZER_OBJS): Add analyzer/call-summary.o.
1761 2022-10-04 Jakub Jelinek <jakub@redhat.com>
1763 * attribs.h (remove_attribute): Declare overload with additional
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
1770 (private_lookup_attribute): New overload with additional
1771 attr_ns and attr_ns_len arguments.
1773 2022-10-04 Jakub Jelinek <jakub@redhat.com>
1775 * attribs.cc (handle_ignored_attributes_option, decl_attributes,
1776 common_function_versions): Use auto_diagnostic_group.
1778 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
1780 * value-range.cc (irange::set_nonzero_bits): Remove assert.
1782 2022-10-04 Richard Sandiford <richard.sandiford@arm.com>
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.
1791 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
1793 * doc/invoke.texi (-fopenmp): Mention C++ attribut syntax.
1794 (-fopenmp-simd): Likewise; update permitted directives.
1796 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
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.
1802 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
1804 * value-range-storage.cc (irange_storage_slot::set_irange): Remove
1806 * value-range.cc (irange::irange_set): Adjust for nonzero mask
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
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.
1833 (irange::set_undefined): Same.
1834 (irange::set_varying): Same.
1835 (irange::normalize_kind): Same.
1837 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
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.
1845 2022-10-03 Sergei Trofimovich <siarheit@google.com>
1847 * config/i386/t-i386: Add build-time dependencies against
1848 i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
1851 2022-10-03 Andrew Stubbs <ams@codesourcery.com>
1853 * config/gcn/gcn-valu.md (while_ultsidi): Limit mask length using
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.
1859 2022-10-03 Andrew MacLeod <amacleod@redhat.com>
1861 PR tree-optimization/107109
1862 * range-op.cc (adjust_op1_for_overflow): Don't process undefined.
1864 2022-10-03 Christophe Lyon <christophe.lyon@arm.com>
1866 * config/arm/mve.md (mve_vrev64q_m_<supf><mode>): Add early
1868 (mve_vrev64q_m_f<mode>): Likewise.
1870 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
1872 * value-range.cc (irange::set_nonzero_bits): Do not pessimize range.
1873 (range_tests_nonzero_bits): New test.
1875 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
1877 * value-range.cc (irange::operator==): Early bail on m_num_ranges
1880 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
1882 * value-range.cc (irange::legacy_equal_p): Remove nonozero mask
1883 check when comparing VR_VARYING ranges.
1885 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
1887 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Do not compare
1888 incompatible ranges in ipa-prop.
1890 2022-10-02 Jakub Jelinek <jakub@redhat.com>
1892 PR tree-optimization/107121
1893 * tree-cfg.cc (verify_gimple_call): Fix a typo in diagnostics,
1894 DEFFERED_INIT -> DEFERRED_INIT.
1896 2022-10-02 Marc Poulhiès <poulhies@adacore.com>
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.
1903 2022-10-02 Olivier Hainque <hainque@adacore.com>
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.
1909 2022-10-01 Stafford Horne <shorne@gmail.com>
1911 * config/or1k/or1k.cc (TARGET_HAVE_TLS): Only define if
1912 HAVE_AS_TLS is defined.
1914 2022-10-01 Julian Brown <julian@codesourcery.com>
1916 * gimplify.cc (omp_group_base): Fix IF_PRESENT (no_create)
1919 2022-10-01 Jeff Law <jeffreyalaw@gmail.com>
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.
1930 2022-10-01 Jeff Law <jeffreyalaw@gmail.com>
1932 * tree-ssa-dom.cc (record_edge_info): Install correct version of
1935 2022-10-01 Eugene Rozenfeld <erozen@microsoft.com>
1937 * dwarf2out.cc (add_call_src_coords_attributes): Emit discriminators for inlined call sites.
1939 2022-09-30 Jeff Law <jeffreyalaw@gmail.com>
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.
1945 2022-09-30 Jeff Law <jeffreyalaw@gmail.com>
1947 * tree-ssa-dom.cc (free_dom_edge_info): Clear e->aux too.
1948 (free_all_edge_infos): Do not clear e->aux here.
1950 2022-09-30 H.J. Lu <hjl.tools@gmail.com>
1952 * target.def (TARGET_C_EXCESS_PRECISION): Document
1953 -fexcess-precision=16.
1955 2022-09-30 Palmer Dabbelt <palmer@rivosinc.com>
1957 * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Add 16.
1959 2022-09-30 Palmer Dabbelt <palmer@rivosinc.com>
1962 * config/riscv/riscv.cc (riscv_excess_precision): Add support
1963 for EXCESS_PRECISION_TYPE_FLOAT16.
1965 2022-09-30 Jakub Jelinek <jakub@redhat.com>
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.
1974 2022-09-30 Lewis Hyatt <lhyatt@gmail.com>
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.
1982 2022-09-30 Jakub Jelinek <jakub@redhat.com>
1985 * config/aarch64/aarch64.cc (aarch64_mangle_type): Mangle just __fp16
1986 as Dh and _Float16 as DF16_.
1988 2022-09-30 Jakub Jelinek <jakub@redhat.com>
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.
2002 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
2003 Yvan ROUX <yvan.roux@foss.st.com>
2005 * doc/sourcebuild.texi: Document new vma_equals_lma effective
2008 2022-09-30 Jiawei <jiawei@iscas.ac.cn>
2010 * config/riscv/riscv.cc (riscv_file_start): New .option.
2011 * config/riscv/riscv.opt: New options.
2012 * doc/invoke.texi: New definations.
2014 2022-09-30 Kewen Lin <linkw@linux.ibm.com>
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
2028 * config/rs6000/rs6000.h (struct machine_function): New bool member
2029 global_entry_emitted.
2031 2022-09-30 Richard Biener <rguenther@suse.de>
2033 PR tree-optimization/107095
2034 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use data arg
2035 for .MASK_STORE size.
2037 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
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.
2046 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
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.
2054 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
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
2068 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
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.
2077 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
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.
2094 2022-09-29 Andrew Stubbs <ams@codesourcery.com>
2096 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
2097 Remove unused elt_bits variable.
2099 2022-09-29 Olivier Hainque <hainque@adacore.com>
2101 * config/vxworks.h: Add comment on our use of
2102 HAVE_INITFINI_ARRAY_SUPPORT.
2104 2022-09-29 Olivier Hainque <hainque@adacore.com>
2106 * config/aarch64/t-aarch64-vxworks: Request multilib
2107 variants for mcmodel=large.
2109 2022-09-29 Olivier Hainque <hainque@adacore.com>
2111 * config/rs6000/vxworks.h (TARGET_FLOAT128_ENABLE_TYPE): Remove
2114 2022-09-29 Olivier Hainque <hainque@adacore.com>
2116 * config/vx-common.h (DWARF2_UNWIND_INFO): #define to 0
2117 when ARM_UNWIND_INFO is set.
2119 2022-09-29 Julian Brown <julian@codesourcery.com>
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
2129 (gimplify_scan_omp_clauses): Call oacc_resolve_clause_dependencies.
2131 2022-09-29 Jose E. Marchesi <jose.marchesi@oracle.com>
2134 * varasm.cc (categorize_decl_for_section): Place `const volatile'
2135 objects in read-only sections.
2136 (default_select_section): Likewise.
2138 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2140 * tree-data-ref.cc (dr_may_alias_p): Use to_poly_widest instead
2143 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
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
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
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.
2187 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
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
2217 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
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.
2224 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
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.
2235 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2237 * common/config/aarch64/aarch64-common.cc (aarch64_option_extension)
2238 (processor_name_to_arch, arch_to_arch_name): Remove const from
2240 (all_extensions, all_cores, all_architectures): Make a constexpr.
2241 * config/aarch64/aarch64.cc (processor): Remove const from
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.
2250 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2252 * common/config/aarch64/aarch64-common.cc (processor_name_to_arch)
2253 (arch_to_arch_name): Use const char * instead of std::string.
2255 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
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.
2266 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2268 * config/aarch64/aarch64-option-extensions.def: Switch to a new format.
2269 * config/aarch64/aarch64-cores.def: Use the same format to specify
2271 * config/aarch64/aarch64-arches.def: Likewise, moving that information
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.
2290 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2292 * config/aarch64/aarch64-option-extensions.def: Move crypto
2295 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2297 * config/aarch64/aarch64-option-extensions.def (dotprod): Depend
2298 on fp as well as simd.
2300 (aes): Likewise. Make +noaes disable crypto.
2301 (sha2): Likewise +nosha2. Also make +nosha2 disable sha3 and
2303 (sve2-sha3): Depend on sha2 as well as sha3.
2305 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
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
2314 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
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
2320 * config/aarch64/aarch64.cc (all_cores): Likewise.
2321 * config/aarch64/driver-aarch64.cc (all_cores): Likewise.
2323 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2325 * config.gcc: Remove dead aarch64-option-extensions.def code.
2326 * config/aarch64/aarch64-arches.def: Update comment.
2328 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2330 * config/aarch64/aarch64-arches.def: Add a leading "V" to the
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
2338 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
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
2370 * config/aarch64/aarch64-arches.def: Likewise.
2371 * config/aarch64/aarch64-cores.def: Likewise.
2372 * config/aarch64/aarch64.cc (all_cores): Likewise.
2374 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
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.
2392 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
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
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.
2406 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
2408 * Makefile.in (GTFILES): Add OPTIONS_H_EXTRA.
2410 2022-09-29 Jakub Jelinek <jakub@redhat.com>
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.
2419 2022-09-29 Martin Liska <mliska@suse.cz>
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.
2429 2022-09-29 Richard Biener <rguenther@suse.de>
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.
2436 2022-09-29 liuhongt <hongtao.liu@intel.com>
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
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.
2447 2022-09-28 Eugene Rozenfeld <erozen@microsoft.com>
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
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
2462 * gimple-streamer-out.cc (output_bb): Remove writing of basic block
2464 * input.cc (make_location): Pass 0 discriminator to COMBINE_LOCATION_DATA.
2465 (location_with_discriminator): New function to combine locus with
2467 (has_discriminator): New function to check if a location has a discriminator.
2468 (get_discriminator_from_loc): New function to get the discriminator
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
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
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.
2490 2022-09-28 H.J. Lu <hjl.tools@gmail.com>
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.
2499 2022-09-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
2519 2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2521 * var-tracking.cc (vt_add_function_parameter): Add entry values
2522 up to maximal register mode.
2524 2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2526 * cselib.cc (new_cselib_val): Keep track of further subvalue
2529 2022-09-28 Andrea Corallo <andrea.corallo@arm.com>
2531 * config/arm/arm-c.cc (arm_cpu_builtins): Define
2532 __ARM_FEATURE_AES and __ARM_FEATURE_SHA2.
2534 2022-09-28 Xi Ruoyao <xry111@xry111.site>
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.
2542 2022-09-28 Lulu Cheng <chenglulu@loongson.cn>
2544 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset):
2545 Fixed typo in "asan_mapping.h".
2547 2022-09-28 H.J. Lu <hjl.tools@gmail.com>
2550 * calls.cc: Include "tree-eh.h".
2551 (expand_call): Check stack canary before throwing exception.
2553 2022-09-27 Eugene Rozenfeld <erozen@microsoft.com>
2555 * ipa-cp.cc (good_cloning_opportunity_p): Fix profile count comparison.
2557 2022-09-27 Kim Kuparinen <kim.kuparinen@rightware.com>
2559 * doc/invoke.texi: Update ABI version info.
2561 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
2563 * gimple-range-op.cc (cfn_popcount): Calculate the popcount of a
2566 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
2568 * value-range.cc (irange::set_nonzero_bits): Set range when known.
2570 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
2572 * value-range.h (irange::set): New version taking wide_int_ref.
2574 2022-09-27 Jakub Jelinek <jakub@redhat.com>
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.
2581 2022-09-27 Jeff Law <jeffreyalaw@gmail.com>
2583 * cfgrtl.cc (fixup_reorder_chain): Verify that simple_return
2584 and return are available before trying to use them.
2586 2022-09-27 Jakub Jelinek <jakub@redhat.com>
2590 * tree-core.h (enum tree_index): Add TI_FLOAT128T_TYPE
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
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.
2615 2022-09-26 Martin Liska <mliska@suse.cz>
2617 * doc/invoke.texi: Add missing dash for
2618 Wanalyzer-exposure-through-uninit-copy.
2620 2022-09-26 Aldy Hernandez <aldyh@redhat.com>
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.
2626 2022-09-26 Aldy Hernandez <aldyh@redhat.com>
2628 PR tree-optimization/107009
2630 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
2631 Iterate over exports.
2633 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
2635 * config.gcc (with_arch) [nvptx]: Allow '--with-arch' to override
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.
2643 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
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.
2649 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
2651 * config.gcc (with_arch) [nvptx]: Set to 'sm_30'.
2652 * config/nvptx/nvptx.cc (nvptx_option_override): Assert that
2654 * config/nvptx/nvptx.h (OPTION_DEFAULT_SPECS): Define.
2655 * config/nvptx/nvptx.opt (misa=): Remove 'Init'.
2657 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
2659 * config/nvptx/nvptx.h (ASM_SPEC): Define.
2661 2022-09-26 Jeff Law <jeffreyalaw@gmail.com>
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.
2669 2022-09-26 Tobias Burnus <tobias@codesourcery.com>
2671 PR middle-end/106982
2672 * omp-low.cc (lower_oacc_reductions): Add some unshare_expr.
2674 2022-09-26 Martin Liska <mliska@suse.cz>
2676 * config/s390/s390.cc (s390_rtx_costs): Remove dest variable
2679 2022-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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.
2696 2022-09-26 Martin Liska <mliska@suse.cz>
2698 * value-range.cc (tree_compare): Remove unused function.
2700 2022-09-26 Kewen Lin <linkw@linux.ibm.com>
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.
2707 2022-09-26 Kewen Lin <linkw@linux.ibm.com>
2710 * config/rs6000/vector.md (vec_shr_<mode>): Replace condition
2711 TARGET_ALTIVEC with VECTOR_UNIT_ALTIVEC_OR_VSX_P.
2713 2022-09-26 Hongtao Liu <hongtao.liu@intel.com>
2714 Liwei Xu <liwei.xu@intel.com>
2717 * config/i386/i386-expand.cc (expand_vec_perm_shufps_shufps):
2719 (ix86_expand_vec_perm_const_1): Insert
2720 expand_vec_perm_shufps_shufps at the end of 2-instruction
2723 2022-09-25 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
2725 * doc/sourcebuild.texi: Fix chapter level.
2727 2022-09-24 Jakub Jelinek <jakub@redhat.com>
2730 * omp-low.cc (lower_omp_taskgroup): Don't add GOMP_RETURN statement
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
2735 (omp_make_gimple_edges) <case GIMPLE_OMP_TASKGROUP>: Reset
2736 cur_region back after new_omp_region.
2738 2022-09-23 Vineet Gupta <vineetg@rivosinc.com>
2740 * config/riscv/riscv.h (LOCAL_SYM_P): New.
2741 (USE_LOAD_ADDRESS_MACRO): Simplify by calling LOCAL_SYM_P.
2743 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
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.
2753 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
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
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
2770 (riscv_convert_vector_bits): Fix riscv_vector_chunks configuration for
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.
2777 2022-09-23 Richard Biener <rguenther@suse.de>
2779 PR tree-optimization/106922
2780 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow
2781 an arbitrary number of same valued skipped stores.
2783 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
2785 * value-range.cc (frange::set): Swap setters such that the one
2786 accepting REAL_VALUE_TYPE does all the work.
2788 2022-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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.
2809 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
2811 * range-op-float.cc (build_le): Use vrp_val_*.
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
2825 (vrp_val_min): Same but for min.
2826 (frange::set_varying): Use vrp_val*.
2828 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
2830 * real.cc (debug): New.
2832 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
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.
2838 2022-09-23 Martin Liska <mliska@suse.cz>
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.
2844 2022-09-23 Jakub Jelinek <jakub@redhat.com>
2846 * attribs.cc (decl_attributes): Improve diagnostics, instead of
2847 saying expected between 1 and 1, found 2 just say expected 1, found 2.
2849 2022-09-23 Hu, Lin1 <lin1.hu@intel.com>
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
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".
2862 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
2872 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
2879 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
2886 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
2894 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
2901 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2903 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
2905 * gimple-range-op.cc (class cfn_ctz): New.
2906 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
2908 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2910 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
2912 * gimple-range-op.cc (class cfn_clz): New.
2913 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
2915 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
2922 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
2930 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
2937 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
2951 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
2960 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
2967 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
2969 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
2970 operand 1 for second range if there is no operand 2.
2972 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
3007 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
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.
3021 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
3023 * tree-ssa-threadbackward.cc
3024 (back_threader::find_paths_to_names): Replace sequence with
3025 a call to gimple_range_ssa_names.
3027 2022-09-22 Martin Liska <mliska@suse.cz>
3028 Fangrui Song <i@maskray.me>
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
3036 (ASM_COMPRESS_DEBUG_SPEC): Likewise.
3038 2022-09-22 Richard Biener <rguenther@suse.de>
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.
3050 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
3052 * config/xtensa/xtensa.cc (TARGET_MAX_ANCHOR_OFFSET): New
3055 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
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.
3064 2022-09-22 Richard Biener <rguenther@suse.de>
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.
3074 2022-09-22 Richard Biener <rguenther@suse.de>
3076 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): New
3077 function split out from ...
3078 (vn_nary_op_insert_pieces_predicated): ... here.
3080 2022-09-22 liuhongt <hongtao.liu@intel.com>
3083 * config/i386/mmx.md (floorv2sf2): Fix typo, use
3084 register_operand instead of vector_operand for operands[1].
3086 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
3088 PR tree-optimization/106967
3089 * value-range.cc (frange::set): Set known NANs to undefined for
3090 flag_finite_math_only.
3092 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
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.
3100 2022-09-21 Richard Biener <rguenther@suse.de>
3102 PR tree-optimization/106984
3103 * tsan.cc (instrument_builtin_call): Build the COND_EXPR condition in
3104 a separate statement.
3106 2022-09-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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
3114 (CONFIG_TUNE_SPEC): Define.
3115 (OPTION_DEFAULT_SPECS): Use CONFIG_TUNE_SPEC for "tune".
3117 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
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.
3144 2022-09-21 liuhongt <hongtao.liu@intel.com>
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.
3150 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
3152 * value-range.h (frange::maybe_isnan): Return false for
3155 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
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.
3161 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
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
3169 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
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.
3179 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
3181 * tree-vect-data-refs.cc (vect_check_gather_scatter): Restrict
3182 early-out optimisation to SSA_NAMEs.
3184 2022-09-20 Martin Liska <mliska@suse.cz>
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.
3190 2022-09-20 liuhongt <hongtao.liu@intel.com>
3193 * config/i386/mmx.md (nearbyintv2sf2): New expander.
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.
3205 2022-09-20 konglin1 <lingling.kong@intel.com>
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
3213 2022-09-20 Xi Ruoyao <xry111@xry111.site>
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.
3219 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
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.
3225 2022-09-20 liuhongt <hongtao.liu@intel.com>
3227 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Adjust for
3228 latest Intel processors.
3230 2022-09-20 konglin1 <lingling.kong@intel.com>
3233 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
3234 Fixed V16BF mode case.
3236 2022-09-19 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
3238 * targhooks.cc (default_zero_call_used_regs): Improve sorry
3241 2022-09-18 Julian Brown <julian@codesourcery.com>
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.
3248 2022-09-18 Jakub Jelinek <jakub@redhat.com>
3250 PR middle-end/106831
3251 * value-range.cc (frange::singleton_p): Avoid propagating long
3252 doubles that may have multiple representations.
3254 2022-09-18 Aldy Hernandez <aldyh@redhat.com>
3256 * range-op-float.cc (frange_add_zeros): Replace set_signbit with
3258 * value-query.cc (range_query::get_tree_range): Remove set_signbit
3260 * value-range-pretty-print.cc (vrange_printer::print_frange_prop):
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
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.
3309 2022-09-17 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3311 * config/csky/csky.h (FUNCTION_ARG_REGNO_P): Cast REGNO to (int)
3314 2022-09-17 Jakub Jelinek <jakub@redhat.com>
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
3322 2022-09-16 liuhongt <hongtao.liu@intel.com>
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
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.
3338 2022-09-15 Joseph Myers <joseph@codesourcery.com>
3340 * ginclude/float.h (INFINITY): Define only if
3341 [__FLT_HAS_INFINITY__].
3343 2022-09-15 Richard Biener <rguenther@suse.de>
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.
3351 2022-09-15 Richard Biener <rguenther@suse.de>
3353 * tree.cc (build_common_tree_nodes): Initialize void_list_node
3356 2022-09-15 Jiufu Guo <guojiufu@linux.ibm.com>
3359 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Use pli.
3361 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
3363 * range-op-float.cc (frange_add_zeros): New.
3364 (build_le): Call frange_add_zeros.
3366 (foperator_equal::op1_range): Same.
3367 (foperator_not_equal::op1_range): Same.
3369 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
3371 * range-op-float.cc (build_le): Accept frange instead of number.
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.
3384 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
3386 * value-range.cc (frange::set): Use set_nan.
3387 * value-range.h (frange::set_nan): Inline code originally in
3390 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
3392 * range-op-float.cc (frange_set_nan): Remove.
3393 (build_lt): Use set_nan, update_nan, clear_nan.
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.
3419 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
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.
3430 2022-09-14 Julian Brown <julian@codesourcery.com>
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
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
3441 (omp_reindex_mapping_groups, omp_mapped_by_containing_struct): New
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
3448 (gimplify_scan_omp_clauses): Update calls to
3449 omp_build_struct_sibling_lists.
3451 2022-09-14 Julian Brown <julian@codesourcery.com>
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
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
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.
3481 2022-09-14 Richard Biener <rguenther@suse.de>
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.
3488 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
3490 PR tree-optimization/106936
3491 * value-query.cc (range_query::get_value_range): Remove assert.
3493 2022-09-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3495 * config/mips/mips.cc (mips_option_override): Drop unused variable.
3497 2022-09-14 Julian Brown <julian@codesourcery.com>
3499 * gimplify.cc (is_or_contains_p, omp_target_reorder_clauses): Delete
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
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.
3514 2022-09-14 Jakub Jelinek <jakub@redhat.com>
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.
3526 2022-09-14 Richard Biener <rguenther@suse.de>
3528 PR tree-optimization/106934
3529 * tree-ssa.cc (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs
3531 (maybe_rewrite_mem_ref_base): Likewise.
3533 2022-09-14 liuhongt <hongtao.liu@intel.com>
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.
3540 2022-09-13 Roger Sayle <roger@nextmovesoftware.com>
3543 * reg-stack.cc (move_for_stack_reg): Check for any_malformed_asm
3546 2022-09-13 Max Filippov <jcmvbkbc@gmail.com>
3549 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
3556 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
3559 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Fix
3560 the equality check for argument number, and move this hunk ahead.
3562 2022-09-13 Kewen.Lin <linkw@gcc.gnu.org>
3565 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Add
3566 the handling for unresolved overloaded builtin function.
3567 (rs6000_expand_builtin): Likewise.
3569 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
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.
3583 2022-09-13 Richard Biener <rguenther@suse.de>
3585 PR middle-end/106909
3586 * gimple-fold.cc (gimple_fold_call): Clear the ctrl-altering
3587 flag of a unreachable call.
3589 2022-09-13 Richard Biener <rguenther@suse.de>
3591 PR tree-optimization/106913
3592 * tree-ssa-uninit.cc (warn_uninitialized_vars): Do not set
3593 ft_reachable on EXIT_BLOCK.
3595 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
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
3601 (aarch64_hard_regno_mode_ok): Don't allow tuples of 2 64-bit vectors
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
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
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
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
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.
3677 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
3679 * config/aarch64/aarch64-simd.md (movv8di): Remove TARGET_SIMD
3680 condition. Likewise for the related define_split. Tweak formatting.
3682 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
3689 2022-09-12 Joseph Myers <joseph@codesourcery.com>
3691 * ginclude/stdatomic.h [defined __STDC_VERSION__ &&
3692 __STDC_VERSION__ > 201710L] (ATOMIC_VAR_INIT): Do not define.
3694 2022-09-12 Tobias Burnus <tobias@codesourcery.com>
3696 * config/nvptx/mkoffload.cc (process): Replace a fatal_error by
3697 a warning + not enabling offloading if -misa=sm_30 prevents
3699 (main): Use tool_name as progname for diagnostic.
3700 * config/gcn/mkoffload.cc (main): Likewise.
3702 2022-09-12 Aldy Hernandez <aldyh@redhat.com>
3704 * value-range.cc (frange::set_signbit): Avoid changing sign when
3705 already in the correct sign.
3707 2022-09-12 Max Filippov <jcmvbkbc@gmail.com>
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.
3714 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
3716 * doc/extend.texi (Floating Types): Fix "_float128" typo.
3718 2022-09-10 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3720 * config/xtensa/xtensa.cc (xtensa_constantsynth):
3721 Add new pattern for the abovementioned case.
3723 2022-09-10 Akari Takahashi <akaritakahashioss@gmail.com>
3724 Segher Boessenkool <segher@kernel.crashing.org>
3726 * config/rs6000/rs6000.cc (get_memref_parts): Regularize some code.
3728 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
3735 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
3749 2022-09-09 David Malcolm <dmalcolm@redhat.com>
3751 * doc/invoke.texi (Static Analyzer Options): Add
3752 -Wanalyzer-exposure-through-uninit-copy.
3754 2022-09-09 David Malcolm <dmalcolm@redhat.com>
3756 * Makefile.in (ANALYZER_OBJS): Add
3757 analyzer/known-function-manager.o.
3759 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
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.
3771 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
3773 * config/gcn/mkoffload.cc (process_asm): Create .offload_func_table,
3774 similar to pre-existing .offload_var_table.
3776 2022-09-09 Joseph Myers <joseph@codesourcery.com>
3778 * ginclude/stddef.h [__STDC_VERSION__ > 201710L] (unreachable):
3781 2022-09-09 Kewen Lin <linkw@linux.ibm.com>
3783 PR middle-end/106833
3784 * tree.cc (verify_opaque_type): New function.
3785 (verify_type): Call verify_opaque_type for OPAQUE_TYPE.
3787 2022-09-09 Kwok Cheung Yeung <kcy@codesourcery.com>
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
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.
3812 2022-09-09 Richard Biener <rguenther@suse.de>
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.
3819 2022-09-09 Kito Cheng <kito.cheng@sifive.com>
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.
3827 2022-09-09 Richard Biener <rguenther@suse.de>
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.
3834 2022-09-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
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.
3840 2022-09-09 Martin Liska <mliska@suse.cz>
3842 * optc-save-gen.awk: Always compare array option values with memcmp.
3844 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
3847 * doc/extend.texi (Type Traits): Fix requirements. Document
3848 __is_aggregate and __is_final.
3850 2022-09-08 Tim Lange <mail@tim-lange.me>
3854 State that the checker also reasons about symbolic values.
3856 2022-09-08 Richard Sandiford <richard.sandiford@arm.com>
3858 PR tree-optimization/106886
3859 * tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
3860 Fix copying of scalar stmts.
3862 2022-09-08 Chung-Lin Tang <cltang@codesourcery.com>
3864 * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add #undef before #define.
3866 2022-09-08 Richard Biener <rguenther@suse.de>
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
3883 2022-09-08 Jakub Jelinek <jakub@redhat.com>
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
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.
3898 2022-09-08 Richard Biener <rguenther@suse.de>
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
3905 2022-09-08 Aldy Hernandez <aldyh@redhat.com>
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.
3934 2022-09-08 Iain Buclaw <ibuclaw@gdcproject.org>
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.
3944 2022-09-08 Christophe Lyon <christophe.lyon@arm.com>
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.
3965 2022-09-08 Jiufu Guo <guojiufu@linux.ibm.com>
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.
3971 2022-09-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
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
3978 2022-09-07 Martin Liska <mliska@suse.cz>
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.
3985 2022-09-07 Surya Kumari Jangala <jskumari@linux.ibm.com>
3987 PR rtl-optimization/105586
3988 * sched-rgn.cc (save_state_for_fallthru_edge): New function.
3989 (schedule_region): Use it for all blocks.
3991 2022-09-07 Joseph Myers <joseph@codesourcery.com>
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.
3998 2022-09-07 Martin Liska <mliska@suse.cz>
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.
4024 2022-09-07 Richard Biener <rguenther@suse.de>
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.
4031 2022-09-07 Xianmiao Qu <cooper.qu@linux.alibaba.com>
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.
4038 2022-09-07 Richard Biener <rguenther@suse.de>
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.
4045 2022-09-07 Richard Biener <rguenther@suse.de>
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.
4053 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
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
4061 (define_split): Do not apply the floating-point immediate-to-register
4062 split to zeros, even if MOVI is not available.
4064 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
4066 * config/aarch64/aarch64.cc (aarch64_conditional_register_usage):
4067 Disallow use of FPRs in register asms for !TARGET_FLOAT.
4069 2022-09-07 Lulu Cheng <chenglulu@loongson.cn>
4072 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset): New.
4073 (TARGET_ASAN_SHADOW_OFFSET): New.
4075 2022-09-07 Jakub Jelinek <jakub@redhat.com>
4077 * doc/invoke.texi (-Wno-unicode): Document.
4079 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
4081 * config/rs6000/rs6000.md (const_scalar_int splitter): Remove.
4083 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
4085 * config/rs6000/rs6000.md: (constant splitters): Use "(pc)" as the
4088 2022-09-07 liuhongt <hongtao.liu@intel.com>
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
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.
4107 2022-09-06 Richard Biener <rguenther@suse.de>
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.
4117 2022-09-06 Max Filippov <jcmvbkbc@gmail.com>
4119 * config/xtensa/linux.h (LINK_SPEC): Add static-pie.
4121 2022-09-06 Aldy Hernandez <aldyh@redhat.com>
4123 * range-op-float.cc (build_le): Handle NANs and going past infinity.
4127 (foperator_lt::op1_range): Avoid adjustments to range if build_*
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.
4135 2022-09-06 Richard Biener <rguenther@suse.de>
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
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.
4146 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4148 * config/msp430/msp430.cc (msp430_single_op_cost): Document unused argument.
4150 2022-09-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
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.
4155 2022-09-06 Richard Biener <rguenther@suse.de>
4157 PR tree-optimization/106844
4158 * gimple-predicate-analysis.cc (compute_control_dep_chain):
4159 Return whether we found a chain.
4161 2022-09-06 Richard Biener <rguenther@suse.de>
4163 PR tree-optimization/106841
4164 * tree-vect-slp.cc (vect_detect_hybrid_slp): Also process
4165 scatter/gather offset.
4167 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4169 * config/bpf/bpf.h (REGNO_REG_CLASS): Reference arguments as (void).
4171 2022-09-06 Jakub Jelinek <jakub@redhat.com>
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
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.
4189 2022-09-06 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4191 * config/csky/csky.md (cskyv2_addcc): Fix missing operand.
4192 (cskyv2_addcc_invert): Likewise.
4194 2022-09-06 Jose E. Marchesi <jose.marchesi@oracle.com>
4196 * config/bpf/bpf.cc (bpf_expand_prologue): Remove unused automatic
4198 (bpf_expand_epilogue): Likewise.
4200 2022-09-06 liuhongt <hongtao.liu@intel.com>
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
4208 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
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.
4214 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
4216 * gimple-range-fold.cc
4217 (fold_using_range::range_of_builtin_int_call): Fold a set signbit
4218 in __builtin_signbit to nonzero.
4220 2022-09-05 Alexander Monakov <amonakov@ispras.ru>
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
4227 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
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
4233 (frange_drop_ninf): Same.
4235 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
4237 PR middle-end/106824
4238 * value-range.cc (frange::set_nan): Set undefined when updating a
4241 2022-09-05 Kito Cheng <kito.cheng@sifive.com>
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.
4247 2022-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4249 * config/aarch64/aarch64.cc (aarch64_validate_march): Check if invalid arch
4250 string is a valid -mcpu string and emit hint.
4252 2022-09-05 LiaoShihua <shihua@iscas.ac.cn>
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.
4261 2022-09-05 Richard Biener <rguenther@suse.de>
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.
4270 2022-09-05 Richard Biener <rguenther@suse.de>
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
4277 2022-09-05 Richard Biener <rguenther@suse.de>
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
4286 (predicate::debug): New.
4287 (predicate::simplify): Adjust.
4288 (predicate::normalize): Likewise.
4289 (predicate::init_from_control_deps): Likewise.
4291 2022-09-05 Richard Sandiford <richard.sandiford@arm.com>
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.
4304 2022-09-05 Xi Ruoyao <xry111@xry111.site>
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
4317 2022-09-05 Martin Liska <mliska@suse.cz>
4319 * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to
4321 * doc/tm.texi: Regenerate.
4323 2022-09-05 Martin Liska <mliska@suse.cz>
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.
4493 2022-09-05 konglin1 <lingling.kong@intel.com>
4496 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
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.
4508 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
4510 * value-range.cc (early_nan_resolve): Remove.
4511 (frange::intersect): Handle NANs.
4513 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
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.
4519 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
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.
4529 2022-09-03 Aldy Hernandez <aldyh@redhat.com>
4531 * value-range.cc (frange::singleton_p): Move NAN check to the top.
4533 2022-09-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4535 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): Reference macro arguments.
4537 2022-09-03 Jakub Jelinek <jakub@redhat.com>
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
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
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
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.
4599 2022-09-02 David Malcolm <dmalcolm@redhat.com>
4602 * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow.
4604 2022-09-02 Iain Buclaw <ibuclaw@gdcproject.org>
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
4616 * config/arm/arm-protos.h (arm_d_target_versions): Move to
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
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.
4685 2022-09-02 Aldy Hernandez <aldyh@redhat.com>
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.
4691 * omp-low.cc (omp_reduction_init_op): Same.
4692 * realmpfr.cc (real_from_mpfr): Same.
4693 * tree.cc (build_complex_inf): Same.
4695 2022-09-02 Peter Bergner <bergner@linux.ibm.com>
4697 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Use
4698 NOP_EXPR for MMA pointer casting.
4700 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
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.
4706 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
4708 PR tree-optimization/106787
4709 * tree-vect-slp.cc (vect_map_to_instance): New function, split out
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.
4716 2022-09-02 Richard Biener <rguenther@suse.de>
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.
4725 2022-09-02 Richard Biener <rguenther@suse.de>
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.
4731 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
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
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.
4753 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
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.
4775 2022-09-02 Martin Liska <mliska@suse.cz>
4777 * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Disable
4780 2022-09-02 Martin Liska <mliska@suse.cz>
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.
4906 * stab.def: Removed.
4907 * xcoffout.cc: Removed.
4908 * xcoffout.h: Removed.
4910 2022-09-02 Simon Rainer <gcc.gnu@vvalter.com>
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):
4918 2022-09-01 Tamar Christina <tamar.christina@arm.com>
4921 * config/aarch64/aarch64.cc
4922 (aarch64_vector_costs::prefer_unrolled_loop): Replace %u with
4923 HOST_WIDE_INT_PRINT_UNSIGNED.
4925 2022-09-01 Richard Sandiford <richard.sandiford@arm.com>
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.
4936 2022-09-01 Uroš Bizjak <ubizjak@gmail.com>
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.
4942 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
4944 * range-op-float.cc (build_le): Convert to dconst*inf.
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.
4953 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
4955 * emit-rtl.cc (init_emit_once): Initialize dconstinf and
4957 * real.h: Add dconstinf and dconstninf.
4959 2022-09-01 Richard Biener <rguenther@suse.de>
4961 * gimple-predicate-analysis.cc (compute_control_dep_chain):
4962 Remove cycle detection, instead avoid walking backedges.
4964 2022-09-01 Richard Biener <rguenther@suse.de>
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.
4971 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
4973 * gimple-range-fold.cc
4974 (fold_using_range::range_of_builtin_int_call): Add case for
4975 CFN_BUILT_IN_SIGNBIT.
4977 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
4979 * range-op-float.cc (foperator_equal::op1_range): Do not copy sign
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.
4997 2022-09-01 Jakub Jelinek <jakub@redhat.com>
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
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
5028 (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED
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).
5034 2022-09-01 Jakub Jelinek <jakub@redhat.com>
5037 * doc/invoke.texi (-Winvalid-utf8): Document it.
5039 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
5041 PR tree-optimization/106785
5042 * value-range.cc (range_tests_nan): Adjust tests for !HONOR_NANS.
5043 (range_tests_floats): Same.
5045 2022-09-01 konglin1 <lingling.kong@intel.com>
5047 * tree-if-conv.cc (is_cond_scalar_reduction): Add MULT_EXPR
5050 2022-09-01 Peter Bergner <bergner@linux.ibm.com>
5053 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin):
5054 Enforce the use of a valid MMA pointer type.
5056 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
5058 * config/riscv/riscv.cc (riscv_conditional_register_usage): Add vector
5061 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
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.
5070 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
5072 * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add
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.
5078 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
5080 * config/riscv/riscv.h (enum reg_class): Change vype to vtype.
5082 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
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.
5088 2022-08-31 Martin Liska <mliska@suse.cz>
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.
5099 2022-08-31 Martin Liska <mliska@suse.cz>
5101 * Makefile.in: Always install limits.h and syslimits.h to
5103 * configure.ac: Assign STMP_FIXINC blank if
5104 --disable-fixincludes is used.
5105 * configure: Regenerate.
5107 2022-08-31 Richard Biener <rguenther@suse.de>
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.
5115 2022-08-31 Richard Biener <rguenther@suse.de>
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.
5122 2022-08-31 Aldy Hernandez <aldyh@redhat.com>
5124 * value-range-storage.cc (frange_storage_slot::set_frange): Save
5126 (frange_storage_slot::get_frange): Restore endpoints.
5127 * value-range-storage.h (class frange_storage_slot): Add endpoint
5130 2022-08-31 Martin Liska <mliska@suse.cz>
5132 PR tree-optimization/106789
5133 * range-op-float.cc (default_frelop_fold_range): Remove the
5136 2022-08-31 Martin Liska <mliska@suse.cz>
5138 * value-range.h: Add more override keywords.
5140 2022-08-31 Martin Liska <mliska@suse.cz>
5142 * value-range.h: Add override.
5144 2022-08-31 Richard Biener <rguenther@suse.de>
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.
5153 2022-08-31 Richard Biener <rguenther@suse.de>
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.
5160 2022-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5161 Jakub Jelinek <jakub@redhat.com>
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.
5167 2022-08-31 Richard Sandiford <richard.sandiford@arm.com>
5169 * tree-vect-slp.cc (vect_optimize_slp_pass::dump): Remove bogus
5172 2022-08-31 zhongjuzhe <juzhe.zhong@rivai.ai>
5174 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Simply
5175 initialize const_vf to 0.
5177 2022-08-31 Martin Liska <mliska@suse.cz>
5179 * config.gcc: Remove cr16.
5181 2022-08-30 Martin Jambor <mjambor@suse.cz>
5183 * vec.h (array_slice): Add constructors for non-const reference to
5184 heap vector and pointers to heap vectors.
5186 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
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.
5192 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
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.
5201 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
5203 * doc/tm.texi: Regenerate.
5204 * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero
5206 (simd_clone_adjust_argument_types): Likewise.
5207 * target.def (compute_vecsize_and_simdlen): Document the new
5208 vecsize_int and vecsize_float semantics.
5210 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5212 * expmed.cc (store_bit_field_1): Fix byte offset calculation
5213 for undefined structures.
5215 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
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.
5230 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5232 * hash-traits.h (vec_hash_base): New class.
5233 (vec_free_hash_base): Likewise.
5235 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
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.
5244 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5246 * graphds.cc (graphds_scc): Add a pass-back parameter for the
5248 * graphds.h (graphds_scc): Update prototype accordingly.
5250 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
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.
5256 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5258 * tree-vect-slp.cc (vectorizable_slp_permutation_1): Split out from...
5259 (vectorizable_slp_permutation): ...here.
5261 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
5263 * tree-vect-stmts.cc (get_related_vectype_for_scalar_type): Check
5264 that the requested number of units is interoperable with the requested
5267 2022-08-30 Martin Liska <mliska@suse.cz>
5269 * config.gcc: Remove the port.
5270 * config/m32c/rtems.h: Removed.
5272 2022-08-30 Richard Biener <rguenther@suse.de>
5274 PR tree-optimization/73550
5275 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
5276 Do not apply MAX_NUM_CHAINS again.
5278 2022-08-30 Richard Biener <rguenther@suse.de>
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
5286 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
5288 * value-range-storage.cc (frange_storage_slot::get_frange): Use
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.
5294 * value-range.h (FRANGE_PROP_ACCESSOR): Remove.
5297 2022-08-30 Richard Biener <rguenther@suse.de>
5299 PR tree-optimization/67196
5300 * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
5301 Simplify and normalize use prediates before first use.
5303 2022-08-30 Richard Biener <rguenther@suse.de>
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.
5312 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
5314 * range-op-float.cc (finite_operand_p): 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.
5336 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
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.
5365 (range_tests_nan): New.
5366 (range_tests_signed_zeros): New.
5367 (range_tests_floats): 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.
5377 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
5379 * match.pd ((cmp @0 zerop) real_zerop (negate@1 @0)): Add variant
5382 2022-08-30 Martin Liska <mliska@suse.cz>
5384 * config/s390/s390.cc (s390_rtx_costs): Use proper type as
5387 2022-08-30 Richard Biener <rguenther@suse.de>
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.
5393 2022-08-30 Richard Biener <rguenther@suse.de>
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.
5403 2022-08-30 Richard Biener <rguenther@suse.de>
5405 * gimple-predicate-analysis.h (uninit_analysis::operator()):
5407 * gimple-predicate-analysis.cc
5408 (uninit_analysis::collect_phi_def_edges): Use phi_arg_set,
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
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.
5422 2022-08-30 Tamar Christina <tamar.christina@arm.com>
5424 PR tree-optimization/106744
5425 * tree-ssa-phiopt.cc (minmax_replacement): Correct arguments.
5427 2022-08-30 Tamar Christina <tamar.christina@arm.com>
5429 * expmed.cc (store_bit_field_1): Initialize regnum to 0.
5431 2022-08-29 David Faust <david.faust@oracle.com>
5434 * config/bpf/coreout.cc (bpf_core_get_sou_member_index): Fix
5435 computation of index for anonymous members.
5437 2022-08-29 Jose E. Marchesi <jose.marchesi@oracle.com>
5439 * config/bpf/bpf.cc (bpf_target_macros): Define __bpf__ as a
5442 2022-08-29 H.J. Lu <hjl.tools@gmail.com>
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.
5449 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
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.
5455 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
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.
5466 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
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):
5473 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
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
5481 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
5483 * config/s390/s390.cc (s390_issue_rate): Add z15.
5485 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
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.
5495 2022-08-29 Richard Biener <rguenther@suse.de>
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.
5501 2022-08-29 Richard Biener <rguenther@suse.de>
5503 * gimple-predicate-analysis.cc (compute_control_dep_chain):
5504 Inline is_loop_exit and refactor, add comment about
5507 2022-08-29 Kito Cheng <kito.cheng@sifive.com>
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.
5514 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
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.
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.
5540 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
5542 * config/riscv/riscv.md: Add new type for vector instructions.
5544 2022-08-28 Peter Bergner <bergner@linux.ibm.com>
5547 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Remove handling
5548 of MMA pointer conversions.
5550 2022-08-27 Xi Ruoyao <xry111@xry111.site>
5552 * config/i386/gcc-auto-profile: Regenerate.
5554 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
5556 * real.cc (real_iszero): New.
5557 * real.h (real_iszero): New.
5559 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
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.
5566 2022-08-26 Marek Polacek <polacek@redhat.com>
5569 * doc/invoke.texi: Document -Wself-move.
5571 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
5573 * value-range.cc (vrange::set): Set varying.
5574 (vrange::set_nonzero): Same.
5575 (vrange::set_zero): Same.
5576 (vrange::set_nonnegative): Same.
5578 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
5580 * range-op-float.cc (foperator_equal::op1_range): Do not blindly
5581 copy op2 range when honoring signed zeros.
5583 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
5585 * tree-ssa-threadbackward.cc (possibly_profitable_path_p): Always
5587 (profitable_path_p): Same.
5589 2022-08-26 Richard Biener <rguenther@suse.de>
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
5597 (dump_predicates): Remove.
5598 (simple_control_dep_chain): Remove edge overload.
5600 2022-08-26 Tobias Burnus <tobias@codesourcery.com>
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
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
5616 2022-08-26 Jakub Jelinek <jakub@redhat.com>
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
5631 * doc/md.texi (issignaling<mode>2): Likewise.
5633 2022-08-26 Jakub Jelinek <jakub@redhat.com>
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.
5640 2022-08-26 Richard Biener <rguenther@suse.de>
5642 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
5644 (compute_control_dep_chain): Adjust to honor marked region
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.
5650 2022-08-26 Richard Biener <rguenther@suse.de>
5652 * gimple-predicate-analysis.cc
5653 (uninit_analysis::collect_phi_def_edges): Only expand a
5654 PHI def edge when it is possibly undefined.
5656 2022-08-26 Martin Liska <mliska@suse.cz>
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.
5673 2022-08-26 liuhongt <hongtao.liu@intel.com>
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.
5683 2022-08-25 Marek Polacek <polacek@redhat.com>
5685 * ginclude/stddef.h: Define nullptr_t.
5687 2022-08-25 Joseph Myers <joseph@codesourcery.com>
5689 * gimplify.cc (gimplify_modify_expr): Convert initialization from
5690 a variable-size CONSTRUCTOR to memset before call to
5691 gimplify_modify_expr_rhs.
5693 2022-08-25 Jason Merrill <jason@redhat.com>
5695 * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t.
5697 2022-08-25 Andreas Krebbel <krebbel@linux.ibm.com>
5700 * config/s390/predicates.md (subreg_register_operand): New
5702 * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New
5704 * config/s390/s390.cc (s390_gen_lowpart_subreg): New function.
5705 (s390_expand_insv): Use s390_gen_lowpart_subreg instead of
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.
5712 2022-08-25 Xi Ruoyao <xry111@xry111.site>
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.
5735 2022-08-25 Xi Ruoyao <xry111@xry111.site>
5737 * config/loongarch/loongarch.cc (loongarch_classify_symbol):
5738 Return early if the rtx is not SYMBOL_REF.
5740 2022-08-25 Richard Biener <rguenther@suse.de>
5742 PR tree-optimization/106737
5743 * tree-parloops.cc (transform_to_exit_first_loop_alt): Do not
5746 2022-08-25 Chenghua Xu <xuchenghua@loongson.cn>
5749 * config/loongarch/loongarch.cc (loongarch_build_integer):
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.
5758 2022-08-24 Andrew Pinski <apinski@marvell.com>
5762 * config/riscv/bitmanip.md (*shNadduw): Use n constraint
5764 (*slliuw): Likewise.
5765 (*bexti): Likewise. Also add a check for operands[2] to be less
5766 than the mode bitsize.
5768 2022-08-24 Andrew Pinski <apinski@marvell.com>
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.
5776 2022-08-24 Andrew Pinski <apinski@marvell.com>
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
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.
5793 2022-08-24 Andrew Pinski <apinski@marvell.com>
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):
5800 (*bset<mode>_1_mask): Likewise.
5802 2022-08-24 Andrew Pinski <apinski@marvell.com>
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.
5809 2022-08-24 Andrew Pinski <apinski@marvell.com>
5811 * config/riscv/riscv.cc (riscv_print_operand):
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.
5824 (optab>si3/any_div): Likewise.
5825 (*add<mode>hi3): Likewise.
5826 (<optab>si3/any_shift): Likewise.
5828 2022-08-24 Andrew Pinski <apinski@marvell.com>
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.
5834 2022-08-24 Andrew Pinski <apinski@marvell.com>
5836 * config/riscv/sync.md (any_atomic, atomic_optab): Move to ...
5837 * config/riscv/iterators.md: Here.
5839 2022-08-24 Andrew Pinski <apinski@marvell.com>
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.
5846 2022-08-24 Andrew Pinski <apinski@marvell.com>
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.
5864 (optab, insn): Likewise.
5865 * config/riscv/iterators.md: New file.
5867 2022-08-24 Andrew Pinski <apinski@marvell.com>
5870 * config/riscv/bitmanip.md (bswaphi2): New pattern.
5872 2022-08-24 Andrew Pinski <apinski@marvell.com>
5875 * config/riscv/bitmanip.md (bswap<mode>2): Remove
5876 condition on TARGET_64BIT as X is already conditional there.
5878 2022-08-24 Joseph Myers <joseph@codesourcery.com>
5880 * tree.cc (build_real): Give DFP dconst0 the minimum quantum
5881 exponent for the type.
5883 2022-08-24 Jose E. Marchesi <jose.marchesi@oracle.com>
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.
5890 2022-08-24 Richard Biener <rguenther@suse.de>
5892 * gimple-predicate-analysis.cc: Move predicate normalization
5893 after the comment documenting it.
5895 2022-08-24 Richard Biener <rguenther@suse.de>
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.
5903 2022-08-24 Richard Biener <rguenther@suse.de>
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.
5911 2022-08-24 Jakub Jelinek <jakub@redhat.com>
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.
5921 2022-08-24 Martin Liska <mliska@suse.cz>
5922 Jørgen Kvalsvik <j@lambda.is>
5924 * gcov.cc (add_line_counts): Add group functions to coverage
5926 (accumulate_line_counts): Similarly for files.
5928 2022-08-24 Lulu Cheng <chenglulu@loongson.cn>
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
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'.
5957 2022-08-24 Richard Biener <rguenther@suse.de>
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.
5963 2022-08-23 H.J. Lu <hjl.tools@gmail.com>
5966 * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
5968 (_tile_stream_loadd_internal): Likewise.
5969 (_tile_stored_internal): Likewise.
5971 2022-08-23 Richard Biener <rguenther@suse.de>
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.
5982 2022-08-23 Aldy Hernandez <aldyh@redhat.com>
5984 * range-op-float.cc (foperator_equal::op1_range): Set range to
5987 2022-08-23 Richard Biener <rguenther@suse.de>
5989 * gimple-predicate-analysis.cc (is_loop_exit): Split out
5991 (is_non_loop_exit_postdominating): ... here. Remove after
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
5999 2022-08-23 Andrew MacLeod <amacleod@redhat.com>
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.
6005 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
6007 * config/pru/pru.md (pru_<code>di3): New alternative for
6008 two operands but without earlyclobber.
6010 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
6012 * config/pru/pru.md (prumov<mode>, mov<mode>): Add
6013 variants for loading -1 consts.
6015 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
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
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
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
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.
6046 2022-08-22 Richard Biener <rguenther@suse.de>
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.
6057 2022-08-22 Martin Liska <mliska@suse.cz>
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
6068 2022-08-22 zhongjuzhe <juzhe.zhong@rivai.ai>
6070 * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value
6071 and repeat value different.
6073 2022-08-22 Tobias Burnus <tobias@codesourcery.com>
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.
6082 2022-08-22 Richard Biener <rguenther@suse.de>
6084 PR tree-optimization/105937
6085 * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs
6087 (execute_late_warn_uninitialized): Mark backedges.
6089 2022-08-22 Richard Biener <rguenther@suse.de>
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.
6098 2022-08-20 Lulu Cheng <chenglulu@loongson.cn>
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
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.
6123 2022-08-19 Tobias Burnus <tobias@codesourcery.com>
6125 * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to
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.
6133 2022-08-19 Aldy Hernandez <aldyh@redhat.com>
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.
6141 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
6152 2022-08-18 Maciej W. Rozycki <macro@embecosm.com>
6154 * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output
6157 2022-08-18 Tim Lange <mail@tim-lange.me>
6160 * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic.
6162 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
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
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
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
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
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
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
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.
6208 2022-08-18 Richard Biener <rguenther@suse.de>
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 !
6215 2022-08-18 Andrew Pinski <apinski@marvell.com>
6217 PR gcov-profile/106659
6218 * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with
6221 2022-08-18 konglin1 <lingling.kong@intel.com>
6223 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
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.
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.
6250 (VF_AVX512HFBF16): Ditto.
6251 (VF_AVX512BWHFBF16): Ditto.
6254 (VIHFBF_256): Ditto.
6255 (VIHFBF_AVX512BW): Ditto.
6256 (VI2F_256_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.
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
6290 (*vec_extract<mode>): New define_insn.
6291 (VEC_EXTRACT_MODE): Add BF vector modes.
6292 (PINSR_MODE): Add V8BF.
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
6303 (avx2_pbroadcast<mode>_1): Ditto.
6304 (<avx512>_vec_dup<mode>_1): Ditto.
6305 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
6308 2022-08-18 Martin Liska <mliska@suse.cz>
6310 * configure: Regenerate.
6312 2022-08-18 Haochen Gui <guihaoc@gcc.gnu.org>
6315 * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add.
6316 (<u>madddi4_highpart): New.
6317 (<u>madddi4_highpart_le): New.
6319 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
6321 * gimple-range-path.cc
6322 (path_range_query::compute_exit_dependencies): Use
6323 gimple_range_ssa_names.
6325 2022-08-18 zhongjuzhe <juzhe.zhong@rivai.ai>
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
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
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.
6369 2022-08-18 Lulu Cheng <chenglulu@loongson.cn>
6371 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
6372 Get __tls_get_addr address through got table when disable plt.
6374 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
6384 2022-08-17 Roger Sayle <roger@nextmovesoftware.com>
6387 * config/i386/i386-features.cc
6388 (timde_scalar_chain::compute_convert_gain): Replace incorrect use
6389 of XINT with INTVAL (XEXP (src, 1)).
6391 2022-08-17 Aldy Hernandez <aldyh@redhat.com>
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
6398 * value-relation.cc (path_oracle::reset_path): Set root oracle.
6399 * value-relation.h (path_oracle::reset_path): Add root oracle
6402 2022-08-17 Marek Polacek <polacek@redhat.com>
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.
6409 2022-08-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6410 Jakub Jelinek <jakub@redhat.com>
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.
6417 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
6419 * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic
6420 when filenames come out identically.
6422 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
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.
6428 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
6429 Chung-Lin Tang <cltang@codesourcery.com>
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
6443 2022-08-17 Christophe Lyon <christophe.lyon@arm.com>
6445 * config.gcc (arm): Define with_float to hard if target name ends
6448 2022-08-17 Richard Biener <rguenther@suse.de>
6450 * tree-ssa-threadbackward.cc
6451 (back_threader_profitability): Split profitable_path_p
6452 into possibly_profitable_path_p and itself, keep state
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
6467 (back_threader_profitability::profitable_path_p): Do final
6468 profitability path after the taken edge has been determined.
6470 2022-08-17 Xi Ruoyao <xry111@xry111.site>
6472 * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern.
6473 (fmin<mode>3): Likewise.
6475 2022-08-17 Andrew MacLeod <amacleod@redhat.com>
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.
6482 2022-08-16 Martin Liska <mliska@suse.cz>
6485 * doc/install.texi: Remove link to www.bullfreeware.com
6487 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
6489 * common/config/riscv/riscv-common.cc (riscv_implied_info): Add
6491 (riscv_ext_version_table): Ditto.
6492 (riscv_ext_flag_table): Ditto.
6493 * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
6495 (TARGET_ZFHMIN): Ditto.
6496 (TARGET_ZFH): Ditto.
6497 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
6499 (riscv_emit_float_compare): Handle HFmode.
6500 * config/riscv/riscv.md (ANYF): Add HF.
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.
6512 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
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.
6538 (*movhf_softfloat): New.
6540 2022-08-16 Richard Biener <rguenther@suse.de>
6542 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
6543 Do not walk further if we are leaving the current loop.
6545 2022-08-16 Sergei Trofimovich <siarheit@google.com>
6548 * gcc.cc (driver::detect_jobserver): Allocate storage xputenv()
6549 argument using xstrdup().
6551 2022-08-16 Aldy Hernandez <aldyh@redhat.com>
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
6568 2022-08-16 Martin Liska <mliska@suse.cz>
6570 * value-range-storage.h (class obstack_vrange_allocator): Mark
6572 (class ggc_vrange_allocator): Likewise.
6574 2022-08-16 Martin Liska <mliska@suse.cz>
6576 * value-range-equiv.h (class value_range_equiv): Add virtual
6578 * value-range.h: Likewise.
6580 2022-08-16 Richard Biener <rguenther@suse.de>
6582 PR middle-end/106630
6583 * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to
6584 narrowing conversions.
6586 2022-08-16 Martin Liska <mliska@suse.cz>
6588 * value-range-equiv.h (class value_range_equiv):
6590 2022-08-16 Martin Liska <mliska@suse.cz>
6592 * config/i386/i386-features.h (class general_scalar_chain): Add
6593 final override for a method.
6594 (class timode_scalar_chain): Likewise.
6596 2022-08-16 Richard Biener <rguenther@suse.de>
6598 * doc/invoke.texi (max-jump-thread-paths): Adjust.
6600 2022-08-16 Martin Liska <mliska@suse.cz>
6602 * opts-common.cc (jobserver_info::connect): Open fifo
6603 in non-blocking mode.
6605 2022-08-16 Kewen.Lin <linkw@gcc.gnu.org>
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.
6612 2022-08-16 Kewen Lin <linkw@linux.ibm.com>
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.
6618 2022-08-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
6624 2022-08-15 Andrew MacLeod <amacleod@redhat.com>
6626 PR tree-optimization/106621
6627 * value-range.cc (irange::set): Check for POLY_INT_CST early.
6629 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
6631 * config/i386/i386-features.cc
6632 (timode_scalar_chain::compute_convert_gain): Provide costs for
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.
6639 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
6641 * config/i386/i386-features.cc
6642 (timode_scalar_chain::compute_convert_gain): Provide gains for
6643 comparisons against 0/-1, including "*testti" patterns.
6645 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
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.
6654 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
6655 Richard Biener <rguenther@suse.de>
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.
6663 2022-08-15 Richard Biener <rguenther@suse.de>
6665 * gimple-range-path.cc (range_on_path_entry): Just
6666 call range_on_entry.
6668 2022-08-15 Jakub Jelinek <jakub@redhat.com>
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.
6676 2022-08-15 konglin1 <lingling.kong@intel.com>
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.
6706 (HFBF): Add new define_mode_iterator.
6707 (*pushhf_rex64): Change for BFmode.
6708 (*push<mode>_rex64): Ditto.
6710 (*push<mode>): Ditto.
6712 (hfbfconstf): Add new define_mode_attr.
6713 (*mov<mode>_internal): Add BFmode.
6715 2022-08-13 Roger Sayle <roger@nextmovesoftware.com>
6716 Uroš Bizjak <ubizjak@gmail.com>
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.
6740 2022-08-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6742 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options.
6744 2022-08-12 Jan Hubicka <hubicka@ucw.cz>
6746 PR middle-end/106057
6747 * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New
6749 (possible_polymorphic_call_targets): Use it.
6751 2022-08-12 Andrew Carlotti <andrew.carlotti@arm.com>
6753 * tree-ssa-loop.h: Improve comment
6755 2022-08-12 Jakub Jelinek <jakub@redhat.com>
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.
6761 2022-08-12 Richard Biener <rguenther@suse.de>
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.
6768 2022-08-12 Tamar Christina <tamar.christina@arm.com>
6771 * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine,
6772 *fcmuo<mode>_bic_combine): Don't accept comparisons against zero.
6774 2022-08-12 Tim Lange <mail@tim-lange.me>
6777 * doc/invoke.texi: Add Wanalyzer-out-of-bounds.
6779 2022-08-12 Andrew Pinski <apinski@marvell.com>
6781 * config/aarch64/aarch64.md: Remove comment
6782 about MD_INCLUDES as it is out of date and not needed.
6784 2022-08-11 Richard Biener <rguenther@suse.de>
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.
6790 2022-08-11 Richard Biener <rguenther@suse.de>
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
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.
6802 2022-08-11 Richard Biener <rguenther@suse.de>
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):
6813 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
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.
6819 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
6821 * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p):
6822 Remove function declaration.
6824 2022-08-10 Richard Biener <rguenther@suse.de>
6826 PR tree-optimization/106513
6827 * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t
6830 2022-08-10 Martin Liska <mliska@suse.cz>
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.
6840 2022-08-10 Martin Liska <mliska@suse.cz>
6842 * opts-jobserver.h: Add one member.
6843 * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO
6844 format of --jobserver-auth.
6846 2022-08-10 Martin Liska <mliska@suse.cz>
6848 * gcc.cc (driver::detect_jobserver): Remove and move to
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.
6855 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
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
6876 * config/i386/sse.md (*ptest<mode>_and): New pre-reload
6877 define_insn_and_split that recognizes UNSPEC_PTEST of identical
6880 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
6881 Richard Biener <rguenther@suse.de>
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.
6892 2022-08-09 David Malcolm <dmalcolm@redhat.com>
6894 * doc/invoke.texi (Static Analyzer Options): Add notes on which
6895 functions the analyzer has hardcoded knowledge of.
6897 2022-08-09 Andrew Stubbs <ams@codesourcery.com>
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.
6915 2022-08-09 Richard Biener <rguenther@suse.de>
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
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.
6927 2022-08-09 Richard Biener <rguenther@suse.de>
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.
6935 2022-08-09 Richard Biener <rguenther@suse.de>
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.
6944 2022-08-09 Tobias Burnus <tobias@codesourcery.com>
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.
6950 2022-08-08 Andrew MacLeod <amacleod@redhat.com>
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.
6956 2022-08-08 Tom Honermann <tom@honermann.net>
6958 * ginclude/stdatomic.h (atomic_char8_t,
6959 ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
6961 2022-08-08 Andrew Pinski <apinski@marvell.com>
6963 PR middle-end/103645
6964 * gimplify.cc (gimplify_init_constructor): Don't build/add
6965 gimple assignment of an empty type.
6967 2022-08-08 Richard Biener <rguenther@suse.de>
6971 * dwarf2out.cc (dwarf2out_register_external_die): Restore
6973 * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1
6974 to input DECL_INITIAL, avoiding to commit drefs.
6976 2022-08-07 Roger Sayle <roger@nextmovesoftware.com>
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.
6982 2022-08-05 David Malcolm <dmalcolm@redhat.com>
6985 * doc/invoke.texi: Add -Wanalyzer-jump-through-null.
6987 2022-08-05 Roger Sayle <roger@nextmovesoftware.com>
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.
6993 2022-08-05 Tamar Christina <tamar.christina@arm.com>
6995 PR middle-end/106534
6996 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the
6997 value_replacement and store_elim from diamonds.
6999 2022-08-05 Richard Biener <rguenther@suse.de>
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.
7006 2022-08-05 Aldy Hernandez <aldyh@redhat.com>
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.
7013 2022-08-05 Richard Biener <rguenther@suse.de>
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
7020 2022-08-05 Andrew Pinski <apinski@marvell.com>
7022 * config/riscv/predicates.md (splittable_const_int_operand):
7023 Remove the check for TARGET_64BIT for single bit const values.
7025 2022-08-04 Andrew MacLeod <amacleod@redhat.com>
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.
7031 2022-08-04 Tamar Christina <tamar.christina@arm.com>
7033 * match.pd: New bit_not rule.
7035 2022-08-04 Tamar Christina <tamar.christina@arm.com>
7037 PR middle-end/106519
7038 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for
7041 2022-08-04 Sam Feifer <sfeifer@redhat.com>
7043 PR tree-optimization/106243
7044 * match.pd (-x & 1): New simplification.
7046 2022-08-04 Richard Biener <rguenther@suse.de>
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.
7052 2022-08-04 Richard Biener <rguenther@suse.de>
7054 * tree-ssa-threadbackward.cc (populate_worklist): Remove.
7055 (back_threader::resolve_phi): Likewise.
7056 (back_threader::find_paths_to_names): Rewrite greedy search.
7058 2022-08-04 Ilya Leoshkevich <iii@linux.ibm.com>
7060 * config/s390/vector.md (V_HW_FT): New iterator.
7061 * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead
7064 2022-08-03 Michael Meissner <meissner@linux.ibm.com>
7066 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
7067 setting -mblock-ops-vector-pair.
7069 2022-08-03 Andrew MacLeod <amacleod@redhat.com>
7071 PR tree-optimization/106514
7072 * value-relation.cc (path_oracle::killing_def) Do not walk the
7073 equivalence set clearing bits.
7075 2022-08-03 Tamar Christina <tamar.christina@arm.com>
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
7082 (strip_bit_not, invert_minmax_code): New.
7084 2022-08-03 Richard Earnshaw <rearnsha@arm.com>
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
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.
7099 2022-08-03 Martin Liska <mliska@suse.cz>
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.
7106 2022-08-03 Martin Liska <mliska@suse.cz>
7108 * profile.cc (compute_branch_probabilities): Do not collect
7109 stats unless TDF_DETAILS.
7111 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
7112 Uroš Bizjak <ubizjak@gmail.com>
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.
7119 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
7121 * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case
7122 to split comparisons against -1 using AND and CMP -1 instructions.
7124 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
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.
7133 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
7134 Segher Boessenkool <segher@kernel.crashing.org>
7135 Richard Sandiford <richard.sandiford@arm.com>
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.
7148 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
7150 PR tree-optimization/106510
7151 * gimple-range-fold.cc (fur_source::register_outgoing_edges):
7152 Check for unsupported statements early.
7154 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
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.
7160 2022-08-02 Jose E. Marchesi <jose.marchesi@oracle.com>
7162 * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR
7163 encoding bit in BTF.
7165 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
7167 * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
7169 (tree_lower_bound): New.
7170 (tree_upper_bound): New.
7171 (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
7173 * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
7176 2022-08-02 Richard Biener <rguenther@suse.de>
7178 * tree-ssa-threadbackward.cc
7179 (back_threader_profitability::profitable_path_p): Apply
7180 size constraints to all paths again.
7182 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
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
7198 * value-range.h (frange::supports_p): Enable.
7200 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
7202 * tree-core.h (struct tree_ssa_name): Add frange_info and
7204 * value-range-storage.cc (vrange_storage::alloc_slot): Add case
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.
7215 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
7217 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger
7220 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
7222 * value-range.cc (frange::set): Initialize m_props and cleanup.
7224 2022-08-02 Richard Biener <rguenther@suse.de>
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.
7230 2022-08-02 Martin Liska <mliska@suse.cz>
7232 * profile.cc (compute_branch_probabilities): Dump details only
7234 * symtab.cc (symtab_node::dump_base): Do not dump pointer unless
7235 TDF_ADDRESS is used, it makes comparison harder.
7237 2022-08-02 Richard Biener <rguenther@suse.de>
7239 PR tree-optimization/106498
7240 * omp-expand.cc (expand_omp_taskreg): Do not perform virtual
7242 (expand_omp_for): Or here.
7243 (execute_expand_omp): Instead schedule it here together
7244 with CFG cleanup via TODO.
7246 2022-08-02 Richard Biener <rguenther@suse.de>
7249 * dwarf2out.cc (dwarf2out_register_external_die): Adjust
7252 2022-08-02 Richard Biener <rguenther@suse.de>
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.
7259 2022-08-01 David Malcolm <dmalcolm@redhat.com>
7261 * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste
7264 2022-08-01 Roger Sayle <roger@nextmovesoftware.com>
7265 Uroš Bizjak <ubizjak@gmail.com>
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
7272 2022-08-01 H.J. Lu <hjl.tools@gmail.com>
7275 * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
7276 (TARGET_IFUNC_REF_LOCAL_OK): Use it.
7278 2022-08-01 Jose E. Marchesi <jose.marchesi@oracle.com>
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
7287 (btf_dtd_emit_preprocess_cb): Propagate the linkage information
7290 2022-08-01 Andrew Stubbs <ams@codesourcery.com>
7291 Jakub Jelinek <jakub@redhat.com>
7293 * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match
7296 2022-08-01 Sam Feifer <sfeifer@redhat.com>
7298 PR tree-optimization/104992
7299 * match.pd (x / y * y == x): New simplification.
7301 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
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.
7313 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
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.
7321 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
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
7328 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
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.
7334 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
7335 H.J. Lu <hjl.tools@gmail.com>
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.
7344 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
7350 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7352 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
7353 Add new case for IF_THEN_ELSE.
7355 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
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.
7361 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
7363 * config/gcn/gcn.md (one_cmpldi2): New.
7365 2022-07-29 Richard Biener <rguenther@suse.de>
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.
7372 2022-07-29 Richard Biener <rguenther@suse.de>
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.
7378 2022-07-29 Jakub Jelinek <jakub@redhat.com>
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.
7385 2022-07-29 Jakub Jelinek <jakub@redhat.com>
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.
7392 2022-07-29 Lulu Cheng <chenglulu@loongson.cn>
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.
7401 2022-07-29 Richard Biener <rguenther@suse.de>
7403 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
7404 Use CONVERT_EXPR_CODE_P.
7406 2022-07-29 Richard Biener <rguenther@suse.de>
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.
7412 2022-07-28 David Malcolm <dmalcolm@redhat.com>
7415 * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var.
7417 2022-07-28 David Malcolm <dmalcolm@redhat.com>
7419 * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than
7421 (Static Analyzer Options): Likewise. Add urefs for all of the
7422 warnings that have associated CWE identifiers.
7424 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
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
7432 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
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
7441 (*riscv_fsnvsnan<mode>2): New insn.
7443 2022-07-28 Richard Biener <rguenther@suse.de>
7445 PR middle-end/106457
7446 * tree.cc (array_at_struct_end_p): Handle array objects
7449 2022-07-28 Jakub Jelinek <jakub@redhat.com>
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.
7458 2022-07-27 Andrew Carlotti <andrew.carlotti@arm.com>
7460 * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead.
7462 2022-07-27 WANG Xuerui <i@xen0n.name>
7464 * doc/invoke.texi: Document -m[no-]explicit-relocs for
7467 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
7469 * config/riscv/riscv.md (stack_protect_set_<mode>): Remove
7470 duplicate backslashes.
7472 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
7474 * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New
7477 2022-07-27 Jakub Jelinek <jakub@redhat.com>
7480 * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't
7481 output asm thunks for -dx.
7483 2022-07-27 Jakub Jelinek <jakub@redhat.com>
7485 PR middle-end/106332
7486 * opts-common.cc (candidates_list_and_hint): Add gcc_assert
7487 that candidates is not an empty vector.
7489 2022-07-27 Xi Ruoyao <xry111@xry111.site>
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.
7500 2022-07-26 Peter Bergner <bergner@linux.ibm.com>
7503 * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
7505 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
7507 * config/loongarch/loongarch-opts.cc: Modify the output message string
7510 2022-07-26 Martin Liska <mliska@suse.cz>
7512 * doc/tm.texi.in: Fix placement of defmac.
7513 * doc/tm.texi: Copy.
7515 2022-07-26 Martin Liska <mliska@suse.cz>
7517 * doc/tm.texi.in: Fix cross @defmac and @hook.
7518 * doc/tm.texi: Copy.
7520 2022-07-26 Aldy Hernandez <aldyh@redhat.com>
7522 PR tree-optimization/106444
7523 * value-range-pretty-print.cc (vrange_printer::visit): Handle
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.
7529 2022-07-26 Richard Biener <rguenther@suse.de>
7531 * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
7532 points to a constant continue checking ptr2.
7534 2022-07-26 Andrew Carlotti <Andrew.Carlotti@arm.com>
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
7713 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
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.
7726 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
7728 * config/aarch64/aarch64-builtins.cc
7729 (aarch64_general_gimple_fold_builtin): Add combine.
7731 2022-07-26 Richard Biener <rguenther@suse.de>
7733 PR tree-optimization/106189
7734 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
7735 Divide using offset_ints.
7737 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
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
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
7771 (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
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
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.
7794 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
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
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'
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
7836 2022-07-26 Kewen Lin <linkw@linux.ibm.com>
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.
7843 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
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
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
7861 * range-op-float.cc: New file.
7863 2022-07-25 Roger Sayle <roger@nextmovesoftware.com>
7864 Uroš Bizjak <ubizjak@gmail.com>
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.
7880 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
7882 PR middle-end/106432
7883 * gimple-range.cc (gimple_ranger::range_on_edge): Return false
7884 when the result range type is unsupported.
7886 2022-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
7888 * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
7890 2022-07-25 Richard Biener <rguenther@suse.de>
7892 PR middle-end/106414
7893 * match.pd (~(x ^ y) -> x == y): Restrict to single bit
7896 2022-07-25 Andre Vieira <andre.simoesdiasvieira@arm.com>
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.
7915 2022-07-25 Martin Liska <mliska@suse.cz>
7917 * doc/extend.texi: Remove trailing whitespaces.
7918 * doc/invoke.texi: Likewise.
7920 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
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
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.
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.
7956 2022-07-25 Peter Bergner <bergner@linux.ibm.com>
7957 Kewen Lin <linkw@linux.ibm.com>
7960 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
7961 to filter out all -mtune options.
7963 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
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.
7970 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
7972 * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported
7974 * value-query.cc (get_ssa_name_range_info): Remove precision check.
7976 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
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.
7982 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
7984 * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange.
7985 (ranger_cache::range_from_dom): Same.
7987 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
7989 2022-07-24 Roger Sayle <roger@nextmovesoftware.com>
7990 H.J. Lu <hjl.tools@gmail.com>
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
8001 (scalar_chain::convert): Call convert_insn_common before calling
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.
8017 2022-07-23 Immad Mir <mirimmad@outlook.com>
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
8027 2022-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8029 * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
8030 Add a new insn_and_split pattern, and a few split patterns for
8033 2022-07-22 Richard Sandiford <richard.sandiford@arm.com>
8035 * graphds.cc (graphds_scc): Fix algorithm attribution.
8037 2022-07-22 Richard Biener <rguenther@suse.de>
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
8044 2022-07-22 Richard Biener <rguenther@suse.de>
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.
8055 2022-07-22 Richard Biener <rguenther@suse.de>
8057 PR tree-optimization/106387
8058 * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
8059 if ptr is not an SSA name.
8061 2022-07-22 liuhongt <hongtao.liu@intel.com>
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
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.
8075 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
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.
8087 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
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
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.
8110 2022-07-21 Sam Feifer <sfeifer@redhat.com>
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.
8116 2022-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8119 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8121 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
8122 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
8124 2022-07-21 Richard Biener <rguenther@suse.de>
8126 PR tree-optimization/106379
8127 * match.pd (~(a ^ b) -> a == b): New pattern.
8129 2022-07-21 Richard Biener <rguenther@suse.de>
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.
8139 2022-07-21 Richard Biener <rguenther@suse.de>
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.
8151 2022-07-21 Richard Biener <rguenther@suse.de>
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.
8159 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
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.
8168 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
8170 * rtl.h (remove_node_from_expr_list): Remove declaration.
8171 * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
8173 2022-07-20 Richard Biener <rguenther@suse.de>
8175 * tree-vect-data-refs.cc (bump_vector_ptr): Return an
8176 invariant updated address when the input was invariant.
8178 2022-07-20 liuhongt <hongtao.liu@intel.com>
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.
8191 2022-07-20 Richard Biener <richard.guenther@gmail.com>
8192 Hongtao Liu <hongtao.liu@intel.com>
8194 PR tree-optimization/106010
8195 * tree-complex.cc (init_dont_simulate_again): Lower complex
8197 (expand_complex_move): Also expand COMPLEX_CST for rhs.
8199 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
8201 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
8202 for incoming ranges on join nodes and add to worklist.
8204 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
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.
8211 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
8213 * tree-cfg.cc (gimple_verify_flow_info): Check placement of
8214 returns_twice calls.
8216 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
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.
8222 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
8224 * tree-ssa-sink.cc (select_best_block): Punt if selected block
8225 has incoming abnormal edges.
8227 2022-07-19 Martin Liska <mliska@suse.cz>
8229 * doc/extend.texi: Remove trailing :.
8231 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8233 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
8234 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
8236 2022-07-19 Richard Biener <rguenther@suse.de>
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.
8243 2022-07-19 Richard Biener <rguenther@suse.de>
8246 * dwarf2out.cc (dwarf2out_register_external_die): Allow
8247 map entry re-use during WPA.
8249 2022-07-19 Roger Sayle <roger@nextmovesoftware.com>
8250 Richard Biener <rguenther@suse.de>
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.
8258 2022-07-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
8265 2022-07-18 Andrew MacLeod <amacleod@redhat.com>
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
8273 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
8275 * doc/invoke.texi (RISC-V Options): Add index references for
8276 `mrelax' and `mriscv-attribute'.
8278 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
8280 * doc/invoke.texi (Option Summary): Add missing second space
8281 around `-mstack-protector-guard-reg='.
8283 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
8285 * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
8286 (RISC-V Options): Likewise, and `-mriscv-attribute'.
8288 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
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
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
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.
8310 2022-07-18 Richard Biener <rguenther@suse.de>
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.
8316 2022-07-18 Richard Sandiford <richard.sandiford@arm.com>
8319 * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
8321 * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
8322 * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
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):
8328 (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
8330 (neon_copysignf<mode>): Rename to...
8331 (copysign<mode>3): ...this.
8333 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
8335 * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
8336 pointer first when in interrupts.
8338 2022-07-18 Richard Biener <rguenther@suse.de>
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
8349 2022-07-18 Richard Ball <richard.ball@arm.com>
8351 * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
8352 (aarch64_evpc_uzp): Likewise.
8353 (aarch64_evpc_zip): Likewise.
8355 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
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.
8363 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
8365 * config/i386/predicates.md (x86_64_const_vector_operand):
8366 Check the operand's mode matches the specified mode argument.
8368 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
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.
8377 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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
8390 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
8398 2022-07-15 H.J. Lu <hjl.tools@gmail.com>
8401 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
8402 false if callee has indirect_return attribute and caller
8405 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
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.
8412 2022-07-15 David Malcolm <dmalcolm@redhat.com>
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.
8418 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
8420 * config/aarch64/aarch64-builtins.cc
8421 (enum aarch64_type_qualifiers): Remove qualifier_internal.
8422 (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
8424 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
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.
8439 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
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.
8451 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
8453 * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
8455 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
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.
8470 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
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.
8479 2022-07-15 Jonathan Wakely <jwakely@redhat.com>
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):
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.
8492 2022-07-15 konglin1 <lingling.kong@intel.com>
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
8501 (ix86_expand_sse_comi_round):Extract unordered check and mode part
8502 in ix86_ssecom_setcc.
8504 2022-07-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
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.
8509 2022-07-14 H.J. Lu <hjl.tools@gmail.com>
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.
8518 2022-07-14 Eric Botcazou <ebotcazou@adacore.com>
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.
8529 2022-07-14 Martin Liska <mliska@suse.cz>
8531 * doc/gimple.texi: Close properly a deftypefn.
8533 2022-07-14 Martin Liska <mliska@suse.cz>
8535 * doc/gimple.texi: Close properly a deftypefn.
8537 2022-07-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
8545 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
8547 * range-op.cc (operator_lt::fold_range): Use nonzero bits.
8549 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
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.
8556 2022-07-13 Richard Biener <rguenther@suse.de>
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.
8570 2022-07-13 Andrew Carlotti <andrew.carlotti@arm.com>
8572 * config/aarch64/aarch64-builtins.cc
8573 (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
8575 2022-07-13 Richard Biener <rguenther@suse.de>
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
8583 2022-07-12 Aldy Hernandez <aldyh@redhat.com>
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.
8592 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
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.
8616 2022-07-12 Richard Biener <rguenther@suse.de>
8618 * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
8620 (vect_do_peeling): Do not call it, adjust comment.
8622 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
8624 * config/aarch64/aarch64-builtins.cc
8625 (aarch64_builtin_vectorized_function): Remove handling of
8626 floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
8628 2022-07-11 Andrew MacLeod <amacleod@redhat.com>
8630 PR tree-optimization/106234
8631 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
8632 cache value before recursively resolving it.
8634 2022-07-11 Roger Sayle <roger@nextmovesoftware.com>
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.
8679 2022-07-11 Richard Sandiford <richard.sandiford@arm.com>
8681 PR tree-optimization/106250
8682 * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
8683 argument to directly_supported_p.
8685 2022-07-11 Richard Biener <rguenther@suse.de>
8687 * tree-into-ssa.cc (update_ssa): Do not forcefully
8688 re-compute dominance fast queries for TODO_update_ssa_no_phi.
8690 2022-07-11 Richard Biener <rguenther@suse.de>
8692 PR tree-optimization/106228
8693 * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
8694 VUSE compute for the non-loop case.
8696 2022-07-11 Richard Biener <rguenther@suse.de>
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
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.
8711 2022-07-11 Richard Biener <rguenthert@suse.de>
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.
8718 2022-07-11 Richard Biener <rguenther@suse.de>
8720 PR tree-optimization/106228
8721 * tree-vect-data-refs.cc (vect_setup_realignment): Properly
8722 set a VUSE operand on the emitted load.
8724 2022-07-11 Aldy Hernandez <aldyh@redhat.com>
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
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
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
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
8765 2022-07-10 Aldy Hernandez <aldyh@redhat.com>
8767 * value-range.cc (irange::operator=): Call verify_range.
8768 (irange::irange_set): Normalize kind after everything else has
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
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
8784 (irange::varying_compatible_p): Set nonzero mask.
8786 2022-07-10 Xi Ruoyao <xry111@xry111.site>
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.
8792 2022-07-10 Xi Ruoyao <xry111@xry111.site>
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.
8804 2022-07-10 Xi Ruoyao <xry111@xry111.site>
8806 * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
8809 2022-07-09 Aldy Hernandez <aldyh@redhat.com>
8811 * value-range.cc (irange::irange_single_pair_union): Set
8812 VR_VARYING when appropriate.
8814 2022-07-09 Vit Kabele <vit.kabele@sysgo.com>
8816 * stor-layout.cc (finalize_record_size): Extend warning message.
8818 2022-07-09 Sam Feifer <sfeifer@redhat.com>
8820 PR tree-optimization/98304
8821 * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
8823 2022-07-09 Jeff Law <jeffreyalaw@gmail.com>
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.
8829 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
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...
8836 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
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.
8844 2022-07-09 Tamar Christina <tamar.christina@arm.com>
8846 * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
8847 indicate that the value is not undefined.
8849 2022-07-09 Andrew Pinski <apinski@marvell.com>
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.
8855 2022-07-08 Lewis Hyatt <lhyatt@gmail.com>
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.
8863 2022-07-08 Martin Liska <mliska@suse.cz>
8866 * opts.cc (finish_options): Use 2 calls to
8867 report_conflicting_sanitizer_options.
8869 2022-07-08 Richard Biener <rguenther@suse.de>
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
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.
8884 2022-07-08 Martin Liska <mliska@suse.cz>
8886 * toplev.cc (init_asm_output): Do not init asm_out_file.
8888 2022-07-08 Tamar Christina <tamar.christina@arm.com>
8890 PR tree-optimization/106063
8891 * match.pd: Do not apply pattern after veclower is not supported.
8893 2022-07-08 Thomas Schwinge <thomas@codesourcery.com>
8895 * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
8898 2022-07-08 Tamar Christina <tamar.christina@arm.com>
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
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.
8929 2022-07-08 Haochen Jiang <haochen.jiang@intel.com>
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.
8936 2022-07-08 Lulu Cheng <chenglulu@loongson.cn>
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.
8943 2022-07-07 David Malcolm <dmalcolm@redhat.com>
8945 * diagnostic-format-json.cc (json_from_location_range): Update for
8946 removal of label_text::maybe_free in favor of automatic memory
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
8956 (event_range::print): Likewise.
8957 (default_tree_diagnostic_path_printer): Likewise.
8958 (default_tree_make_json_for_path): Likewise.
8960 2022-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8962 * statistics.cc (get_function_name): Add check to see if fn is not NULL.
8964 2022-07-07 Richard Biener <rguenther@suse.de>
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.
8973 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
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'.
8980 2022-07-07 Richard Biener <rguenther@suse.de>
8983 * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
8986 2022-07-07 Richard Biener <rguenther@suse.de>
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
8995 2022-07-07 Richard Biener <rguenther@suse.de>
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
9010 2022-07-07 Dimitrije Milosevic <Dimitrije.Milosevic@Syrmia.com>
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.
9017 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
9019 * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
9021 * config/nvptx/mkoffload.cc (process): Likewise.
9023 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
9025 * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
9027 2022-07-05 Andrew MacLeod <amacleod@redhat.com>
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.
9035 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
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.
9044 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
9045 Hongtao Liu <hongtao.liu@intel.com>
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).
9058 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
9059 Uroš Bizjak <ubizjak@gmail.com>
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.
9065 2022-07-05 Richard Biener <rguenther@suse.de>
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
9072 2022-07-05 Richard Biener <rguenther@suse.de>
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
9078 (rewrite_into_loop_closed_ssa): Adjust.
9080 2022-07-05 Richard Biener <rguenther@suse.de>
9082 PR tree-optimization/106186
9083 * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
9084 Properly handle virtual PHI nodes.
9086 2022-07-05 Richard Biener <rguenther@suse.de>
9088 PR tree-optimization/106196
9089 * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
9090 handle aggregate returns of calls for VDEF updates.
9092 2022-07-05 Richard Biener <rguenther@suse.de>
9094 * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
9097 2022-07-05 Richard Sandiford <richard.sandiford@arm.com>
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
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.
9112 2022-07-05 Richard Biener <rguenther@suse.de>
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
9120 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
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.
9129 2022-07-04 Roger Sayle <roger@nextmovesoftware.com>
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.
9152 2022-07-04 Martin Jambor <mjambor@suse.cz>
9154 PR tree-optimization/105860
9155 * tree-sra.cc (build_reconstructed_reference): Start expr
9156 traversal only just below the outermost union.
9158 2022-07-04 Richard Biener <rguenther@suse.de>
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.
9167 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
9168 Chung-Lin Tang <cltang@codesourcery.com>
9169 Thomas Schwinge <thomas@codesourcery.com>
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.
9182 2022-07-04 Richard Biener <rguenther@suse.de>
9184 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
9185 no SSA update is needed instead of updating virtual SSA
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.
9192 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
9194 * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
9195 for direct circularity.
9197 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
9199 * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
9200 the language for vector types.
9202 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
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.
9226 (irange::set_undefined): Set nonzero bits.
9227 (irange::set_varying): Same.
9228 (irange::normalize_kind): Call set_undefined.
9230 2022-07-04 Richard Biener <rguenther@suse.de>
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):
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):
9249 * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
9251 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
9252 (tree_unswitch_outer_loop): Do not rewrite virtuals into
9254 * tree-parloops.cc (transform_to_exit_first_loop_alt):
9256 (pass_parallelize_loops::execute): After finishing rewrite
9257 into LC SSA again because we do not maintain it properly.
9259 2022-07-04 Richard Biener <rguenther@suse.de>
9261 PR tree-optimization/106055
9262 * graphite.cc (canonicalize_loop_closed_ssa): Check whether
9265 2022-07-04 Haochen Jiang <haochen.jiang@intel.com>
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.
9272 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
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
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.
9291 2022-07-03 H.J. Lu <hjl.tools@gmail.com>
9294 * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
9296 * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
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.
9303 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
9305 * gimple-range-cache.cc: Include value-range-storage.h.
9306 * gimple-range-cache.h (class block_range_cache): Add "class" to
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
9320 * value-range-storage.h (class vrange_allocator): Move from
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.
9330 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
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.
9338 2022-07-03 Xi Ruoyao <xry111@xry111.site>
9339 Lulu Cheng <chenglulu@loongson.cn>
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.
9350 2022-07-03 Ian Lance Taylor <iant@golang.org>
9352 * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
9353 statement if -fdelete-dead-exceptions.
9355 2022-07-02 Tim Lange <mail@tim-lange.me>
9358 * doc/invoke.texi: Added Wanalyzer-allocation-size.
9360 2022-07-02 Immad Mir <mirimmad17@gmail.com>
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.
9368 2022-07-01 Aldy Hernandez <aldyh@redhat.com>
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.
9374 2022-07-01 Uroš Bizjak <ubizjak@gmail.com>
9376 * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
9377 Use "r" constraint for operand 1.
9379 2022-07-01 Richard Biener <rguenther@suse.de>
9381 * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
9382 Do not look at interesting_blocks which is a copy of
9384 (update_ssa): Do not initialize it.
9385 (pass_build_ssa::execute): Set interesting_blocks to NULL
9388 2022-07-01 Richard Biener <rguenther@suse.de>
9390 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
9391 back to using maybe_ne (off, -1).
9393 2022-07-01 Richard Biener <rguenther@suse.de>
9395 * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
9396 checking dominance check conditional on flag_checking.
9398 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
9400 * config/gcn/gcn-protos.h (print_operand_address): Remove register
9401 keyword on 'rtx addr' argument.
9403 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
9404 Uroš Bizjak <ubizjak@gmail.com>
9406 * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
9407 to post-reload define_insn_and_split.
9409 2022-07-01 Jakub Jelinek <jakub@redhat.com>
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.
9417 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
9420 * config/i386/i386.md (peephole2): Avoid generating pop %esp
9421 when optimizing for size.
9423 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
9424 Uroš Bizjak <ubizjak@gmail.com>
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.
9450 2022-07-01 Eric Botcazou <ebotcazou@adacore.com>
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.
9457 2022-07-01 Richard Biener <rguenther@suse.de>
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
9464 2022-07-01 Martin Liska <mliska@suse.cz>
9466 PR tree-optimization/106126
9467 * gimple-if-to-switch.cc (struct condition_info): Save
9469 (find_conditions): Parse all BBs.
9470 (pass_if_to_switch::execute): Allow only side effects for first
9473 2022-07-01 Haochen Jiang <haochen.jiang@intel.com>
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.
9480 2022-06-30 Joseph Myers <joseph@codesourcery.com>
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
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.
9491 2022-06-30 Aldy Hernandez <aldyh@redhat.com>
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.
9502 2022-06-30 Roger Sayle <roger@nextmovesoftware.com>
9503 Uroš Bizjak <ubizjak@gmail.com>
9505 * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
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).
9513 2022-06-30 Richard Biener <rguenther@suse.de>
9515 * domwalk.h (dom_walker::dom_walker): Update comment to
9516 reflect reality and new special argument value for
9518 * domwalk.cc (dom_walker::dom_walker): Recognize -1
9521 (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
9522 dom_walker to not use RPO.
9524 2022-06-30 Martin Liska <mliska@suse.cz>
9526 * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
9529 2022-06-30 Andrew MacLeod <amacleod@redhat.com>
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.
9535 2022-06-30 Antoni Boucher <bouanto@zoho.com>
9538 * config/i386/sse.md: Fix asm generation.
9540 2022-06-29 Sergei Trofimovich <siarheit@google.com>
9543 * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
9545 2022-06-29 Joseph Myers <joseph@codesourcery.com>
9547 * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
9548 not gen_const_mem for UNSPEC_PIC_CALL_SYM.
9550 2022-06-29 Richard Biener <rguenther@suse.de>
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.
9556 2022-06-29 Richard Biener <rguenther@suse.de>
9558 PR tree-optimization/106112
9559 * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
9560 a constant operand according to its type.
9562 2022-06-29 Martin Liska <mliska@suse.cz>
9564 * doc/invoke.texi: Remove removed evrp-mode.
9566 2022-06-29 Lulu Cheng <chenglulu@loongson.cn>
9569 * config/loongarch/loongarch.cc (loongarch_build_integer):
9570 Remove undefined behavior from code.
9572 2022-06-28 Dimitar Dimitrov <dimitar@dinux.eu>
9574 * doc/sourcebuild.texi: Document new no_alignment_constraints
9575 effective target check.
9577 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
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.
9588 2022-06-28 Alexandre Oliva <oliva@adacore.com>
9590 * Makefile.in (TFLAGS): New.
9591 (GCC_FOR_TARGET): Add TFLAGS.
9592 (FLAGS_TO_PASS): Pass TFLAGS down.
9594 2022-06-28 Richard Biener <rguenther@suse.de>
9596 * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
9599 2022-06-28 Richard Biener <rguenther@suse.de>
9601 * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
9602 mark_block_for_update.
9603 (update_ssa): Adjust.
9605 2022-06-28 Xi Ruoyao <xry111@xry111.site>
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.
9613 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
9615 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
9618 2022-06-28 Richard Biener <rguenther@suse.de>
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.
9624 2022-06-28 Kewen Lin <linkw@linux.ibm.com>
9626 * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
9627 iterator GPR with SImode, adjust the condition and output template,
9629 (*rotlsi3_insert_4): ... this.
9631 2022-06-27 David Malcolm <dmalcolm@redhat.com>
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.
9644 2022-06-27 David Malcolm <dmalcolm@redhat.com>
9646 * config/i386/i386-features.h: Add "final" and "override" to
9647 scalar_chain vfunc implementations as appropriate.
9649 2022-06-27 David Malcolm <dmalcolm@redhat.com>
9651 * tree-switch-conversion.h: Add "final" and "override" to cluster
9652 vfunc implementations as appropriate.
9654 2022-06-27 David Malcolm <dmalcolm@redhat.com>
9656 * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
9657 implementations as appropriate.
9659 2022-06-27 David Malcolm <dmalcolm@redhat.com>
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.
9675 2022-06-27 David Malcolm <dmalcolm@redhat.com>
9677 * adjust-alignment.cc: Add "final" and "override" to opt_pass
9678 vfunc implementations, removing redundant "virtual" as
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.
9696 * df-core.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.
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.
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.
9826 2022-06-27 Andrew Stubbs <ams@codesourcery.com>
9828 * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
9830 (movdi_symbol_save_scc): Likewise.
9832 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
9834 PR rtl-optimization/7061
9835 * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
9837 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
9839 PR tree-optimization/94026
9840 * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
9841 (((X >> C1) & C2) eq/ne C3): Likewise.
9843 2022-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
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
9851 (statistics_histogram_event): Likewise.
9853 2022-06-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
9860 2022-06-25 Aldy Hernandez <aldyh@redhat.com>
9862 * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
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
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.
9887 2022-06-25 Jeff Law <jeffreyalaw@gmail.com>
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.
9934 2022-06-25 Roger Sayle <roger@nextmovesoftware.com>
9935 Richard Biener <rguenther@suse.de>
9937 * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
9938 iteration over each basic block that was updated by the second
9941 2022-06-24 Jason Merrill <jason@redhat.com>
9945 * doc/invoke.texi: Document changes.
9947 2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
9949 * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
9950 condition to avoid overflow.
9952 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
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.
9972 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
9974 * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
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
9981 * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
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):
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.
10011 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
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.
10025 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
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.
10045 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
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.
10051 2022-06-24 Richard Biener <rguenther@suse.de>
10053 PR middle-end/106070
10054 * match.pd (a != b ? a : b): Fix translation of
10055 operand_equal_for_comparison_p.
10057 2022-06-24 Jan Hubicka <jh@suse.cz>
10060 * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
10062 2022-06-24 Martin Liska <mliska@suse.cz>
10064 PR middle-end/106059
10065 * profile-count.h: *= and /= operators need to modify this
10068 2022-06-24 Roger Sayle <roger@nextmovesoftware.com>
10069 Uroš Bizjak <ubizjak@gmail.com>
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).
10076 2022-06-24 Alexandre Oliva <oliva@adacore.com>
10078 * common.opt (nostdlib++): New.
10079 * doc/invoke.texi (-nostdlib++): Document it.
10081 2022-06-24 Alexandre Oliva <oliva@adacore.com>
10083 * doc/sourcebuild.texi (Environment attributes): Document
10086 2022-06-23 David Malcolm <dmalcolm@redhat.com>
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.
10108 2022-06-23 Martin Liska <mliska@suse.cz>
10111 * ubsan.cc (sanitize_unreachable_fn): Change order of calls
10112 in order to initialize UBSAN built-ins.
10114 2022-06-23 Martin Liska <mliska@suse.cz>
10117 * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
10118 Skip variables with body_removed.
10120 2022-06-23 liuhongt <hongtao.liu@intel.com>
10122 * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
10124 (sse4_2_pcmpistr): Ditto.
10126 2022-06-23 Xionghu Luo <xionghuluo@tencent.com>
10128 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
10130 * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
10131 * tree-switch-conversion.h: Likewise.
10133 2022-06-22 Jason Merrill <jason@redhat.com>
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)
10164 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
10167 2022-06-22 Richard Sandiford <richard.sandiford@arm.com>
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.
10173 2022-06-22 Palmer Dabbelt <palmer@rivosinc.com>
10175 * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
10177 2022-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10179 * config/xtensa/xtensa.md (bswapsi2_internal):
10180 Enlarge the buffer that is obviously smaller than the template
10181 string given to sprintf().
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>
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.
10194 2022-06-21 Nathan Sidwell <nathan@acm.org>
10196 * doc/invoke.texi (C++ Modules): Remove language-linkage
10197 as missing feature.
10199 2022-06-21 Arjun Shankar <arjun@redhat.com>
10201 PR tree-optimization/94899
10202 * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
10203 0x80000000): New simplification.
10205 2022-06-21 Jakub Jelinek <jakub@redhat.com>
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.
10211 2022-06-21 Jakub Jelinek <jakub@redhat.com>
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.
10217 2022-06-21 Xionghu Luo <xionghuluo@tencent.com>
10220 * gimple-if-to-switch.cc (find_conditions): Don't skip the first
10223 2022-06-21 Siddhesh Poyarekar <siddhesh@gotplt.org>
10225 PR tree-optimization/105736
10226 * tree-object-size.cc (addr_object_size): Return size_unknown
10227 when object offset computation returns an error.
10229 2022-06-20 H.J. Lu <hjl.tools@gmail.com>
10232 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
10233 false if PIC register is used when calling ifunc functions.
10235 2022-06-20 Richard Biener <rguenther@suse.de>
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.
10243 2022-06-20 Kewen Lin <linkw@linux.ibm.com>
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.
10255 2022-06-20 Martin Liska <mliska@suse.cz>
10257 * bb-reorder.cc (find_traces_1_round): Add operators / and * and
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.
10292 2022-06-20 yulong <shiyulong@iscas.ac.cn>
10294 * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
10295 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
10297 * config/riscv/riscv-ftypes.def (0): Remove unused.
10300 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10302 * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
10303 Consider relaxed MOVI instructions as L32R.
10305 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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
10319 2022-06-18 Jakub Jelinek <jakub@redhat.com>
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.
10356 2022-06-18 Jakub Jelinek <jakub@redhat.com>
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.
10363 2022-06-18 Roger Sayle <roger@nextmovesoftware.com>
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
10372 2022-06-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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
10381 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
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.
10391 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
10394 * config/i386/i386.cc (ix86_function_arg): Assert that
10395 the mode of pointer argumet is equal to ptr_mode, not Pmode.
10397 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
10400 * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
10401 instead of REGNO comparisons in combine splitter.
10403 2022-06-17 Segher Boessenkool <segher@kernel.crashing.org>
10405 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
10408 2022-06-17 Kito Cheng <kito.cheng@sifive.com>
10410 * config/riscv/bitmanip.md: Supress warning.
10412 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
10415 * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
10416 Clear bits in the mask above bit 31.
10418 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
10420 * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
10421 to avoid spilling trivial literals to the constant pool.
10423 2022-06-16 David Malcolm <dmalcolm@redhat.com>
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.
10435 2022-06-16 Jason Merrill <jason@redhat.com>
10437 * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
10438 opts_set->x_flag_sanitize.
10440 2022-06-16 Jason Merrill <jason@redhat.com>
10442 * flags.h (issue_strict_overflow_warning): Comment #endif.
10444 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
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.
10451 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
10453 * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
10455 2022-06-16 Jakub Jelinek <jakub@redhat.com>
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.
10462 2022-06-16 Jakub Jelinek <jakub@redhat.com>
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.
10470 2022-06-16 Jakub Jelinek <jakub@redhat.com>
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
10485 2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org>
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.
10514 2022-06-16 Martin Liska <mliska@suse.cz>
10516 * gengtype-state.cc (read_a_state_token): Do not skip extra
10517 character after escaped sequence.
10519 2022-06-16 Martin Liska <mliska@suse.cz>
10522 * spellcheck.cc (test_find_closest_string): Add new test.
10523 * spellcheck.h (class best_match): Prefer a difference in
10524 trailing sign symbol.
10526 2022-06-16 liuhongt <hongtao.liu@intel.com>
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.
10533 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10535 * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
10537 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10539 * config/xtensa/predicates.md (reload_operand):
10541 * config/xtensa/xtensa.md: New peephole2 pattern.
10543 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10545 * config/xtensa/xtensa.md (*round_up_to_even):
10546 New insn-and-split pattern.
10547 (*signed_ge_zero): Ditto.
10549 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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
10559 (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
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.
10571 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10573 * doc/invoke.texi: Document -mextra-l32r-costs= option.
10575 2022-06-15 David Malcolm <dmalcolm@redhat.com>
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
10584 2022-06-15 David Malcolm <dmalcolm@redhat.com>
10586 * value-relation.h: Add "final" and "override" to relation_oracle
10587 vfunc implementations as appropriate.
10589 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
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
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.
10636 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
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.
10643 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
10646 * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
10648 2022-06-15 Richard Biener <rguenther@suse.de>
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.
10655 2022-06-15 Richard Biener <rguenther@suse.de>
10657 PR tree-optimization/105969
10658 * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
10659 by zero in overflow check.
10661 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
10663 PR tree-optimization/105254
10664 PR tree-optimization/105940
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.
10672 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
10674 * read-rtl.cc (find_int): Substitute symbolic constants
10675 before converting the string to an integer.
10677 2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
10678 Richard Biener <rguenther@suse.de>
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.
10687 2022-06-15 liuhongt <hongtao.liu@intel.com>
10690 * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
10693 2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
10695 PR rtl-optimization/105041
10696 * regrename.cc (check_new_reg_p): Use nregs value from du chain.
10698 2022-06-14 Segher Boessenkool <segher@kernel.crashing.org>
10700 * config/rs6000/vsx.md (VS_scalar): Delete.
10701 (rest of file): Adjust.
10703 2022-06-14 Jan Hubicka <hubicka@ucw.cz>
10706 * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
10708 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
10710 * config/riscv/bitmanip.md: Add split to handle opportunities
10711 for slli + sh[123]add.uw
10713 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
10715 * config/riscv/predicates.md (consecutive_bits_operand):
10716 Implement new predicate.
10718 2022-06-14 Richard Biener <rguenther@suse.de>
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.
10724 2022-06-14 Richard Biener <rguenther@suse.de>
10726 PR middle-end/105965
10727 * match.pd (view_convert CONSTRUCTOR): Handle single-element
10730 2022-06-14 Eric Botcazou <ebotcazou@adacore.com>
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.
10738 2022-06-14 Kewen Lin <linkw@linux.ibm.com>
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.
10744 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10746 * config/xtensa/predicates.md (shifted_mask_operand):
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.
10754 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10756 * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
10758 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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
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"
10778 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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):
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.
10796 2022-06-13 Jason Merrill <jason@redhat.com>
10798 * tree-cfg.cc (pass_warn_function_return::execute): Also check
10801 2022-06-13 Maciej W. Rozycki <macro@embecosm.com>
10803 * config/riscv/riscv.md (length): Remove the explicit setting
10806 2022-06-13 H.J. Lu <hjl.tools@gmail.com>
10808 * common/config/i386/cpuinfo.h (get_available_features): Require
10809 AVX for F16C and VAES.
10811 2022-06-13 Uroš Bizjak <ubizjak@gmail.com>
10814 * config/i386/predicates.md (register_no_elim_operand):
10815 Return true for subreg of a memory operand.
10817 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
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
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.
10850 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
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.
10864 2022-06-13 Jakub Jelinek <jakub@redhat.com>
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.
10870 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
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.
10879 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
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}.
10886 2022-06-13 Jakub Jelinek <jakub@redhat.com>
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.
10894 2022-06-12 Simon Wright <simon@pushface.org>
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
10901 2022-06-12 Mark Mentovai <mark@mentovai.com>
10903 * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
10905 2022-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
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
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
10924 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10926 * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
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.
10936 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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
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
10951 * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
10952 dependent option, however, preparatory work for now.
10954 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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,
10960 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
10968 2022-06-11 Michael Meissner <meissner@linux.ibm.com>
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.
10974 2022-06-10 Roger Sayle <roger@nextmovesoftware.com>
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.
10983 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10985 * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
10987 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10989 * config/xtensa/xtensa.md (*andsi3_bitcmpl):
10990 New insn_and_split pattern.
10992 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10994 * config/xtensa/xtensa.md (one_cmplsi2):
10995 Rearrange as an insn_and_split pattern.
10997 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10999 * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
11001 2022-06-09 Segher Boessenkool <segher@kernel.crashing.org>
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.
11013 2022-06-09 Maciej W. Rozycki <macro@embecosm.com>
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.
11020 2022-06-09 Tobias Burnus <tobias@codesourcery.com>
11022 * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
11023 omp_discover_declare_target_fn_r): Don't walk reverse-offload
11026 2022-06-09 Jakub Jelinek <jakub@redhat.com>
11028 * doc/invoke.texi (-Waddress): Fix a typo in small example.
11029 Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
11031 2022-06-09 Cui,Lili <lili.cui@intel.com>
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
11042 2022-06-09 Haochen Gui <guihaoc@gcc.gnu.org>
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.
11048 2022-06-08 Roger Sayle <roger@nextmovesoftware.com>
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.
11055 2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
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.
11063 2022-06-08 Chung-Ju Wu <jasonwucj@gmail.com>
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.
11070 2022-06-08 liuhongt <hongtao.liu@intel.com>
11074 * config/i386/i386.md (*movsi_internal): Change alternative
11076 (*movdi_internal): Ditto.
11077 * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
11079 (*vec_extractv4sf_mem): Ditto.
11080 (*vec_extracthf): Ditto.
11082 2022-06-07 Richard Earnshaw <rearnsha@arm.com>
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.
11094 2022-06-07 liuhongt <hongtao.liu@intel.com>
11097 * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
11100 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
11102 PR middle-end/105853
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.
11113 2022-06-07 Jan Beulich <jbeulich@suse.com>
11116 2022-06-03 Jan Beulich <jbeulich@suse.com>
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.
11125 2022-06-07 Jakub Jelinek <jakub@redhat.com>
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.
11132 2022-06-07 Jan Beulich <jbeulich@suse.com>
11134 * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
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.
11141 2022-06-07 Jan Beulich <jbeulich@suse.com>
11143 * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
11144 into account for reg-only insns.
11146 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
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.
11154 2022-06-07 Kewen Lin <linkw@linux.ibm.com>
11156 * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
11159 2022-06-06 Andrew Stubbs <ams@codesourcery.com>
11161 * config.in: Regenerate.
11162 * configure: Regenerate.
11163 * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
11165 2022-06-04 Roger Sayle <roger@nextmovesoftware.com>
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)
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
11184 2022-06-04 Jakub Jelinek <jakub@redhat.com>
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.
11192 2022-06-03 Jakub Jelinek <jakub@redhat.com>
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.
11199 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
11201 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
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.
11207 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
11209 * value-range.h (struct vrange_traits): Remove.
11210 (is_a): Rewrite without vrange_traits.
11213 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
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
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
11243 (class unsupported_range): Remove most methods as they will now be
11244 inherited from vrange.
11246 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
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):
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.
11289 2022-06-03 Jan Beulich <jbeulich@suse.com>
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.
11298 2022-06-03 Jan Beulich <jbeulich@suse.com>
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.
11305 2022-06-03 Alexandre Oliva <oliva@adacore.com>
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.
11315 2022-06-02 David Malcolm <dmalcolm@redhat.com>
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
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.
11374 2022-06-02 David Malcolm <dmalcolm@redhat.com>
11376 * common.opt (fdiagnostics-format=): Add json-stderr and json-file
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
11403 * gcc.cc (driver_handle_option): Pass dump_base_name to
11404 diagnostic_output_format_init.
11405 * opts.cc (common_handle_option): Likewise.
11407 2022-06-02 David Malcolm <dmalcolm@redhat.com>
11409 * json.cc (string::print): Fix escaping of '\'.
11411 2022-06-02 Philipp Tomsich <philipp.tomsich@vrull.eu>
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)
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).
11420 2022-06-02 Roger Sayle <roger@nextmovesoftware.com>
11423 * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
11424 (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
11426 2022-06-02 Jakub Jelinek <jakub@redhat.com>
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
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
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.
11465 2022-06-02 Richard Biener <rguenther@suse.de>
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.
11479 2022-06-02 Richard Biener <rguenther@suse.de>
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.
11485 2022-06-01 David Seifert <soap@gentoo.org>
11488 * configure: Regenerate.
11490 2022-06-01 H.J. Lu <hjl.tools@gmail.com>
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
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.
11504 2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com>
11506 * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
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
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.
11530 2022-06-01 Jakub Jelinek <jakub@redhat.com>
11532 PR middle-end/30314
11533 * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
11534 x > ~(utype)0 / cst): New simplification.
11536 2022-06-01 Richard Biener <rguenther@suse.de>
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.
11543 2022-06-01 Jakub Jelinek <jakub@redhat.com>
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.
11549 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
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):
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.
11682 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
11684 * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
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):
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.
11716 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
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.
11796 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
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.
11808 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
11810 * value-range-equiv.cc (value_range_equiv::set): New.
11811 * value-range-equiv.h (class value_range_equiv): Make set method
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.
11841 * value-range.h (enum value_range_discriminator): New.
11842 (class vrange): New.
11843 (class unsupported_range): New.
11844 (struct vrange_traits): 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
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.
11864 2022-06-01 Richard Biener <rguenther@suse.de>
11866 PR tree-optimization/105763
11867 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
11868 Check gimple_range_ssa_p.
11870 2022-05-31 Jason Merrill <jason@redhat.com>
11872 * Makefile.in (TAGS): Look at libcpp/*.cc.
11874 2022-05-31 Christophe Lyon <christophe.lyon@arm.com>
11876 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
11877 Prefix mode names with E_.
11879 2022-05-31 Alan Modra <amodra@gmail.com>
11881 * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
11882 spelling of DW_AT_namelist_item.
11884 2022-05-31 Jakub Jelinek <jakub@redhat.com>
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.
11891 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
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.
11897 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
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.
11908 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
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.
11914 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
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.
11939 2022-05-30 Uroš Bizjak <ubizjak@gmail.com>
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.
11961 2022-05-30 Jan Beulich <jbeulich@suse.com>
11963 * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
11966 2022-05-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11968 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
11970 2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
11973 * config/darwin.h: Move versions-specific handling of multiply_defined
11974 from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
11976 2022-05-29 Eric Gallager <egallager@gcc.gnu.org>
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.
11984 2022-05-28 Joel Holdsworth <jholdsworth@nvidia.com>
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
11990 * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
11991 from leaking into cc1.
11993 2022-05-28 Vladimir Makarov <vmakarov@gcc.gnu.org>
11996 * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
11997 is special) for various scenarios.
11999 2022-05-28 Iain Sandoe <iain@sandoe.co.uk>
12001 * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
12002 describing this macro.
12004 2022-05-27 Richard Biener <rguenther@suse.de>
12006 * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
12008 2022-05-27 Martin Jambor <mjambor@suse.cz>
12011 * ipa-prop.cc (propagate_controlled_uses): Check type of the
12012 constant before adding a LOAD reference.
12014 2022-05-27 Jakub Jelinek <jakub@redhat.com>
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.
12028 2022-05-27 Richard Biener <rguenther@suse.de>
12030 PR tree-optimization/105726
12031 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
12032 Constrain array-of-flexarray case more.
12034 2022-05-27 Jakub Jelinek <jakub@redhat.com>
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.
12040 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
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.
12051 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
12053 * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
12054 to split a combined "and;cmp" sequence into "not;test".
12056 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
12065 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
12076 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12078 * config/xtensa/xtensa.cc (xtensa_expand_block_move):
12079 Make instruction counting more accurate, and simplify emitting insns.
12081 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
12092 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12094 * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
12095 * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
12098 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
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.
12105 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
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.
12128 2022-05-25 Simon Cook <simon.cook@embecosm.com>
12130 * config/riscv/arch-canonicalize: Only add mafd extension if
12131 base was rv32/rv64g.
12133 2022-05-25 Tobias Burnus <tobias@codesourcery.com>
12135 * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
12137 2022-05-25 Jakub Jelinek <jakub@redhat.com>
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.
12144 2022-05-25 Martin Liska <mliska@suse.cz>
12145 Richard Biener <rguenther@suse.de>
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
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.
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.
12178 2022-05-24 Eugene Rozenfeld <erozen@microsoft.com>
12180 * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
12181 counts for the epilog loop.
12183 2022-05-24 Martin Sebor <msebor@redhat.com>
12184 Richard Biener <rguenther@suse.de>
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
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.
12195 2022-05-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12197 * target.def (vec_perm_const): Define new parameter op_mode and
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
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.
12237 2022-05-24 H.J. Lu <hjl.tools@gmail.com>
12240 * config/i386/i386.opt: Remove Undocumented.
12241 * doc/invoke.texi: Document -mcet-switch.
12243 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
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
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.
12276 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
12278 * config.in: Regenerate.
12279 * config/gcn/gcn-hsa.h (X_FIJI): 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.
12314 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
12316 * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
12317 i.e. a double word negation of a zero extended operand, to
12320 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
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.
12330 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
12332 * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
12333 to strncmp for strings of length one.
12335 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
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
12341 (RISCV_ATYPE_SI): New.
12342 (RISCV_ATYPE_DI): New.
12343 * config/riscv/riscv-ftypes.def (0): 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.
12350 (riscv_prefetchi_<mode>): New.
12351 * config/riscv/riscv-cmo.def: New file.
12353 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
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.
12364 2022-05-24 David Malcolm <dmalcolm@redhat.com>
12366 * tree-vect-slp-patterns.cc: Add "final" and "override" to
12367 vect_pattern::build impls as appropriate.
12369 2022-05-24 David Malcolm <dmalcolm@redhat.com>
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.
12384 2022-05-24 Martin Liska <mliska@suse.cz>
12387 2022-05-24 Martin Liska <mliska@suse.cz>
12389 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
12392 2022-05-24 Martin Liska <mliska@suse.cz>
12394 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
12397 2022-05-24 Bruno Haible <bruno@clisp.org>
12400 * doc/install.texi (Configuration): Add more details about --with-zstd.
12401 Document --with-zstd-include and --with-zstd-lib
12403 2022-05-24 Richard Biener <rguenther@suse.de>
12405 PR middle-end/105711
12406 * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
12408 (extract_bit_field_1): Pass down the mode of op0 to
12409 extract_bit_field_as_subreg.
12411 2022-05-24 Vineet Gupta <vineetg@rivosinc.com>
12413 * config/riscv/riscv.cc: (struct riscv_tune_param): Add
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.
12421 2022-05-24 Jakub Jelinek <jakub@redhat.com>
12424 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
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.
12432 2022-05-24 Richard Biener <rguenther@suse.de>
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.
12438 2022-05-24 Richard Biener <rguenther@suse.de>
12440 PR tree-optimization/105629
12441 * tree-ssa-phiopt.cc (spaceship_replacement): Allow
12442 a sign-extending conversion.
12444 2022-05-24 Kewen Lin <linkw@linux.ibm.com>
12447 * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
12449 (union_uses): Skip debug use_insn.
12451 2022-05-23 Vineet Gupta <vineetg@rivosinc.com>
12453 * config/riscv/predicates.md (const_0_operand): Remove
12455 * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
12457 * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
12459 2022-05-23 Mayshao <mayshao-oc@zhaoxin.com>
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
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
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.
12521 2022-05-23 Martin Liska <mliska@suse.cz>
12523 * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
12525 2022-05-23 Richard Biener <rguenther@suse.de>
12527 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
12528 (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
12530 2022-05-23 Richard Biener <rguenther@suse.de>
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.
12541 2022-05-23 Richard Biener <rguenther@suse.de>
12543 * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
12544 * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
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):
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
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.
12571 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
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.
12582 2022-05-23 Roger Sayle <roger@nextmovesoftware.com>
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.
12591 2022-05-23 Tsukasa OI <research_trasio@irq.a4lg.com>
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.
12597 2022-05-23 liuhongt <hongtao.liu@intel.com>
12599 * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
12600 <-> mask cost from 5 to 6.
12601 (icelake_cost): Ditto.
12603 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
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.
12626 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
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.
12640 2022-05-20 David Malcolm <dmalcolm@redhat.com>
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.
12670 2022-05-20 Marcel Vollweiler <marcel@codesourcery.com>
12672 * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
12673 target_memcpy_rect_async to omp_runtime_apis array.
12675 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
12677 * doc/sourcebuild.texi (Decimal floating point attributes): Document
12678 dfp_bid effective-target.
12680 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
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
12703 (movdf_aarch64): Use DFD iterator and rename into
12705 (movtf_aarch64): Use TFD iterator and rename into
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.
12714 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
12716 * configure: Regenerate.
12718 2022-05-19 Roger Sayle <roger@nextmovesoftware.com>
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.
12725 2022-05-19 Will Schmidt <will_schmidt@vnet.ibm.com>
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.
12741 2022-05-19 Richard Biener <rguenther@suse.de>
12743 * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
12744 computation of the new value.
12746 2022-05-19 Richard Biener <rguenther@suse.de>
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.
12753 2022-05-19 David Malcolm <dmalcolm@redhat.com>
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.
12760 2022-05-19 Jakub Jelinek <jakub@redhat.com>
12763 * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
12764 global vars without symtab node even when they have DECL_RTL
12767 2022-05-19 Jakub Jelinek <jakub@redhat.com>
12770 * pointer-query.cc (gimple_parm_array_size): Return NULL if var
12771 doesn't have pointer or reference type.
12773 2022-05-18 Marek Polacek <polacek@redhat.com>
12776 * doc/invoke.texi: Document -Wenum-int-mismatch.
12778 2022-05-18 Uros Bizjak <ubizjak@gmail.com>
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.
12784 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
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.
12790 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
12792 * config/i386/i386.md (define_split): Split *andsi_1
12793 and *andn_si_ccno after reload with -Oz.
12795 2022-05-18 Frederik Harwath <frederik@codesourcery.com>
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.
12806 2022-05-18 liuhongt <hongtao.liu@intel.com>
12808 PR middle-end/103462
12809 * match.pd (bitwise_induction_p): New match.
12810 * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
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
12817 2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org>
12820 * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
12822 2022-05-18 liuhongt <hongtao.liu@intel.com>
12825 * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
12828 2022-05-18 liuhongt <hongtao.liu@intel.com>
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.
12835 2022-05-18 Peter Bergner <bergner@linux.ibm.com>
12836 Segher Boessenkool <segher@kernel.crashing.org>
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.
12845 2022-05-17 Marek Polacek <polacek@redhat.com>
12847 * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
12849 2022-05-17 Pat Haugen <pthaugen@linux.ibm.com>
12852 * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
12853 register count when not splitting IEEE 128-bit Complex.
12855 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
12857 * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
12858 target inside target if inner is reverse offload.
12860 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
12862 * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
12863 * config/nvptx/mkoffload.cc (process): Likewise.
12865 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
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.
12899 2022-05-17 Giuliano Belinassi <gbelinassi@suse.de>
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.
12907 2022-05-17 Richard Biener <rguenther@suse.de>
12909 * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
12910 not clear bb->aux of the copied blocks.
12912 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
12914 PR tree-optimization/105458
12915 * value-relation.cc (path_oracle::register_relation): Merge, then check
12918 2022-05-17 Uroš Bizjak <ubizjak@gmail.com>
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.
12942 2022-05-17 Thomas Schwinge <thomas@codesourcery.com>
12944 * diagnostic.cc: Don't advise to call 'abort' instead of
12946 * system.h: Advise to call 'internal_error' instead of 'abort' or
12949 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
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
12956 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
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.
12962 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
12965 * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
12966 * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
12968 2022-05-17 Jakub Jelinek <jakub@redhat.com>
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.
12977 2022-05-17 Jakub Jelinek <jakub@redhat.com>
12980 * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
12981 andv4si3 only for EQ, for NE use iorv4si3 instead.
12983 2022-05-17 Richard Biener <rguenther@suse.de>
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.
12989 2022-05-17 Jakub Jelinek <jakub@redhat.com>
12991 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
12992 hanlde -> handle. Fix up comment formatting.
12994 2022-05-17 liuhongt <hongtao.liu@intel.com>
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.
13002 2022-05-17 liuhongt <hongtao.liu@intel.com>
13004 PR tree-optimization/105591
13005 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
13006 vec_perm_expr index.
13008 2022-05-16 Jason Merrill <jason@redhat.com>
13011 * attribs.cc (decl_attributes): Fix broken typedefs here.
13013 2022-05-16 David Malcolm <dmalcolm@redhat.com>
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.
13021 2022-05-16 Richard Biener <rguenther@suse.de>
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
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.
13041 2022-05-16 Richard Biener <rguenther@suse.de>
13043 * gimple-match.h (code_helper): Move class ...
13044 * tree.h (code_helper): ... here.
13046 2022-05-16 Martin Liska <mliska@suse.cz>
13048 * opts-global.cc (write_langs): Add comment.
13050 2022-05-16 Eric Botcazou <ebotcazou@adacore.com>
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.
13056 2022-05-16 Martin Liska <mliska@suse.cz>
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.
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.
13101 2022-05-16 Martin Liska <mliska@suse.cz>
13103 * opts-global.cc (write_langs): Allocate at least one byte.
13105 2022-05-16 Richard Biener <rguenther@suse.de>
13107 * match.pd (A cmp B ? A : B -> min/max): New patterns
13108 carried over from fold_cond_expr_with_comparison.
13110 2022-05-16 liuhongt <hongtao.liu@intel.com>
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.
13117 2022-05-15 Uroš Bizjak <ubizjak@gmail.com>
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.
13139 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
13140 Uroš Bizjak <ubizjak@gmail.com>
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.
13149 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
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.
13157 2022-05-13 Philipp Tomsich <philipp.tomsich@vrull.eu>
13158 Manolis Tsamis <manolis.tsamis@vrull.eu>
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
13165 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
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.
13171 2022-05-13 Sebastian Pop <spop@amazon.com>
13174 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
13176 * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
13177 memmodel_from_int and handle MEMMODEL_SYNC_*.
13178 (DEF0): Add __aarch64_*_sync functions.
13180 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13182 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
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
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.
13222 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
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.
13230 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
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.
13237 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13239 * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
13240 had_global value instead.
13242 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
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.
13253 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
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.
13261 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13263 * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
13265 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
13267 * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
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
13281 2022-05-13 Alexandre Oliva <oliva@adacore.com>
13283 * gimple-harden-conditionals.cc: Include sbitmap.h.
13284 (pass_harden_conditional_branches::execute): Skip new blocks.
13285 (pass_harden_compares::execute): Likewise.
13287 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
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
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.
13299 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
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.
13304 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13306 * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
13309 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13311 * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
13312 extzvsi_internal): Rename from extv, extv_internal, extzv and
13313 extzv_internal, respectively.
13315 2022-05-13 Eric Botcazou <ebotcazou@adacore.com>
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
13321 2022-05-13 Richard Biener <rguenther@suse.de>
13323 * gimple-fold.cc (gimple_build): Adjust for new
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
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.
13384 2022-05-13 Alexandre Oliva <oliva@adacore.com>
13386 PR rtl-optimization/105455
13387 * gimple-harden-conditionals.cc (insert_check_and_trap): Set
13388 probabilities for newly-conditional edges.
13390 2022-05-13 liuhongt <hongtao.liu@intel.com>
13392 PR tree-optimization/102583
13393 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
13394 contiguous stride in the VEC_PERM_EXPR.
13396 2022-05-12 Richard Biener <rguenther@suse.de>
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.
13402 2022-05-12 Richard Biener <rguenther@suse.de>
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.
13415 2022-05-12 Haochen Jiang <haochen.jiang@intel.com>
13418 * config/i386/sse.md (vi1avx2const): New define_mode_attr.
13419 (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
13420 New define_split pattern.
13422 2022-05-12 Jakub Jelinek <jakub@redhat.com>
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
13430 2022-05-11 Patrick Palka <ppalka@redhat.com>
13432 * tree.h (TREE_VEC_BEGIN): Define.
13433 (TREE_VEC_END): Correct 'length' member access.
13434 (class tree_vec_range): Define.
13436 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
13438 * config/rs6000/rs6000.md: Use wa instead of <Fv>.
13440 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
13442 * config/rs6000/rs6000.md: Use d instead of <Ff>.
13444 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
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.
13454 2022-05-11 Richard Biener <rguenther@suse.de>
13456 * gimple-fold.h (gimple_build): Use variadic template
13457 functions for the gimple_build API forwarders without
13458 location_t argument.
13460 2022-05-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
13462 PR middle-end/70090
13463 * asan.cc (initialize_sanitizer_builtins): Register
13464 __builtin_dynamic_object_size if necessary.
13466 2022-05-11 Richard Biener <rguenther@suse.de>
13468 PR rtl-optimization/105559
13469 * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
13470 for non-debug insns.
13472 2022-05-11 Richard Biener <rguenther@suse.de>
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.
13479 2022-05-11 Thomas Schwinge <thomas@codesourcery.com>
13481 * doc/install.texi: Don't document '--with-hsa-runtime',
13482 '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
13484 2022-05-11 Martin Liska <mliska@suse.cz>
13487 * doc/install.texi: Document the configure option --with-zstd.
13489 2022-05-11 Martin Liska <mliska@suse.cz>
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.
13497 2022-05-11 Richard Biener <rguenther@suse.de>
13499 PR bootstrap/105551
13500 * opts.cc (finish_options): Also disable var-tracking if
13501 !DWARF2_DEBUGGING_INFO.
13503 2022-05-11 liuhongt <hongtao.liu@intel.com>
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.
13515 2022-05-11 Kewen Lin <linkw@linux.ibm.com>
13517 * config/rs6000/constraints.md (register constraint v): Use
13518 rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
13520 2022-05-11 Martin Liska <mliska@suse.cz>
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.
13529 2022-05-11 Haochen Gui <guihaoc@gcc.gnu.org>
13532 * match.pd (minmax): Skip constant folding for fmin/fmax when both
13533 arguments are sNaN or one is sNaN and another is NaN.
13535 2022-05-10 Jakub Jelinek <jakub@redhat.com>
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.
13541 2022-05-10 Segher Boessenkool <segher@kernel.crashing.org>
13543 * doc/md.texi (Defining Mode Iterators): Correct example replacement
13546 2022-05-10 Maciej W. Rozycki <macro@embecosm.com>
13548 * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
13550 (fmin<mode>3, fmax<mode>3): New insns.
13552 2022-05-10 Richard Biener <rguenther@suse.de>
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.
13559 2022-05-10 Thomas Schwinge <thomas@codesourcery.com>
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'.
13566 2022-05-10 Richard Biener <rguenther@suse.de>
13568 PR middle-end/105537
13569 * toplev.cc (process_options): Move flag_var_tracking
13571 * opts.cc (finish_options): ... here.
13573 2022-05-10 Martin Liska <mliska@suse.cz>
13575 * basic-block.h (struct basic_block_d): Use void *
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.
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.
13589 2022-05-10 Richard Biener <rguenther@suse.de>
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.
13597 2022-05-10 Uroš Bizjak <ubizjak@gmail.com>
13598 Roger Sayle <roger@nextmovesoftware.com>
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.
13606 2022-05-10 Roger Sayle <roger@nextmovesoftware.com>
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,
13612 2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
13615 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
13616 true only for 8-byte vector modes.
13618 2022-05-10 Siddhesh Poyarekar <siddhesh@gotplt.org>
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.
13624 2022-05-10 Jiufu Guo <guojiufu@linux.ibm.com>
13626 PR preprocessor/101168
13627 * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
13628 Avoid empty identifier.
13630 2022-05-09 Qing Zhao <qing.zhao@oracle.com>
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.
13639 2022-05-09 liuhongt <hongtao.liu@intel.com>
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.
13648 2022-05-09 Martin Liška <mliska@suse.cz>
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.
13654 2022-05-09 Richard Biener <rguenther@suse.de>
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.
13662 2022-05-09 Richard Biener <rguenther@suse.de>
13664 * match.pd: Remove #if GIMPLE guards around ! using patterns.
13666 2022-05-09 liuhongt <hongtao.liu@intel.com>
13669 * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
13671 (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
13672 define_insn_and_split.
13674 2022-05-09 Alex Coplan <alex.coplan@arm.com>
13676 * cgraph.cc (cgraph_node::get_create): Don't dump if the current
13677 symtab state is PARSING.
13679 2022-05-09 Martin Liska <mliska@suse.cz>
13681 * system.h (LIKELY): Define.
13682 (UNLIKELY): Likewise.
13683 * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
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.
13715 2022-05-09 Kito Cheng <kito.cheng@sifive.com>
13717 * config/riscv/arch-canonicalize: Handle g correctly.
13719 2022-05-07 Marek Polacek <polacek@redhat.com>
13723 * tree-core.h (struct attribute_spec): Update comment for HANDLER.
13725 2022-05-06 Jason Merrill <jason@redhat.com>
13727 * diagnostic-color.cc: Add fnname and targs color entries.
13728 * doc/invoke.texi: Document them.
13730 2022-05-06 Jason Merrill <jason@redhat.com>
13732 * vec.h (vec::iterate): Fix comment.
13734 2022-05-06 Michael Meissner <meissner@linux.ibm.com>
13737 * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
13738 and -mpower10-fusion options for inlining purposes.
13740 2022-05-06 Christophe Lyon <christophe.lyon@arm.com>
13742 * config/aarch64/iterators.md (GPF_TF_F16): Delete.
13744 2022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
13746 * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
13747 omp_runtime_apis array.
13749 2022-05-06 Hafiz Abid Qadeer <abidh@codesourcery.com>
13751 * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
13752 (scan_sharing_clauses): Check a restriction on allocate clause.
13754 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
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.
13760 2022-05-05 Martin Liska <mliska@suse.cz>
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):
13768 2022-05-05 Martin Liska <mliska@suse.cz>
13770 * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
13772 (gimple_gen_time_profiler): Likewise.
13774 2022-05-05 Martin Liska <mliska@suse.cz>
13776 * value-prof.cc (stream_out_histogram_value): Remove sanity
13779 2022-05-05 Richard Biener <rguenther@suse.de>
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
13785 (vn_reference_insert): Likewise.
13787 2022-05-05 Richard Biener <rguenther@suse.de>
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):
13797 2022-05-05 Richard Biener <rguenther@suse.de>
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.
13804 2022-05-05 Richard Biener <rguenther@suse.de>
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.
13811 2022-05-05 Richard Biener <rguenther@suse.de>
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.
13817 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
13819 * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
13820 item that is in an outer data-sharing clause.
13822 2022-05-04 Richard Biener <rguenther@suse.de>
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
13830 * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
13831 not allow VECTOR_BOOLEAN_TYPE_P extern defs.
13833 2022-05-04 Richard Biener <rguenther@suse.de>
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.
13839 2022-05-04 Martin Liska <mliska@suse.cz>
13841 * gengtype-state.cc (read_a_state_token): Remove dead code.
13842 * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
13844 2022-05-04 Richard Biener <rguenther@suse.de>
13846 * gimplify.cc (gimplify_init_constructor): First gimplify,
13847 then simplify the result to a VECTOR_CST.
13849 2022-05-04 Jakub Jelinek <jakub@redhat.com>
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).
13856 2022-05-04 Christophe Lyon <christophe.lyon@arm.com>
13859 * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
13860 vector of booleans and MVE is not enabled.
13862 2022-05-04 Richard Biener <rguenther@suse.de>
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.
13871 2022-05-03 Roger Sayle <roger@nextmovesoftware.com>
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.
13881 2022-05-03 Iain Sandoe <iain@sandoe.co.uk>
13883 * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
13884 protocol class methods linker-visible.
13886 2022-05-03 Uroš Bizjak <ubizjak@gmail.com>
13889 * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
13890 define_insn_and_split pattern.
13892 2022-05-03 Richard Biener <rguenther@suse.de>
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.
13900 2022-05-03 Richard Biener <rguenther@suse.de>
13902 PR middle-end/105461
13903 * opts.cc (finish_options): Match the condition to
13904 disable flag_var_tracking to that of process_options.
13906 2022-05-03 Richard Biener <rguenther@suse.de>
13908 * opts.cc: #undef OPTIONS_SET_P.
13909 (finish_options): Use opts_set instead of OPTIONS_SET_P.
13911 2022-05-03 Richard Biener <rguenther@suse.de>
13913 PR tree-optimization/105394
13914 * tree-vect-generic.cc (expand_vector_condition): Adjust
13915 comp_width for non-integer mode masks as well.
13917 2022-05-03 Marcel Vollweiler <marcel@codesourcery.com>
13919 * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
13920 omp_runtime_apis array.
13922 2022-05-02 Richard Biener <rguenther@suse.de>
13924 * tree-scalar-evolution.cc (expression_expensive_p):
13925 Never consider mismatched calls as cheap.
13927 2022-05-02 Richard Biener <rguenther@suse.de>
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
13935 2022-05-02 Jakub Jelinek <jakub@redhat.com>
13938 * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
13939 if there is no symtab node for the VAR_DECL.
13941 2022-05-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
13943 * gcov-io.cc (gcov_rewrite): Clear the file error status.
13945 2022-05-02 Richard Biener <rguenther@suse.de>
13947 PR tree-optimization/105437
13948 * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
13949 case where last_stmt alters control flow.
13951 2022-05-02 Richard Biener <rguenther@suse.de>
13953 * dojump.cc (do_jump): Use CASE_CONVERT.
13954 * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
13956 2022-05-02 Jakub Jelinek <jakub@redhat.com>
13958 * system.h: Include initializer_list.
13960 2022-05-01 Segher Boessenkool <segher@kernel.crashing.org>
13962 * config/rs6000/constraints.md (Y constraint): Fix comment.
13964 2022-05-01 Aldy Hernandez <aldyh@redhat.com>
13966 * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
13967 VR_RANGE before passing a piecewise range to set_range_info_raw.
13969 2022-04-30 Patrick Palka <ppalka@redhat.com>
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.
13976 2022-04-29 Martin Jambor <mjambor@suse.cz>
13979 * cgraph.cc (cgraph_node::remove): Release body of the node this
13980 is clone_of if appropriate.
13982 2022-04-29 Uroš Bizjak <ubizjak@gmail.com>
13985 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
13987 2022-04-29 Richard Biener <rguenther@suse.de>
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.
14004 2022-04-29 Richard Biener <rguenther@suse.de>
14006 * gimple-iterator.h (gsi_after_labels): Add overload for
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.
14014 2022-04-29 Richard Biener <rguenther@suse.de>
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
14022 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
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.
14058 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
14060 * gimple-fold.cc (size_must_be_zero_p): Use reference
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
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.
14091 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
14093 * gimple-ssa-evrp-analyze.cc
14094 (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
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
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.
14118 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
14120 * value-range.h (irange::irange): Use set_undefined.
14122 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
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
14131 2022-04-29 Richard Biener <rguenther@suse.de>
14133 PR tree-optimization/104322
14134 * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
14136 2022-04-29 Richard Biener <rguenther@suse.de>
14138 PR middle-end/105376
14139 * tree.cc (build_real): Special case dconst* arguments
14140 for decimal floating point types.
14142 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14144 * doc/gcov.texi (Profiling and Test Coverage in Freestanding
14145 Environments): New section.
14147 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
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.
14159 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
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.
14171 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14173 * gcov-io.cc (GCOV_MODE_STDIN): Define.
14174 (gcov_position): For gcov-tool, return calculated position if file is
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.
14181 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
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.
14188 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14190 * gcov-io.cc (gcov_seek): Make it static.
14191 * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
14193 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14195 * gcov-tool.cc (gcov_do_dump): Add mode parameter.
14196 (gcov_output_files): Open files for reading and writing.
14198 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14200 * gcov-io.cc (gcov_open): Always use the mode parameter.
14201 * gcov-io.h (gcov_open): Declare it unconditionally.
14203 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
14205 * gcov-tool.cc (gcov_profile_merge): Adjust return type.
14206 (profile_merge): Allow merging of directories which contain no profile
14209 2022-04-28 David Malcolm <dmalcolm@redhat.com>
14211 * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
14214 2022-04-28 Jakub Jelinek <jakub@redhat.com>
14216 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
14217 temporary only if out overlaps compare_op, not when it overlaps
14220 2022-04-28 Jakub Jelinek <jakub@redhat.com>
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.
14227 2022-04-28 Jakub Jelinek <jakub@redhat.com>
14230 * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
14231 temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
14234 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
14236 * doc/install.texi (Configuration): Remove misleading text
14237 around LE PowerPC Linux multilibs.
14239 2022-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
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.
14247 2022-04-28 Richard Biener <rguenther@suse.de>
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.
14254 2022-04-28 Xi Ruoyao <xry111@mengyan1223.wang>
14256 * config/loongarch/loongarch.cc
14257 (loongarch_flatten_aggregate_field): Ignore empty fields for
14260 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
14262 * config/loongarch/loongarch.md: Add fdiv define_expand template,
14263 then generate floating-point division and floating-point reciprocal
14266 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
14268 * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
14269 to PLV instruction templates.
14271 2022-04-27 Richard Biener <rguenther@suse.de>
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.
14280 2022-04-27 Andreas Krebbel <krebbel@linux.ibm.com>
14283 * config/s390/s390-protos.h (s390_function_arg_vector): Remove
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.
14289 2022-04-27 Jakub Jelinek <jakub@redhat.com>
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.
14298 2022-04-27 Kewen Lin <linkw@linux.ibm.com>
14301 * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
14304 2022-04-26 Thomas Schwinge <thomas@codesourcery.com>
14306 * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
14307 data-share memory exhausted" error more verbose.
14309 2022-04-26 Martin Liska <mliska@suse.cz>
14312 * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
14313 (run_gcc): Parse OPT_fdiagnostics_urls_.
14314 (main): Initialize global_dc.
14316 2022-04-26 Jakub Jelinek <jakub@redhat.com>
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.
14323 2022-04-26 Jakub Jelinek <jakub@redhat.com>
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.
14329 2022-04-26 Jakub Jelinek <jakub@redhat.com>
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.
14336 2022-04-25 David Malcolm <dmalcolm@redhat.com>
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.
14343 2022-04-25 Paul A. Clarke <pc@us.ibm.com>
14345 * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
14347 2022-04-25 Andrew MacLeod <amacleod@redhat.com>
14349 PR tree-optimization/105276
14350 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
14351 existing global range with calculated value.
14353 2022-04-25 Richard Biener <rguenther@suse.de>
14355 PR tree-optimization/105368
14356 * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
14358 2022-04-25 Richard Biener <rguenther@suse.de>
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.
14368 2022-04-25 Steven G. Kargl <kargl@gcc.gnu.org>
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.
14377 2022-04-25 Richard Biener <rguenther@suse.de>
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.
14388 2022-04-25 Hongyu Wang <hongyu.wang@intel.com>
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.
14405 2022-04-23 Jakub Jelinek <jakub@redhat.com>
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
14412 2022-04-22 Segher Boessenkool <segher@kernel.crashing.org>
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.
14420 2022-04-22 Paul A. Clarke <pc@us.ibm.com>
14422 * doc/extend.texi: Correct "This" to "These".
14424 2022-04-22 Jakub Jelinek <jakub@redhat.com>
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
14431 2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
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.
14443 2022-04-21 Martin Liska <mliska@suse.cz>
14445 * configure.ac: Enable compressed debug sections for mold
14447 * configure: Regenerate.
14449 2022-04-21 Jakub Jelinek <jakub@redhat.com>
14452 * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
14455 2022-04-20 Richard Biener <rguenther@suse.de>
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.
14462 2022-04-20 Richard Biener <rguenther@suse.de>
14464 PR tree-optimization/105312
14465 * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
14466 VCOND and VCONDU for EQ and NE.
14468 2022-04-20 Jan Hubicka <hubicka@ucw.cz>
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.
14475 2022-04-20 Jakub Jelinek <jakub@redhat.com>
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.
14483 2022-04-19 Sergei Trofimovich <siarheit@google.com>
14485 PR gcov-profile/105282
14486 * value-prof.cc (stream_out_histogram_value): Allow negative counts
14487 on HIST_TYPE_INDIR_CALL.
14489 2022-04-19 Jakub Jelinek <jakub@redhat.com>
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 */.
14496 2022-04-19 Richard Biener <rguenther@suse.de>
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.
14505 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
14507 * doc/install.texi <CRIS>: Remove references to removed websites and
14508 adjust for cris-*-elf being the only remaining toolchain.
14510 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
14512 * doc/invoke.texi <CRIS>: Remove references to options for removed
14513 subtarget cris-axis-linux-gnu and tweak wording accordingly.
14515 2022-04-16 Gerald Pfeifer <gerald@pfeifer.com>
14517 * doc/install.texi (Specific): Adjust mingw-w64 download link.
14519 2022-04-15 Hongyu Wang <hongyu.wang@intel.com>
14521 * config/i386/smmintrin.h: Correct target pragma from sse4.1
14522 and sse4.2 to crc32 for crc32 intrinsics.
14524 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
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
14538 (ctf_preprocess): Defer updating the number of global objts
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.
14546 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
14548 * ctfc.h (struct ctf_container): Introduce a new member.
14549 * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
14552 2022-04-14 Jakub Jelinek <jakub@redhat.com>
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.
14559 2022-04-14 Robin Dapp <rdapp@linux.ibm.com>
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):
14568 (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
14570 * config/s390/3931.md: New file.
14572 2022-04-13 Richard Sandiford <richard.sandiford@arm.com>
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.
14581 2022-04-13 Richard Biener <rguenther@suse.de>
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.
14587 2022-04-13 Jakub Jelinek <jakub@redhat.com>
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.
14594 2022-04-13 Hongyu Wang <hongyu.wang@intel.com>
14597 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
14598 Add missing set to target_val at pause label.
14600 2022-04-13 Jakub Jelinek <jakub@redhat.com>
14603 * attribs.cc (decl_attributes): Don't set
14604 DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
14607 2022-04-13 Richard Biener <rguenther@suse.de>
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.
14614 2022-04-13 Richard Biener <rguenther@suse.de>
14617 2022-04-13 Richard Biener <rguenther@suse.de>
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.
14624 2022-04-13 Richard Biener <rguenther@suse.de>
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.
14631 2022-04-13 Jakub Jelinek <jakub@redhat.com>
14633 * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
14635 2022-04-12 Antoni Boucher <bouanto@zoho.com>
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.
14645 2022-04-12 Antoni Boucher <bouanto@zoho.com>
14648 * toplev.cc: Call the new function tree_cc_finalize in
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).
14658 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
14661 * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
14662 * config/nvptx/nvptx.opt (misa): Adjust comment.
14664 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
14667 2022-03-03 Tom de Vries <tdevries@suse.de>
14669 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
14671 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
14674 2022-03-31 Tom de Vries <tdevries@suse.de>
14676 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
14678 2022-04-12 Richard Biener <rguenther@suse.de>
14681 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
14682 include local escaped memory as obviously necessary stores.
14684 2022-04-12 Richard Biener <rguenther@suse.de>
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.
14691 2022-04-12 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
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.
14702 2022-04-12 Richard Biener <rguenther@suse.de>
14704 PR tree-optimization/105232
14705 * tree.cc (component_ref_size): Bail out for too large
14706 or non-constant sizes.
14708 2022-04-12 Richard Biener <rguenther@suse.de>
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.
14714 2022-04-12 Jakub Jelinek <jakub@redhat.com>
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):
14722 * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
14724 2022-04-12 Jakub Jelinek <jakub@redhat.com>
14727 * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
14728 do_pending_stack_adjust.
14730 2022-04-12 Jakub Jelinek <jakub@redhat.com>
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.
14738 2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
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
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.
14764 2022-04-12 chenglulu <chenglulu@loongson.cn>
14766 * config/loongarch/loongarch.cc: Fix bug for
14767 tmpdir-g++.dg-struct-layout-1/t033.
14769 2022-04-11 Peter Bergner <bergner@linux.ibm.com>
14772 * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
14773 to longcall functions.
14775 2022-04-11 Jason Merrill <jason@redhat.com>
14777 * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
14779 2022-04-11 Segher Boessenkool <segher@kernel.crashing.org>
14783 * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
14785 2022-04-11 Jakub Jelinek <jakub@redhat.com>
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.
14792 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
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.
14803 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
14805 * config/riscv/arch-canonicalize: Add TODO item.
14806 (IMPLIED_EXT): Sync.
14807 (arch_canonicalize): Checking until no change.
14809 2022-04-11 Tamar Christina <tamar.christina@arm.com>
14812 * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
14815 2022-04-11 Jason Merrill <jason@redhat.com>
14818 * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
14821 2022-04-11 Jakub Jelinek <jakub@redhat.com>
14823 PR tree-optimization/104639
14824 * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
14825 (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
14828 2022-04-11 Jeff Law <jeffreyalaw@gmail.com>
14830 * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
14831 sign bit of the source ends up in CC.
14833 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
14836 * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
14839 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
14841 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
14842 nondeterministic and side_effects flags.
14844 2022-04-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
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.
14855 2022-04-08 Richard Biener <rguenther@suse.de>
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.
14862 2022-04-08 Jakub Jelinek <jakub@redhat.com>
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
14869 2022-04-08 Richard Biener <rguenther@suse.de>
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.
14882 2022-04-07 Tamar Christina <tamar.christina@arm.com>
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
14889 * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
14890 * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
14892 2022-04-07 Richard Biener <rguenther@suse.de>
14893 Jan Hubicka <hubicka@ucw.cz>
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
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):
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.
14921 2022-04-07 Richard Biener <rguenther@suse.de>
14923 PR tree-optimization/105185
14924 * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
14925 modref query again.
14927 2022-04-07 Tamar Christina <tamar.christina@arm.com>
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.
14937 2022-04-07 Jakub Jelinek <jakub@redhat.com>
14939 PR tree-optimization/102586
14940 * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
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.
14949 2022-04-07 Jakub Jelinek <jakub@redhat.com>
14951 PR tree-optimization/105150
14952 * tree.cc (tree_builtin_call_types_compatible_p): New function.
14953 (get_call_combined_fn): Use it.
14955 2022-04-07 Richard Biener <rguenther@suse.de>
14957 PR middle-end/105165
14958 * tree-complex.cc (expand_complex_asm): Sorry for asm goto
14961 2022-04-07 liuhongt <hongtao.liu@intel.com>
14963 * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
14965 (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
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
14974 2022-04-06 Jakub Jelinek <jakub@redhat.com>
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.
14990 2022-04-06 Jakub Jelinek <jakub@redhat.com>
14993 * config/sh/sh.opt (mdiv=): Add Save.
14995 2022-04-06 Martin Liska <mliska@suse.cz>
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
15003 2022-04-06 Xi Ruoyao <xry111@mengyan1223.wang>
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
15011 2022-04-06 Jakub Jelinek <jakub@redhat.com>
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
15019 2022-04-06 Richard Biener <rguenther@suse.de>
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.
15027 2022-04-06 Richard Biener <rguenther@suse.de>
15030 * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
15031 out for non-pointer arguments.
15033 2022-04-06 Richard Biener <rguenther@suse.de>
15035 PR tree-optimization/105163
15036 * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
15039 2022-04-06 Jakub Jelinek <jakub@redhat.com>
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.
15048 2022-04-06 Richard Sandiford <richard.sandiford@arm.com>
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.
15057 2022-04-06 Martin Liska <mliska@suse.cz>
15059 * doc/invoke.texi: Document it.
15061 2022-04-06 Richard Biener <rguenther@suse.de>
15063 PR tree-optimization/105148
15064 * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
15065 2 and 3 of ARRAY_REFs.
15067 2022-04-06 Roger Sayle <roger@nextmovesoftware.com>
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.
15073 2022-04-06 Richard Biener <rguenther@suse.de>
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.
15089 2022-04-06 Kewen Lin <linkw@linux.ibm.com>
15092 * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
15093 comparison codes UNLT/UNLE/UNGT/UNGE.
15095 2022-04-05 David Malcolm <dmalcolm@redhat.com>
15097 * doc/extend.texi (Common Function Attributes): Document that
15098 'access' does not imply 'nonnull'.
15100 2022-04-05 Uroš Bizjak <ubizjak@gmail.com>
15103 * config/i386/mmx.md (*movv2qi_internal):
15104 Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
15106 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
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.
15120 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
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):
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.
15141 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
15144 * config/aarch64/aarch64-sve-builtins.cc
15145 (function_resolver::infer_vector_or_tuple_type): Use error_n
15146 for "%d vectors" messages.
15148 2022-04-05 Chung-Lin Tang <cltang@codesourcery.com>
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
15154 2022-04-05 Richard Biener <rguenther@suse.de>
15157 * passes.def (pass_walloca): Move early instance into
15158 pass_build_ssa_passes to make SSA form available.
15160 2022-04-05 liuhongt <hongtao.liu@intel.com>
15163 * config/i386/i386.cc (ix86_split_stlf_stall_load): New
15165 (ix86_reorg): Call ix86_split_stlf_stall_load.
15166 * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
15169 2022-04-05 Alexandre Oliva <oliva@adacore.com>
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.
15178 2022-04-04 Alex Coplan <alex.coplan@arm.com>
15180 * doc/match-and-simplify.texi: Fix typos.
15182 2022-04-04 Jakub Jelinek <jakub@redhat.com>
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.
15190 2022-04-04 Jakub Jelinek <jakub@redhat.com>
15193 * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
15194 * config/aarch64/aarch64-tune.md: Regenerated.
15196 2022-04-04 Richard Biener <rguenther@suse.de>
15198 PR tree-optimization/105132
15199 * tree-vect-stmts.cc (vectorizable_operation): Check that
15200 the input vectors have the same number of elements.
15202 2022-04-04 Richard Biener <rguenther@suse.de>
15204 PR middle-end/105140
15205 * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
15207 2022-04-03 Jeff Law <jeffreyalaw@gmail.com>
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.
15215 2022-04-03 Jakub Jelinek <jakub@redhat.com>
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
15222 2022-04-02 Xi Ruoyao <xry111@mengyan1223.wang>
15224 * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
15225 NULL before dereferencing it.
15227 2022-04-01 Qing Zhao <qing.zhao@oracle.com>
15229 * config/i386/i386.cc (zero_all_st_registers): Return the value of
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.
15237 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
15240 * config/mips/mips.cc (mips_function_arg): Ignore zero-width
15241 fields, and inform if it causes a psABI change.
15243 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
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.
15252 2022-04-01 Jakub Jelinek <jakub@redhat.com>
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.
15259 2022-04-01 YunQiang Su <yunqiang.su@cipunited.com>
15261 * config/mips/mips.cc (mips_expand_prologue):
15262 IPL is 8bit for MCU ASE.
15264 2022-03-31 Bill Schmidt <wschmidt@linux.ibm.com>
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.
15273 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
15275 * doc/options.texi (Option file format): Clarifications around
15276 option definition records' help texts.
15278 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
15280 * optc-gen.awk <END>: Fix "Multiple different help strings" error
15283 2022-03-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
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.
15295 2022-03-31 Martin Jambor <mjambor@suse.cz>
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
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,
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
15321 (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
15324 2022-03-31 Martin Jambor <mjambor@suse.cz>
15327 * ipa-cp.cc (decide_whether_version_node): Skip scalar values
15328 which do not fit the known value_range.
15330 2022-03-31 Martin Jambor <mjambor@suse.cz>
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.
15337 2022-03-31 Richard Biener <rguenther@suse.de>
15339 PR tree-optimization/105109
15340 * tree-ssa.cc (execute_update_addresses_taken): Suppress
15341 diagnostics on the load of the other complex component.
15343 2022-03-31 Tom de Vries <tdevries@suse.de>
15345 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
15347 2022-03-31 Richard Biener <rguenther@suse.de>
15349 PR rtl-optimization/105091
15350 * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
15353 2022-03-31 Richard Biener <rguenther@suse.de>
15356 2021-09-13 Richard Earnshaw <rearnsha@arm.com>
15359 * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
15360 memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
15362 2022-03-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
15364 * gcov-io.cc (gcov_read_string): Reword documentation comment.
15366 2022-03-30 Bill Schmidt <wschmidt@linux.ibm.com>
15368 * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
15370 (NEG_V4SF): Likewise.
15371 (NEG_V4SI): Likewise.
15372 (NEG_V8HI): Likewise.
15373 (NEG_V2DF): Move to [vsx] stanza.
15374 (NEG_V2DI): Likewise.
15376 2022-03-30 Vladimir N. Makarov <vmakarov@redhat.com>
15378 PR middle-end/105032
15379 * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
15381 2022-03-30 Tom de Vries <tdevries@suse.de>
15382 Tobias Burnus <tobias@codesourcery.com>
15384 * doc/invoke.texi (march): Document __PTX_SM__.
15385 (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
15386 __PTX_ISA_VERSION_MINOR__.
15388 2022-03-30 Jakub Jelinek <jakub@redhat.com>
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.
15395 2022-03-30 Jakub Jelinek <jakub@redhat.com>
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.
15401 2022-03-30 Tom de Vries <tdevries@suse.de>
15403 * doc/invoke.texi (misa, mptx): Update.
15404 (march, march-map): Add.
15406 2022-03-30 Thomas Schwinge <thomas@codesourcery.com>
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.
15413 2022-03-29 Marek Polacek <polacek@redhat.com>
15414 Jakub Jelinek <jakub@redhat.com>
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.
15422 2022-03-29 Michael Meissner <meissner@linux.ibm.com>
15424 * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
15425 be any VSX register.
15427 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
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.
15435 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
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.
15443 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
15446 * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
15447 ARM_PCS_AAPCS_LOCAL.
15449 2022-03-29 Tom de Vries <tdevries@suse.de>
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.
15457 2022-03-29 Tom de Vries <tdevries@suse.de>
15459 * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
15462 2022-03-29 Tom de Vries <tdevries@suse.de>
15465 * config/nvptx/nvptx.opt (march-map=*): Add aliases.
15467 2022-03-29 Jan Hubicka <hubicka@ucw.cz>
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
15476 2022-03-29 Tom de Vries <tdevries@suse.de>
15478 * config/nvptx/nvptx.opt (march): Add alias of misa.
15480 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15481 Lulu Cheng <chenglulu@loongson.cn>
15483 * doc/install.texi: Add LoongArch options section.
15484 * doc/invoke.texi: Add LoongArch options section.
15485 * doc/md.texi: Add LoongArch options section.
15487 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15488 Lulu Cheng <chenglulu@loongson.cn>
15490 * config/loongarch/loongarch-c.cc
15492 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15493 Lulu Cheng <chenglulu@loongson.cn>
15495 * config/loongarch/larchintrin.h: New file.
15496 * config/loongarch/loongarch-builtins.cc: New file.
15498 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15499 Lulu Cheng <chenglulu@loongson.cn>
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.
15507 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15508 Lulu Cheng <chenglulu@loongson.cn>
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.
15519 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15520 Lulu Cheng <chenglulu@loongson.cn>
15522 * configure: Regenerate file.
15524 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
15525 Lulu Cheng <chenglulu@loongson.cn>
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.
15548 2022-03-29 Thomas Schwinge <thomas@codesourcery.com>
15550 * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
15553 2022-03-29 Richard Biener <rguenther@suse.de>
15555 PR tree-optimization/105080
15556 * tree-ssa-strlen.cc (printf_strlen_execute): Always init
15559 2022-03-28 Indu Bhagat <indu.bhagat@oracle.com>
15561 * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
15562 (output_ctf_vars): Likewise.
15564 2022-03-28 Jason Merrill <jason@redhat.com>
15567 * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
15569 2022-03-28 H.J. Lu <hjl.tools@gmail.com>
15572 * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
15575 2022-03-28 Tom de Vries <tdevries@suse.de>
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
15584 2022-03-28 David Malcolm <dmalcolm@redhat.com>
15587 * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
15588 to loads then stores, set the location of the new load stmt.
15590 2022-03-28 Richard Biener <rguenther@suse.de>
15592 PR tree-optimization/105070
15593 * tree-switch-conversion.h
15594 (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
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
15602 2022-03-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
15604 * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
15606 2022-03-28 liuhongt <hongtao.liu@intel.com>
15609 * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
15610 alternative 4 from sse4_noavx to noavx.
15612 2022-03-28 Jakub Jelinek <jakub@redhat.com>
15614 PR tree-optimization/105056
15615 * tree-predcom.cc (component::component): Initialize also comp_step.
15617 2022-03-27 H.J. Lu <hjl.tools@gmail.com>
15620 * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
15623 2022-03-26 Roger Sayle <roger@nextmovesoftware.com>
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.
15629 2022-03-26 Jakub Jelinek <jakub@redhat.com>
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
15636 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
15639 * config/i386/sse.md (loadiwkey): Replace "v" with "x".
15640 (aes<aesklvariant>u8): Likewise.
15642 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
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.
15650 2022-03-26 Hans-Peter Nilsson <hp@axis.com>
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.
15656 2022-03-25 Christophe Lyon <christohe.lyon@arm.com>
15660 2021-06-11 Christophe Lyon <christophe.lyon@linaro.org>
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.
15675 2022-03-25 Vladimir N. Makarov <vmakarov@redhat.com>
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.
15681 2022-03-25 Richard Biener <rguenther@suse.de>
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.
15687 2022-03-25 Richard Biener <rguenther@suse.de>
15689 PR middle-end/105049
15690 * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
15691 CONSTRUCTOR first elements.
15693 2022-03-25 Tobias Burnus <tobias@codesourcery.com>
15696 * doc/invoke.texi (Static Analyzer Options): Move
15697 @ignore block after @gccoptlist's '}' for 'make pdf'.
15699 2022-03-25 David Malcolm <dmalcolm@redhat.com>
15702 * doc/invoke.texi (Static Analyzer Options): Add
15703 -fdump-analyzer-untracked.
15705 2022-03-25 Avinash Sonawane <rootkea@gmail.com>
15708 * doc/invoke.texi: Document that enabling taint analyzer
15709 checker disables some warnings from `-fanalyzer`.
15711 2022-03-24 Alexandre Oliva <oliva@adacore.com>
15714 * gimple-harden-conditionals.cc (detach_value): Keep temps
15717 2022-03-24 Alexandre Oliva <oliva@adacore.com>
15719 PR middle-end/104975
15720 * gimple-harden-conditionals.cc
15721 (pass_harden_compares::execute): Force split in case of
15724 2022-03-24 Jakub Jelinek <jakub@redhat.com>
15727 * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
15728 field0 or field1 is not a FIELD_DECL, return false.
15730 2022-03-24 Richard Biener <rguenther@suse.de>
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
15745 * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
15746 Release m_flag_set_edges.
15748 2022-03-24 Siddhesh Poyarekar <siddhesh@gotplt.org>
15750 PR tree-optimization/104970
15751 * tree-object-size.cc (parm_object_size): Restrict size
15752 computation scenarios to explicit access attributes.
15754 2022-03-24 Kewen Lin <linkw@linux.ibm.com>
15757 * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
15760 2022-03-23 Richard Biener <rguenther@suse.de>
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.
15767 2022-03-23 Richard Biener <rguenther@suse.de>
15769 PR rtl-optimization/105028
15770 * ira-color.cc (form_threads_from_copies): Remove unnecessary
15771 copying of the sorted_copies tail.
15773 2022-03-23 Martin Liska <mliska@suse.cz>
15775 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
15777 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
15778 Reword the error message.
15780 2022-03-23 liuhongt <hongtao.liu@intel.com>
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,
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.
15814 2022-03-22 Tom de Vries <tdevries@suse.de>
15817 * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
15818 Use % as register prefix.
15820 2022-03-22 Tom de Vries <tdevries@suse.de>
15822 * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
15823 (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
15826 2022-03-22 Tom de Vries <tdevries@suse.de>
15828 * config/nvptx/nvptx.opt (mexperimental): New option.
15830 2022-03-22 Tom de Vries <tdevries@suse.de>
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
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.
15844 2022-03-22 Tom de Vries <tdevries@suse.de>
15848 * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
15849 sync (or uniform warp check for mptx < 6.0).
15851 2022-03-22 Richard Biener <rguenther@suse.de>
15853 PR tree-optimization/105012
15854 * tree-if-conv.cc (ifcvt_local_dce): Only call
15855 dse_classify_store when we have a VDEF.
15857 2022-03-22 Martin Liska <mliska@suse.cz>
15860 * config/nvptx/nvptx.cc (handle_ptx_version_option):
15861 Fix option wrapping in an error message.
15863 2022-03-22 Martin Liska <mliska@suse.cz>
15866 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
15867 Wrap const keyword.
15869 2022-03-22 Martin Liska <mliska@suse.cz>
15871 * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
15874 2022-03-22 Martin Liska <mliska@suse.cz>
15877 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
15878 Use %qs instead of (%qs).
15880 2022-03-22 Martin Liska <mliska@suse.cz>
15883 * config/i386/i386-options.cc (ix86_option_override_internal):
15884 Use '%qs' instead of '(%qs)'.
15886 2022-03-22 Martin Liska <mliska@suse.cz>
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.
15895 2022-03-22 Tamar Christina <tamar.christina@arm.com>
15896 Andre Vieira <andre.simoesdiasvieira@arm.com>
15898 * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
15900 (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
15902 (neoverse512tvb_tunings): Likewise.
15904 2022-03-22 Tamar Christina <tamar.christina@arm.com>
15905 Andre Vieira <andre.simoesdiasvieira@arm.com>
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
15915 * config/aarch64/aarch64-cores.def: Add entry for demeter.
15916 * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
15918 2022-03-22 Tamar Christina <tamar.christina@arm.com>
15919 Andre Vieira <andre.simoesdiasvieira@arm.com>
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.
15926 2022-03-22 Tamar Christina <tamar.christina@arm.com>
15927 Andre Vieira <andre.simoesdiasvieira@arm.com>
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
15938 2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
15940 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
15943 2022-03-22 liuhongt <hongtao.liu@intel.com>
15946 * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
15947 following splitter to reversed condition.
15949 2022-03-22 Jakub Jelinek <jakub@redhat.com>
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.
15958 2022-03-22 Qian Jianhua <qianjh@cn.fujitsu.com>
15960 * print-tree.cc: Change array length
15962 2022-03-22 Hongyu Wang <hongyu.wang@intel.com>
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.
15971 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
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.
15978 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
15981 * common/config/i386/cpuinfo.h (get_available_features): Pass
15982 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
15985 2022-03-21 Richard Sandiford <richard.sandiford@arm.com>
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
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
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.
16018 2022-03-21 Martin Liska <mliska@suse.cz>
16020 * doc/invoke.texi: Document min-pagesize parameter.
16022 2022-03-21 Richard Biener <rguenther@suse.de>
16024 * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
16025 we are estimating niter of loop.
16027 2022-03-21 Kito Cheng <kito.cheng@sifive.com>
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.
16049 2022-03-21 Hongyu Wang <hongyu.wang@intel.com>
16052 * config/i386/sse.md
16053 (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
16054 Correct round operand for intel dialect.
16056 2022-03-19 Arthur Cohen <arthur.cohen@embecosm.com>
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.
16067 2022-03-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
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.
16076 2022-03-19 Jakub Jelinek <jakub@redhat.com>
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.
16083 2022-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
16085 PR rtl-optimization/104961
16086 * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
16088 2022-03-18 Jason Merrill <jason@redhat.com>
16090 * tree.h (IDENTIFIER_LENGTH): Add comment.
16092 2022-03-18 Jakub Jelinek <jakub@redhat.com>
16094 PR middle-end/99578
16095 PR middle-end/100680
16096 PR tree-optimization/100834
16097 * params.opt (--param=min-pagesize=): New parameter.
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.
16103 2022-03-18 Tom de Vries <tdevries@suse.de>
16105 * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
16106 Set gfor location only when dealing with a OMP_TASKLOOP.
16108 2022-03-18 Tom de Vries <tdevries@suse.de>
16110 * gimplify.cc (gimplify_omp_for): Set taskloop location.
16112 2022-03-18 Tom de Vries <tdevries@suse.de>
16115 * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
16116 is executed unconditionally.
16118 2022-03-18 liuhongt <hongtao.liu@intel.com>
16121 * config/i386/i386.md (*movhi_internal): Set attr type from HI
16122 to HF for alternative 12 under TARGET_AVX512FP16.
16124 2022-03-18 Cui,Lili <lili.cui@intel.com>
16127 * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
16128 * doc/invoke.texi: Update documents for Intel sapphirerapids.
16130 2022-03-17 Roger Sayle <roger@nextmovesoftware.com>
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.
16139 2022-03-17 Andrew MacLeod <amacleod@redhat.com>
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.
16145 2022-03-17 Richard Biener <rguenther@suse.de>
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.
16154 2022-03-17 Jakub Jelinek <jakub@redhat.com>
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.
16162 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
16164 * config/i386/sse.md: Delete corrupt character/typo.
16166 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
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).
16174 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
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.
16180 2022-03-16 H.J. Lu <hjl.tools@gmail.com>
16183 * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
16184 pushing target("general-regs-only").
16186 2022-03-16 Kito Cheng <kito.cheng@sifive.com>
16188 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
16189 Add version info for zk, zks and zkn.
16191 2022-03-16 LiaoShihua <shihua@iscas.ac.cn>
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.
16200 2022-03-16 Richard Biener <rguenther@suse.de>
16202 PR tree-optimization/102008
16203 * passes.def: Move the added code sinking pass before the
16204 preceeding phiopt pass.
16206 2022-03-16 Patrick Palka <ppalka@redhat.com>
16209 * doc/invoke.texi (C++ Dialect Options): Document
16210 -ffold-simple-inlines.
16212 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
16214 PR tree-optimization/104942
16215 * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
16217 2022-03-16 Jakub Jelinek <jakub@redhat.com>
16220 * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
16223 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
16224 Richard Biener <rguenther@suse.de>
16226 * gimple-match-head.cc (single_use): Implement inline using a
16229 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
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.
16236 2022-03-16 liuhongt <hongtao.liu@intel.com>
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
16244 2022-03-15 Peter Bergner <bergner@linux.ibm.com>
16247 * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
16248 acceptable MEM addresses.
16250 2022-03-15 Jakub Jelinek <jakub@redhat.com>
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
16257 2022-03-15 Jakub Jelinek <jakub@redhat.com>
16260 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
16261 instead of general-regs-only.
16263 2022-03-15 Roger Sayle <roger@nextmovesoftware.com>
16264 Marc Glisse <marc.glisse@inria.fr>
16265 Richard Biener <rguenther@suse.de>
16267 PR tree-optimization/101895
16268 * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
16269 (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
16271 2022-03-15 Jakub Jelinek <jakub@redhat.com>
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.
16277 2022-03-15 Martin Sebor <msebor@redhat.com>
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.
16284 2022-03-14 Roger Sayle <roger@nextmovesoftware.com>
16285 Uroš Bizjak <ubizjak@gmail.com>
16287 * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
16288 transformation when *zero_extend<mode>si2 is not available.
16290 2022-03-14 Xi Ruoyao <xry111@mengyan1223.wang>
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.
16298 2022-03-14 Jakub Jelinek <jakub@redhat.com>
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.
16305 2022-03-14 Jakub Jelinek <jakub@redhat.com>
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.
16312 2022-03-14 Jakub Jelinek <jakub@redhat.com>
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.
16322 2022-03-14 Jakub Jelinek <jakub@redhat.com>
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.
16331 2022-03-14 liuhongt <hongtao.liu@intel.com>
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.
16343 2022-03-13 Tobias Burnus <tobias@codesourcery.com>
16345 * doc/invoke.texi: Fix typos.
16346 * doc/tm.texi.in: Remove duplicated word.
16347 * doc/tm.texi: Regenerate.
16349 2022-03-12 Segher Boessenkool <segher@kernel.crashing.org>
16352 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
16353 "ppc" and "ppc64" based on rs6000_cpu.
16355 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
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'.
16362 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
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'.
16371 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
16374 * tree-core.h (user_omp_claus_code_name): Declare function.
16375 * tree.cc (user_omp_clause_code_name): New function.
16377 2022-03-12 Roger Sayle <roger@nextmovesoftware.com>
16379 PR middle-end/98420
16380 * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
16381 (the defaut) or -fno-signed-zeros.
16383 2022-03-12 Michael Meissner <meissner@linux.ibm.com>
16386 * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
16387 moving from a GPR register to an Altivec register.
16389 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
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.
16396 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
16397 Richard Biener <rguenther@suse.de>
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.
16407 2022-03-11 Richard Biener <rguenther@suse.de>
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.
16414 2022-03-11 Richard Biener <rguenther@suse.de>
16417 * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
16418 cost the first lane of SSE pieces as inserts for vec_construct.
16420 2022-03-10 Roger Sayle <roger@nextmovesoftware.com>
16423 * calls.cc (expand_call): Ignore stack adjustments after sorry.
16425 2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
16428 * lra-constraints.cc (split_reg): Set up
16429 check_and_force_assignment_correctness_p when splitting hard
16430 register live range.
16432 2022-03-10 Martin Jambor <mjambor@suse.cz>
16435 * ipa-cp.cc (create_specialized_node): Move removal of
16436 self-recursive calls from callers vector before refrence
16439 2022-03-10 Richard Biener <rguenther@suse.de>
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
16446 (sbr_sparse_bitmap::set_bb_range): Adjust.
16447 (sbr_sparse_bitmap::get_bb_range): Likewise.
16449 2022-03-10 Richard Biener <rguenther@suse.de>
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.
16458 2022-03-10 Tom de Vries <tdevries@suse.de>
16461 * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
16464 2022-03-10 Tom de Vries <tdevries@suse.de>
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.
16477 2022-03-10 Tom de Vries <tdevries@suse.de>
16479 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
16482 2022-03-10 Tom de Vries <tdevries@suse.de>
16485 * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
16487 * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
16489 2022-03-10 Tom de Vries <tdevries@suse.de>
16491 * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
16492 Emit atom.and.b64 instead of atom.b64.and.
16494 2022-03-10 Tom de Vries <tdevries@suse.de>
16496 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
16497 (MULTILIB_OPTIONS): ... here.
16499 2022-03-10 Tom de Vries <tdevries@suse.de>
16502 * config/nvptx/nvptx.opt (misa): Set default to sm_30.
16503 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
16505 2022-03-10 Thomas Schwinge <thomas@codesourcery.com>
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.
16515 2022-03-10 Jakub Jelinek <jakub@redhat.com>
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
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.
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
16553 2022-03-09 Richard Biener <rguenther@suse.de>
16555 * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
16556 with non-decl operand, avoiding a copy.
16558 2022-03-09 Jakub Jelinek <jakub@redhat.com>
16561 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
16563 2022-03-09 Richard Biener <rguenther@suse.de>
16565 PR middle-end/104786
16566 * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
16567 for VLAs without an upper size bound.
16569 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
16571 PR tree-optimization/104851
16572 * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
16575 2022-03-09 Jakub Jelinek <jakub@redhat.com>
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
16581 (-Wshift-negative-value): Similarly (except here we stated
16582 that it is enabled for C++11 or later).
16584 2022-03-09 Jakub Jelinek <jakub@redhat.com>
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.
16592 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
16595 * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
16596 value before adding an offset.
16598 2022-03-08 Christophe Lyon <christophe.lyon@arm.com>
16600 * config/arm/arm-builtins.cc
16601 (arm_binop_none_none_unone_qualifiers): Delete.
16602 (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
16604 2022-03-08 Iain Sandoe <iain@sandoe.co.uk>
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.
16610 2022-03-08 Marek Polacek <polacek@redhat.com>
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.
16616 2022-03-08 H.J. Lu <hjl.tools@gmail.com>
16619 * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
16620 stack realignment or regparm nested function with EH return.
16622 2022-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
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.
16629 2022-03-08 Eric Gallager <egallager@gcc.gnu.org>
16631 PR translation/104552
16632 * params.opt: Fix typo.
16634 2022-03-08 Richard Biener <rguenther@suse.de>
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.
16642 2022-03-08 Martin Jambor <mjambor@suse.cz>
16644 PR translation/104552
16645 * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
16646 "that" in the description.
16648 2022-03-08 Richard Biener <rguenther@suse.de>
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.
16654 2022-03-08 liuhongt <hongtao.liu@intel.com>
16656 * config/i386/sse.md (*vec_dupv4si): Disable memory operand
16657 for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
16659 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
16661 * doc/invoke.texi (C++ Modules): Remove anachronism.
16663 2022-03-07 Martin Liska <mliska@suse.cz>
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.
16669 2022-03-07 Jakub Jelinek <jakub@redhat.com>
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.
16691 2022-03-07 Martin Liska <mliska@suse.cz>
16694 * config/arm/arm.cc (arm_option_override_internal): Add missing
16697 2022-03-07 Richard Biener <rguenther@suse.de>
16699 PR tree-optimization/104782
16700 * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
16701 Re-instantiate r10-5979 fix, add comment.
16703 2022-03-07 Martin Liska <mliska@suse.cz>
16706 * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
16707 parenthesis from built-in name.
16709 2022-03-07 Martin Liska <mliska@suse.cz>
16712 * config/arm/arm.cc (arm_option_override_internal): Fix quoting
16713 of options in error messages.
16714 (arm_option_reconfigure_globals): Likewise.
16716 2022-03-07 Martin Liska <mliska@suse.cz>
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].
16723 2022-03-07 Jakub Jelinek <jakub@redhat.com>
16726 * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
16727 S constraint instead of T in the last alternative.
16729 2022-03-07 Martin Liska <mliska@suse.cz>
16731 * plugin.cc (default_plugin_dir_name): Remove <dir> from error
16734 2022-03-07 Martin Liska <mliska@suse.cz>
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.
16741 2022-03-07 Martin Liska <mliska@suse.cz>
16744 * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
16747 2022-03-07 Jakub Jelinek <jakub@redhat.com>
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.
16757 2022-03-05 Jakub Jelinek <jakub@redhat.com>
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.
16762 2022-03-05 Roger Sayle <roger@nextmovesoftware.com>
16763 Uroš Bizjak <ubizjak@gmail.com>
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.
16776 2022-03-05 Michael Meissner <meissner@linux.ibm.com>
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.
16785 2022-03-04 Segher Boessenkool <segher@kernel.crashing.org>
16787 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
16788 bit. Handle most older CPUs.
16790 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
16792 * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
16793 avoid a mismatch with DECL_MD_FUNCTION_CODE().
16795 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
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
16806 2022-03-04 Peter Bergner <bergner@linux.ibm.com>
16810 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
16811 ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
16813 Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
16815 * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
16818 2022-03-04 Jakub Jelinek <jakub@redhat.com>
16820 PR middle-end/104529
16821 * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
16822 on automatic objects which will be runtime initialized.
16824 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
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.
16834 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
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'.
16845 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
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".
16852 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
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'.
16860 2022-03-04 Jakub Jelinek <jakub@redhat.com>
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
16867 2022-03-04 H.J. Lu <hjl.tools@gmail.com>
16870 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
16873 2022-03-03 Martin Sebor <msebor@redhat.com>
16875 PR middle-end/104761
16876 * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
16877 mark_dfs_back_edges.
16879 2022-03-03 Martin Liska <mliska@suse.cz>
16881 * configure.ac: Use linker plug-in by default.
16882 * configure: Regenerate.
16884 2022-03-03 Martin Liska <mliska@suse.cz>
16886 * configure.ac: Now ld.mold support LTO plugin API, use it.
16887 * configure: Regenerate.
16889 2022-03-03 Tom de Vries <tdevries@suse.de>
16891 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
16893 2022-03-03 Tom de Vries <tdevries@suse.de>
16896 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
16898 2022-03-03 Tom de Vries <tdevries@suse.de>
16900 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
16902 2022-03-03 Jakub Jelinek <jakub@redhat.com>
16904 PR middle-end/104757
16905 * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
16907 (gimplify_expr) <case OMP_SIMD>: Temporarily disable
16908 gimplify_ctxp->into_ssa around call to gimplify_omp_for.
16910 2022-03-03 Jakub Jelinek <jakub@redhat.com>
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
16918 2022-03-02 Alexandre Oliva <oliva@adacore.com>
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.
16925 2022-03-02 Qing Zhao <qing.zhao@oracle.com>
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.
16938 2022-03-02 Richard Biener <rguenther@suse.de>
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
16945 (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
16948 2022-03-02 Jakub Jelinek <jakub@redhat.com>
16950 * cfg.cc (dump_edge_info): Dump goto_locus if present.
16952 2022-03-02 Jakub Jelinek <jakub@redhat.com>
16954 PR rtl-optimization/104589
16955 * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
16956 INSN_LOCATION comparison with goto_locus.
16958 2022-03-02 Jakub Jelinek <jakub@redhat.com>
16960 * tree-ssa-strlen.cc (strlen_pass::handle_assign,
16961 strlen_pass::before_dom_children): Comment spelling fixes.
16963 2022-03-02 Jakub Jelinek <jakub@redhat.com>
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):
16983 * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
16985 * ipa-modref-tree.h (enum modref_special_parms,
16986 struct modref_access_node): Likewise.
16988 2022-03-01 Jakub Jelinek <jakub@redhat.com>
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
16996 2022-03-01 Jakub Jelinek <jakub@redhat.com>
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.
17008 2022-03-01 Richard Biener <rguenther@suse.de>
17010 PR tree-optimization/104716
17011 * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
17012 Check if we can copy the loop.
17014 2022-03-01 H.J. Lu <hjl.tools@gmail.com>
17016 PR middle-end/104721
17017 * cfgexpand.cc (expand_gimple_basic_block): Clear
17018 currently_expanding_gimple_stmt when returning inside the loop.
17020 2022-03-01 Martin Liska <mliska@suse.cz>
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.
17028 2022-03-01 Martin Liska <mliska@suse.cz>
17030 PR gcov-profile/104677
17031 * doc/invoke.texi: Document more .gcda file name generation.
17033 2022-03-01 Tom de Vries <tdevries@suse.de>
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"):
17040 (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
17041 Use nvptx_register_or_complex_di_df_register_operand.
17043 2022-03-01 Tom de Vries <tdevries@suse.de>
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.
17057 2022-03-01 Tom de Vries <tdevries@suse.de>
17059 * config/nvptx/gen-omp-device-properties.sh: New file.
17060 * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
17062 2022-03-01 Tom de Vries <tdevries@suse.de>
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.
17070 2022-03-01 Robin Dapp <rdapp@linux.ibm.com>
17072 PR rtl-optimization/104154
17073 * config/arc/arc.cc (gen_compare_reg): Return the CC-mode
17074 comparison ifcvt passed us.
17076 2022-03-01 Hongyu Wang <hongyu.wang@intel.com>
17079 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
17080 Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
17082 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
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.
17089 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
17090 Eric Botcazou <ebotcazou@adacore.com>
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.
17096 2022-02-28 Vladimir N. Makarov <vmakarov@redhat.com>
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.
17102 2022-02-28 Qing Zhao <qing.zhao@oracle.com>
17104 PR middle-end/104550
17105 * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
17108 2022-02-28 Martin Liska <mliska@suse.cz>
17111 * main.cc (main): Use flag_checking instead of CHECKING_P
17112 and run toplev::finalize only if there is not error seen.
17114 2022-02-28 Richard Biener <rguenther@suse.de>
17116 * tree-ssa-pre.cc (compute_avail): Revert part of last change.
17118 2022-02-28 Richard Biener <rguenther@suse.de>
17120 PR tree-optimization/104700
17121 * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
17123 (find_or_generate_expression): ... here, simplifying code.
17125 2022-02-28 Tom de Vries <tdevries@suse.de>
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.
17133 2022-02-28 Richard Biener <rguenther@suse.de>
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.
17140 2022-02-28 Hongyu Wang <hongyu.wang@intel.com>
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.
17164 2022-02-25 Jakub Jelinek <jakub@redhat.com>
17165 Marc Glisse <marc.glisse@inria.fr>
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.
17171 2022-02-25 Jakub Jelinek <jakub@redhat.com>
17174 * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
17176 2022-02-25 Claudiu Zissulescu <claziss@synopsys.com>
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.
17185 2022-02-25 Richard Biener <rguenther@suse.de>
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.
17210 2022-02-25 Jakub Jelinek <jakub@redhat.com>
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.
17217 2022-02-25 Jakub Jelinek <jakub@redhat.com>
17219 * warning-control.cc (get_nowarn_spec): Comment spelling fix.
17221 2022-02-25 Jakub Jelinek <jakub@redhat.com>
17223 PR middle-end/104679
17224 * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
17226 2022-02-25 Jakub Jelinek <jakub@redhat.com>
17228 PR tree-optimization/104675
17229 * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
17232 2022-02-25 Alexandre Oliva <oliva@adacore.com>
17236 * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
17238 2022-02-25 Alexandre Oliva <oliva@adacore.com>
17240 PR middle-end/104540
17241 * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
17244 2022-02-25 Alexandre Oliva <oliva@adacore.com>
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.
17252 2022-02-24 Palmer Dabbelt <palmer@rivosinc.com>
17254 * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
17255 of position independence that -mcmodel=medany affords.
17257 2022-02-24 Jose E. Marchesi <jose.marchesi@oracle.com>
17260 * configure.ac: --disable-gcov if targetting bpf-*.
17261 * configure: Regenerate.
17263 2022-02-24 Richard Biener <rguenther@suse.de>
17265 PR tree-optimization/104676
17266 * tree-loop-distribution.cc (loop_distribution::execute):
17267 Do a full scev_reset.
17269 2022-02-24 Jakub Jelinek <jakub@redhat.com>
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
17276 2022-02-24 Tom de Vries <tdevries@suse.de>
17277 Tobias Burnus <tobias@codesourcery.com>
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.
17283 2022-02-24 Tom de Vries <tdevries@suse.de>
17285 * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
17286 "rotrsi3"): New define_insn.
17288 2022-02-24 Tom de Vries <tdevries@suse.de>
17290 * config/nvptx/nvptx.cc (gen_comment): Use
17291 DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
17293 2022-02-24 liuhongt <hongtao.liu@intel.com>
17295 * config/i386/sse.md (<code>v1ti3): Add suffix and replace
17296 isa attr of alternative 2 from avx to avx512vl.
17298 2022-02-23 Richard Biener <rguenther@suse.de>
17299 Jakub Jelinek <jakub@redhat.com>
17301 PR tree-optimization/104644
17302 * doc/match-and-simplify.texi: Amend ! documentation.
17303 * genmatch.cc (expr::gen_transform): Code-generate ! support
17305 (parser::parse_expr): Allow ! for GENERIC.
17306 * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
17309 2022-02-23 Richard Biener <rguenther@suse.de>
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.
17318 2022-02-23 Jakub Jelinek <jakub@redhat.com>
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.
17325 2022-02-23 Roger Sayle <roger@nextmovesoftware.com>
17328 * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
17330 2022-02-23 Christophe Lyon <christophe.lyon@arm.com>
17334 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
17337 2022-02-23 Cui,Lili <lili.cui@intel.com>
17339 * doc/invoke.texi: Update documents for Intel architectures.
17341 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
17343 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
17346 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
17348 * omp-low.cc (omp_build_component_ref): Move function...
17349 * omp-general.cc (omp_build_component_ref): ... here. Remove
17351 * omp-general.h (omp_build_component_ref): Declare function.
17352 * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
17354 (build_receiver_ref, build_sender_ref): Call
17355 'omp_build_component_ref' instead.
17357 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
17359 * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
17360 simplify. Adjust all users.
17362 2022-02-22 Segher Boessenkool <segher@kernel.crashing.org>
17365 * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
17366 atomic_update_decl): Add GTY markup.
17368 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17370 * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
17372 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17376 * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
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.
17386 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17390 * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
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.
17402 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
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.
17443 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17447 * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
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.
17457 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
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.
17477 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
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
17488 (arm_mode_to_pred_mode): New.
17489 (arm_expand_vector_compare): Use the right VxBI mode instead of
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.
17510 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17511 Richard Sandiford <richard.sandiford@arm.com>
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
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.
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
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.
17548 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17550 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
17553 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
17555 * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
17557 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
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.
17565 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
17566 Tom de Vries <tdevries@suse.de>
17568 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
17569 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
17571 * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
17573 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
17574 Tom de Vries <tdevries@suse.de>
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.
17579 2022-02-22 Tom de Vries <tdevries@suse.de>
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.
17586 2022-02-22 Richard Biener <rguenther@suse.de>
17588 * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
17591 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
17592 Richard Biener <rguenther@suse.de>
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.
17603 2022-02-22 Jakub Jelinek <jakub@redhat.com>
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.
17610 2022-02-22 Jakub Jelinek <jakub@redhat.com>
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.
17619 2022-02-22 Richard Biener <rguenther@suse.de>
17621 PR tree-optimization/104582
17623 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
17624 Cost GPR to vector register moves for integer vector construction.
17626 2022-02-22 Richard Biener <rguenther@suse.de>
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):
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
17644 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
17646 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
17648 * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
17650 (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
17652 2022-02-22 Richard Biener <rguenther@suse.de>
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.
17664 2022-02-22 Hongyu Wang <hongyu.wang@intel.com>
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
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.
17676 2022-02-21 Dan Li <ashimida@linux.alibaba.com>
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
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.
17710 2022-02-21 Tom de Vries <tdevries@suse.de>
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.
17719 2022-02-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
17721 PR rtl-optimization/104498
17722 * alias.cc (compare_base_symbol_refs): Correct distance computation
17723 when swapping x and y.
17725 2022-02-21 Andrew Pinski <apinski@marvell.com>
17728 * tree-ssa.cc (tree_ssa_useless_type_conversion):
17729 Check the inner type before calling useless_type_conversion_p.
17731 2022-02-19 Tom de Vries <tdevries@suse.de>
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.
17741 2022-02-19 Tom de Vries <tdevries@suse.de>
17743 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
17744 insns with atomic attribute. Assert that all handled insns are
17746 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
17747 Set atomic attribute to false.
17749 2022-02-19 Tom de Vries <tdevries@suse.de>
17751 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
17753 (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
17754 nvptx_warpsync, if necessary.
17756 2022-02-19 Jakub Jelinek <jakub@redhat.com>
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
17765 2022-02-18 Pat Haugen <pthaugen@linux.ibm.com>
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.
17779 2022-02-18 Jakub Jelinek <jakub@redhat.com>
17783 * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
17784 rather than __posix_memalign.
17786 2022-02-18 Richard Biener <rguenther@suse.de>
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.
17794 2022-02-18 Richard Biener <rguenther@suse.de>
17796 PR tree-optimization/96881
17797 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
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.
17805 2022-02-17 Jason Merrill <jason@redhat.com>
17807 * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
17808 on TYPE_MAIN_VARIANT.
17810 2022-02-17 Paul A. Clarke <pc@us.ibm.com>
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.
17822 2022-02-17 Robin Dapp <rdapp@linux.ibm.com>
17825 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
17826 if the expected comparison's first operand is of mode MODE_CC.
17828 2022-02-17 Vladimir N. Makarov <vmakarov@redhat.com>
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.
17834 2022-02-17 liuhongt <hongtao.liu@intel.com>
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.
17844 2022-02-17 Jakub Jelinek <jakub@redhat.com>
17847 * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
17848 if expr has VOIDmode.
17850 2022-02-17 liuhongt <hongtao.liu@intel.com>
17852 * config/i386/cpuid.h (bit_MPX): Removed.
17853 (bit_BNDREGS): Ditto.
17854 (bit_BNDCSR): Ditto.
17856 2022-02-17 Michael Meissner <meissner@the-meissners.org>
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
17864 2022-02-16 Andrew MacLeod <amacleod@redhat.com>
17866 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
17867 range_compatible_p instead of direct type comparison.
17869 2022-02-16 Jakub Jelinek <jakub@redhat.com>
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
17876 2022-02-16 Richard Sandiford <richard.sandiford@arm.com>
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.
17884 2022-02-15 Andrew MacLeod <amacleod@redhat.com>
17886 PR tree-optimization/104526
17887 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
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.
17894 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
17897 * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
17899 * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
17900 * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
17902 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
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.
17918 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
17920 * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
17923 2022-02-15 Richard Biener <rguenther@suse.de>
17925 PR tree-optimization/104543
17926 * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
17927 come after the inner loop.
17929 2022-02-15 Jakub Jelinek <jakub@redhat.com>
17932 * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
17933 cannot instead of can%'t in diagnostics. Formatting fixes.
17935 2022-02-15 Jakub Jelinek <jakub@redhat.com>
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
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
17949 2022-02-15 Richard Biener <rguenther@suse.de>
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.
17957 2022-02-15 Jakub Jelinek <jakub@redhat.com>
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.
17966 2022-02-14 Martin Sebor <msebor@redhat.com>
17968 PR middle-end/104355
17969 * doc/invoke.texi (-Warray-bounds): Update documentation.
17971 2022-02-14 Michael Meissner <meissner@the-meissners.org>
17974 * config/rs6000/rs6000.cc (init_float128_ibm): Update the
17975 conversion functions used to convert IFmode types.
17977 2022-02-14 Andrew Stubbs <ams@codesourcery.com>
17979 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
17981 2022-02-14 Richard Biener <rguenther@suse.de>
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
17991 2022-02-14 Richard Biener <rguenther@suse.de>
17993 PR tree-optimization/104511
17994 * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
17995 touching DFP <-> FP conversions.
17997 2022-02-14 Richard Biener <rguenther@suse.de>
17999 PR middle-end/104497
18000 * gimplify.cc (gimplify_compound_lval): Make sure the
18001 base is a non-register if needed and possible.
18003 2022-02-13 liuhongt <hongtao.liu@intel.com>
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.
18010 2022-02-12 Jakub Jelinek <jakub@redhat.com>
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.
18017 2022-02-12 Jakub Jelinek <jakub@redhat.com>
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.
18023 2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
18026 * config/i386/i386.cc (type_natural_mode):
18027 Skip decimal float vector modes.
18029 2022-02-11 Iain Sandoe <iain@sandoe.co.uk>
18030 Vladimir Makarov <vmakarov@redhat.com>
18033 * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
18034 Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
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.
18040 2022-02-11 Jakub Jelinek <jakub@redhat.com>
18042 PR tree-optimization/104499
18043 * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
18046 2022-02-11 Jakub Jelinek <jakub@redhat.com>
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
18058 2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com>
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.
18065 2022-02-11 Jakub Jelinek <jakub@redhat.com>
18067 PR middle-end/104446
18068 * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
18071 2022-02-11 Richard Biener <rguenther@suse.de>
18073 PR middle-end/104496
18074 * internal-fn.cc (vectorized_internal_fn_supported_p):
18075 Bail out for integer mode vector types.
18077 2022-02-11 Jakub Jelinek <jakub@redhat.com>
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.
18083 2022-02-11 liuhongt <hongtao.liu@intel.com>
18085 PR tree-optimization/104479
18086 * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
18087 for the dest of uncond_op.
18089 2022-02-11 Tom de Vries <tdevries@suse.de>
18092 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
18095 2022-02-10 Qing Zhao <qing.zhao@oracle.com>
18097 PR middle-end/100775
18098 * function.cc (gen_call_used_regs_seq): Call
18099 df_update_exit_block_uses when updating df.
18101 2022-02-10 Uroš Bizjak <ubizjak@gmail.com>
18104 * config/i386/sse.md (vec_unpacks_float_lo_v4si):
18105 Change operand 1 constraint to register_operand.
18107 2022-02-10 Richard Biener <rguenther@suse.de>
18109 PR tree-optimization/104373
18110 * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
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
18120 (execute_early_warn_uninitialized): Use VN to compute
18122 (pass_data_early_warn_uninitialized): Enable a dump file,
18123 change dump name to warn_uninit.
18125 2022-02-10 Richard Biener <rguenther@suse.de>
18127 PR middle-end/104467
18128 * match.pd (vector extract simplification): Multiply the
18129 number of CTOR elements with the number of element elements.
18131 2022-02-10 Richard Biener <rguenther@suse.de>
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.
18137 2022-02-10 Tom de Vries <tdevries@suse.de>
18139 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
18141 (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
18143 (define_c_enum "unspecv"): Add UNSPECV_ST.
18145 2022-02-10 Tom de Vries <tdevries@suse.de>
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
18153 2022-02-10 Tom de Vries <tdevries@suse.de>
18156 * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
18157 driver JIT bug by using sub.s16 instead of sub.u16.
18159 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
18161 * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
18162 floating point constants as operands 1 and/or 2.
18164 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
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.
18176 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
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.
18188 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
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.
18204 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
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.
18218 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
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.
18226 2022-02-10 Gerald Pfeifer <gerald@pfeifer.com>
18228 * doc/install.texi (Specific): Change the www.bitwizard.nl
18229 reference to use https.
18231 2022-02-10 Marcel Vollweiler <marcel@codesourcery.com>
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.
18245 2022-02-10 Eugene Rozenfeld <erozen@microsoft.com>
18247 * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
18248 that will result in direct recursive calls.
18250 2022-02-10 Andrew Pinski <apinski@marvell.com>
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.
18257 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
18260 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
18261 Also include OPTION_MASK_ISA2_AVX2_UNSET.
18263 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
18266 * config/i386/i386-expand.cc (ix86_split_idivmod):
18267 Force operands[2] and operands[3] into a register..
18269 2022-02-09 Jeff Law <jeffreyalaw@gmail.com>
18272 * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
18273 (*v850_fnmssf4): Renamed from fnmssf4
18275 2022-02-09 Ian Lance Taylor <iant@golang.org>
18277 * godump.cc (go_force_record_alignment): Really name the alignment
18278 field "_" (complete 2021-12-29 change).
18280 2022-02-09 Bill Schmidt <wschmidt@linux.ibm.com>
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.
18294 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18296 * config/aarch64/iterators.md (VDCSIF): New mode iterator.
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.
18310 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
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.
18320 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18322 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
18324 * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
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.
18335 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18337 * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
18339 * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
18340 (*aarch64_combine_internal_be<mode>): New patterns.
18342 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
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.
18348 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18350 * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
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
18357 (aarch64_mergeable_load_pair_p): New function.
18359 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
18361 * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
18362 element to be an aarch64_simd_nonimmediate_operand.
18364 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
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
18371 (@aarch64_combinez_be<mode>): Likewise.
18373 2022-02-09 Richard Biener <rguenther@suse.de>
18375 PR middle-end/104464
18376 * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
18377 throwing check to after unproblematic replacement.
18379 2022-02-09 Roger Sayle <roger@nextmovesoftware.com>
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.
18385 2022-02-09 Jakub Jelinek <jakub@redhat.com>
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.
18393 2022-02-09 Andrew MacLeod <amacleod@redhat.com>
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.
18418 2022-02-09 Richard Biener <rguenther@suse.de>
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.
18428 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
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
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
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.
18465 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
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
18473 2022-02-09 liuhongt <hongtao.liu@intel.com>
18476 * config/i386/sse.md (<insn><mode>3): lowpart_subreg
18477 operands[2] from SImode to QImode.
18479 2022-02-09 Richard Biener <rguenther@suse.de>
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.
18486 2022-02-09 Richard Biener <rguenther@suse.de>
18489 * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
18490 folding for NULL LHS.
18492 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
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.
18500 2022-02-08 Jakub Jelinek <jakub@redhat.com>
18503 * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
18504 split1 pass has finished already.
18506 2022-02-08 Bill Schmidt <wschmidt@linux.ibm.com>
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.
18513 2022-02-08 Tom de Vries <tdevries@suse.de>
18515 * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
18516 * config/nvptx/nvptx.h (TARGET_SM70): Define.
18518 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
18520 * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
18522 * config/s390/s390.md: Use paradoxical subreg.
18524 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
18526 * combine.cc (reg_subword_p): Check for paradoxical subreg.
18528 2022-02-08 Tom de Vries <tdevries@suse.de>
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'.
18542 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
18544 * doc/install.texi (Configuration): Document `--with-isa-spec='
18546 * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
18548 (RISC-V Options): Document it.
18550 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
18552 * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
18554 2022-02-08 Tom de Vries <tdevries@suse.de>
18556 * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
18558 2022-02-08 Tom de Vries <tdevries@suse.de>
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.
18574 2022-02-08 liuhongt <hongtao.liu@intel.com>
18576 PR rtl-optimization/104059
18577 * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
18578 for a more expensive reg-reg move.
18580 2022-02-07 Tamar Christina <tamar.christina@arm.com>
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.
18589 2022-02-07 Tamar Christina <tamar.christina@arm.com>
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.
18599 2022-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
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
18606 2022-02-07 Richard Biener <rguenther@suse.de>
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.
18614 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
18617 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
18618 hunk affecting VSX and ALTIVEC to appropriate place.
18620 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
18623 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
18624 MMA if !TARGET_VSX.
18626 2022-02-06 Jakub Jelinek <jakub@redhat.com>
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
18645 2022-02-05 Jakub Jelinek <jakub@redhat.com>
18647 PR tree-optimization/104389
18648 * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
18651 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
18653 * configure.ac: Fix detection for zifencei support.
18654 * configure: Regenerate.
18656 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
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.
18663 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
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.
18677 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
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.
18684 2022-02-04 Jakub Jelinek <jakub@redhat.com>
18687 * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
18688 adjust mangling of __builtin*printf_chk.
18690 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
18692 * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
18694 2022-02-04 Richard Biener <rguenther@suse.de>
18695 Bin Cheng <bin.cheng@linux.alibaba.com>
18697 PR tree-optimization/100499
18698 * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
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.
18708 2022-02-04 Richard Biener <rguenther@suse.de>
18710 * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
18713 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
18716 * dwarf2out.cc (dwarf2out_finish): Empty base_types.
18717 (dwarf2out_early_finish): Likewise.
18719 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
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.
18728 2022-02-04 Richard Biener <rguenther@suse.de>
18730 PR tree-optimization/103641
18731 * tree-vect-patterns.cc (vect_synth_mult_by_constant):
18732 Pass the vector mode to choose_mult_variant.
18734 2022-02-04 Roger Sayle <roger@nextmovesoftware.com>
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.
18741 2022-02-04 Richard Biener <rguenther@suse.de>
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
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
18754 * tree-streamer-out.cc (streamer_write_tree_bitfields):
18756 * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
18757 * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
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.
18765 2022-02-04 Martin Sebor <msebor@redhat.com>
18767 * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
18770 2022-02-03 Martin Sebor <msebor@redhat.com>
18772 PR middle-end/104260
18773 * passes.def (pass_warn_access): Adjust pass placement.
18775 2022-02-03 Uroš Bizjak <ubizjak@gmail.com>
18778 * config/i386/i386.cc (find_drap_reg): For 32bit targets
18779 return DI_REG if function uses __builtin_eh_return.
18781 2022-02-03 Martin Sebor <msebor@redhat.com>
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
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.
18797 2022-02-03 Martin Sebor <msebor@redhat.com>
18799 * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
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):
18805 (array_bounds_checker::m_ptr_query): New member.
18807 2022-02-03 Martin Sebor <msebor@redhat.com>
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.
18821 2022-02-03 Martin Sebor <msebor@redhat.com>
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
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.
18843 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
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.
18851 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
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
18859 (VCLZLSBB_V4SI): Likewise.
18860 (VCLZLSBB_V8HI): Likewise.
18861 (VCTZLSBB_V16QI): Likewise.
18862 (VCTZLSBB_V4SI): Likewise.
18863 (VCTZLSBB_V8HI): Likewise.
18865 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
18867 * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
18868 * config/rs6000/rs6000-builtin.cc: New file, containing code moved
18870 * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
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
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.
18920 2022-02-03 Richard Biener <rguenther@suse.de>
18923 * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
18924 together via DECL_ABSTRACT_ORIGIN.
18926 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
18928 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
18929 message for RES_BITS case.
18931 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
18933 * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
18935 2022-02-03 Jakub Jelinek <jakub@redhat.com>
18937 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
18938 mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
18940 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
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
18952 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
18954 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
18957 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
18959 * config/aarch64/iterators.md (VALL_F16MOV): Delete.
18960 * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
18963 2022-02-03 Martin Liska <mliska@suse.cz>
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):
18970 2022-02-03 Martin Liska <mliska@suse.cz>
18972 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
18973 Use the error message for i386 target.
18975 2022-02-03 Jakub Jelinek <jakub@redhat.com>
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.
18983 2022-02-03 Martin Sebor <msebor@redhat.com>
18985 * common.opt (-Wuse-after-free): Correct typos.
18987 2022-02-02 David Malcolm <dmalcolm@redhat.com>
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.
18994 2022-02-02 Martin Liska <mliska@suse.cz>
18996 * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
18998 2022-02-02 Bernd Kuhls <bernd.kuhls@t-online.de>
19001 * config/or1k/linux.h (CPP_SPEC): Define.
19003 2022-02-02 Tamar Christina <tamar.christina@arm.com>
19005 PR tree-optimization/102819
19006 PR tree-optimization/103169
19007 * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
19010 2022-02-02 Tamar Christina <tamar.christina@arm.com>
19012 PR tree-optimization/102819
19013 PR tree-optimization/103169
19014 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
19016 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
19018 2022-02-02 Tamar Christina <tamar.christina@arm.com>
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
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
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.
19045 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
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).
19058 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
19060 * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
19061 extra cost for ALL_REGS.
19063 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
19065 * config/cris/constraints.md (define_register_constraint "b"): Now
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.
19074 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
19076 * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
19077 Conditionalize on (sub-)register operands or operand 1 being 0.
19079 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
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
19087 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
19089 * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
19092 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
19094 * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
19096 2022-02-01 Andrew Pinski <apinski@marvell.com>
19098 * doc/install.texi:
19100 2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com>
19102 * config/s390/s390.cc (s390_code_end): Do not switch back to
19105 2022-02-01 Jakub Jelinek <jakub@redhat.com>
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.
19122 2022-02-01 Jason Merrill <jason@redhat.com>
19124 * tree.h (struct tree_vec_map_cache_hasher): Move from...
19125 * tree.cc (struct tree_vec_map_cache_hasher): ...here.
19127 2022-02-01 Tom de Vries <tdevries@suse.de>
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.
19134 2022-02-01 Tom de Vries <tdevries@suse.de>
19136 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
19137 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
19139 (define_insn "nvptx_warpsync"): New define_insn.
19141 2022-02-01 Tom de Vries <tdevries@suse.de>
19143 * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
19145 2022-02-01 Tom de Vries <tdevries@suse.de>
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.
19152 2022-02-01 Tom de Vries <tdevries@suse.de>
19155 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
19158 2022-02-01 Tom de Vries <tdevries@suse.de>
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.
19167 2022-02-01 Tom de Vries <tdevries@suse.de>
19169 * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
19170 NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
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
19180 (define_expand "nvptx_membar_gl"): New expand.
19181 (define_insn "*nvptx_membar_gl"): New insn.
19183 2022-02-01 Martin Liska <mliska@suse.cz>
19185 * doc/install.texi: Remove option for GCC < 4.8.
19187 2022-02-01 Jakub Jelinek <jakub@redhat.com>
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.
19196 2022-02-01 Bill Schmidt <wschmidt@linux.ibm.com>
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.
19369 2022-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
19371 PR rtl-optimization/101260
19372 * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
19375 2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang>
19377 PR middle-end/95115
19378 * fold-const.cc (const_binop): Do not fold NaN result from
19381 2022-02-01 Tom de Vries <tdevries@suse.de>
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.
19388 2022-01-31 Andrew Pinski <apinski@marvell.com>
19390 * fold-const.h (operand_compare::operand_equal_p):
19391 Fix comment about OEP_* flags.
19393 2022-01-31 Jakub Jelinek <jakub@redhat.com>
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.
19401 2022-01-31 Martin Sebor <msebor@redhat.com>
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.
19408 2022-01-31 Richard Biener <rguenther@suse.de>
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.
19415 2022-01-31 Eric Botcazou <ebotcazou@adacore.com>
19418 * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
19420 2022-01-31 Richard Biener <rguenther@suse.de>
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.
19430 2022-01-29 Jakub Jelinek <jakub@redhat.com>
19431 Andrew Pinski <apinski@marvell.com>
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.
19439 2022-01-28 Yoshinori Sato <yo-satoh@sios.com>
19441 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
19443 2022-01-28 Navid Rahimi <navidrahimi@microsoft.com>
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.
19449 2022-01-28 Marek Polacek <polacek@redhat.com>
19451 * doc/invoke.texi: Update -Wbidi-chars documentation.
19453 2022-01-28 Iain Sandoe <iain@sandoe.co.uk>
19455 * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
19457 2022-01-28 Zhao Wei Liew <zhaoweiliew@gmail.com>
19459 PR tree-optimization/95424
19460 * match.pd: Simplify 1 / X where X is an integer.
19462 2022-01-28 Jakub Jelinek <jakub@redhat.com>
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.
19470 2022-01-28 Martin Liska <mliska@suse.cz>
19472 * diagnostic.cc (diagnostic_action_after_output): Remove extra
19475 2022-01-28 Martin Liska <mliska@suse.cz>
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.
19483 2022-01-28 Richard Biener <rguenther@suse.de>
19485 PR tree-optimization/104267
19486 * tree-vect-stmts.cc (vectorizable_call): Properly use the
19487 per-argument determined vector type for externals and
19490 2022-01-28 Richard Biener <rguenther@suse.de>
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.
19497 2022-01-28 Maciej W. Rozycki <macro@embecosm.com>
19499 * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
19502 2022-01-28 Jakub Jelinek <jakub@redhat.com>
19505 * cfgrtl.cc (loc_equal): New function.
19506 (unique_locus_on_edge_between_p): Use it.
19508 2022-01-28 Richard Biener <rguenther@suse.de>
19510 * cfganal.h (mark_dfs_back_edges): Provide API with struct
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
19520 2022-01-27 Patrick Palka <ppalka@redhat.com>
19523 * tree.cc (build_call_vec): Add const to second parameter.
19524 * tree.h (build_call_vec): Likewise.
19526 2022-01-27 Martin Liska <mliska@suse.cz>
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.
19538 2022-01-27 Kewen Lin <linkw@linux.ibm.com>
19541 * config/rs6000/rs6000.cc
19542 (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
19543 assertion with early return.
19545 2022-01-27 Chung-Lin Tang <cltang@codesourcery.com>
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.
19551 2022-01-27 Jakub Jelinek <jakub@redhat.com>
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
19563 (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
19564 corresponding condition even if they have non-NULL ops[]->op.
19567 2022-01-26 Jakub Jelinek <jakub@redhat.com>
19570 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
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.
19576 2022-01-26 Jakub Jelinek <jakub@redhat.com>
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.
19583 2022-01-26 Jakub Jelinek <jakub@redhat.com>
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.
19591 2022-01-26 Marek Polacek <polacek@redhat.com>
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.
19597 2022-01-26 Martin Liska <mliska@suse.cz>
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.
19607 2022-01-26 Raoni Fassina Firmino <raoni@linux.ibm.com>
19610 * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
19613 2022-01-25 Martin Sebor <msebor@redhat.com>
19615 PR tree-optimization/104203
19616 * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
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.
19625 2022-01-25 David Edelsohn <dje.gcc@gmail.com>
19627 * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
19629 2022-01-25 Richard Biener <rguenther@suse.de>
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.
19637 2022-01-25 Jakub Jelinek <jakub@redhat.com>
19640 * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
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.
19651 2022-01-24 Martin Sebor <msebor@redhat.com>
19653 * pointer-query.cc (pointer_query::dump): Remove duplicate
19656 2022-01-24 Marek Polacek <polacek@redhat.com>
19658 PR preprocessor/104030
19659 * doc/invoke.texi: Update documentation for -Wbidi-chars.
19661 2022-01-24 Raoni Fassina Firmino <raoni@linux.ibm.com>
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
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.
19680 2022-01-24 Richard Biener <rguenther@suse.de>
19681 Jiufu Guo <guojiufu@linux.ibm.com>
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.
19691 2022-01-24 Jakub Jelinek <jakub@redhat.com>
19693 PR sanitizer/104158
19694 * opt-functions.awk (var_set): Handle EnumBitSet property.
19695 * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
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
19705 (trace-pc, trace-cmp): Drop Set properties.
19707 2022-01-24 Jakub Jelinek <jakub@redhat.com>
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_.
19718 2022-01-24 Jakub Jelinek <jakub@redhat.com>
19720 PR sanitizer/104158
19721 * opt-functions.awk (var_set): Handle EnumSet property.
19722 * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
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.
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
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.
19747 2022-01-24 Jakub Jelinek <jakub@redhat.com>
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).
19775 2022-01-24 Kito Cheng <kito.cheng@sifive.com>
19777 * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
19778 Skip zicsr and zifencei if I-ext is 2.0.
19780 2022-01-24 Jia-Wei Chen <jiawei@iscas.ac.cn>
19782 * config.gcc: Modify default isa_spec version.
19784 2022-01-24 Jiufu Guo <guojiufu@linux.ibm.com>
19786 PR tree-optimization/102087
19787 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
19788 Correct PLUS result type.
19790 2022-01-24 H.J. Lu <hjl.tools@gmail.com>
19793 * config/i386/predicates.md (bcst_mem_operand): Also check mode
19794 of memory broadcast.
19796 2022-01-23 Andrew Pinski <apinski@marvell.com>
19799 * config/aarch64/aarch64-builtins.cc
19800 (aarch64_general_gimple_fold_builtin): Handle
19801 __builtin_aarch64_sqrt* and simplify into SQRT internal
19804 2022-01-22 Jakub Jelinek <jakub@redhat.com>
19807 * opts-global.cc (handle_common_deferred_options): Quote
19808 --enable-plugin in diagnostics to avoid -Werror=format-diag.
19810 2022-01-21 Michael Meissner <meissner@the-meissners.org>
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.
19826 2022-01-21 H.J. Lu <hjl.tools@gmail.com>
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.
19835 2022-01-21 Sören Tempel <soeren@soeren-tempel.net>
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.
19842 2022-01-21 Bill Schmidt <wschmidt@linux.ibm.com>
19844 * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
19845 vector float and vector double.
19847 2022-01-21 Bill Seurer <seurer@gcc.gnu.org>
19849 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
19850 Fix mention of ifunc in string.
19852 2022-01-21 Roger Sayle <roger@nextmovesoftware.com>
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
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).
19868 2022-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
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
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
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.
19915 2022-01-21 Martin Liska <mliska@suse.cz>
19917 * configure.ac: Detect ld_is_mold and use it for
19918 comdat_group=yes and gcc_cv_ld_hidden=yes.
19919 * configure: Regenerate.
19921 2022-01-21 Richard Biener <rguenther@suse.de>
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.
19928 2022-01-21 Ard Biesheuvel <ardb@kernel.org>
19930 * config/arm/arm-opts.h (enum stack_protector_guard): New.
19931 * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
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.
19948 2022-01-21 Richard Biener <rguenther@suse.de>
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
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.
19960 2022-01-21 Richard Biener <rguenther@suse.de>
19962 PR tree-optimization/104152
19963 * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
19964 can_duplicate_and_interleave_p check.
19966 2022-01-21 Jakub Jelinek <jakub@redhat.com>
19968 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
19969 Avoid passing var to warning_at when the format string doesn't
19972 2022-01-21 Aldy Hernandez <aldyh@redhat.com>
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):
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
19991 (path_oracle::reset_path): Clear m_registered bitmap.
19992 * value-relation.h (path_oracle::set_root_oracle): New.
19994 2022-01-21 Jakub Jelinek <jakub@redhat.com>
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
20001 2022-01-20 Richard Biener <rguenther@suse.de>
20003 PR middle-end/100786
20004 * gimple-fold.cc (get_symbol_constant_value): Only return
20005 values of compatible type to the symbol.
20007 2022-01-20 Andrew MacLeod <amacleod@redhat.com>
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.
20016 2022-01-20 Richard Biener <rguenther@suse.de>
20019 * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
20020 LHS before folding __builtin_ia32_shufpd and friends.
20022 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
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.
20029 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
20031 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
20033 (aarch32_crypto_aese_fused_protected): Likewise.
20034 (aarch32_crypto_aesd_fused_protected): Likewise.
20036 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
20038 * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
20039 to define_expand. Add mitigation for the Cortex-A AES erratum
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.
20046 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
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
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.
20059 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
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.
20074 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
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.
20084 2022-01-20 Martin Liska <mliska@suse.cz>
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
20091 2022-01-20 Jakub Jelinek <jakub@redhat.com>
20094 * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
20095 block_num > 0, index entry even if !have_multiple_function_sections.
20097 2022-01-20 liuhongt <hongtao.liu@intel.com>
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.
20105 2022-01-20 Richard Biener <rguenther@suse.de>
20107 PR tree-optimization/104114
20108 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
20109 single element vector decomposition.
20111 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
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.
20117 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
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
20123 (noce_convert_multiple_sets): Create two sequences and use the less
20126 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
20128 * rtl.h (struct rtx_comparison): New struct that holds an rtx
20130 * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
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
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.
20145 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
20147 * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
20148 (noce_process_if_block): Use potential costs.
20150 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
20152 * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
20153 (bb_ok_for_noce_convert_multiple_sets): Likewise.
20155 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
20157 * ifcvt.cc (need_cmov_or_rewire): New function.
20158 (noce_convert_multiple_sets): Call it.
20160 2022-01-19 David Malcolm <dmalcolm@redhat.com>
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.
20353 2022-01-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
20355 PR tree-optimization/103997
20356 * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
20359 2022-01-19 Jakub Jelinek <jakub@redhat.com>
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.
20367 2022-01-19 Richard Biener <rguenther@suse.de>
20369 PR tree-optimization/104112
20370 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
20371 for required intermediate vector types.
20373 2022-01-19 Jakub Jelinek <jakub@redhat.com>
20375 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
20377 2022-01-19 Martin Liska <mliska@suse.cz>
20379 * configure.ac: Remove -Wno-error=format-diag.
20380 * configure: Regenerate.
20382 2022-01-19 Martin Liska <mliska@suse.cz>
20384 * config/riscv/riscv.cc (riscv_handle_type_attribute):
20385 Update one -Wformat-diag string in warning message.
20387 2022-01-19 Jakub Jelinek <jakub@redhat.com>
20389 PR middle-end/104103
20390 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
20393 2022-01-19 Jakub Jelinek <jakub@redhat.com>
20396 * fold-const.cc (address_compare): Consider different STRING_CSTs
20397 with the same lengths that memcmp the same as equal, not different.
20399 2022-01-19 Jakub Jelinek <jakub@redhat.com>
20401 * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
20404 2022-01-19 Martin Liska <mliska@suse.cz>
20405 Thomas Schwinge <thomas@codesourcery.com>
20407 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
20410 2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
20413 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
20416 2022-01-19 Jakub Jelinek <jakub@redhat.com>
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}.
20430 2022-01-19 Martin Sebor <msebor@redhat.com>
20432 PR middle-end/104069
20433 * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
20434 an unknown result as documented.
20436 2022-01-18 Andrew Pinski <apinski@marvell.com>
20438 * ipa-split.cc (visit_bb): Fix comment before the
20439 warning/error attribute checking code.
20441 2022-01-18 David Faust <david.faust@oracle.com>
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.
20448 2022-01-18 David Faust <david.faust@oracle.com>
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
20456 2022-01-18 Maciej W. Rozycki <macro@embecosm.com>
20458 * common/config/riscv/riscv-common.cc
20459 (riscv_subset_list::parse_multiletter_ext): Move pointer
20460 arithmetic ahead of `free'.
20462 2022-01-18 Jason Merrill <jason@redhat.com>
20465 * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
20468 2022-01-18 Sandra Loosemore <sandra@codesourcery.com>
20470 PR middle-end/103163
20471 * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
20472 (init_emit_once): ...not here.
20474 2022-01-18 Martin Liska <mliska@suse.cz>
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.
20511 2022-01-18 Martin Liska <mliska@suse.cz>
20513 * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
20515 (vms_pragma_standard): Likewise.
20516 (vms_pragma_extern_prefix): Likewise.
20518 2022-01-18 Martin Liska <mliska@suse.cz>
20520 * config/xtensa/xtensa.cc (print_operand): Fix warnings.
20521 (print_operand_address): Likewise.
20522 (xtensa_multibss_section_type_flags): Likewise.
20524 2022-01-18 Martin Liska <mliska@suse.cz>
20526 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
20527 wording of an error message.
20529 2022-01-18 Martin Liska <mliska@suse.cz>
20531 * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
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.
20542 2022-01-18 Martin Liska <mliska@suse.cz>
20544 * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
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.
20551 2022-01-18 Martin Liska <mliska@suse.cz>
20553 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
20555 * config/nvptx/nvptx.md: Remove trailing dot.
20557 2022-01-18 Martin Liska <mliska@suse.cz>
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.
20566 2022-01-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
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.
20586 2022-01-18 Andrew MacLeod <amacleod@redhat.com>
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.
20597 2022-01-18 Richard Biener <rguenther@suse.de>
20600 * ipa-inline.cc (inline_small_functions): Do not enqueue call
20601 edges originating in functions compiled with -Og.
20603 2022-01-18 Richard Biener <rguenther@suse.de>
20606 * passes.def (pass_all_optimizations_g): Remove pass_modref
20607 and pass_local_pure_const.
20609 2022-01-18 Martin Liska <mliska@suse.cz>
20611 * config/s390/s390.cc: Fix -Wformat-diag warnings.
20613 2022-01-18 Martin Liska <mliska@suse.cz>
20615 * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
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.
20624 2022-01-18 Martin Liska <mliska@suse.cz>
20626 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
20627 keywords and use %qs instead of %<%s%>.
20629 2022-01-18 Richard Biener <rguenther@suse.de>
20631 PR tree-optimization/103987
20632 * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
20633 query with a pointer check.
20635 2022-01-18 Richard Sandiford <richard.sandiford@arm.com>
20638 * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
20639 When using MEM_EXPR, require the base to be a decl.
20641 2022-01-18 Richard Biener <rguenther@suse.de>
20643 * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
20645 * function.h (struct function): Likewise.
20647 2022-01-18 Arnaud Charlet <charlet@adacore.com>
20649 * doc/install.texi: Update prerequisites for GNAT
20651 2022-01-18 Andrew Pinski <apinski@marvell.com>
20653 PR tree-optimization/101941
20654 * ipa-split.cc (visit_bb): Disallow function calls where
20655 the function has either error or warning attribute.
20657 2022-01-18 Richard Biener <rguenther@suse.de>
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.
20664 2022-01-17 Martin Liska <mliska@suse.cz>
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.
20677 2022-01-17 Martin Liska <mliska@suse.cz>
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.
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.
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.
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.
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.
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.
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.
21675 2022-01-17 Martin Liska <mliska@suse.cz>
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...
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...
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...
22265 * ddg.c: Moved to...
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...
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...
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...
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...
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...
22605 * jump.c: Moved to...
22606 * jump.cc: ...here.
22607 * langhooks.c: Moved to...
22608 * langhooks.cc: ...here.
22609 * lcm.c: Moved to...
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...
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...
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...
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...
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...
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...
23041 * xcoffout.c: Moved to...
23042 * xcoffout.cc: ...here.
23044 2022-01-17 qing zhao <qing.zhao@oracle.com>
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
23050 (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
23051 (warn_uninitialized_vars): Likewise.
23052 (warn_uninitialized_phi): Likewise.
23054 2022-01-17 Jason Merrill <jason@redhat.com>
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.
23062 2022-01-17 Richard Biener <rguenther@suse.de>
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.
23069 2022-01-17 Jakub Jelinek <jakub@redhat.com>
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.
23087 2022-01-17 Kewen Lin <linkw@linux.ibm.com>
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.
23094 2022-01-17 Haochen Gui <guihaoc@gcc.gnu.org>
23097 * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
23099 2022-01-16 wwwhhhyyy <hongyu.wang@intel.com>
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>):
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>):
23114 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
23115 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
23117 * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
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
23128 2022-01-15 Martin Sebor <msebor@redhat.com>
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.
23164 2022-01-15 Martin Sebor <msebor@redhat.com>
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.
23187 2022-01-15 Uroš Bizjak <ubizjak@gmail.com>
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.
23196 2022-01-14 Eric Botcazou <ebotcazou@adacore.com>
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.
23207 2022-01-14 Richard Sandiford <richard.sandiford@arm.com>
23209 PR middle-end/104026
23210 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
23211 partial_load_store_bias.
23213 2022-01-14 Martin Sebor <msebor@redhat.com>
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.
23219 2022-01-14 Martin Liska <mliska@suse.cz>
23221 * configure: Regenerate.
23223 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
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.
23236 2022-01-14 Kewen Lin <linkw@linux.ibm.com>
23238 PR tree-optimization/104015
23239 * tree-vect-loop.c (vect_analyze_loop): Check
23240 param_vect_partial_vector_usage for supports_partial_vectors.
23242 2022-01-14 Jakub Jelinek <jakub@redhat.com>
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.
23249 2022-01-14 Jakub Jelinek <jakub@redhat.com>
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).
23257 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
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.
23264 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
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.
23271 2022-01-14 Roger Sayle <roger@nextmovesoftware.com>
23272 Uroš Bizjak <ubizjak@gmail.com>
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.
23281 2022-01-14 Martin Liska <mliska@suse.cz>
23283 * common/config/arm/arm-common.c (arm_target_mode): Fix
23284 warning: unterminated quoting directive [-Wformat=].
23286 2022-01-14 Siddhesh Poyarekar <siddhesh@gotplt.org>
23288 PR tree-optimization/104009
23289 * tree-object-size.c (compute_builtin_object_size): Bail out on
23291 (plus_stmt_object_size): Return maximum of wholesize and minimum
23292 of 0 for negative offset.
23294 2022-01-14 liuhongt <hongtao.liu@intel.com>
23299 * config/i386/i386.md (*xor2andn): Refine predicate of
23300 operands[0] from nonimmediate_operand to
23301 register_operand, remove TARGET_AVX512BW from condition.
23303 2022-01-14 David Malcolm <dmalcolm@redhat.com>
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.
23309 2022-01-13 Anthony Sharp <anthonysharp15@gmail.com>
23310 Jason Merrill <jason@redhat.com>
23313 * doc/invoke.texi: Documentation for Wmissing-template-keyword.
23315 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
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.
23323 2022-01-13 Robin Dapp <rdapp@linux.ibm.com>
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.
23342 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
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.
23349 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
23351 PR tree-optimization/96707
23352 * range-op.cc (operator_rshift::lhs_op1_relation): New.
23354 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
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.
23366 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
23369 * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
23371 2022-01-13 Martin Liska <mliska@suse.cz>
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.
23385 2022-01-13 Paul A. Clarke <pc@us.ibm.com>
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
23397 2022-01-13 Jakub Jelinek <jakub@redhat.com>
23399 PR tree-optimization/103989
23400 * tree-inline.c (setup_one_parameter): Don't copy parms with
23403 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
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.
23410 2022-01-13 Julian Brown <julian@codesourcery.com>
23411 Thomas Schwinge <thomas@codesourcery.com>
23413 * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
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.
23419 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
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.
23425 2022-01-13 Martin Liska <mliska@suse.cz>
23427 * config/epiphany/epiphany.c (epiphany_mode_priority):
23428 Use gcc_unreachable for not handled cases.
23430 2022-01-13 Martin Liska <mliska@suse.cz>
23432 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
23433 Use %qs format specifier.
23434 (epiphany_override_options): Wrap keyword in %<, %>.
23436 2022-01-13 Haochen Jiang <haochen.jiang@intel.com>
23439 * config/i386/i386.md (*xor2andn): New define_insn_and_split.
23441 2022-01-13 Xionghu Luo <luoxhu@linux.ibm.com>
23443 * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
23445 2022-01-12 Uroš Bizjak <ubizjak@gmail.com>
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.
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.
23475 2022-01-12 Clément Chigot <clement.chigot@atos.net>
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.
23485 2022-01-12 Andrew MacLeod <amacleod@redhat.com>
23487 PR tree-optimization/103551
23488 * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
23490 2022-01-12 Richard Biener <rguenther@suse.de>
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.
23498 2022-01-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
23500 * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
23501 does not add autovectorize_vector_modes.
23503 2022-01-12 Martin Liska <mliska@suse.cz>
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.
23516 2022-01-12 Martin Liska <mliska@suse.cz>
23518 * config.gcc: Include elfos.h before ${tm_file}.
23520 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
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.
23528 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
23530 * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
23533 2022-01-11 qing zhao <qing.zhao@oracle.com>
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
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.
23548 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
23550 * flag-types.h (enum gfc_convert): Add flags for
23553 2022-01-11 Michael Meissner <meissner@the-meissners.org>
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.
23559 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
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.
23567 2022-01-11 Uroš Bizjak <ubizjak@gmail.com>
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.
23581 2022-01-11 Jakub Jelinek <jakub@redhat.com>
23584 * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
23586 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
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
23601 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
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.
23609 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
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.
23616 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
23618 PR middle-end/70090
23619 * builtins.c (fold_builtin_object_size): Adjust for dynamic size
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
23625 (object_sizes_get): Return suitable gimple variable for
23627 (bundle_sizes): New function.
23628 (object_sizes_set): Use it and handle dynamic object size
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):
23634 (compute_builtin_object_size): Call gimplify_size_expressions
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.
23642 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
23643 Jakub Jelinek <jakub@redhat.com>
23645 PR tree-optimization/103961
23646 * tree-object-size.c (plus_stmt_object_size): Always avoid
23647 computing offset for -1 size.
23649 2022-01-11 Andrew MacLeod <amacleod@redhat.com>
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.
23655 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
23657 * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
23658 definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
23660 2022-01-11 Roger Sayle <roger@nextmovesoftware.com>
23661 Richard Biener <rguenther@suse.de>
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.
23672 2022-01-11 Xionghu Luo <luoxhu@linux.ibm.com>
23675 * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
23677 * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
23679 * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
23681 2022-01-11 Olivier Hainque <hainque@adacore.com>
23683 * gcc.c (driver_handle_option): State --sysroot as
23686 2022-01-11 Kewen Lin <linkw@linux.ibm.com>
23688 * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
23689 useless related to option -mno-power10.
23691 2022-01-11 Haochen Jiang <haochen.jiang@intel.com>
23694 * config/i386/sse.md (*andnot<mode>3): Extend predicate of
23695 operands[1] from register_operand to vector_operand.
23697 2022-01-10 Uroš Bizjak <ubizjak@gmail.com>
23700 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
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.
23711 2022-01-10 Richard Biener <rguenther@suse.de>
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.
23718 2022-01-10 Paul A. Clarke <pc@us.ibm.com>
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.
23725 2022-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
23727 * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
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.
23733 2022-01-10 Jakub Jelinek <jakub@redhat.com>
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.
23744 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
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.
23757 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
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.
23771 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
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
23788 (move_spill_restore): Adjust for the new behavior of
23789 propagate_allocno_info.
23791 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
23793 PR rtl-optimization/98782
23794 * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
23796 * ira-color.c (color_pass): ...here.
23798 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
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.
23804 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
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):
23810 (calculate_allocno_spill_cost): Use ira_loop_border_costs.
23811 (color_pass): Likewise.
23812 (move_spill_restore): Likewise.
23814 2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
23817 * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
23819 2022-01-10 Richard Biener <rguenther@suse.de>
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.
23825 2022-01-08 Roger Sayle <roger@nextmovesoftware.com>
23827 * config/i386/i386-expand.c (ix86_expand_vector_move): Add
23828 special case for TImode to V1TImode moves, going via V2DImode.
23830 2022-01-08 Jakub Jelinek <jakub@redhat.com>
23833 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
23836 2022-01-08 David Malcolm <dmalcolm@redhat.com>
23838 * doc/analyzer.texi
23839 (Special Functions for Debugging the Analyzer): Document
23840 __analyzer_dump_escaped.
23842 2022-01-08 David Malcolm <dmalcolm@redhat.com>
23844 * doc/analyzer.texi (Other Debugging Techniques): Document
23845 region::is_named_decl_p.
23847 2022-01-07 Andrew Pinski <apinski@marvell.com>
23850 * config/arm/aarch-common.c (arm_md_asm_adjust):
23851 Use a temp if !REG_P.
23853 2022-01-07 Uroš Bizjak <ubizjak@gmail.com>
23855 * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
23856 (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
23858 2022-01-07 liuhongt <hongtao.liu@intel.com>
23860 PR rtl-optimization/103750
23861 * fwprop.c (forward_propagate_into): Allow propagations from
23862 inner loop to outer loop.
23864 2022-01-07 Roger Sayle <roger@nextmovesoftware.com>
23866 * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
23868 2022-01-07 Haochen Gui <guihaoc@gcc.gnu.org>
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.
23874 2022-01-07 liuhongt <hongtao.liu@intel.com>
23876 * config/i386/sse.md
23877 (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
23878 UNSPEC_PCMP_UNSIGNED.
23880 2022-01-07 liuhongt <hongtao.liu@intel.com>
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.
23895 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
23898 * config/i386/i386.c (ix86_output_indirect_function_return):
23899 Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
23901 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
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):
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
23916 2022-01-06 Uroš Bizjak <ubizjak@gmail.com>
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.
23928 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
23930 * common/config/riscv/riscv-common.c (riscv_implied_info): Add
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.
23966 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
23968 * common/config/riscv/riscv-common.c
23969 (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
23972 2022-01-06 Jakub Jelinek <jakub@redhat.com>
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.
23979 2022-01-06 Jakub Jelinek <jakub@redhat.com>
23981 PR rtl-optimization/103908
23982 * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
23985 2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com>
23988 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
23989 Skip over instances with undefined function types.
23991 2022-01-05 Andrew Pinski <apinski@marvell.com>
23994 * config/i386/i386.h (x86_mfence): Mark with GTY.
23996 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
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.
24009 2022-01-05 Martin Sebor <msebor@redhat.com>
24011 * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
24012 %qs to avoid -Wformat-diag.
24014 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
24017 * config/i386/mmx.md (one_cmplv2qi2): Change
24018 alternatives 1,2 type from sselog to sselog1.
24020 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
24023 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
24024 narrow mode remapped elements for !one_operand_p case.
24026 2022-01-05 Richard Biener <rguenther@suse.de>
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.
24032 2022-01-05 Jakub Jelinek <jakub@redhat.com>
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.
24039 2022-01-05 Kewen Lin <linkw@linux.ibm.com>
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
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.
24068 2022-01-04 Martin Sebor <msebor@redhat.com>
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
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.
24089 2022-01-04 Uroš Bizjak <ubizjak@gmail.com>
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.
24099 2022-01-04 Richard Biener <rguenther@suse.de>
24101 PR tree-optimization/103800
24102 * tree-vect-loop.c (vectorizable_phi): Remove assert and
24105 2022-01-04 Richard Biener <rguenther@suse.de>
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
24114 (fini_pre): .. here.
24116 2022-01-04 Roger Sayle <roger@nextmovesoftware.com>
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.
24129 2022-01-04 Olivier Hainque <hainque@adacore.com>
24131 * gcc.c (driver_handle_option): do_save --sysroot.
24133 2022-01-04 Richard Biener <rguenther@suse.de>
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.
24141 2022-01-04 Jakub Jelinek <jakub@redhat.com>
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.
24147 2022-01-04 Cui,Lili <lili.cui@intel.com>
24149 * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
24150 to Alderlake and Rocketlake.
24152 2022-01-04 Chung-Lin Tang <cltang@codesourcery.com>
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'
24158 2022-01-04 liuhongt <hongtao.liu@intel.com>
24161 * config/i386/sse.md (*bit_and_float_vector_all_ones):
24162 Force_reg operand 1 to avoid ICE.
24164 2022-01-04 Jason Merrill <jason@redhat.com>
24166 * tree-pretty-print.c (do_niy): Add spc parameter.
24168 (print_call_name): Add spc local variable.
24170 2022-01-03 Uroš Bizjak <ubizjak@gmail.com>
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.
24181 2022-01-03 Andrew Pinski <apinski@marvell.com>
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.
24189 2022-01-03 Jakub Jelinek <jakub@redhat.com>
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):
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
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
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.
24226 2022-01-03 Richard Biener <rguenther@suse.de>
24228 PR middle-end/103851
24229 * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
24231 2022-01-03 Jakub Jelinek <jakub@redhat.com>
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.
24238 2022-01-03 Martin Liska <mliska@suse.cz>
24240 * doc/extend.texi: Use ; for function declarations.
24242 2022-01-03 Jakub Jelinek <jakub@redhat.com>
24245 * symtab.c (symtab_node::equal_address_to): Return 0 if one of
24246 VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
24248 2022-01-03 Jakub Jelinek <jakub@redhat.com>
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.
24263 2022-01-02 Uroš Bizjak <ubizjak@gmail.com>
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.
24280 2022-01-02 John David Anglin <danglin@gcc.gnu.org>
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.
24288 Copyright (C) 2022 Free Software Foundation, Inc.
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.