1 2022-07-12 Aldy Hernandez <aldyh@redhat.com>
3 * range-op.cc (unsigned_singleton_p): Remove.
4 (operator_bitwise_and::remove_impossible_ranges): Remove.
5 (operator_bitwise_and::fold_range): Set nonzero bits. *
6 * value-range.cc (irange::get_nonzero_bits): Remove
8 (irange::dump_bitmasks): Remove legacy_mode_p check.
10 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
13 * predict.h (insn_optimization_type): Declare.
14 * predict.cc (insn_optimization_type): New function.
15 * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
16 (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
17 (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
18 * internal-fn.cc (unary_convert_direct): New macro.
19 (expand_convert_optab_fn): New function.
20 (expand_unary_convert_optab_fn): New macro.
21 (direct_unary_convert_optab_supported_p): Likewise.
22 * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
23 convert_optab_handler.
24 * config/aarch64/aarch64-protos.h
25 (aarch64_builtin_vectorized_function): Delete.
26 * config/aarch64/aarch64-builtins.cc
27 (aarch64_builtin_vectorized_function): Delete.
28 * config/aarch64/aarch64.cc
29 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
30 * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
31 * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
32 optimize_insn_for_size_p test.
34 2022-07-12 Richard Biener <rguenther@suse.de>
36 * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
38 (vect_do_peeling): Do not call it, adjust comment.
40 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
42 * config/aarch64/aarch64-builtins.cc
43 (aarch64_builtin_vectorized_function): Remove handling of
44 floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
46 2022-07-11 Andrew MacLeod <amacleod@redhat.com>
48 PR tree-optimization/106234
49 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
50 cache value before recursively resolving it.
52 2022-07-11 Roger Sayle <roger@nextmovesoftware.com>
54 * config/i386/i386-features.h (scalar_chain): Add fields
55 insns_conv, n_sse_to_integer and n_integer_to_sse to this
56 parent class, moved from general_scalar_chain.
57 (scalar_chain::convert_compare): Protected method moved
58 from general_scalar_chain.
59 (mark_dual_mode_def): Make protected, not private virtual.
60 (scalar_chain:convert_op): New private virtual method.
61 (general_scalar_chain::general_scalar_chain): Simplify constructor.
62 (general_scalar_chain::~general_scalar_chain): Delete destructor.
63 (general_scalar_chain): Move insns_conv, n_sse_to_integer and
64 n_integer_to_sse fields to parent class, scalar_chain.
65 (general_scalar_chain::mark_dual_mode_def): Delete prototype.
66 (general_scalar_chain::convert_compare): Delete prototype.
67 (timode_scalar_chain::compute_convert_gain): Remove simplistic
68 implementation, convert to a method prototype.
69 (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
70 (timode_scalar_chain::convert_op): Prototype new virtual method.
71 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
72 Allocate insns_conv and initialize n_sse_to_integer and
73 n_integer_to_sse fields in constructor.
74 (scalar_chain::scalar_chain): Free insns_conv in destructor.
75 (general_scalar_chain::general_scalar_chain): Delete
76 constructor, now defined in the class declaration.
77 (general_scalar_chain::~general_scalar_chain): Delete destructor.
78 (scalar_chain::mark_dual_mode_def): Renamed from
79 general_scalar_chain::mark_dual_mode_def.
80 (timode_scalar_chain::mark_dual_mode_def): Delete.
81 (scalar_chain::convert_compare): Renamed from
82 general_scalar_chain::convert_compare.
83 (timode_scalar_chain::compute_convert_gain): New method to
84 determine the gain from converting a TImode chain to V1TImode.
85 (timode_scalar_chain::convert_op): New method to convert an
86 operand from TImode to V1TImode.
87 (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
88 on REG_EQUAL notes that were originally TImode (not CONST_INT).
89 Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
90 (timode_mem_p): Helper predicate to check where operand is
91 memory reference with sufficient alignment for TImode STV.
92 (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
93 to check whether COMPARE is convertible. Handle SET_DESTs that
94 that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
95 CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
97 2022-07-11 Richard Sandiford <richard.sandiford@arm.com>
99 PR tree-optimization/106250
100 * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
101 argument to directly_supported_p.
103 2022-07-11 Richard Biener <rguenther@suse.de>
105 * tree-into-ssa.cc (update_ssa): Do not forcefully
106 re-compute dominance fast queries for TODO_update_ssa_no_phi.
108 2022-07-11 Richard Biener <rguenther@suse.de>
110 PR tree-optimization/106228
111 * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
112 VUSE compute for the non-loop case.
114 2022-07-11 Richard Biener <rguenther@suse.de>
116 * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
117 (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
118 (rewrite_update_dom_walker::m_in_region_flag): New.
119 (rewrite_update_dom_walker::before_dom_children): If the region
120 to update is marked, STOP at exits.
121 (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
123 (dump_update_ssa): Use bitmap_empty_p.
124 (update_ssa): Likewise. Use REWRITE_UPDATE_REGION when
125 TODO_update_ssa_no_phi.
126 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
127 pending update_ssa to the caller.
129 2022-07-11 Richard Biener <rguenthert@suse.de>
132 * config/i386/i386-options.cc (ix86_set_current_function):
133 Rebuild the target optimization node whenever necessary,
134 not only when the optimization node didn't change.
136 2022-07-11 Richard Biener <rguenther@suse.de>
138 PR tree-optimization/106228
139 * tree-vect-data-refs.cc (vect_setup_realignment): Properly
140 set a VUSE operand on the emitted load.
142 2022-07-11 Aldy Hernandez <aldyh@redhat.com>
144 * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
145 verification against legacy value_range.
146 (gimple_ranger::register_inferred_ranges): Same.
147 (gimple_ranger::export_global_ranges): Rename update_global_range
149 * tree-core.h (struct range_info_def): Remove.
150 (struct irange_storage_slot): New.
151 (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
152 (struct tree_ssa_name): Add vrange_storage support.
153 * tree-ssanames.cc (range_info_p): New.
154 (range_info_fits_p): New.
155 (range_info_alloc): New.
156 (range_info_free): New.
157 (range_info_get_range): New.
158 (range_info_set_range): New.
159 (set_range_info_raw): Remove.
160 (set_range_info): Adjust to use vrange_storage.
161 (set_nonzero_bits): Same.
162 (get_nonzero_bits): Same.
163 (duplicate_ssa_name_range_info): Remove overload taking
165 Rewrite tree overload to use vrange_storage.
166 (duplicate_ssa_name_fn): Adjust to use vrange_storage.
167 * tree-ssanames.h (struct range_info_def): Remove.
168 (set_range_info): Adjust prototype to take vrange.
169 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
170 duplicate_ssa_name_range_info.
171 * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
172 (SSA_NAME_RANGE_TYPE): Remove.
173 * value-query.cc (get_ssa_name_range_info): Adjust to use
175 (update_global_range): Remove.
176 (get_range_global): Remove as_a<irange>.
177 * value-query.h (update_global_range): Remove.
178 * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
179 Rename update_global_range to set_range_info.
180 * value-range-storage.cc (vrange_storage::alloc_slot): Remove
183 2022-07-10 Aldy Hernandez <aldyh@redhat.com>
185 * value-range.cc (irange::operator=): Call verify_range.
186 (irange::irange_set): Normalize kind after everything else has
188 (irange::irange_set_anti_range): Same.
190 (irange::verify_range): Disallow nonzero masks for VARYING.
191 (irange::irange_union): Call verify_range.
192 Handle nonzero masks better.
193 (irange::irange_intersect): Same.
194 (irange::set_nonzero_bits): Calculate mask if either range has an
196 (irange::intersect_nonzero_bits): Same.
197 (irange::union_nonzero_bits): Same.
198 (range_tests_nonzero_bits): New.
199 (range_tests): Call range_tests_nonzero_bits.
200 * value-range.h (class irange): Remove set_nonzero_bits method
202 (irange::varying_compatible_p): Set nonzero mask.
204 2022-07-10 Xi Ruoyao <xry111@xry111.site>
206 * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
207 the sign-extend of result in the RTL template.
208 (<any_div><mode>3): Adjust for <any_div>di3_fake change.
210 2022-07-10 Xi Ruoyao <xry111@xry111.site>
212 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
213 Remove static, for use in the machine description file.
214 * config/loongarch/loongarch-protos.h:
215 (loongarch_check_zero_div_p): Add prototype.
216 * config/loongarch/loongarch.md (enabled): New attr.
217 (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
218 idiv. Conditionally enable the alternatives using
219 loongarch_check_zero_div_p.
220 (<optab>di3_fake): Likewise.
222 2022-07-10 Xi Ruoyao <xry111@xry111.site>
224 * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
227 2022-07-09 Aldy Hernandez <aldyh@redhat.com>
229 * value-range.cc (irange::irange_single_pair_union): Set
230 VR_VARYING when appropriate.
232 2022-07-09 Vit Kabele <vit.kabele@sysgo.com>
234 * stor-layout.cc (finalize_record_size): Extend warning message.
236 2022-07-09 Sam Feifer <sfeifer@redhat.com>
238 PR tree-optimization/98304
239 * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
241 2022-07-09 Jeff Law <jeffreyalaw@gmail.com>
243 * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
244 initializer and use clear_storage rather than copying the
245 NULs to the destination array.
247 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
249 * config/i386/i386.md (define_peephole2): Use match_operand of
250 flags_reg_operand to capture and preserve the mode of FLAGS_REG.
251 (define_peephole2): Likewise.
252 (define_peephole2): Likewise...
254 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
256 * config/i386/i386-features.cc (convert_compare): Add support
257 for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
258 by generating a pandn followed by ptest.
259 (convertible_comparison_p): Recognize both *cmpdi_doubleword and
260 recent *testdi_not_doubleword comparison patterns.
262 2022-07-09 Tamar Christina <tamar.christina@arm.com>
264 * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
265 indicate that the value is not undefined.
267 2022-07-09 Andrew Pinski <apinski@marvell.com>
269 PR tree-optimization/106087
270 * tree-ssa-dce.cc (simple_dce_from_worklist): Check
271 to make sure the statement is only defining one operand.
273 2022-07-08 Lewis Hyatt <lhyatt@gmail.com>
275 PR preprocessor/91733
276 * input.cc (find_end_of_line): New helper function.
277 (file_cache_slot::get_next_line): Recognize \r as a line ending.
278 * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
279 since \r will now be interpreted as a line-ending.
281 2022-07-08 Martin Liska <mliska@suse.cz>
284 * opts.cc (finish_options): Use 2 calls to
285 report_conflicting_sanitizer_options.
287 2022-07-08 Richard Biener <rguenther@suse.de>
289 PR tree-optimization/106226
290 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
291 no SSA update is needed. Move virtual SSA update ...
292 * tree-vectorizer.cc (pass_vectorize::execute): ... here,
293 via forced virtual renaming when TODO_update_ssa_only_virtuals
295 (vect_transform_loops): Return TODO_update_ssa_only_virtuals
296 when virtual SSA update is required.
297 (try_vectorize_loop_1): Adjust.
298 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
299 virtual renaming if the ABI forces an aggregate return
300 but the original call did not have a virtual definition.
302 2022-07-08 Martin Liska <mliska@suse.cz>
304 * toplev.cc (init_asm_output): Do not init asm_out_file.
306 2022-07-08 Tamar Christina <tamar.christina@arm.com>
308 PR tree-optimization/106063
309 * match.pd: Do not apply pattern after veclower is not supported.
311 2022-07-08 Thomas Schwinge <thomas@codesourcery.com>
313 * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
316 2022-07-08 Tamar Christina <tamar.christina@arm.com>
318 * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
319 still undefined and if so emit a subreg move instead.
320 (store_integral_bit_field): Likewise.
321 (store_bit_field): Likewise.
322 * expr.h (write_complex_part): Likewise.
323 * expmed.h (store_bit_field): Add new parameter.
324 * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
326 (expand_ifn_atomic_compare_exchange): Likewise.
327 * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
328 * emit-rtl.cc (validate_subreg): Likewise.
329 * expr.cc (emit_group_store): Likewise.
330 (copy_blkmode_from_reg): Likewise.
331 (copy_blkmode_to_reg): Likewise.
332 (clear_storage_hints): Likewise.
333 (write_complex_part): Likewise.
334 (emit_move_complex_parts): Likewise.
335 (expand_assignment): Likewise.
336 (store_expr): Likewise.
337 (store_field): Likewise.
338 (expand_expr_real_2): Likewise.
339 * ifcvt.cc (noce_emit_move_insn): Likewise.
340 * internal-fn.cc (expand_arith_set_overflow): Likewise.
341 (expand_arith_overflow_result_store): Likewise.
342 (expand_addsub_overflow): Likewise.
343 (expand_neg_overflow): Likewise.
344 (expand_mul_overflow): Likewise.
345 (expand_arith_overflow): Likewise.
347 2022-07-08 Haochen Jiang <haochen.jiang@intel.com>
350 * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
351 Rename from *sse2_cvtps2pd<mask_name>_1.
352 (vec_unpacks_lo_v4sf): Add handler for memory operand.
354 2022-07-08 Lulu Cheng <chenglulu@loongson.cn>
356 * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
357 Modify fp_sp_offset and gp_sp_offset's calculation method,
358 when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
361 2022-07-07 David Malcolm <dmalcolm@redhat.com>
363 * diagnostic-format-json.cc (json_from_location_range): Update for
364 removal of label_text::maybe_free in favor of automatic memory
366 * diagnostic-format-sarif.cc
367 (sarif_builder::make_location_object): Likewise.
368 * diagnostic-show-locus.cc (struct pod_label_text): New.
369 (class line_label): Convert m_text from label_text to pod_label_text.
370 (layout::print_any_labels): Move "text" to the line_label.
371 * tree-diagnostic-path.cc (path_label::get_text): Update for
372 removal of label_text::maybe_free in favor of automatic memory
374 (event_range::print): Likewise.
375 (default_tree_diagnostic_path_printer): Likewise.
376 (default_tree_make_json_for_path): Likewise.
378 2022-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
380 * statistics.cc (get_function_name): Add check to see if fn is not NULL.
382 2022-07-07 Richard Biener <rguenther@suse.de>
384 * tree-into-ssa.cc (iterating_old_ssa_names): New.
385 (add_new_name_mapping): Grow {new,old}_ssa_names separately
386 and only when actually needed. Assert we are not growing
387 the old_ssa_names set when iterating over it.
388 (update_ssa): Remove old_ssa_names copying and empty_p
389 query, note we are iterating over it and expect no set changes.
391 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
393 * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
394 (prepare_target_image, main): Handle OpenMP 'requires'.
395 (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
396 'GOMP_offload_unregister_ver'.
398 2022-07-07 Richard Biener <rguenther@suse.de>
401 * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
404 2022-07-07 Richard Biener <rguenther@suse.de>
406 * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
407 number of LC PHIs inserted.
408 (add_exit_phis): Return whether any variable required
409 multiple LC PHI nodes.
410 (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
413 2022-07-07 Richard Biener <rguenther@suse.de>
415 * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
416 the def loop exit block bitmap as argument instead of
417 re-computing it here.
418 (add_exit_phis_var): Adjust.
419 (loop_name_cmp): New function.
420 (add_exit_phis): Sort variables to insert LC PHI nodes
421 after definition loop, for each definition loop compute
422 the exit block bitmap once.
423 (get_loops_exit): Remove.
424 (rewrite_into_loop_closed_ssa_1): Do not pre-record
425 all loop exit blocks into bitmaps. Record loop exits
428 2022-07-07 Dimitrije Milosevic <Dimitrije.Milosevic@Syrmia.com>
430 * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
431 to handle the N32 ABI.
432 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
433 the macro, as it is not needed anymore.
435 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
437 * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
439 * config/nvptx/mkoffload.cc (process): Likewise.
441 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
443 * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
445 2022-07-05 Andrew MacLeod <amacleod@redhat.com>
447 * value-relation.cc (relation_to_code): New vector.
448 (relation_oracle::validate_relation): New.
449 (set_relation): Allow ssa1 == ssa2 to be registered.
450 * value-relation.h (validate_relation): New prototype.
451 (query_relation): Make internal variant protected.
453 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
455 * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
456 for double word comparisons and tests (comparisons against zero).
457 * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
458 and;cmp into andn;cmp $0 as a pre-reload splitter.
459 (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
460 (*<any_or><dwi>3_doubleword): Likewise.
462 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
463 Hongtao Liu <hongtao.liu@intel.com>
465 * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
466 CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
467 * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
468 and gen_ssse3_palignv1ti instead of TImode.
469 * config/i386/sse.md (SSESCALARMODE): Delete.
470 (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
471 (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
472 iterator instead of SSESCALARMODE.
473 (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
474 using a single move instruction (if required).
476 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
477 Uroš Bizjak <ubizjak@gmail.com>
479 PR rtl-optimization/96692
480 * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
481 as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
483 2022-07-05 Richard Biener <rguenther@suse.de>
485 PR tree-optimization/106198
486 * tree-cfgcleanup.cc (repair_loop_structures): Always do a
487 full LC SSA rewrite but only if any blocks changed loop
490 2022-07-05 Richard Biener <rguenther@suse.de>
492 * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
493 (find_uses_to_rename_in_loop): Likewise.
494 (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
496 (rewrite_into_loop_closed_ssa): Adjust.
498 2022-07-05 Richard Biener <rguenther@suse.de>
500 PR tree-optimization/106186
501 * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
502 Properly handle virtual PHI nodes.
504 2022-07-05 Richard Biener <rguenther@suse.de>
506 PR tree-optimization/106196
507 * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
508 handle aggregate returns of calls for VDEF updates.
510 2022-07-05 Richard Biener <rguenther@suse.de>
512 * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
515 2022-07-05 Richard Sandiford <richard.sandiford@arm.com>
517 * tree-vect-patterns.cc (vect_convert_input): Expect the input
518 type to be signed for optab_vector_mixed_sign. Update the vectype
519 at the same time as type.
520 (vect_recog_dot_prod_pattern): Update accordingly. If usdot isn't
521 available, try sdot instead.
522 * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
523 (vect_model_reduction_cost): Model the cost of implementing usdot
525 (vectorizable_reduction): Likewise. Skip target support test
527 (vect_emulate_mixed_dot_prod): New function.
528 (vect_transform_reduction): Use it to emulate usdot via sdot.
530 2022-07-05 Richard Biener <rguenther@suse.de>
532 PR tree-optimization/106182
533 * loop-init.cc (fix_loop_structure): Return the number
534 of newly discovered plus the number of deleted loops.
535 * tree-cfgcleanup.cc (repair_loop_structures): Adjust
538 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
540 * gimple-range-fold.cc
541 (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
542 call to SCEV for irange supported types.
543 (fold_using_range::range_of_builtin_int_call): Convert to vrange.
544 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
545 * tree-ssa-dom.cc (cprop_operand): Same.
547 2022-07-04 Roger Sayle <roger@nextmovesoftware.com>
550 * calls.cc (precompute_register_parameters): Allow promotion
551 of floating point values to be passed in wider integer modes
552 by calling new convert_float_to_wider_int.
553 (expand_call): Allow floating point results to be returned in
554 wider integer modes by calling new convert wider_int_to_float.
555 * cfgexpand.cc (expand_value_return): Allow backends to promote
556 a scalar floating point return value to a wider integer mode
557 by calling new convert_float_to_wider_int.
558 * expr.cc (convert_float_to_wider_int): New function.
559 (convert_wider_int_to_float): Likewise.
560 (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
561 scalar FP PARM_DECLs to wider integer modes, by calling new
562 convert_wider_int_to_float.
563 * expr.h (convert_modes): Name arguments for improved documentation.
564 (convert_float_to_wider_int): Prototype new function here.
565 (convert_wider_int_to_float): Likewise.
566 * function.cc (assign_parm_setup_stack): Allow floating point
567 values to be passed on the stack as wider integer modes by
568 calling new convert_wider_int_to_float.
570 2022-07-04 Martin Jambor <mjambor@suse.cz>
572 PR tree-optimization/105860
573 * tree-sra.cc (build_reconstructed_reference): Start expr
574 traversal only just below the outermost union.
576 2022-07-04 Richard Biener <rguenther@suse.de>
578 * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
579 and update virtual SSA form again. Assert we do so for
580 a known set of transforms only.
581 * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
582 * tree-vect-stmts.cc (vectorizable_load): When vectorizing
583 using load-lanes allow virtual SSA update.
585 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
586 Chung-Lin Tang <cltang@codesourcery.com>
587 Thomas Schwinge <thomas@codesourcery.com>
589 * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
590 (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
591 (main): Ask lto1 to obtain omp_requires_mask and pass it on.
592 * config/nvptx/mkoffload.cc (process, main): Likewise.
593 * lto-cgraph.cc (omp_requires_to_name): New.
594 (input_offload_tables): Save omp_requires_mask.
595 (output_offload_tables): Read it, check for consistency,
596 save value for mkoffload.
597 * omp-low.cc (lower_omp_target): Force output_offloadtables
598 call for OMP_REQUIRES_TARGET_USED.
600 2022-07-04 Richard Biener <rguenther@suse.de>
602 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
603 no SSA update is needed instead of updating virtual SSA
605 * tree-vect-stmts.cc (vectorizable_load): For hoisted
606 invariant load use the loop entry virtual use.
607 For emulated gather loads use the virtual use of the
608 original stmt like vect_finish_stmt_generation would do.
610 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
612 * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
613 for direct circularity.
615 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
617 * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
618 the language for vector types.
620 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
622 * value-range-storage.cc (irange_storage_slot::set_irange): Set
623 nonzero bits in irange.
624 (irange_storage_slot::get_irange): Get nonzero bits from irange.
625 * value-range.cc (irange::operator=): Set nonzero bits.
626 (irange::irange_set): Same.
627 (irange::irange_set_anti_range): Same.
629 (irange::verify_range): Same.
630 (irange::legacy_equal_p): Check nonzero bits.
631 (irange::equal_p): Same.
632 (irange::contains_p): Handle nonzero bits.
633 (irange::irange_union): Same.
634 (irange::irange_intersect): Same.
635 (irange::dump): Same.
636 (irange::set_nonzero_bits): New.
637 (irange::get_nonzero_bits): New.
638 (irange::intersect_nonzero_bits): New.
639 (irange::union_nonzero_bits): New.
640 (irange::dump_bitmasks): New.
641 * value-range.h (class irange): Add m_nonzero_mask.
642 (gt_ggc_mx): Handle nonzero bits.
644 (irange::set_undefined): Set nonzero bits.
645 (irange::set_varying): Same.
646 (irange::normalize_kind): Call set_undefined.
648 2022-07-04 Richard Biener <rguenther@suse.de>
650 * tree-ssa-loop-manip.h
651 (rewrite_virtuals_into_loop_closed_ssa): Remove.
652 (rewrite_into_loop_closed_ssa_1): Likewise.
653 * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
655 (rewrite_into_loop_closed_ssa): Remove loop overload,
656 always rewrite virtuals into LC SSA.
657 (check_loop_closed_ssa_bb): Also check virtuals.
658 * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
659 LC PHIs when in LC SSA.
660 * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
661 loop-closed SSA here, but ...
662 (tree_loop_unroll_and_jam): ... here once.
663 * tree-if-conv.cc (version_loop_for_if_conversion): Use
664 the cheaper TODO_update_ssa_no_phi.
665 * tree-loop-distribution.cc (version_loop_by_alias_check):
667 * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
669 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
670 (tree_unswitch_outer_loop): Do not rewrite virtuals into
672 * tree-parloops.cc (transform_to_exit_first_loop_alt):
674 (pass_parallelize_loops::execute): After finishing rewrite
675 into LC SSA again because we do not maintain it properly.
677 2022-07-04 Richard Biener <rguenther@suse.de>
679 PR tree-optimization/106055
680 * graphite.cc (canonicalize_loop_closed_ssa): Check whether
683 2022-07-04 Haochen Jiang <haochen.jiang@intel.com>
686 * config/i386/sse.md (extendv2sfv2df2): New define_expand.
687 (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
688 (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
690 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
692 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
693 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
694 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
696 (find_unswitching_predicates_for_bb): Same.
697 * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
698 * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
699 * value-range.cc (irange::equal_p): Rename to...
700 (irange::operator==): ...this.
701 * value-range.h (irange::set): Remove.
702 (irange::operator==): Remove.
703 (irange::set_zero): Use set with two arguments.
704 * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
705 (vr_values::extract_range_from_unary_expr): Same.
706 (check_for_binary_op_overflow): Same.
707 (bounds_of_var_in_loop): Same.
709 2022-07-03 H.J. Lu <hjl.tools@gmail.com>
712 * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
714 * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
716 * config/i386/mmx.md (V_16_32_64): New.
717 (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
718 and 64-bit constant vector.
719 * config/i386/predicates.md (x86_64_const_vector_operand): New.
721 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
723 * gimple-range-cache.cc: Include value-range-storage.h.
724 * gimple-range-cache.h (class block_range_cache): Add "class" to
726 * gimple-range-edge.cc
727 (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
728 (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
729 (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
730 * gimple-range-edge.h: Add "class" to m_range_allocator.
731 * gimple-range-infer.cc
732 (infer_range_manager::infer_range_manager): Allocate allocator.
733 (infer_range_manager::~infer_range_manager): Free allocator.
734 (infer_range_manager::get_nonzero): Dereference allocator.
735 (infer_range_manager::add_range): Same.
736 * gimple-range-infer.h (class vrange_allocator): Add "class" to
738 * value-range-storage.h (class vrange_allocator): Move from
740 (class obstack_vrange_allocator): Same.
741 (class ggc_vrange_allocator): Same.
742 (vrange_allocator::alloc_vrange): Same.
743 (vrange_allocator::alloc_irange): Same.
744 * value-range.h (class vrange_allocator): Move to value-range-storage.h.
745 (class obstack_vrange_allocator): Same.
746 (class ggc_vrange_allocator): Same.
748 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
750 * Makefile.in (OBJS): Add value-range-storage.o.
751 (GTFILES): Add value-range-storage.h.
752 * gengtype.cc (open_base_files): Add value-range-storage.h.
753 * value-range-storage.cc: New file.
754 * value-range-storage.h: New file.
756 2022-07-03 Xi Ruoyao <xry111@xry111.site>
757 Lulu Cheng <chenglulu@loongson.cn>
759 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
761 (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
762 of TARGET_CHECK_ZERO_DIV.
763 (loongarch_output_division): Likewise.
764 * common/config/loongarch/loongarch-common.cc
765 (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
766 * doc/invoke.texi: Update to match the new behavior.
768 2022-07-03 Ian Lance Taylor <iant@golang.org>
770 * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
771 statement if -fdelete-dead-exceptions.
773 2022-07-02 Tim Lange <mail@tim-lange.me>
776 * doc/invoke.texi: Added Wanalyzer-allocation-size.
778 2022-07-02 Immad Mir <mirimmad17@gmail.com>
781 * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
782 * doc/invoke.texi: Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
783 -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
784 -Wanalyzer-fd-use-after-close.
786 2022-07-01 Aldy Hernandez <aldyh@redhat.com>
788 * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
789 (trailing_wide_ints::set_precision): Add num_elements argument.
790 (trailing_wide_ints::extra_size): Same.
792 2022-07-01 Uroš Bizjak <ubizjak@gmail.com>
794 * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
795 Use "r" constraint for operand 1.
797 2022-07-01 Richard Biener <rguenther@suse.de>
799 * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
800 Do not look at interesting_blocks which is a copy of
802 (update_ssa): Do not initialize it.
803 (pass_build_ssa::execute): Set interesting_blocks to NULL
806 2022-07-01 Richard Biener <rguenther@suse.de>
808 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
809 back to using maybe_ne (off, -1).
811 2022-07-01 Richard Biener <rguenther@suse.de>
813 * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
814 checking dominance check conditional on flag_checking.
816 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
818 * config/gcn/gcn-protos.h (print_operand_address): Remove register
819 keyword on 'rtx addr' argument.
821 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
822 Uroš Bizjak <ubizjak@gmail.com>
824 * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
825 to post-reload define_insn_and_split.
827 2022-07-01 Jakub Jelinek <jakub@redhat.com>
830 * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
831 emitting element for shift or if shift is 0 first element after start.
832 (wide_int_cc_tests): Add tests for equivalency of wi::mask and
833 wi::shifted_mask with 0 start.
835 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
838 * config/i386/i386.md (peephole2): Avoid generating pop %esp
839 when optimizing for size.
841 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
842 Uroš Bizjak <ubizjak@gmail.com>
844 * config/i386/i386.md (general_szext_operand): Add TImode
845 support using x86_64_hilo_general_operand predicate.
846 (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
847 (*add<dwi>3_doubleword): Improved optimization of zero addition.
848 (and<mode>3): Use SDWIM mode iterator to add support for double
849 word bit-wise AND in TImode. Use force_reg when double word
850 immediate operand isn't x86_64_hilo_general_operand.
851 (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
852 converted into a post-reload splitter.
853 (*andndi3_doubleword): Previous define_insn deleted.
854 (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
855 TARGET_BMI that splits post-reload.
856 (*andn<mode>3_doubleword): New define_insn_and_split for
857 !TARGET_BMI, that lowers/splits before reload.
858 (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
859 double word bit-wise XOR and bit-wise IOR in TImode. Use
860 force_reg when double word immediate operand isn't
861 x86_64_hilo_general_operand.
862 (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
863 (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
864 double word bit-wise NOT in TImode.
865 (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
866 and converted into a post-reload splitter.
868 2022-07-01 Eric Botcazou <ebotcazou@adacore.com>
871 * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
872 EXPAND_MEMORY for the expansion of the inner reference only
873 in the usual cases where a memory reference is required.
875 2022-07-01 Richard Biener <rguenther@suse.de>
877 PR tree-optimization/106131
878 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
879 zero when offsetting the read looking through an aggregate
882 2022-07-01 Martin Liska <mliska@suse.cz>
884 PR tree-optimization/106126
885 * gimple-if-to-switch.cc (struct condition_info): Save
887 (find_conditions): Parse all BBs.
888 (pass_if_to_switch::execute): Allow only side effects for first
891 2022-07-01 Haochen Jiang <haochen.jiang@intel.com>
893 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
894 Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
895 OPTION_MASK_ISA2_AVX512BF16_UNSET and
896 OPTION_MASK_ISA2_AVX512FP16_UNSET.
898 2022-06-30 Joseph Myers <joseph@codesourcery.com>
901 * lto-wrapper.cc (find_option): Add argument start.
902 (merge_and_complain): Loop over existing_opt_index and
903 existing_opt2_index for Xassembler check. Update calls to
905 (find_and_merge_options): Add argument first to determine whether
906 to merge options with those passed in *opts.
907 (run_gcc): Update calls to find_and_merge_options.
909 2022-06-30 Aldy Hernandez <aldyh@redhat.com>
911 * gimple-range-cache.cc (block_range_cache::block_range_cache):
912 Rename vrange_allocator to obstack_vrange_allocator.
913 (ssa_global_cache::ssa_global_cache): Same.
914 * gimple-range-edge.h (class gimple_outgoing_range): Same.
915 * gimple-range-infer.h (class infer_range_manager): Same.
916 * value-range.h (class vrange_allocator): Make abstract.
917 (class obstack_vrange_allocator): Inherit from vrange_allocator.
918 (class ggc_vrange_allocator): New.
920 2022-06-30 Roger Sayle <roger@nextmovesoftware.com>
921 Uroš Bizjak <ubizjak@gmail.com>
923 * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
925 (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
926 via new gen_<insn>32di2_doubleword below.
927 (<anyrotate>32di2_doubleword): New define_insn_and_split
928 that splits after reload as either a pair of move instructions
929 or an xchgl (using gen_swapsi).
931 2022-06-30 Richard Biener <rguenther@suse.de>
933 * domwalk.h (dom_walker::dom_walker): Update comment to
934 reflect reality and new special argument value for
936 * domwalk.cc (dom_walker::dom_walker): Recognize -1
939 (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
940 dom_walker to not use RPO.
942 2022-06-30 Martin Liska <mliska@suse.cz>
944 * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
947 2022-06-30 Andrew MacLeod <amacleod@redhat.com>
949 PR tree-optimization/106114
950 * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
951 statement operands instead of GORI cache.
953 2022-06-30 Antoni Boucher <bouanto@zoho.com>
956 * config/i386/sse.md: Fix asm generation.
958 2022-06-29 Sergei Trofimovich <siarheit@google.com>
961 * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
963 2022-06-29 Joseph Myers <joseph@codesourcery.com>
965 * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
966 not gen_const_mem for UNSPEC_PIC_CALL_SYM.
968 2022-06-29 Richard Biener <rguenther@suse.de>
970 PR rtl-optimization/106082
971 * combine.cc (distribute_notes): Preserve notes when
972 they indicate a call doesn't perform a non-local goto.
974 2022-06-29 Richard Biener <rguenther@suse.de>
976 PR tree-optimization/106112
977 * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
978 a constant operand according to its type.
980 2022-06-29 Martin Liska <mliska@suse.cz>
982 * doc/invoke.texi: Remove removed evrp-mode.
984 2022-06-29 Lulu Cheng <chenglulu@loongson.cn>
987 * config/loongarch/loongarch.cc (loongarch_build_integer):
988 Remove undefined behavior from code.
990 2022-06-28 Dimitar Dimitrov <dimitar@dinux.eu>
992 * doc/sourcebuild.texi: Document new no_alignment_constraints
993 effective target check.
995 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
997 * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
998 * flag-types.h (enum evrp_mode): Remove.
999 * params.opt: Remove --param=evrp-mode.
1000 * tree-vrp.cc (make_pass_early_vrp): New.
1001 (pass_vrp::execute): Call early VRP instance.
1002 * gimple-ssa-evrp-analyze.cc: Removed.
1003 * gimple-ssa-evrp-analyze.h: Removed.
1004 * gimple-ssa-evrp.cc: Removed.
1006 2022-06-28 Alexandre Oliva <oliva@adacore.com>
1008 * Makefile.in (TFLAGS): New.
1009 (GCC_FOR_TARGET): Add TFLAGS.
1010 (FLAGS_TO_PASS): Pass TFLAGS down.
1012 2022-06-28 Richard Biener <rguenther@suse.de>
1014 * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
1017 2022-06-28 Richard Biener <rguenther@suse.de>
1019 * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
1020 mark_block_for_update.
1021 (update_ssa): Adjust.
1023 2022-06-28 Xi Ruoyao <xry111@xry111.site>
1026 * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
1027 $r13 from SIBCALL_REGS.
1028 * config/loongarch/loongarch.cc (loongarch_regno_to_class):
1029 Change $r13 to JIRL_REGS.
1031 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
1033 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
1036 2022-06-28 Richard Biener <rguenther@suse.de>
1038 PR middle-end/106053
1039 * match.pd ((T)a == (T)b): Avoid folding away sign
1040 changes in a comparison if we'd truncate to a boolean.
1042 2022-06-28 Kewen Lin <linkw@linux.ibm.com>
1044 * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
1045 iterator GPR with SImode, adjust the condition and output template,
1047 (*rotlsi3_insert_4): ... this.
1049 2022-06-27 David Malcolm <dmalcolm@redhat.com>
1051 * genmatch.cc: Add "final" and "override" to various vfunc
1052 implementations, removing redundant "virtual" as appropriate.
1053 * gensupport.cc: Likewise.
1054 * gimple-range-cache.h: Likewise.
1055 * ipa-icf-gimple.h: Likewise.
1056 * ipa-icf.h: Likewise.
1057 * read-md.h: Likewise.
1058 * read-rtl-function.cc: Likewise.
1059 * tree-ssa-loop-ch.cc: Likewise.
1060 * tree-ssa-sccvn.cc: Likewise.
1062 2022-06-27 David Malcolm <dmalcolm@redhat.com>
1064 * config/i386/i386-features.h: Add "final" and "override" to
1065 scalar_chain vfunc implementations as appropriate.
1067 2022-06-27 David Malcolm <dmalcolm@redhat.com>
1069 * tree-switch-conversion.h: Add "final" and "override" to cluster
1070 vfunc implementations as appropriate.
1072 2022-06-27 David Malcolm <dmalcolm@redhat.com>
1074 * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
1075 implementations as appropriate.
1077 2022-06-27 David Malcolm <dmalcolm@redhat.com>
1079 * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
1080 implementations, removing redundant "virtual" as appropriate.
1081 * gimple-ssa-strength-reduction.cc: Likewise.
1082 * ipa-prop.cc: Likewise.
1083 * rtl-ssa/blocks.cc: Likewise.
1084 * tree-into-ssa.cc: Likewise.
1085 * tree-ssa-dom.cc: Likewise.
1086 * tree-ssa-math-opts.cc: Likewise.
1087 * tree-ssa-phiopt.cc: Likewise.
1088 * tree-ssa-propagate.cc: Likewise.
1089 * tree-ssa-sccvn.cc: Likewise.
1090 * tree-ssa-strlen.cc: Likewise.
1091 * tree-ssa-uncprop.cc: Likewise.
1093 2022-06-27 David Malcolm <dmalcolm@redhat.com>
1095 * adjust-alignment.cc: Add "final" and "override" to opt_pass
1096 vfunc implementations, removing redundant "virtual" as
1098 * asan.cc: Likewise.
1099 * auto-inc-dec.cc: Likewise.
1100 * auto-profile.cc: Likewise.
1101 * bb-reorder.cc: Likewise.
1102 * cfgcleanup.cc: Likewise.
1103 * cfgexpand.cc: Likewise.
1104 * cfgrtl.cc: Likewise.
1105 * cgraphbuild.cc: Likewise.
1106 * combine-stack-adj.cc: Likewise.
1107 * combine.cc: Likewise.
1108 * compare-elim.cc: Likewise.
1109 * config/i386/i386-features.cc: Likewise.
1110 * coroutine-passes.cc: Likewise.
1111 * cprop.cc: Likewise.
1114 * df-core.cc: Likewise.
1116 * dwarf2cfi.cc: Likewise.
1117 * early-remat.cc: Likewise.
1118 * except.cc: Likewise.
1119 * final.cc: Likewise.
1120 * function.cc: Likewise.
1121 * fwprop.cc: Likewise.
1122 * gcse.cc: Likewise.
1123 * gimple-harden-conditionals.cc: Likewise.
1124 * gimple-if-to-switch.cc: Likewise.
1125 * gimple-isel.cc: Likewise.
1126 * gimple-laddress.cc: Likewise.
1127 * gimple-loop-interchange.cc: Likewise.
1128 * gimple-loop-jam.cc: Likewise.
1129 * gimple-loop-versioning.cc: Likewise.
1130 * gimple-low.cc: Likewise.
1131 * gimple-ssa-backprop.cc: Likewise.
1132 * gimple-ssa-evrp.cc: Likewise.
1133 * gimple-ssa-isolate-paths.cc: Likewise.
1134 * gimple-ssa-nonnull-compare.cc: Likewise.
1135 * gimple-ssa-split-paths.cc: Likewise.
1136 * gimple-ssa-store-merging.cc: Likewise.
1137 * gimple-ssa-strength-reduction.cc: Likewise.
1138 * gimple-ssa-warn-access.cc: Likewise.
1139 * gimple-ssa-warn-alloca.cc: Likewise.
1140 * gimple-ssa-warn-restrict.cc: Likewise.
1141 * gimple-warn-recursion.cc: Likewise.
1142 * graphite.cc: Likewise.
1143 * ifcvt.cc: Likewise.
1144 * init-regs.cc: Likewise.
1145 * ipa-comdats.cc: Likewise.
1146 * ipa-cp.cc: Likewise.
1147 * ipa-devirt.cc: Likewise.
1148 * ipa-fnsummary.cc: Likewise.
1149 * ipa-free-lang-data.cc: Likewise.
1150 * ipa-icf.cc: Likewise.
1151 * ipa-inline.cc: Likewise.
1152 * ipa-modref.cc: Likewise.
1153 * ipa-profile.cc: Likewise.
1154 * ipa-pure-const.cc: Likewise.
1155 * ipa-reference.cc: Likewise.
1156 * ipa-split.cc: Likewise.
1157 * ipa-sra.cc: Likewise.
1158 * ipa-visibility.cc: Likewise.
1161 * jump.cc: Likewise.
1162 * loop-init.cc: Likewise.
1163 * lower-subreg.cc: Likewise.
1164 * mode-switching.cc: Likewise.
1165 * modulo-sched.cc: Likewise.
1166 * multiple_target.cc: Likewise.
1167 * omp-expand.cc: Likewise.
1168 * omp-low.cc: Likewise.
1169 * omp-oacc-kernels-decompose.cc: Likewise.
1170 * omp-oacc-neuter-broadcast.cc: Likewise.
1171 * omp-offload.cc: Likewise.
1172 * omp-simd-clone.cc: Likewise.
1173 * passes.cc: Likewise.
1174 * postreload-gcse.cc: Likewise.
1175 * postreload.cc: Likewise.
1176 * predict.cc: Likewise.
1177 * recog.cc: Likewise.
1179 * reg-stack.cc: Likewise.
1180 * regcprop.cc: Likewise.
1181 * reginfo.cc: Likewise.
1182 * regrename.cc: Likewise.
1183 * reorg.cc: Likewise.
1184 * sancov.cc: Likewise.
1185 * sanopt.cc: Likewise.
1186 * sched-rgn.cc: Likewise.
1187 * stack-ptr-mod.cc: Likewise.
1188 * store-motion.cc: Likewise.
1189 * tracer.cc: Likewise.
1190 * trans-mem.cc: Likewise.
1191 * tree-call-cdce.cc: Likewise.
1192 * tree-cfg.cc: Likewise.
1193 * tree-cfgcleanup.cc: Likewise.
1194 * tree-complex.cc: Likewise.
1195 * tree-eh.cc: Likewise.
1196 * tree-emutls.cc: Likewise.
1197 * tree-if-conv.cc: Likewise.
1198 * tree-into-ssa.cc: Likewise.
1199 * tree-loop-distribution.cc: Likewise.
1200 * tree-nrv.cc: Likewise.
1201 * tree-object-size.cc: Likewise.
1202 * tree-parloops.cc: Likewise.
1203 * tree-predcom.cc: Likewise.
1204 * tree-profile.cc: Likewise.
1205 * tree-sra.cc: Likewise.
1206 * tree-ssa-ccp.cc: Likewise.
1207 * tree-ssa-copy.cc: Likewise.
1208 * tree-ssa-dce.cc: Likewise.
1209 * tree-ssa-dom.cc: Likewise.
1210 * tree-ssa-dse.cc: Likewise.
1211 * tree-ssa-forwprop.cc: Likewise.
1212 * tree-ssa-ifcombine.cc: Likewise.
1213 * tree-ssa-loop-ch.cc: Likewise.
1214 * tree-ssa-loop-im.cc: Likewise.
1215 * tree-ssa-loop-ivcanon.cc: Likewise.
1216 * tree-ssa-loop-prefetch.cc: Likewise.
1217 * tree-ssa-loop-split.cc: Likewise.
1218 * tree-ssa-loop-unswitch.cc: Likewise.
1219 * tree-ssa-loop.cc: Likewise.
1220 * tree-ssa-math-opts.cc: Likewise.
1221 * tree-ssa-phiopt.cc: Likewise.
1222 * tree-ssa-phiprop.cc: Likewise.
1223 * tree-ssa-pre.cc: Likewise.
1224 * tree-ssa-reassoc.cc: Likewise.
1225 * tree-ssa-sccvn.cc: Likewise.
1226 * tree-ssa-sink.cc: Likewise.
1227 * tree-ssa-strlen.cc: Likewise.
1228 * tree-ssa-structalias.cc: Likewise.
1229 * tree-ssa-uncprop.cc: Likewise.
1230 * tree-ssa-uninit.cc: Likewise.
1231 * tree-ssanames.cc: Likewise.
1232 * tree-stdarg.cc: Likewise.
1233 * tree-switch-conversion.cc: Likewise.
1234 * tree-tailcall.cc: Likewise.
1235 * tree-vect-generic.cc: Likewise.
1236 * tree-vectorizer.cc: Likewise.
1237 * tree-vrp.cc: Likewise.
1238 * tsan.cc: Likewise.
1239 * ubsan.cc: Likewise.
1240 * var-tracking.cc: Likewise.
1241 * vtable-verify.cc: Likewise.
1244 2022-06-27 Andrew Stubbs <ams@codesourcery.com>
1246 * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
1248 (movdi_symbol_save_scc): Likewise.
1250 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
1252 PR rtl-optimization/7061
1253 * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
1255 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
1257 PR tree-optimization/94026
1258 * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
1259 (((X >> C1) & C2) eq/ne C3): Likewise.
1261 2022-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1263 * statistics.cc: Include tree.h.
1264 (get_function_name): New function.
1265 (statistics_fini_pass_2): Call get_function_name instead of
1266 current_function_name.
1267 (statistics_counter_event): Call get_function_name instead of
1269 (statistics_histogram_event): Likewise.
1271 2022-06-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1273 * config/xtensa/xtensa.md:
1274 Suppress unnecessary emitting nop insn in the split patterns for
1275 integer/FP constant synthesis, and add new peephole2 pattern that
1276 folds such synthesized additions.
1278 2022-06-25 Aldy Hernandez <aldyh@redhat.com>
1280 * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
1282 (dom_jt_state::push): Remove m_evrp.
1283 (dom_jt_state::pop): Same.
1284 (dom_jt_state::record_ranges_from_stmt): Remove.
1285 (dom_jt_state::register_equiv): Remove updating of evrp ranges.
1286 (class dom_jt_simplifier): Pass ranger to constructor.
1287 Inherit from hybrid_jt_simplifier.
1288 (dom_jt_simplifier::simplify): Convert to ranger.
1289 (pass_dominator::execute): Same.
1290 (all_uses_feed_or_dominated_by_stmt): New.
1291 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
1292 (dom_opt_dom_walker::before_dom_children): Call
1293 set_global_ranges_from_unreachable_edges.
1294 Do not call record_ranges_from_stmt.
1295 (dom_opt_dom_walker::after_dom_children): Remove evrp use.
1296 (cprop_operand): Use int_range<> instead of value_range.
1297 (dom_opt_dom_walker::fold_cond): New.
1298 (dom_opt_dom_walker::optimize_stmt): Pass ranger to
1300 Use fold_cond() instead of vrp_visit_cond_stmt().
1301 * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
1302 pass state to simplifier.
1303 * vr-values.h (class vr_values): Make fold_cond public.
1305 2022-06-25 Jeff Law <jeffreyalaw@gmail.com>
1307 * common/config/tilegx/tilegx-common.cc: Removed.
1308 * common/config/tilepro/tilepro-common.cc: Removed.
1309 * config.gcc: Remove tilegx and tilepro entries.
1310 * config/tilegx/constraints.md: Removed.
1311 * config/tilegx/feedback.h: Removed.
1312 * config/tilegx/linux.h: Removed.
1313 * config/tilegx/mul-tables.cc: Removed.
1314 * config/tilegx/predicates.md: Removed.
1315 * config/tilegx/sync.md: Removed.
1316 * config/tilegx/t-tilegx: Removed.
1317 * config/tilegx/tilegx-builtins.h: Removed.
1318 * config/tilegx/tilegx-c.cc: Removed.
1319 * config/tilegx/tilegx-generic.md: Removed.
1320 * config/tilegx/tilegx-modes.def: Removed.
1321 * config/tilegx/tilegx-multiply.h: Removed.
1322 * config/tilegx/tilegx-opts.h: Removed.
1323 * config/tilegx/tilegx-protos.h: Removed.
1324 * config/tilegx/tilegx.cc: Removed.
1325 * config/tilegx/tilegx.h: Removed.
1326 * config/tilegx/tilegx.md: Removed.
1327 * config/tilegx/tilegx.opt: Removed.
1328 * config/tilepro/constraints.md: Removed.
1329 * config/tilepro/feedback.h: Removed.
1330 * config/tilepro/gen-mul-tables.cc: Removed.
1331 * config/tilepro/linux.h: Removed.
1332 * config/tilepro/mul-tables.cc: Removed.
1333 * config/tilepro/predicates.md: Removed.
1334 * config/tilepro/t-tilepro: Removed.
1335 * config/tilepro/tilepro-builtins.h: Removed.
1336 * config/tilepro/tilepro-c.cc: Removed.
1337 * config/tilepro/tilepro-generic.md: Removed.
1338 * config/tilepro/tilepro-modes.def: Removed.
1339 * config/tilepro/tilepro-multiply.h: Removed.
1340 * config/tilepro/tilepro-protos.h: Removed.
1341 * config/tilepro/tilepro.cc: Removed.
1342 * config/tilepro/tilepro.h: Removed.
1343 * config/tilepro/tilepro.md: Removed.
1344 * config/tilepro/tilepro.opt: Removed.
1345 * configure.ac: Remove tilegx and tilepro entries.
1346 * configure: Rebuilt.
1347 * doc/extend.texi: Remove tilegx and tilepro entries.
1348 * doc/install.texi: Remove tilegx and tilepro entries.
1349 * doc/invoke.texi: Remove tilegx and tilepro entries.
1350 * doc/md.texi: Remove tilegx and tilepro entries.
1352 2022-06-25 Roger Sayle <roger@nextmovesoftware.com>
1353 Richard Biener <rguenther@suse.de>
1355 * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
1356 iteration over each basic block that was updated by the second
1359 2022-06-24 Jason Merrill <jason@redhat.com>
1363 * doc/invoke.texi: Document changes.
1365 2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
1367 * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
1368 condition to avoid overflow.
1370 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
1372 * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
1373 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
1374 * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
1375 OPTION_MASK_PPC_GFXOPT.
1376 * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
1377 * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
1378 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
1379 * config/rs6000/rs6000-c.cc: Update comment.
1380 * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
1381 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
1382 MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
1383 (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
1384 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
1385 * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
1386 MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
1387 MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
1388 MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
1390 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
1392 * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
1394 * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
1395 OPTION_MASK_MULTIPLE.
1396 * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
1397 * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
1399 * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
1401 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
1402 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
1403 MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
1404 * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
1405 MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
1406 MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
1407 MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
1408 MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
1410 OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
1411 OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
1412 OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
1413 OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
1414 OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
1415 OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
1416 OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
1417 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
1418 MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
1419 * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
1420 with OPTION_MASK_MULTIPLE.
1421 (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
1422 MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
1423 MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
1424 MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
1425 MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
1426 * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
1427 with OPTION_MASK_EABI.
1429 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
1431 * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
1432 RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
1433 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
1434 RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
1435 OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
1436 OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
1437 OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
1438 * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
1439 RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
1440 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
1441 RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
1443 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
1445 * config/rs6000/rs6000-c.cc: Update comments.
1446 * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
1447 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
1448 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
1449 RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
1450 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
1451 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
1452 OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
1453 OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
1454 OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
1455 OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
1456 OPTION_MASK_MMA, OPTION_MASK_POWER10.
1457 * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
1458 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
1459 RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
1460 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
1461 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
1463 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
1465 * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
1466 MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
1467 OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
1469 2022-06-24 Richard Biener <rguenther@suse.de>
1471 PR middle-end/106070
1472 * match.pd (a != b ? a : b): Fix translation of
1473 operand_equal_for_comparison_p.
1475 2022-06-24 Jan Hubicka <jh@suse.cz>
1478 * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
1480 2022-06-24 Martin Liska <mliska@suse.cz>
1482 PR middle-end/106059
1483 * profile-count.h: *= and /= operators need to modify this
1486 2022-06-24 Roger Sayle <roger@nextmovesoftware.com>
1487 Uroš Bizjak <ubizjak@gmail.com>
1490 * config/i386/i386.md (*<any_or>di3_doubleword): Split after
1491 reload. Use rtx_equal_p to avoid creating memory-to-memory moves,
1492 and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
1494 2022-06-24 Alexandre Oliva <oliva@adacore.com>
1496 * common.opt (nostdlib++): New.
1497 * doc/invoke.texi (-nostdlib++): Document it.
1499 2022-06-24 Alexandre Oliva <oliva@adacore.com>
1501 * doc/sourcebuild.texi (Environment attributes): Document
1504 2022-06-23 David Malcolm <dmalcolm@redhat.com>
1506 * common.opt (fdiagnostics-show-rules): New option.
1507 * diagnostic-format-json.cc (diagnostic_output_format_init_json):
1508 Fix up context->show_rules.
1509 * diagnostic-format-sarif.cc
1510 (diagnostic_output_format_init_sarif): Likewise.
1511 * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
1512 (diagnostic_metadata::precanned_rule): New class.
1513 (diagnostic_metadata::add_rule): New.
1514 (diagnostic_metadata::get_num_rules): New.
1515 (diagnostic_metadata::get_rule): New.
1516 (diagnostic_metadata::m_rules): New field.
1517 * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
1518 (print_any_rules): New.
1519 (diagnostic_report_diagnostic): Call it.
1520 * diagnostic.h (diagnostic_context::show_rules): New field.
1521 * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
1522 * opts.cc (common_handle_option): Handle
1523 OPT_fdiagnostics_show_rules.
1524 * toplev.cc (general_init): Set up global_dc->show_rules.
1526 2022-06-23 Martin Liska <mliska@suse.cz>
1529 * ubsan.cc (sanitize_unreachable_fn): Change order of calls
1530 in order to initialize UBSAN built-ins.
1532 2022-06-23 Martin Liska <mliska@suse.cz>
1535 * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
1536 Skip variables with body_removed.
1538 2022-06-23 liuhongt <hongtao.liu@intel.com>
1540 * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
1542 (sse4_2_pcmpistr): Ditto.
1544 2022-06-23 Xionghu Luo <xionghuluo@tencent.com>
1546 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
1548 * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
1549 * tree-switch-conversion.h: Likewise.
1551 2022-06-22 Jason Merrill <jason@redhat.com>
1554 * common.opt: Add -funreachable-traps.
1555 * doc/invoke.texi (-funreachable-traps): Document it.
1556 * opts.cc (finish_options): Enable at -O0 or -Og.
1557 * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
1558 (builtin_decl_unreachable, build_builtin_unreachable): New.
1559 * tree.h: Declare them.
1560 * ubsan.cc (sanitize_unreachable_fn): Factor out.
1561 (ubsan_instrument_unreachable): Use
1562 gimple_build_builtin_unreachable.
1563 * ubsan.h (sanitize_unreachable_fn): Declare.
1564 * gimple.cc (gimple_build_builtin_unreachable): New.
1565 * gimple.h: Declare it.
1566 * builtins.cc (expand_builtin_unreachable): Add assert.
1567 (fold_builtin_0): Call build_builtin_unreachable.
1568 * sanopt.cc: Don't run for just SANITIZE_RETURN
1569 or SANITIZE_UNREACHABLE when trapping.
1570 * cgraphunit.cc (walk_polymorphic_call_targets): Use new
1571 unreachable functions.
1572 * gimple-fold.cc (gimple_fold_call)
1573 (gimple_get_virt_method_for_vtable)
1574 * ipa-fnsummary.cc (redirect_to_unreachable)
1575 * ipa-prop.cc (ipa_make_edge_direct_to_target)
1576 (ipa_impossible_devirt_target)
1577 * ipa.cc (walk_polymorphic_call_targets)
1578 * tree-cfg.cc (pass_warn_function_return::execute)
1580 * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
1582 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
1585 2022-06-22 Richard Sandiford <richard.sandiford@arm.com>
1587 PR tree-optimization/106019
1588 * tree-data-ref.cc (dr_may_alias_p): Try using the
1589 innermost_loop_behavior to disambiguate non-loop queries.
1591 2022-06-22 Palmer Dabbelt <palmer@rivosinc.com>
1593 * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
1595 2022-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1597 * config/xtensa/xtensa.md (bswapsi2_internal):
1598 Enlarge the buffer that is obviously smaller than the template
1599 string given to sprintf().
1601 2022-06-21 Roger Sayle <roger@nextmovesoftware.com>
1602 Marek Polacek <polacek@redhat.com>
1603 Segher Boessenkool <segher@kernel.crashing.org>
1604 Kewen Lin <linkw@linux.ibm.com>
1607 * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
1608 exact_log2 doesn't return -1 (or zero).
1609 (plus_xor): New code iterator.
1610 (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
1612 2022-06-21 Nathan Sidwell <nathan@acm.org>
1614 * doc/invoke.texi (C++ Modules): Remove language-linkage
1617 2022-06-21 Arjun Shankar <arjun@redhat.com>
1619 PR tree-optimization/94899
1620 * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
1621 0x80000000): New simplification.
1623 2022-06-21 Jakub Jelinek <jakub@redhat.com>
1625 PR rtl-optimization/106032
1626 * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
1627 t may_trap_or_fault_p, even if it is cheap.
1629 2022-06-21 Jakub Jelinek <jakub@redhat.com>
1631 PR middle-end/106030
1632 * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
1633 temp to expand_operands if mode has been promoted.
1635 2022-06-21 Xionghu Luo <xionghuluo@tencent.com>
1638 * gimple-if-to-switch.cc (find_conditions): Don't skip the first
1641 2022-06-21 Siddhesh Poyarekar <siddhesh@gotplt.org>
1643 PR tree-optimization/105736
1644 * tree-object-size.cc (addr_object_size): Return size_unknown
1645 when object offset computation returns an error.
1647 2022-06-20 H.J. Lu <hjl.tools@gmail.com>
1650 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
1651 false if PIC register is used when calling ifunc functions.
1653 2022-06-20 Richard Biener <rguenther@suse.de>
1655 PR middle-end/106027
1656 * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
1657 type of the prevailing comparison for the new comparison type.
1658 (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
1659 to A < X && A >= Y folding.
1661 2022-06-20 Kewen Lin <linkw@linux.ibm.com>
1663 PR tree-optimization/105940
1664 * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
1665 slp_done_for_suggested_uf and adjust with it accordingly.
1666 (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
1667 pass it down to vect_analyze_loop_2 for the initial analysis and
1668 applying suggested unroll factor.
1669 (vect_is_simple_reduction): Add parameter slp and adjust with it.
1670 (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
1671 (vect_analyze_scalar_cycles): Likewise.
1673 2022-06-20 Martin Liska <mliska@suse.cz>
1675 * bb-reorder.cc (find_traces_1_round): Add operators / and * and
1677 (better_edge_p): Likewise.
1678 * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
1679 * cfgloopmanip.cc (scale_loop_profile): Likewise.
1680 * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
1681 * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
1682 * config/sh/sh.cc (expand_cbranchdi4): Likewise.
1683 * dojump.cc (do_compare_rtx_and_jump): Likewise.
1684 * final.cc (compute_alignments): Likewise.
1685 * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
1686 (decide_about_value): Likewise.
1687 * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
1688 * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
1689 * modulo-sched.cc (sms_schedule): Likewise.
1690 * omp-expand.cc (extract_omp_for_update_vars): Likewise.
1691 (expand_omp_ordered_sink): Likewise.
1692 (expand_omp_for_ordered_loops): Likewise.
1693 (expand_omp_for_static_nochunk): Likewise.
1694 * predict.cc (maybe_hot_count_p): Likewise.
1695 (probably_never_executed): Likewise.
1696 (set_even_probabilities): Likewise.
1697 (handle_missing_profiles): Likewise.
1698 (expensive_function_p): Likewise.
1699 * profile-count.h: Likewise.
1700 * profile.cc (compute_branch_probabilities): Likewise.
1701 * stmt.cc (emit_case_dispatch_table): Likewise.
1702 * symtab-thunks.cc (expand_thunk): Likewise.
1703 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
1704 * tree-ssa-sink.cc (select_best_block): Likewise.
1705 * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
1706 (switch_decision_tree::balance_case_nodes): Likewise.
1707 (switch_decision_tree::emit_case_nodes): Likewise.
1708 * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
1710 2022-06-20 yulong <shiyulong@iscas.ac.cn>
1712 * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
1713 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
1715 * config/riscv/riscv-ftypes.def (0): Remove unused.
1718 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1720 * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
1721 Consider relaxed MOVI instructions as L32R.
1723 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1725 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
1726 Use can_create_pseudo_p(), instead of using individual
1727 reload_in_progress and reload_completed.
1728 (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
1729 the existing predicate function.
1730 (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
1731 Use the standard RTX code predicate macros such as MEM_P,
1732 SYMBOL_REF_P and/or CONST_INT_P.
1733 * config/xtensa/xtensa.md: Avoid using numeric literals to determine
1734 if callee-saved register, at the split patterns for indirect sibcall
1737 2022-06-18 Jakub Jelinek <jakub@redhat.com>
1739 * common.opt (flag_sanitize_trap): New variable.
1740 (fsanitize-trap=, fsanitize-trap): New options.
1741 (fsanitize-undefined-trap-on-error): Change into deprecated alias
1742 for -fsanitize-trap=all.
1743 * opts.h (struct sanitizer_opts_s): Add can_trap member.
1744 * opts.cc (finish_options): Complain about unsupported
1745 -fsanitize-trap= options.
1746 (sanitizer_opts): Add can_trap values to all entries.
1747 (get_closest_sanitizer_option): Ignore -fsanitize-trap=
1748 options which have can_trap false.
1749 (parse_sanitizer_options): Add support for -fsanitize-trap=.
1750 For -fsanitize-trap=all, enable
1751 SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT. Disallow
1752 -fsanitize-trap=vptr here.
1753 (common_handle_option): Handle OPT_fsanitize_trap_ and
1755 * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
1756 flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
1757 flag_sanitize_undefined_trap_on_error.
1758 * gcc.cc (sanitize_spec_function): Use
1759 flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
1760 and drop use of flag_sanitize_undefined_trap_on_error in
1761 "undefined" handling.
1762 * ubsan.cc (ubsan_instrument_unreachable): Use
1763 flag_sanitize_trap & SANITIZE_??? instead of
1764 flag_sanitize_undefined_trap_on_error.
1765 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
1766 ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
1767 ubsan_build_overflow_builtin, instrument_bool_enum_load,
1768 ubsan_instrument_float_cast, instrument_nonnull_arg,
1769 instrument_nonnull_return, instrument_builtin): Likewise.
1770 * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
1771 (-fsanitize-undefined-trap-on-error): Document as deprecated
1772 alias of -fsanitize-trap.
1774 2022-06-18 Jakub Jelinek <jakub@redhat.com>
1776 PR middle-end/105998
1777 * varasm.cc (narrowing_initializer_constant_valid_p): Check
1778 SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
1779 ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
1781 2022-06-18 Roger Sayle <roger@nextmovesoftware.com>
1783 PR tree-optimization/105835
1784 * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
1785 Narrow integer multiplication by a zero_one_valued_p operand.
1786 (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
1787 conversions inside COND_EXPR where both data operands are
1790 2022-06-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1792 * config/xtensa/constraints.md (Y):
1793 Change to include integer constants until reload begins.
1794 * config/xtensa/predicates.md (move_operand): Ditto.
1795 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
1796 Change to allow storing integer constants into litpool only after
1799 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
1802 * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
1803 * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
1804 (alpha_store_data_bypass_p_1): Ditto.
1805 * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
1806 of generic store_data_bypass_p.
1807 (ev4_ist_c): Remove insn reservation.
1809 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
1812 * config/i386/i386.cc (ix86_function_arg): Assert that
1813 the mode of pointer argumet is equal to ptr_mode, not Pmode.
1815 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
1818 * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
1819 instead of REGNO comparisons in combine splitter.
1821 2022-06-17 Segher Boessenkool <segher@kernel.crashing.org>
1823 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
1826 2022-06-17 Kito Cheng <kito.cheng@sifive.com>
1828 * config/riscv/bitmanip.md: Supress warning.
1830 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
1833 * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
1834 Clear bits in the mask above bit 31.
1836 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
1838 * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
1839 to avoid spilling trivial literals to the constant pool.
1841 2022-06-16 David Malcolm <dmalcolm@redhat.com>
1843 * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
1844 auto_diagnostic_group to group any warning with its note.
1845 (maybe_warn_for_bound): Likewise.
1846 (check_access): Likewise.
1847 (warn_dealloc_offset): Likewise.
1848 (pass_waccess::maybe_warn_memmodel): Likewise.
1849 (pass_waccess::maybe_check_dealloc_call): Likewise.
1850 (pass_waccess::warn_invalid_pointer): Likewise.
1851 (pass_waccess::check_dangling_stores): Likewise.
1853 2022-06-16 Jason Merrill <jason@redhat.com>
1855 * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
1856 opts_set->x_flag_sanitize.
1858 2022-06-16 Jason Merrill <jason@redhat.com>
1860 * flags.h (issue_strict_overflow_warning): Comment #endif.
1862 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
1864 * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
1865 was invaraint before, clear the invariant bit.
1866 * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
1867 * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
1869 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
1871 * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
1873 2022-06-16 Jakub Jelinek <jakub@redhat.com>
1875 PR tree-optimization/105983
1876 * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
1877 y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
1878 on non-equality comparisons.
1880 2022-06-16 Jakub Jelinek <jakub@redhat.com>
1882 PR tree-optimization/105984
1883 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
1884 x > stype_max / cst || x < stype_min / cst): fold_convert @1
1885 to TREE_TYPE (@0) just once and test for negative divisor
1886 also on that folded constant instead of on @1.
1888 2022-06-16 Jakub Jelinek <jakub@redhat.com>
1890 PR middle-end/105951
1891 * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
1892 optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
1893 as last argument to the internal functions.
1894 * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
1895 extra call argument to ifns. If expand_atomic_fetch_op fails for the
1896 lhs == NULL_TREE case, fall through into the optab code with
1897 gen_reg_rtx (mode) as target. If second expand_atomic_fetch_op
1898 fails, construct a CALL_EXPR and expand that.
1899 (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
1900 to ifns. If expand_atomic_fetch_op fails, construct a CALL_EXPR and
1903 2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org>
1906 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
1907 gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
1908 RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
1909 RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
1910 * config/rs6000/vector.md (VEC_IC): New mode iterator. Add support
1911 for new Power10 V1TI instructions.
1912 (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
1913 (vec_cmpu<mode><mode>): Likewise.
1914 (vector_nlt<mode>): Set mode iterator to VEC_IC.
1915 (vector_nltv1ti): Remove.
1916 (vector_gtu<mode>): Set mode iterator to VEC_IC.
1917 (vector_gtuv1ti): Remove.
1918 (vector_nltu<mode>): Set mode iterator to VEC_IC.
1919 (vector_nltuv1ti): Remove.
1920 (vector_geu<mode>): Set mode iterator to VEC_IC.
1921 (vector_ngt<mode>): Likewise.
1922 (vector_ngtv1ti): Remove.
1923 (vector_ngtu<mode>): Set mode iterator to VEC_IC.
1924 (vector_ngtuv1ti): Remove.
1925 (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
1926 (vector_gtu_v1ti_p): Remove.
1927 (vrotl<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
1928 (vrotlv1ti3): Remove.
1929 (vashr<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
1930 (vashrv1ti3): Remove.
1932 2022-06-16 Martin Liska <mliska@suse.cz>
1934 * gengtype-state.cc (read_a_state_token): Do not skip extra
1935 character after escaped sequence.
1937 2022-06-16 Martin Liska <mliska@suse.cz>
1940 * spellcheck.cc (test_find_closest_string): Add new test.
1941 * spellcheck.h (class best_match): Prefer a difference in
1942 trailing sign symbol.
1944 2022-06-16 liuhongt <hongtao.liu@intel.com>
1946 PR tree-optimization/53533
1947 * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
1948 (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
1949 and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
1951 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1953 * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
1955 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1957 * config/xtensa/predicates.md (reload_operand):
1959 * config/xtensa/xtensa.md: New peephole2 pattern.
1961 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1963 * config/xtensa/xtensa.md (*round_up_to_even):
1964 New insn-and-split pattern.
1965 (*signed_ge_zero): Ditto.
1967 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1969 * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
1970 xtensa_emit_sibcall): New prototypes.
1971 (xtensa_expand_epilogue): Add new argument that specifies whether
1972 or not sibling call.
1973 * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
1974 New macro definition.
1975 (xtensa_prepare_expand_call): New function in order to share
1977 (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
1979 (xtensa_expand_epilogue): Add new argument sibcall_p and use it
1980 for sibling call handling.
1981 * config/xtensa/xtensa.md (call, call_value):
1982 Use xtensa_prepare_expand_call.
1983 (call_internal, call_value_internal):
1984 Add the condition in order to be disabled if sibling call.
1985 (sibcall, sibcall_value, sibcall_epilogue): New expansions.
1986 (sibcall_internal, sibcall_value_internal): New insn patterns,
1987 and split ones in order to take care of the indirect sibcalls.
1989 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1991 * doc/invoke.texi: Document -mextra-l32r-costs= option.
1993 2022-06-15 David Malcolm <dmalcolm@redhat.com>
1996 * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
1997 * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
1998 Extend -fdiagnostics-path-format=separate-events so that with
1999 -fdiagnostics-show-path-depths it prints fndecls as well as stack
2002 2022-06-15 David Malcolm <dmalcolm@redhat.com>
2004 * value-relation.h: Add "final" and "override" to relation_oracle
2005 vfunc implementations as appropriate.
2007 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
2009 PR middle-end/105975
2010 Revert everything apart from the expand_fn_using_insn and
2011 expand_direct_optab_fn changes from:
2012 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
2013 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
2014 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
2015 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
2016 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
2018 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
2019 (direct_internal_fn_p): Also return true for internal functions
2020 that map directly to instructions defined target-insns.def.
2021 (direct_internal_fn): Adjust comment accordingly.
2022 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
2023 (vectorizable_optab2): New local macros.
2024 (not_direct): Initialize directly_mapped.
2025 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
2026 (gather_load_direct, len_load_direct, mask_store_direct)
2027 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
2028 (vec_cond_direct, scatter_store_direct, len_store_direct)
2029 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
2030 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
2031 (while_direct, fold_extract_direct, fold_left_direct)
2032 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
2033 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
2034 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
2035 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
2036 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
2037 (direct_internal_fn_types): Handle functions that map to instructions
2038 defined in target-insns.def.
2039 (direct_internal_fn_types): Likewise.
2040 (direct_internal_fn_supported_p): Likewise.
2041 (internal_fn_expanders): Likewise.
2042 (expand_fn_using_insn): New function,
2043 split out and adapted from...
2044 (expand_direct_optab_fn): ...here.
2045 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
2046 (expand_GOMP_SIMT_EXIT): Likewise.
2047 (expand_GOMP_SIMT_LANE): Likewise.
2048 (expand_GOMP_SIMT_LAST_LANE): Likewise.
2049 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
2050 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
2051 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
2052 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
2054 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
2057 * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
2058 to first_reg and second_reg respectively. Initialize them correctly
2059 when generating big-endian code.
2061 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
2064 * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
2066 2022-06-15 Richard Biener <rguenther@suse.de>
2068 PR tree-optimization/105971
2069 * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
2070 FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
2071 to leak less surprising alias results.
2073 2022-06-15 Richard Biener <rguenther@suse.de>
2075 PR tree-optimization/105969
2076 * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
2077 by zero in overflow check.
2079 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
2081 PR tree-optimization/105254
2082 PR tree-optimization/105940
2084 * config/aarch64/aarch64.cc
2085 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
2086 loop_vec_info as argument. Restrict the unroll factor to values
2088 (aarch64_vector_costs::finish_cost): Update call accordingly.
2090 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
2092 * read-rtl.cc (find_int): Substitute symbolic constants
2093 before converting the string to an integer.
2095 2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
2096 Richard Biener <rguenther@suse.de>
2098 * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
2099 left shifts by a constant when the result is truncated, and the
2100 shift constant is well-defined.
2101 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
2102 support for rotations of signed integer types, by lowering
2103 using unsigned vector shifts.
2105 2022-06-15 liuhongt <hongtao.liu@intel.com>
2108 * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
2111 2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
2113 PR rtl-optimization/105041
2114 * regrename.cc (check_new_reg_p): Use nregs value from du chain.
2116 2022-06-14 Segher Boessenkool <segher@kernel.crashing.org>
2118 * config/rs6000/vsx.md (VS_scalar): Delete.
2119 (rest of file): Adjust.
2121 2022-06-14 Jan Hubicka <hubicka@ucw.cz>
2124 * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
2126 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
2128 * config/riscv/bitmanip.md: Add split to handle opportunities
2129 for slli + sh[123]add.uw
2131 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
2133 * config/riscv/predicates.md (consecutive_bits_operand):
2134 Implement new predicate.
2136 2022-06-14 Richard Biener <rguenther@suse.de>
2138 PR tree-optimization/105946
2139 * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
2140 Do not look at arguments not specified in the function call.
2142 2022-06-14 Richard Biener <rguenther@suse.de>
2144 PR middle-end/105965
2145 * match.pd (view_convert CONSTRUCTOR): Handle single-element
2148 2022-06-14 Eric Botcazou <ebotcazou@adacore.com>
2150 * warning-control.cc (copy_warning) [generic version]: Do not erase
2151 the warning data of the destination location when the no-warning
2152 bit is not set on the source.
2153 (copy_warning) [tree version]: Return early if TO is equal to FROM.
2154 (copy_warning) [gimple version]: Likewise.
2156 2022-06-14 Kewen Lin <linkw@linux.ibm.com>
2158 PR tree-optimization/105940
2159 * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
2160 applying suggested_unroll_factor after start_over.
2162 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2164 * config/xtensa/predicates.md (shifted_mask_operand):
2166 * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
2167 New insn-and-split pattern.
2168 (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
2169 *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
2170 *masktrue_const_shifted_mask): Ditto.
2172 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2174 * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
2176 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2178 * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
2179 Remove the first argument.
2180 (xtensa_emit_bit_branch): Remove it because now called only from the
2181 output statement of *bittrue insn pattern.
2182 * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
2183 argument 'p_invert', and make so that the condition is reversed by
2185 (xtensa_expand_conditional_branch): Share the common path, and remove
2186 condition inversion code.
2187 (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
2188 "false side" pattern.
2189 (xtensa_emit_bit_branch): Remove it because of the abovementioned
2190 reason, and move the function body to *bittrue insn pattern.
2191 * config/xtensa/xtensa.md (*bittrue): Transplant the output
2192 statement from removed xtensa_emit_bit_branch().
2193 (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
2196 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2198 * config/xtensa/predicates.md (logical_shift_operator,
2199 xtensa_shift_per_byte_operator): New predicates.
2200 * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
2202 * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
2203 New helper function for funnel shift patterns.
2204 * config/xtensa/xtensa.md (ior_op): New code iterator.
2205 (*ashlsi3_1): Replace with new split pattern.
2206 (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
2207 (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
2208 New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
2209 in order to omit unnecessary bitwise AND operation.
2210 (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
2211 *shlrd_per_byte_<code>_omit_AND):
2212 New insn patterns for funnel shifts.
2214 2022-06-13 Jason Merrill <jason@redhat.com>
2216 * tree-cfg.cc (pass_warn_function_return::execute): Also check
2219 2022-06-13 Maciej W. Rozycki <macro@embecosm.com>
2221 * config/riscv/riscv.md (length): Remove the explicit setting
2224 2022-06-13 H.J. Lu <hjl.tools@gmail.com>
2226 * common/config/i386/cpuinfo.h (get_available_features): Require
2227 AVX for F16C and VAES.
2229 2022-06-13 Uroš Bizjak <ubizjak@gmail.com>
2232 * config/i386/predicates.md (register_no_elim_operand):
2233 Return true for subreg of a memory operand.
2235 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
2237 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
2238 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
2239 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
2240 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
2241 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
2243 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
2244 (direct_internal_fn_p): Also return true for internal functions
2245 that map directly to instructions defined target-insns.def.
2246 (direct_internal_fn): Adjust comment accordingly.
2247 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
2248 (vectorizable_optab2): New local macros.
2249 (not_direct): Initialize directly_mapped.
2250 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
2251 (gather_load_direct, len_load_direct, mask_store_direct)
2252 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
2253 (vec_cond_direct, scatter_store_direct, len_store_direct)
2254 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
2255 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
2256 (while_direct, fold_extract_direct, fold_left_direct)
2257 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
2258 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
2259 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
2260 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
2261 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
2262 (direct_internal_fn_types): Handle functions that map to instructions
2263 defined in target-insns.def.
2264 (direct_internal_fn_types): Likewise.
2265 (direct_internal_fn_supported_p): Likewise.
2266 (internal_fn_expanders): Likewise.
2268 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
2270 * internal-fn.cc (expand_fn_using_insn): New function,
2271 split out and adapted from...
2272 (expand_direct_optab_fn): ...here.
2273 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
2274 (expand_GOMP_SIMT_EXIT): Likewise.
2275 (expand_GOMP_SIMT_LANE): Likewise.
2276 (expand_GOMP_SIMT_LAST_LANE): Likewise.
2277 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
2278 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
2279 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
2280 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
2282 2022-06-13 Jakub Jelinek <jakub@redhat.com>
2284 * omp-expand.cc (expand_omp_target): Remap user provided
2285 device clause arguments, -1 to -2 and -2 to -3, either
2286 at compile time if constant, or at runtime.
2288 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
2290 * common.opt (finstrument-functions): Set explicit value.
2291 (-finstrument-functions-once): New option.
2292 * doc/invoke.texi (Program Instrumentation Options): Document it.
2293 * gimplify.cc (build_instrumentation_call): New static function.
2294 (gimplify_function_tree): Call it to emit the instrumentation calls
2295 if -finstrument-functions[-once] is specified.
2297 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
2299 * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
2300 * gimple.h (gimple_set_location): Do not copy warning data from
2301 the previous location when it is UNKNOWN_LOCATION.
2302 * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
2304 2022-06-13 Jakub Jelinek <jakub@redhat.com>
2307 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
2308 *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
2309 (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
2310 operands[3] unmodified.
2312 2022-06-12 Simon Wright <simon@pushface.org>
2315 * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
2316 version is darwin20 (macOS 11) or greater, truncate the version to the
2319 2022-06-12 Mark Mentovai <mark@mentovai.com>
2321 * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
2323 2022-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2326 * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
2327 (svld1rq_impl::fold): Define.
2328 * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
2329 op_mode and op_vec_flags.
2330 (aarch64_evpc_reencode): Initialize newd.op_mode and
2332 (aarch64_evpc_sve_dup): New function.
2333 (aarch64_expand_vec_perm_const_1): Gate existing calls to
2334 aarch64_evpc_* functions under d->vmode == d->op_mode,
2335 and call aarch64_evpc_sve_dup.
2336 (aarch64_vectorize_vec_perm_const): Remove assert
2337 d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
2338 * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
2339 vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
2342 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2344 * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
2346 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
2347 xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
2348 xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
2349 New backend functions that process the abovementioned logic.
2350 (xtensa_emit_move_sequence): Revert the previous changes.
2351 * config/xtensa/xtensa.md: New split patterns for integer
2352 and floating-point, as the frontend part.
2354 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2356 * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
2357 for ABS and NEG, add missing case for BSWAP and CLRSB, and
2358 double the costs for integer divisions using libfuncs if
2359 optimizing for speed, in order to take advantage of fast constant
2360 division by multiplication.
2361 (TARGET_INSN_COST): New macro definition.
2362 (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
2363 calculating relative costs of a RTL insns, for both of speed and
2365 * config/xtensa/xtensa.md (return, nop, trap): Correct values of
2366 the attribute "length" that depends on TARGET_DENSITY.
2367 (define_asm_attributes, blockage, frame_blockage): Add missing
2369 * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
2370 dependent option, however, preparatory work for now.
2372 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2374 * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
2375 Pass through the block length / loop count conditions if
2376 zero-overhead looping is configured and active,
2378 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2380 * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
2381 Split into individual signedness, in order to use libcall
2382 "__umulsidi3" but not the other.
2383 (<u>mulhisi3): Merge into one by using code iterator.
2384 (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
2386 2022-06-11 Michael Meissner <meissner@linux.ibm.com>
2388 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
2389 not generate block copies with vector pair instructions if we are
2392 2022-06-10 Roger Sayle <roger@nextmovesoftware.com>
2394 PR rtl-optimization/7061
2395 * expr.cc (emit_group_store): For groups that consist of a single
2396 scalar integer register that hold a complex mode value, use
2397 gen_lowpart to generate a SUBREG to "view_convert" to the complex
2398 mode. For modes of different sizes, first convert to an integer
2399 mode of the appropriate size.
2401 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2403 * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
2405 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2407 * config/xtensa/xtensa.md (*andsi3_bitcmpl):
2408 New insn_and_split pattern.
2410 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2412 * config/xtensa/xtensa.md (one_cmplsi2):
2413 Rearrange as an insn_and_split pattern.
2415 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2417 * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
2419 2022-06-09 Segher Boessenkool <segher@kernel.crashing.org>
2421 * config/rs6000/rs6000.md (FP_ISA3): Delete.
2422 (float<QHI:mode><FP_ISA3:mode>2): Rename to...
2423 (float<QHI:mode><SFDF:mode>2): ... this. Adjust.
2424 (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
2425 (*float<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
2426 (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
2427 (floatuns<QHI:mode><SFDF:mode>2): ... this. Adjust.
2428 (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
2429 (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
2431 2022-06-09 Maciej W. Rozycki <macro@embecosm.com>
2433 * config/riscv/riscv.md
2434 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
2435 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
2436 rather than space with FSFLAGS.
2438 2022-06-09 Tobias Burnus <tobias@codesourcery.com>
2440 * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
2441 omp_discover_declare_target_fn_r): Don't walk reverse-offload
2444 2022-06-09 Jakub Jelinek <jakub@redhat.com>
2446 * doc/invoke.texi (-Waddress): Fix a typo in small example.
2447 Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
2449 2022-06-09 Cui,Lili <lili.cui@intel.com>
2452 * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
2453 from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
2454 unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
2455 (icelake_cost): Ditto.
2456 (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
2457 stores and unaligned stores cost from {6, 6, 6, 10, 15} to
2460 2022-06-09 Haochen Gui <guihaoc@gcc.gnu.org>
2462 * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
2463 and ior insns to one rotate and mask insn.
2464 (define_split for bswapdi register): Likewise.
2466 2022-06-08 Roger Sayle <roger@nextmovesoftware.com>
2468 PR middle-end/105874
2469 * expr.cc (expand_expr_real_1) <normal_inner_ref>: New local
2470 variable tem_modifier for calculating the expand_modifier enum to
2471 use for expanding tem. If tem is a VAR_DECL, use EXPAND_MEMORY.
2473 2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
2476 * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
2477 to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
2478 'gen_highpart' bitwise semantics and fix order of highpart and
2479 lowpart depending on target endianness.
2481 2022-06-08 Chung-Ju Wu <jasonwucj@gmail.com>
2483 * config/arm/arm-cpus.in (star-mc1): New cpu.
2484 * config/arm/arm-tables.opt: Regenerate.
2485 * config/arm/arm-tune.md: Regenerate.
2486 * doc/invoke.texi: Update docs.
2488 2022-06-08 liuhongt <hongtao.liu@intel.com>
2492 * config/i386/i386.md (*movsi_internal): Change alternative
2494 (*movdi_internal): Ditto.
2495 * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
2497 (*vec_extractv4sf_mem): Ditto.
2498 (*vec_extracthf): Ditto.
2500 2022-06-07 Richard Earnshaw <rearnsha@arm.com>
2503 * config/arm/arm.cc (arm_bfi_1_p): New function.
2504 (arm_bfi_p): New function.
2505 (arm_rtx_costs_internal): Add costs for BFI idioms.
2506 (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
2507 * config/arm/constraints.md (Dj): New constraint.
2508 * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
2509 (insv_zero): Convert to an insn with a split.
2510 (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
2512 2022-06-07 liuhongt <hongtao.liu@intel.com>
2515 * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
2518 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
2520 PR middle-end/105853
2522 * calls.cc (load_register_parameters): Call store_constructor
2523 and int_expr_size directly instead of expanding via expand_expr.
2524 * expr.cc (static void store_constructor): Don't prototype here.
2525 (static HOST_WIDE_INT int_expr_size): Likewise.
2526 (store_constructor): No longer static.
2527 (int_expr_size): Likewise, no longer static.
2528 * expr.h (store_constructor): Prototype here.
2529 (int_expr_size): Prototype here.
2531 2022-06-07 Jan Beulich <jbeulich@suse.com>
2534 2022-06-03 Jan Beulich <jbeulich@suse.com>
2536 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
2537 * configure.ac: Check for objcopy, producing
2538 ORIGINAL_OBJCOPY_FOR_TARGET.
2539 * configure: Update accordingly.
2540 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
2543 2022-06-07 Jakub Jelinek <jakub@redhat.com>
2545 * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
2546 * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
2547 Adjust clause printing style depending on
2548 OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
2550 2022-06-07 Jan Beulich <jbeulich@suse.com>
2552 * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
2554 * config/i386/i386-builtin-types.def: New function type
2555 (V4DI, V32QI, V32QI).
2556 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
2557 V4DI_FTYPE_V32QI_V32QI.
2559 2022-06-07 Jan Beulich <jbeulich@suse.com>
2561 * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
2562 into account for reg-only insns.
2564 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
2566 * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
2567 IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
2568 TARGET_CMOVE's (scalar integer) conditional moves.
2569 * config/i386/sse.md (define_split): Recognize XOP's vpcmov
2570 from its equivalent (canonical) pxor;pand;pxor sequence.
2572 2022-06-07 Kewen Lin <linkw@linux.ibm.com>
2574 * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
2577 2022-06-06 Andrew Stubbs <ams@codesourcery.com>
2579 * config.in: Regenerate.
2580 * configure: Regenerate.
2581 * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
2583 2022-06-04 Roger Sayle <roger@nextmovesoftware.com>
2586 * calls.cc (load_register_parameters): When loading a suitable
2587 immediate_const_ctor_p VAR_DECL into a single word_mode register,
2588 construct it directly in a pseudo rather than read it (by parts)
2590 * expr.cc (int_expr_size): Make tree argument a const_tree.
2591 (immediate_const_ctor_p): Helper predicate. Return true for
2592 simple constructors that may be materialized in a register.
2593 (expand_expr_real_1) [VAR_DECL]: When expanding a constant
2594 VAR_DECL with a suitable immediate_const_ctor_p constructor
2595 use store_constructor to materialize it directly in a pseudo.
2596 * expr.h (immediate_const_ctor_p): Prototype here.
2597 * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
2598 VALUE argument from tree to const_tree.
2599 * varasm.h (initializer_constant_valid_for_bitfield_p): Update
2602 2022-06-04 Jakub Jelinek <jakub@redhat.com>
2605 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
2606 *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
2607 bits of mask aren't all set, use operands[2] mode for the AND
2608 operation instead of always SImode.
2610 2022-06-03 Jakub Jelinek <jakub@redhat.com>
2613 PR middle-end/105777
2614 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
2615 x > stype_max / cst || x < stype_min / cst): New simplification.
2617 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
2619 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
2621 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
2622 * value-range.h (Value_Range::Value_Range): Implement copy
2623 constructor for Value_Range.
2625 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
2627 * value-range.h (struct vrange_traits): Remove.
2628 (is_a): Rewrite without vrange_traits.
2631 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
2633 * value-range.cc (vrange::contains_p): Implement.
2634 (vrange::type): Return void.
2635 (vrange::supports_type_p): Implement.
2636 (irange::fits_p): Same.
2637 (vrange::set_undefined): Same.
2638 (irange::set_nonnegative): Same.
2639 (vrange::set_varying): Same.
2640 (vrange::union_): Same.
2641 (unsupported_range::set): Move to vrange.
2642 (unsupported_range::type): Move to vrange.
2643 (vrange::intersect): Implement for varying and undefined.
2644 (vrange::zero_p): Implement.
2645 (unsupported_range::supports_type_p): Move to vrange.
2646 (vrange::nonzero_p): Implement.
2647 (unsupported_range::set_undefined): Move to vrange.
2648 (unsupported_range::set_varying): Same.
2649 (unsupported_range::dump): Same.
2650 (unsupported_range::union_): Same. Implement for varying and
2652 (unsupported_range::intersect): Move to vrange.
2653 (unsupported_range::zero_p): Same.
2654 (unsupported_range::nonzero_p): Same.
2655 (unsupported_range::set_nonzero): Same.
2656 (unsupported_range::set_zero): Same.
2657 (unsupported_range::set_nonnegative): Same.
2658 (unsupported_range::fits_p): Same.
2659 * value-range.h (class vrange): Remove abstract markers for most
2661 (class unsupported_range): Remove most methods as they will now be
2662 inherited from vrange.
2664 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
2666 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
2667 an object level supports_type_p for irange and a static
2668 Value_Range::supports_type_p.
2669 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
2670 (fold_using_range::range_of_address): Same.
2671 (fold_using_range::range_of_builtin_call): Same.
2672 * gimple-range-fold.h (gimple_range_type): Same.
2673 (gimple_range_ssa_p): Same.
2674 * gimple-range-path.cc (path_range_query::internal_range_of_expr):
2676 (path_range_query::range_of_stmt): Same.
2677 (path_range_query::add_to_imports): Same.
2678 * gimple-range.cc (gimple_ranger::range_on_edge): Same.
2679 (gimple_ranger::export_global_ranges): Same.
2680 * gimple-ssa-evrp-analyze.cc
2681 (evrp_range_analyzer::record_ranges_from_phis): Same.
2682 * range-op.cc (range_operator::wi_fold): Same.
2683 (range_operator::fold_range): Same.
2684 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
2685 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
2686 (evaluate_control_stmt_using_entry_checks): Same.
2687 * tree-ssa-threadedge.cc
2688 (hybrid_jt_simplifier::compute_ranges_from_state): Same.
2689 * tree-vrp.cc (supported_types_p): Same.
2690 * value-query.cc (range_query::value_of_expr): Same.
2691 (range_query::value_on_edge): Same.
2692 (range_query::value_of_stmt): Same.
2693 (range_query::get_tree_range): Same.
2694 (get_range_global): Same.
2695 (global_range_query::range_of_expr): Same.
2696 * value-range-equiv.h (class value_range_equiv): Same.
2697 * value-range.cc (irange::supports_type_p): Same.
2698 (unsupported_range::supports_type_p): Same.
2699 * value-range.h (enum value_range_discriminator): Same.
2700 (Value_Range::init): Same.
2701 (Value_Range::supports_type_p): Same.
2702 (irange::supports_type_p): Same.
2703 (irange::supports_p): Same.
2704 (vrange::supports_type_p): Same.
2705 (vrange_allocator::alloc_vrange): Same.
2707 2022-06-03 Jan Beulich <jbeulich@suse.com>
2709 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
2710 * configure.ac: Check for objcopy, producing
2711 ORIGINAL_OBJCOPY_FOR_TARGET.
2712 * configure: Update accordingly.
2713 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
2716 2022-06-03 Jan Beulich <jbeulich@suse.com>
2718 * config/i386/mmx.md (mmx_psadbw): Convert to expander.
2719 (*mmx_psadbw): New. Mark as commutative.
2720 * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
2721 (*<sse2_avx2>_psadbw): New. Mark as commutative.
2723 2022-06-03 Alexandre Oliva <oliva@adacore.com>
2725 PR tree-optimization/105665
2726 PR tree-optimization/100810
2727 * tree-ssa-loop-ivopts.cc
2728 (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
2729 (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
2730 (find_ssa_undef): Check precomputed flag and intervening uses.
2731 (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
2733 2022-06-02 David Malcolm <dmalcolm@redhat.com>
2735 * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
2736 tree-logical-location.o.
2737 (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
2738 (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
2739 * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
2740 (sarif-stderr, sarif-file): New enum values.
2741 * diagnostic-client-data-hooks.h: New file.
2742 * diagnostic-format-sarif.cc: New file.
2743 * diagnostic-path.h (enum diagnostic_event::verb): New enum.
2744 (enum diagnostic_event::noun): New enum.
2745 (enum diagnostic_event::property): New enum.
2746 (struct diagnostic_event::meaning): New struct.
2747 (diagnostic_event::get_logical_location): New vfunc.
2748 (diagnostic_event::get_meaning): New vfunc.
2749 (simple_diagnostic_event::get_logical_location): New vfunc impl.
2750 (simple_diagnostic_event::get_meaning): New vfunc impl.
2751 * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
2752 (diagnostic_initialize): Initialize m_client_data_hooks.
2753 (diagnostic_finish): Clean up m_client_data_hooks.
2754 (diagnostic_event::meaning::dump_to_pp): New.
2755 (diagnostic_event::meaning::maybe_get_verb_str): New.
2756 (diagnostic_event::meaning::maybe_get_noun_str): New.
2757 (diagnostic_event::meaning::maybe_get_property_str): New.
2758 (get_cwe_url): Make non-static.
2759 (diagnostic_output_format_init): Handle
2760 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
2761 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
2762 * diagnostic.h (enum diagnostics_output_format): Add
2763 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
2764 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
2765 (class diagnostic_client_data_hooks): New forward decl.
2766 (class logical_location): New forward decl.
2767 (diagnostic_context::m_client_data_hooks): New field.
2768 (diagnostic_output_format_init_sarif_stderr): New decl.
2769 (diagnostic_output_format_init_sarif_file): New decl.
2770 (get_cwe_url): New decl.
2771 * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
2773 * doc/sourcebuild.texi (Scan a particular file): Add
2774 scan-sarif-file and scan-sarif-file-not.
2775 * langhooks-def.h (lhd_get_sarif_source_language): New decl.
2776 (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
2777 (LANG_HOOKS_INITIALIZER): Add
2778 LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
2779 * langhooks.cc (lhd_get_sarif_source_language): New.
2780 * langhooks.h (lang_hooks::get_sarif_source_language): New field.
2781 * logical-location.h: New file.
2782 * plugin.cc (struct for_each_plugin_closure): New.
2783 (for_each_plugin_cb): New.
2784 (for_each_plugin): New.
2785 * plugin.h (for_each_plugin): New decl.
2786 * tree-diagnostic-client-data-hooks.cc: New file.
2787 * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
2788 (tree_diagnostics_defaults): Populate m_client_data_hooks.
2789 * tree-logical-location.cc: New file.
2790 * tree-logical-location.h: New file.
2792 2022-06-02 David Malcolm <dmalcolm@redhat.com>
2794 * common.opt (fdiagnostics-format=): Add json-stderr and json-file
2796 (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
2797 (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
2798 (diagnostics_output_format): Add json-stderr and json-file.
2799 * diagnostic-format-json.cc (json_flush_to_file): New.
2800 (json_final_cb): Convert to...
2801 (json_flush_to_file): ...this, ...
2802 (json_stderr_final_cb): ...this, and...
2803 (json_file_final_cb): ...this.
2804 (diagnostic_output_format_init): Move to diagnostic.cc.
2805 (json_output_base_file_name): New.
2806 (diagnostic_output_format_init_json): New.
2807 (diagnostic_output_format_init_json_stderr): New.
2808 (diagnostic_output_format_init_json_file): New.
2809 * diagnostic.cc (diagnostic_output_format_init): Move here from
2810 diagnostic-format-json.cc; update for changes to enum.
2811 * diagnostic.h (enum diagnostics_output_format): Rename
2812 DIAGNOSTICS_OUTPUT_FORMAT_JSON to
2813 DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
2814 DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
2815 (diagnostic_output_format_init): Add base_file_name param.
2816 (diagnostic_output_format_init_json_stderr): New decl.
2817 (diagnostic_output_format_init_json_file): New dec.
2818 * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
2819 "json-file". Rewrite so that the existing "json" is a synonym of
2821 * gcc.cc (driver_handle_option): Pass dump_base_name to
2822 diagnostic_output_format_init.
2823 * opts.cc (common_handle_option): Likewise.
2825 2022-06-02 David Malcolm <dmalcolm@redhat.com>
2827 * json.cc (string::print): Fix escaping of '\'.
2829 2022-06-02 Philipp Tomsich <philipp.tomsich@vrull.eu>
2831 * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
2832 (-1 << 31) for the single-bit case, when operating on (1 << 31)
2834 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
2835 any single-bit value, moving the special case for (1 << 31) to
2836 riscv_build_integer_1 (in riscv.c).
2838 2022-06-02 Roger Sayle <roger@nextmovesoftware.com>
2841 * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
2842 (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
2844 2022-06-02 Jakub Jelinek <jakub@redhat.com>
2847 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
2848 from AND and its operands and just verify operands[2] has HImode,
2849 SImode or for TARGET_64BIT DImode. Allow operands[3] to be a mask
2850 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
2851 just throw away the masking. Use force_reg before calling
2853 (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
2854 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
2855 just throw away the masking.
2856 (*ashl<mode>3_doubleword): Rename to ...
2857 (ashl<mode>3_doubleword): ... this.
2858 (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
2859 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
2860 Use force_reg before calling gen_lowpart.
2861 (*<insn><mode>3_mask): Likewise.
2862 (*<insn><dwi>3_doubleword_mask): Likewise. Allow operands[3] to be
2863 a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
2864 case just throw away the masking. Use force_reg before calling
2866 (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
2867 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
2868 throw away the masking.
2869 (*<insn><mode>3_doubleword): Rename to ...
2870 (<insn><mode>3_doubleword): ... this.
2871 (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
2872 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
2873 Use force_reg before calling gen_lowpart.
2874 (splitter after it): Remove :SI from AND and its operands and just
2875 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
2876 (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
2877 operands and just verify operands[1] has HImode, SImode or for
2878 TARGET_64BIT DImode. Use force_reg before calling gen_lowpart.
2879 (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
2880 * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
2881 ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
2883 2022-06-02 Richard Biener <rguenther@suse.de>
2885 PR tree-optimization/101668
2886 * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
2887 for vector types with compatible lane types.
2888 (vect_build_slp_tree_2): Deal with this.
2889 (vect_add_slp_permutation): Adjust. Emit lowpart/concat
2890 special cases without VEC_PERM.
2891 (vectorizable_slp_permutation): Select the operand vector
2892 type and relax requirements. Handle identity permutes
2893 with mismatching operand types.
2894 * optabs-query.cc (can_vec_perm_const_p): Only allow variable
2895 permutes for op_mode == mode.
2897 2022-06-02 Richard Biener <rguenther@suse.de>
2899 PR tree-optimization/105802
2900 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
2901 Make sure to also compute the range in the type of the switch index.
2903 2022-06-01 David Seifert <soap@gentoo.org>
2906 * configure: Regenerate.
2908 2022-06-01 H.J. Lu <hjl.tools@gmail.com>
2910 PR rtl-optimization/105638
2911 * df-core.cc (df_find_single_def_src): Moved and renamed from
2912 find_single_def_src in loop-iv.cc. Change the argument to rtx
2913 and use rtx_equal_p. Return null for partial or conditional
2915 * df.h (df_find_single_def_src): New prototype.
2916 * dse.cc (record_store): Use the constant source if the source
2917 register is set only once.
2918 * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
2919 (replace_single_def_regs): Replace find_single_def_src with
2920 df_find_single_def_src.
2922 2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com>
2924 * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
2926 (explicit_arch): Rename to selected_arch.
2927 (x_aarch64_override_tune_string): Remove.
2928 (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
2929 (aarch64_override_tune_string): Add Save so it gets saved/restored.
2930 * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
2931 * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
2932 (processor): Remove archtecture_version field.
2933 (selected_arch): Remove global.
2934 (selected_cpu): Remove global.
2935 (selected_tune): Remove global.
2936 (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
2937 (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
2938 (aarch64_override_options): Further simplify code to only set
2939 selected_arch and selected_tune globals.
2940 (aarch64_option_save): Remove now that target options are saved.
2941 (aarch64_option_restore): Remove redundant target option restores.
2942 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
2944 * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
2945 * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
2946 (aarch64_ra_sign_key): Remove.
2948 2022-06-01 Jakub Jelinek <jakub@redhat.com>
2951 * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
2952 x > ~(utype)0 / cst): New simplification.
2954 2022-06-01 Richard Biener <rguenther@suse.de>
2956 PR tree-optimization/105786
2957 * tree-loop-distribution.cc
2958 (loop_distribution::transform_reduction_loop): Only do strlen
2959 replacement for integer type reductions.
2961 2022-06-01 Jakub Jelinek <jakub@redhat.com>
2963 PR tree-optimization/105770
2964 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
2965 CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
2967 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
2969 * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
2970 (sbr_vector::sbr_vector): Same.
2971 (sbr_vector::grow): Same.
2972 (sbr_vector::set_bb_range): Same.
2973 (sbr_vector::get_bb_range): Same.
2974 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
2975 (sbr_sparse_bitmap::set_bb_range): Same.
2976 (sbr_sparse_bitmap::get_bb_range): Same.
2977 (block_range_cache::set_bb_range): Same.
2978 (block_range_cache::get_bb_range): Same.
2979 (block_range_cache::dump): Same.
2980 (ssa_global_cache::get_global_range): Same.
2981 (ssa_global_cache::set_global_range): Same.
2982 (ssa_global_cache::clear): Same.
2983 (ssa_global_cache::dump): Same.
2984 (ranger_cache::get_global_range): Same.
2985 (ranger_cache::set_global_range): Same.
2986 (ranger_cache::range_of_def): Same.
2987 (ranger_cache::entry_range): Same.
2988 (ranger_cache::exit_range): Same.
2989 (ranger_cache::edge_range): Same.
2990 (ranger_cache::range_of_expr): Same.
2991 (ranger_cache::range_on_edge): Same.
2992 (ranger_cache::block_range): Same.
2993 (ranger_cache::propagate_cache): Same.
2994 (ranger_cache::fill_block_cache): Same.
2995 (ranger_cache::range_from_dom): Same.
2996 * gimple-range-cache.h: Same.
2997 * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
2999 (gimple_outgoing_range::switch_edge_range): Same.
3000 (gimple_outgoing_range::edge_range_p): Same.
3001 * gimple-range-edge.h: Same.
3002 * gimple-range-fold.cc (fur_source::get_operand): Same.
3003 (fur_source::get_phi_operand): Same.
3004 (fur_edge::get_operand): Same.
3005 (fur_edge::get_phi_operand): Same.
3006 (fur_stmt::get_operand): Same.
3007 (fur_stmt::get_phi_operand): Same.
3008 (fur_list::fur_list): Same.
3009 (fur_list::get_operand): Same.
3010 (fur_list::get_phi_operand): Same.
3012 (adjust_imagpart_expr): Same.
3013 (adjust_realpart_expr): Same.
3014 (gimple_range_adjustment): Same.
3015 (fold_using_range::fold_stmt): Same.
3016 (fold_using_range::range_of_range_op): Same.
3017 (fold_using_range::range_of_address): Same.
3018 (fold_using_range::range_of_phi): Same.
3019 (fold_using_range::range_of_call): Same.
3020 (fold_using_range::range_of_builtin_call): Same.
3021 (fold_using_range::range_of_builtin_int_call): Same.
3022 (fold_using_range::range_of_cond_expr): Same.
3023 (fur_source::register_outgoing_edges): Same.
3024 * gimple-range-fold.h (fold_range): Same.
3025 (gimple_range_type): Same.
3026 (gimple_range_ssa_p): Same.
3027 * gimple-range-gori.cc (gimple_range_calc_op1): Same.
3028 (gimple_range_calc_op2): Same.
3029 (gori_compute::compute_operand_range_switch): Same.
3030 (gori_compute::compute_operand_range): Same.
3031 (gori_compute::logical_combine): Same.
3032 (gori_compute::compute_logical_operands): Same.
3033 (gori_compute::compute_operand1_range): Same.
3034 (gori_compute::compute_operand2_range): Same.
3035 (gori_compute::compute_operand1_and_operand2_range): Same.
3036 (gori_compute::outgoing_edge_range_p): Same.
3037 (gori_compute::condexpr_adjust): Same.
3038 * gimple-range-gori.h (gimple_range_calc_op1): Same.
3039 (gimple_range_calc_op2): Same.
3040 * gimple-range-path.cc (path_range_query::get_cache): Same.
3041 (path_range_query::set_cache): Same.
3042 (path_range_query::range_on_path_entry): Same.
3043 (path_range_query::internal_range_of_expr): Same.
3044 (path_range_query::range_of_expr): Same.
3045 (path_range_query::ssa_range_in_phi): Same.
3046 (path_range_query::range_defined_in_block): Same.
3047 (path_range_query::compute_ranges_in_phis): Same.
3048 (path_range_query::compute_ranges_in_block): Same.
3049 (path_range_query::add_to_imports): Same.
3050 (path_range_query::range_of_stmt): Same.
3051 * gimple-range-path.h: Same.
3052 * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
3053 (gimple_infer_range::~side_effect_manager): Same.
3054 (gimple_infer_range::get_nonzero): Same.
3055 (gimple_infer_range::maybe_adjust_range): Same.
3056 (gimple_infer_range::add_range): Same.
3057 * gimple-range-infer.h: Same.
3058 * gimple-range-tests.cc: Same.
3059 * gimple-range-trace.cc (range_tracer::trailer): Same.
3060 (debug_seed_ranger): Same.
3061 * gimple-range-trace.h: Same.
3062 * gimple-range.cc (gimple_ranger::range_of_expr): Same.
3063 (gimple_ranger::range_on_entry): Same.
3064 (gimple_ranger::range_on_exit): Same.
3065 (gimple_ranger::range_on_edge): Same.
3066 (gimple_ranger::fold_range_internal): Same.
3067 (gimple_ranger::range_of_stmt): Same.
3068 (gimple_ranger::prefill_name): Same.
3069 (gimple_ranger::prefill_stmt_dependencies): Same.
3070 (gimple_ranger::export_global_ranges): Same.
3071 (gimple_ranger::dump_bb): Same.
3072 * gimple-range.h: Same.
3073 * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
3074 (memmodel_to_uhwi): Same.
3075 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
3076 (determine_value_range): Same.
3077 (record_nonwrapping_iv): Same.
3078 (infer_loop_bounds_from_signedness): Same.
3079 (scev_var_range_cant_overflow): Same.
3080 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
3081 * value-query.cc (range_query::range_on_edge): Same.
3082 (range_query::range_of_stmt): Same.
3083 (range_query::value_of_expr): Same.
3084 (range_query::value_on_edge): Same.
3085 (range_query::value_of_stmt): Same.
3086 (range_query::get_tree_range): Same.
3087 (update_global_range): Same.
3088 (get_range_global): Same.
3089 (gimple_range_global): Same.
3090 (global_range_query::range_of_expr): Same.
3091 (range_query::query_relation): Same.
3092 * value-query.h (gimple_range_global): Same.
3093 (update_global_range): Same.
3094 * vr-values.cc (vr_values::range_of_expr): Same.
3095 (bounds_of_var_in_loop): Same.
3096 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
3097 * vr-values.h (class vr_values): Same.
3098 * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
3100 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
3102 * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
3104 (sbr_vector::grow): Same.
3105 (sbr_vector::set_bb_range): Same.
3106 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
3107 (sbr_sparse_bitmap::set_bb_range): Same.
3108 (block_range_cache::~block_range_cache): Same.
3109 (block_range_cache::set_bb_range): Same.
3110 (ssa_global_cache::ssa_global_cache): Same.
3111 (ssa_global_cache::~ssa_global_cache): Same.
3112 (ssa_global_cache::set_global_range): Same.
3113 * gimple-range-cache.h (block_range_cache): Same.
3114 (ssa_global_cache): Same.
3115 * gimple-range-edge.cc
3116 (gimple_outgoing_range::calc_switch_ranges): Same.
3117 * gimple-range-edge.h (gimple_outgoing_range): Same.
3118 * gimple-range-infer.cc (infer_range_manager::get_nonzero):
3120 (infer_range_manager::add_range): Same.
3121 * gimple-range-infer.h (class infer_range_manager): Same.
3122 * value-range.h (class irange_allocator): Rename to...
3123 (class vrange_allocator): ...this.
3124 (irange_allocator::irange_allocator): New.
3125 (vrange_allocator::vrange_allocator): New.
3126 (irange_allocator::~irange_allocator): New.
3127 (vrange_allocator::~vrange_allocator): New.
3128 (irange_allocator::get_memory): Rename to...
3129 (vrange_allocator::alloc): ...this.
3130 (vrange_allocator::alloc_vrange): Rename from...
3131 (irange_allocator::allocate): ...this.
3132 (vrange_allocator::alloc_irange): New.
3134 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
3136 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
3137 vrange and convert range_op_handler function calls to use the
3138 identically named object.
3139 * gimple-range-fold.cc (gimple_range_operand1): Same.
3140 (gimple_range_operand2): Same.
3141 (fold_using_range::fold_stmt): Same.
3142 (fold_using_range::range_of_range_op): Same.
3143 (fold_using_range::range_of_builtin_ubsan_call): Same.
3144 (fold_using_range::relation_fold_and_or): Same.
3145 (fur_source::register_outgoing_edges): Same.
3146 * gimple-range-fold.h (gimple_range_handler): Remove.
3147 * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
3148 (gimple_range_calc_op2): Same.
3149 (range_def_chain::get_def_chain): Same.
3150 (gori_compute::compute_operand_range): Same.
3151 (gori_compute::condexpr_adjust): Same.
3152 * gimple-range.cc (gimple_ranger::prefill_name): Same.
3153 (gimple_ranger::prefill_stmt_dependencies): Same.
3154 * range-op.cc (get_bool_state): Same.
3155 (class operator_equal): Add using clause.
3156 (class operator_not_equal): Same.
3157 (class operator_lt): Same.
3158 (class operator_le): Same.
3159 (class operator_gt): Same.
3160 (class operator_ge): Same.
3161 (class operator_plus): Same.
3162 (class operator_minus): Same.
3163 (class operator_mult): Same.
3164 (class operator_exact_divide): Same.
3165 (class operator_lshift): Same.
3166 (class operator_rshift): Same.
3167 (class operator_cast): Same.
3168 (class operator_logical_and): Same.
3169 (class operator_bitwise_and): Same.
3170 (class operator_logical_or): Same.
3171 (class operator_bitwise_or): Same.
3172 (class operator_bitwise_xor): Same.
3173 (class operator_trunc_mod): Same.
3174 (class operator_logical_not): Same.
3175 (class operator_bitwise_not): Same.
3176 (class operator_cst): Same.
3177 (class operator_identity): Same.
3178 (class operator_unknown): Same.
3179 (class operator_abs): Same.
3180 (class operator_negate): Same.
3181 (class operator_addr_expr): Same.
3182 (class pointer_or_operator): Same.
3183 (operator_plus::op1_range): Adjust for vrange.
3184 (operator_minus::op1_range): Same.
3185 (operator_mult::op1_range): Same.
3186 (operator_cast::op1_range): Same.
3187 (operator_bitwise_not::fold_range): Same.
3188 (operator_negate::fold_range): Same.
3189 (range_op_handler): Rename to...
3190 (get_handler): ...this.
3191 (range_op_handler::range_op_handler): New.
3192 (range_op_handler::fold_range): New.
3193 (range_op_handler::op1_range): New.
3194 (range_op_handler::op2_range): New.
3195 (range_op_handler::lhs_op1_relation): New.
3196 (range_op_handler::lhs_op2_relation): New.
3197 (range_op_handler::op1_op2_relation): New.
3198 (range_cast): Adjust for vrange.
3199 * range-op.h (range_op_handler): Remove function.
3200 (range_cast): Adjust for vrange.
3201 (class range_op_handler): New.
3202 (get_bool_state): Adjust for vrange.
3203 (empty_range_varying): Same.
3204 (relop_early_resolve): Same.
3205 * tree-data-ref.cc (compute_distributive_range): Same.
3206 * tree-vrp.cc (get_range_op_handler): Remove.
3207 (range_fold_binary_symbolics_p): Use range_op_handler class
3208 instead of get_range_op_handler.
3209 (range_fold_unary_symbolics_p): Same.
3210 (range_fold_binary_expr): Same.
3211 (range_fold_unary_expr): Same.
3212 * value-query.cc (range_query::get_tree_range): Adjust for vrange.
3214 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
3216 * gimple-range-fold.h (gimple_range_type): Check type before
3217 calling supports_type_p.
3218 * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
3219 * value-query.cc (range_query::get_tree_range): Same.
3220 * value-range.cc (Value_Range::lower_bound): New.
3221 (Value_Range::upper_bound): New.
3222 (Value_Range::dump): New.
3223 * value-range.h (class Value_Range): New.
3224 (irange::supports_type_p): Do not check if type is non-zero.
3226 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
3228 * value-range-equiv.cc (value_range_equiv::set): New.
3229 * value-range-equiv.h (class value_range_equiv): Make set method
3231 Remove default bitmap argument from set method.
3232 * value-range.cc (vrange::contains_p): New.
3233 (vrange::singleton_p): New.
3234 (vrange::operator=): New.
3235 (vrange::operator==): New.
3236 (irange::fits_p): Move to .cc file.
3237 (irange::set_nonnegative): New.
3238 (unsupported_range::unsupported_range): New.
3239 (unsupported_range::set): New.
3240 (unsupported_range::type): New.
3241 (unsupported_range::set_undefined): New.
3242 (unsupported_range::set_varying): New.
3243 (unsupported_range::dump): New.
3244 (unsupported_range::union_): New.
3245 (unsupported_range::intersect): New.
3246 (unsupported_range::zero_p): New.
3247 (unsupported_range::nonzero_p): New.
3248 (unsupported_range::set_nonzero): New.
3249 (unsupported_range::set_zero): New.
3250 (unsupported_range::set_nonnegative): New.
3251 (unsupported_range::fits_p): New.
3252 (irange::set): Call irange::set_undefined.
3253 (irange::verify_range): Check discriminator field.
3254 (irange::dump): Dump [irange] marker.
3255 (irange::debug): Move to...
3256 (vrange::debug): ...here.
3257 (dump_value_range): Accept vrange.
3259 * value-range.h (enum value_range_discriminator): New.
3260 (class vrange): New.
3261 (class unsupported_range): New.
3262 (struct vrange_traits): New.
3265 (class irange): Inherit from vrange.
3266 (dump_value_range): Adjust for vrange.
3267 (irange::kind): Rename to...
3268 (vrange::kind): ...this.
3269 (irange::varying_p): Rename to...
3270 (vrange::varying_p): ...this.
3271 (irange::undefined_p): Rename to...
3272 (vrange::undefined_p): ...this.
3273 (irange::irange): Set discriminator.
3274 (irange::union_): Convert to irange before passing to irange
3276 (irange::intersect): Same.
3277 (vrange::supports_type_p): New.
3278 * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
3279 NULL bitmap argument to value_range_equiv::set.
3280 (vr_values::extract_range_basic): Same.
3282 2022-06-01 Richard Biener <rguenther@suse.de>
3284 PR tree-optimization/105763
3285 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
3286 Check gimple_range_ssa_p.
3288 2022-05-31 Jason Merrill <jason@redhat.com>
3290 * Makefile.in (TAGS): Look at libcpp/*.cc.
3292 2022-05-31 Christophe Lyon <christophe.lyon@arm.com>
3294 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
3295 Prefix mode names with E_.
3297 2022-05-31 Alan Modra <amodra@gmail.com>
3299 * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
3300 spelling of DW_AT_namelist_item.
3302 2022-05-31 Jakub Jelinek <jakub@redhat.com>
3304 * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
3305 allow var to be private in the outer context.
3306 (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
3307 to build_outer_var_ref.
3309 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
3311 * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
3312 tieable with DImode on TARGET_64BIT, and SCmode tieable with
3313 V2SFmode, and DCmode with V2DFmode.
3315 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
3317 PR rtl-optimization/101617
3318 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
3319 special case (indicated by negate_cc_compare_p) to generate a
3320 -1/0 mask using neg;sbb.
3321 * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
3322 to generate an *x86_neg<mode>_ccc instruction.
3323 (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
3324 generate a *x86_mov<mode>cc_0_m1_neg instruction.
3326 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
3328 * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
3329 SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
3330 <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
3332 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
3335 * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
3336 DI mode equality/inequality using XOR here. Instead generate a
3337 COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
3338 * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
3339 gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
3340 (general_scalar_chain::convert_compare): New function to convert
3341 scalar equality/inequality comparison into vector operations.
3342 (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
3343 new convert_compare helper method.
3344 (convertible_comparion_p): Update to match doubleword COMPARE
3345 of two register, memory or integer constant operands.
3346 * config/i386/i386-features.h (general_scalar_chain::convert_compare):
3347 Prototype/declare member function here.
3348 * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
3349 only allow new doubleword modes for EQ and NE operators.
3350 (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
3351 doubleword comparison into a pair of XORs followed by an IOR to
3352 set the (zero) flags register, optimizing the XORs if possible.
3353 * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
3354 iterator; V_AVX is (currently) only used by ptest.
3355 (sse4_1 mode attribute): Update to support V1TI and V2TI.
3357 2022-05-30 Uroš Bizjak <ubizjak@gmail.com>
3359 * config/i386/i386.md: Remove constraints when used with
3360 const_int_operand, const0_operand, const_1_operand, constm1_operand,
3361 const8_operand, const128_operand, const248_operand, const123_operand,
3362 const2367_operand, const1248_operand, const359_operand,
3363 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
3364 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
3365 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
3366 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
3367 const_0_to_255_mul_8_operand, const_1_to_31_operand,
3368 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
3369 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
3370 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
3371 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
3372 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
3373 const_24_to_27_operand and const_28_to_31_operand.
3374 * config/i386/mmx.md: Ditto.
3375 * config/i386/sse.md: Ditto.
3376 * config/i386/subst.md: Ditto.
3377 * config/i386/sync.md: Ditto.
3379 2022-05-30 Jan Beulich <jbeulich@suse.com>
3381 * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
3384 2022-05-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3386 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
3388 2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
3391 * config/darwin.h: Move versions-specific handling of multiply_defined
3392 from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
3394 2022-05-29 Eric Gallager <egallager@gcc.gnu.org>
3397 * doc/sourcebuild.texi: Add entries for the c++tools,
3398 gotools, libbacktrace, libcc1, libcody, liboffloadmic,
3399 and libsanitizer directories. Remove entry for boehm-gc.
3400 Fix alphabetization for libquadmath.
3402 2022-05-28 Joel Holdsworth <jholdsworth@nvidia.com>
3404 * config/avr/avr-mcus.def: Add device definitions.
3405 * doc/avr-mmcu.texi: Corresponding changes.
3406 * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
3408 * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
3409 from leaking into cc1.
3411 2022-05-28 Vladimir Makarov <vmakarov@gcc.gnu.org>
3414 * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
3415 is special) for various scenarios.
3417 2022-05-28 Iain Sandoe <iain@sandoe.co.uk>
3419 * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
3420 describing this macro.
3422 2022-05-27 Richard Biener <rguenther@suse.de>
3424 * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
3426 2022-05-27 Martin Jambor <mjambor@suse.cz>
3429 * ipa-prop.cc (propagate_controlled_uses): Check type of the
3430 constant before adding a LOAD reference.
3432 2022-05-27 Jakub Jelinek <jakub@redhat.com>
3434 * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
3435 to OMP_CLAUSE_ENTER.
3436 * tree.h (OMP_CLAUSE_ENTER_TO): Define.
3437 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
3438 OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
3439 * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
3440 instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
3441 "to" instead of "enter".
3442 * tree-nested.cc (convert_nonlocal_omp_clauses,
3443 convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
3444 OMP_CLAUSE_TO_DECLARE.
3446 2022-05-27 Richard Biener <rguenther@suse.de>
3448 PR tree-optimization/105726
3449 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
3450 Constrain array-of-flexarray case more.
3452 2022-05-27 Jakub Jelinek <jakub@redhat.com>
3455 * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
3456 to (X &) z + w if -fsanitize=null during GENERIC folding.
3458 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
3460 * match.pd (match_zero_one_valued_p): New predicate.
3461 (mult @0 @1): Use zero_one_valued_p for optimization to the
3462 expression "bit_and @0 @1".
3463 (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
3464 (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
3465 (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
3466 (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
3467 Remove three redundant transforms obsoleted by the three above.
3469 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
3471 * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
3472 to split a combined "and;cmp" sequence into "not;test".
3474 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3476 * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
3477 (bswapsi2_internal): Revise the template and condition, and add
3478 detection code for preceding the same insn in order to omit a
3479 "SSAI 8" instruction of the latter.
3480 (bswapdi2): Suppress built-in insn expansion with the corresponding
3481 library call when optimizing for size.
3483 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3485 * config/xtensa/xtensa-protos.h
3486 (xtensa_expand_block_set_unrolled_loop,
3487 xtensa_expand_block_set_small_loop): New prototypes.
3488 * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
3489 xtensa_expand_block_set_unrolled_loop,
3490 xtensa_expand_block_set_small_loop): New functions.
3491 * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
3492 * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
3494 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3496 * config/xtensa/xtensa.cc (xtensa_expand_block_move):
3497 Make instruction counting more accurate, and simplify emitting insns.
3499 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3501 * config/xtensa/constraints.md (M, O): Use the macro.
3502 * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
3503 sext_fldsz_operand): Ditto.
3504 * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
3505 xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
3506 xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
3507 xtensa_expand_prologue): Ditto.
3508 * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
3510 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3512 * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
3513 * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
3516 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
3518 * gimple-range-cache.cc: Adjust comments.
3519 * gimple-range-infer.cc: Adjust comments.
3520 * gimple-range-infer.h: Adjust comments.
3521 * gimple-range.cc: Adjust comments.
3523 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
3525 * Makefile.in (OBJS): Use gimple-range-infer.o.
3526 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
3527 (ranger_cache::range_from_dom): Rename var side_effect to infer.
3528 (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
3529 * gimple-range-cache.h: Include gimple-range-infer.h.
3530 (class ranger_cache): Adjust prototypes, use infer_range_manager.
3531 * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
3532 (gimple_infer_range::*): Rename from stmt_side_effects.
3533 (infer_range_manager::*): Rename from side_effect_manager.
3534 * gimple-range-side-effect.cc: Rename.
3535 * gimple-range-side-effect.h: Rename.
3536 * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
3537 (class gimple_infer_range): Rename from stmt_side_effects.
3538 (class infer_range_manager): Rename from side_effect_manager.
3539 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
3540 from register_side_effects.
3541 * gimple-range.h (register_inferred_ranges): Adjust prototype.
3542 * range-op.h: Adjust comment.
3543 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
3544 (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
3546 2022-05-25 Simon Cook <simon.cook@embecosm.com>
3548 * config/riscv/arch-canonicalize: Only add mafd extension if
3549 base was rv32/rv64g.
3551 2022-05-25 Tobias Burnus <tobias@codesourcery.com>
3553 * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
3555 2022-05-25 Jakub Jelinek <jakub@redhat.com>
3558 * asan.cc (has_stmt_been_instrumented_p): For assignments which
3559 are both stores and loads, return true only if both destination
3560 and source have been instrumented.
3562 2022-05-25 Martin Liska <mliska@suse.cz>
3563 Richard Biener <rguenther@suse.de>
3565 * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
3566 * params.opt (max-unswitch-level): Remove.
3567 * doc/invoke.texi (max-unswitch-level): Likewise.
3568 * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
3569 gimplified expressions.
3570 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
3571 (tree_may_unswitch_on): Rename to ...
3572 (find_unswitching_predicates_for_bb): ... this and handle
3574 (get_predicates_for_bb): Likewise.
3575 (set_predicates_for_bb): Likewise.
3576 (init_loop_unswitch_info): Likewise.
3577 (tree_ssa_unswitch_loops): Prepare stuff before calling
3578 tree_unswitch_single_loop.
3579 (tree_unswitch_single_loop): Rework the function using
3580 pre-computed predicates and with a per original loop cost model.
3582 (add_predicate_to_path): Likewise.
3583 (find_range_for_lhs): Likewise.
3584 (simplify_using_entry_checks): Rename to ...
3585 (evaluate_control_stmt_using_entry_checks): ... this, handle
3586 switch statements and improve simplifications using ranger.
3587 (simplify_loop_version): Rework using
3588 evaluate_control_stmt_using_entry_checks.
3589 (evaluate_bbs): New.
3590 (evaluate_loop_insns_for_predicate): Likewise.
3591 (tree_unswitch_loop): Adjust to allow switch statements and
3592 pass in the edge to unswitch.
3593 (clean_up_after_unswitching): New.
3594 (pass_tree_unswitch::execute): Pass down fun.
3596 2022-05-24 Eugene Rozenfeld <erozen@microsoft.com>
3598 * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
3599 counts for the epilog loop.
3601 2022-05-24 Martin Sebor <msebor@redhat.com>
3602 Richard Biener <rguenther@suse.de>
3604 PR middle-end/105604
3605 * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
3606 (get_origin_and_offset_r): Remove null handling. Handle variable array
3608 (get_origin_and_offset): Handle null argument here. Simplify.
3609 (alias_offset): Update comment.
3610 * pointer-query.cc (field_at_offset): Update comment. Handle members
3611 of variable-length types.
3613 2022-05-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3615 * target.def (vec_perm_const): Define new parameter op_mode and
3617 * doc/tm.texi: Regenerate.
3618 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
3619 vec_perm_const hook to add new parameter op_mode and return false
3620 if result and operand modes do not match.
3621 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
3622 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
3623 * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
3624 * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
3625 * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
3626 * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
3627 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
3628 * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
3629 * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
3631 * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
3632 (ashrv2di3): Likewise.
3633 * optabs.cc (expand_vec_perm_const): Likewise.
3634 * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
3635 * optabs-query.cc (can_vec_perm_const_p): Define new parameter
3636 op_mode and pass it to vec_perm_const hook.
3637 (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
3638 * match.pd (vec_perm X Y CST): Likewise.
3639 * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
3640 * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
3641 (vect_grouped_load_supported): Likewise.
3642 (vect_shift_permute_load_chain): Likewise.
3643 * tree-vect-generic.cc (lower_vec_perm): Likewise.
3644 * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
3645 * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
3646 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
3647 * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
3648 (vect_transform_slp_perm_load): Likewise.
3649 (vectorizable_slp_permutation): Likewise.
3650 * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
3651 (vectorizable_bswap): Likewise.
3652 (scan_store_can_perm_p): Likewise.
3653 (vect_gen_perm_mask_checked): Likewise.
3655 2022-05-24 H.J. Lu <hjl.tools@gmail.com>
3658 * config/i386/i386.opt: Remove Undocumented.
3659 * doc/invoke.texi: Document -mcet-switch.
3661 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
3663 * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
3664 * config/gcn/gcn-opts.h (enum gcn_isa): New.
3665 (TARGET_GCN3): Use enum gcn_isa.
3666 (TARGET_GCN3_PLUS): Likewise.
3667 (TARGET_GCN5): Likewise.
3668 (TARGET_GCN5_PLUS): Likewise.
3669 (TARGET_CDNA1): New.
3670 (TARGET_CDNA1_PLUS): New.
3671 (TARGET_CDNA2): New.
3672 (TARGET_CDNA2_PLUS): New.
3673 (TARGET_M0_LDS_LIMIT): New.
3674 (TARGET_PACKED_WORK_ITEMS): New.
3675 * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
3676 (gcn_option_override): Recognise CDNA ISA variants.
3677 (gcn_omp_device_kind_arch_isa): Support gfx90a.
3678 (gcn_expand_prologue): Make m0 init optional.
3679 Add support for packed work items.
3680 (output_file_start): Support gfx90a.
3681 (gcn_hsa_declare_function_name): Support gfx90a metadata.
3682 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
3684 * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
3685 (<su>mulsi3_highpart_imm): Likewise.
3686 (<su>mulsidi3): Likewise.
3687 (<su>mulsidi3_imm): Likewise.
3688 * config/gcn/gcn.opt (gpu_type): Add gfx90a.
3689 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
3690 (main): Support gfx90a.
3691 * config/gcn/t-gcn-hsa: Add gfx90a multilib.
3692 * config/gcn/t-omp-device: Add gfx90a isa.
3694 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
3696 * config.in: Regenerate.
3697 * config/gcn/gcn-hsa.h (X_FIJI): Delete.
3705 (NO_XNACK): New macro.
3706 (NO_SRAM_ECC): New macro.
3707 (SRAMOPT): Keep only v4 variant.
3708 (HSACO3_SELECT_OPT): Delete.
3709 (DRIVER_SELF_SPECS): Delete.
3710 (ASM_SPEC): Remove LLVM 9 support.
3711 * config/gcn/gcn-valu.md
3712 (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
3713 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
3714 * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
3715 (print_operand_address): Remove assembler bug workaround.
3716 * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
3717 (EF_AMDGPU_SRAM_ECC_V3): Delete.
3718 (SET_XNACK_ON): Delete v3 variants.
3719 (SET_XNACK_OFF): Delete v3 variants.
3720 (TEST_XNACK): Delete v3 variants.
3721 (SET_SRAM_ECC_ON): Delete v3 variants.
3722 (SET_SRAM_ECC_ANY): Delete v3 variants.
3723 (SET_SRAM_ECC_OFF): Delete v3 variants.
3724 (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
3725 (TEST_SRAM_ECC_ANY): Delete v3 variants.
3726 (TEST_SRAM_ECC_ON): Delete v3 variants.
3727 (copy_early_debug_info): Remove v3 support.
3728 (main): Remove v3 support.
3729 * configure: Regenerate.
3730 * configure.ac: Replace all GCN feature checks with a version check.
3732 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
3734 * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
3735 i.e. a double word negation of a zero extended operand, to
3738 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
3740 PR tree-optimization/105668
3741 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
3742 V1TImode, just like V2DImode.
3743 * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
3744 Use VI_128 mode iterator instead of VI124_128 to include V2DI.
3745 (vcond_mask_v2div2di): Delete.
3746 (vcond_mask_v1tiv1ti): New define_expand.
3748 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
3750 * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
3751 to strncmp for strings of length one.
3753 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
3755 * config/riscv/predicates.md (imm5_operand): Add a new operand type for
3756 prefetch instructions.
3757 * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
3759 (RISCV_ATYPE_SI): New.
3760 (RISCV_ATYPE_DI): New.
3761 * config/riscv/riscv-ftypes.def (0): New.
3763 * config/riscv/riscv.md (riscv_clean_<mode>): New.
3764 (riscv_flush_<mode>): New.
3765 (riscv_inval_<mode>): New.
3766 (riscv_zero_<mode>): New.
3768 (riscv_prefetchi_<mode>): New.
3769 * config/riscv/riscv-cmo.def: New file.
3771 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
3773 * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
3774 * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
3777 (TARGET_ZICBOZ): New.
3778 (TARGET_ZICBOM): New.
3779 (TARGET_ZICBOP): New.
3780 * config/riscv/riscv.opt (riscv_zicmo_subext): New.
3782 2022-05-24 David Malcolm <dmalcolm@redhat.com>
3784 * tree-vect-slp-patterns.cc: Add "final" and "override" to
3785 vect_pattern::build impls as appropriate.
3787 2022-05-24 David Malcolm <dmalcolm@redhat.com>
3789 * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
3790 implementations, removing redundant "virtual" as appropriate.
3791 * ipa-fnsummary.h: Likewise.
3792 * ipa-modref.cc: Likewise.
3793 * ipa-param-manipulation.cc: Likewise.
3794 * ipa-profile.cc: Likewise.
3795 * ipa-prop.h: Likewise.
3796 * ipa-pure-const.cc: Likewise.
3797 * ipa-reference.cc: Likewise.
3798 * ipa-sra.cc: Likewise.
3799 * symbol-summary.h: Likewise.
3800 * symtab-thunks.cc: Likewise.
3802 2022-05-24 Martin Liska <mliska@suse.cz>
3805 2022-05-24 Martin Liska <mliska@suse.cz>
3807 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
3810 2022-05-24 Martin Liska <mliska@suse.cz>
3812 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
3815 2022-05-24 Bruno Haible <bruno@clisp.org>
3818 * doc/install.texi (Configuration): Add more details about --with-zstd.
3819 Document --with-zstd-include and --with-zstd-lib
3821 2022-05-24 Richard Biener <rguenther@suse.de>
3823 PR middle-end/105711
3824 * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
3826 (extract_bit_field_1): Pass down the mode of op0 to
3827 extract_bit_field_as_subreg.
3829 2022-05-24 Vineet Gupta <vineetg@rivosinc.com>
3831 * config/riscv/riscv.cc: (struct riscv_tune_param): Add
3833 (rocket_tune_info): Add default fmv_cost 8.
3834 (sifive_7_tune_info): Ditto.
3835 (thead_c906_tune_info): Ditto.
3836 (optimize_size_tune_info): Ditto.
3837 (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
3839 2022-05-24 Jakub Jelinek <jakub@redhat.com>
3842 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
3844 * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
3845 clause but no depend clauses.
3846 * omp-expand.cc (expand_taskwait_call): Use
3847 BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
3848 BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
3850 2022-05-24 Richard Biener <rguenther@suse.de>
3852 PR tree-optimization/100221
3853 * tree-ssa-dse.cc (contains_phi_arg): New function.
3854 (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
3856 2022-05-24 Richard Biener <rguenther@suse.de>
3858 PR tree-optimization/105629
3859 * tree-ssa-phiopt.cc (spaceship_replacement): Allow
3860 a sign-extending conversion.
3862 2022-05-24 Kewen Lin <linkw@linux.ibm.com>
3865 * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
3867 (union_uses): Skip debug use_insn.
3869 2022-05-23 Vineet Gupta <vineetg@rivosinc.com>
3871 * config/riscv/predicates.md (const_0_operand): Remove
3873 * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
3875 * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
3877 2022-05-23 Mayshao <mayshao-oc@zhaoxin.com>
3879 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
3880 the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
3881 (cpu_indicator_init): Handle Zhaoxin processors.
3882 * common/config/i386/i386-common.cc: Add lujiazui.
3883 * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
3885 (enum processor_types): Add ZHAOXIN_FAM7H.
3886 (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
3887 * config.gcc: Add lujiazui.
3888 * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
3889 Signatures for zhaoxin
3890 (signature_SHANGHAI_ecx): Ditto.
3891 (signature_SHANGHAI_edx): Ditto.
3892 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
3893 -march=native recognize lujiazui processors.
3894 * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
3895 * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
3896 * config/i386/i386.h (enum processor_type): Ditto.
3897 * config/i386/i386.md: Add lujiazui.
3898 * config/i386/x86-tune-costs.h (struct processor_costs): Add
3900 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
3901 (ix86_adjust_cost): Ditto.
3902 * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
3903 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
3904 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
3905 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
3906 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
3907 (X86_TUNE_MOVX): Ditto.
3908 (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
3909 (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
3910 (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
3911 (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
3912 (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
3913 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
3914 (X86_TUNE_USE_LEAVE): Ditto.
3915 (X86_TUNE_PUSH_MEMORY): Ditto.
3916 (X86_TUNE_LCP_STALL): Ditto.
3917 (X86_TUNE_USE_INCDEC): Ditto.
3918 (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
3919 (X86_TUNE_OPT_AGU): Ditto.
3920 (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
3921 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
3922 (X86_TUNE_USE_SAHF): Ditto.
3923 (X86_TUNE_USE_BT): Ditto.
3924 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
3925 (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
3926 (X86_TUNE_AVOID_MFENCE): Ditto.
3927 (X86_TUNE_EXPAND_ABS): Ditto.
3928 (X86_TUNE_USE_SIMODE_FIOP): Ditto.
3929 (X86_TUNE_USE_FFREEP): Ditto.
3930 (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
3931 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
3932 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
3933 (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
3934 (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
3935 * doc/extend.texi: Add details about lujiazui.
3936 * doc/invoke.texi: Add details about lujiazui.
3937 * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
3939 2022-05-23 Martin Liska <mliska@suse.cz>
3941 * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
3943 2022-05-23 Richard Biener <rguenther@suse.de>
3945 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
3946 (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
3948 2022-05-23 Richard Biener <rguenther@suse.de>
3950 * gimple-expr.cc (is_gimple_condexpr): Remove.
3951 * gimple-expr.h (is_gimple_condexpr): Likewise.
3952 * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
3953 * tree-if-conv.cc (set_bb_predicate): Likewie.
3954 (add_to_predicate_list): Likewise.
3955 (gen_phi_arg_condition): Likewise.
3956 (predicate_scalar_phi): Likewise.
3957 (predicate_statements): Likewise.
3959 2022-05-23 Richard Biener <rguenther@suse.de>
3961 * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
3962 * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
3964 * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
3965 * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
3966 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
3967 Build the condition of the COND_EXPR separately.
3968 * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
3969 * tree-vect-generic.cc (expand_vector_condition): Likewise.
3970 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
3972 * vr-values.cc (simplify_using_ranges::simplify): Likewise.
3973 * tree-vect-patterns.cc: Add comment indicating we are
3974 building invalid COND_EXPRs and why.
3975 * omp-expand.cc (expand_omp_simd): Gimplify the condition
3976 to the COND_EXPR separately.
3977 (expand_omp_atomic_cas): Note part that should be unreachable
3979 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
3980 condition for valid replacements.
3981 * tree-if-conv.cc (predicate_bbs): Simulate previous
3982 re-folding of the condition in folded COND_EXPRs which
3983 is necessary because of unfolded GIMPLE_CONDs in the IL
3984 as in for example gcc.dg/fold-bopcond-1.c.
3985 * gimple-range-gori.cc (gori_compute::condexpr_adjust):
3986 Handle that the comparison is now in the def stmt of
3987 the select operand. Required by gcc.dg/pr104526.c.
3989 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
3992 * langhooks-def.h (lhd_omp_array_size): New.
3993 (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
3994 (LANG_HOOKS_DECLS): Add it.
3995 * langhooks.cc (lhd_omp_array_size): New.
3996 * langhooks.h (struct lang_hooks_for_decls): Add hook.
3997 * omp-low.cc (scan_sharing_clauses, lower_omp_target):
3998 Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
4000 2022-05-23 Roger Sayle <roger@nextmovesoftware.com>
4002 * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
4003 XOR/IOR case. Account for two instructions for double-word
4004 operations. In case of vector pandn, account for single
4005 instruction. Likewise for integer andn with TARGET_BMI.
4006 <case NOT>: Vector NOT requires more than 1 instruction (pxor).
4007 <case NEG>: Double-word negation requires 3 instructions.
4009 2022-05-23 Tsukasa OI <research_trasio@irq.a4lg.com>
4011 * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
4012 Fix "K" extension prefix to be placed before "J".
4013 * config/riscv/arch-canonicalize: Likewise.
4015 2022-05-23 liuhongt <hongtao.liu@intel.com>
4017 * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
4018 <-> mask cost from 5 to 6.
4019 (icelake_cost): Ditto.
4021 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
4023 * config/aarch64/aarch64.md
4024 (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
4025 (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
4026 (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
4027 (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
4028 (one_cmpl_<optab><mode>2): Likewise.
4029 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
4030 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
4031 (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
4032 (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
4033 (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
4034 (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
4035 (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
4036 (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
4037 (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
4038 (rolsi3_insn_uxtw): New pattern.
4039 * config/aarch64/iterators.md (SHIFT): Add rotate left.
4040 (SHIFT_no_rotate): Add new iterator.
4041 (SHIFT:shift): Print rotate left as ror.
4042 (is_rotl): Add test for left rotate.
4044 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
4046 * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
4047 processing. Add support for architectural extensions.
4048 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
4049 AARCH64_CPU_DEFAULT_FLAGS.
4050 (TARGET_CPU_NBITS): Remove.
4051 (TARGET_CPU_MASK): Remove.
4052 * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
4053 (get_tune_cpu): Assert CPU is always valid.
4054 (get_arch): Assert architecture is always valid.
4055 (aarch64_override_options): Cleanup CPU selection code and simplify logic.
4056 (aarch64_option_restore): Remove unnecessary checks on tune.
4058 2022-05-20 David Malcolm <dmalcolm@redhat.com>
4060 * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
4061 "FINAL" and "OVERRIDE" with "final" and "override".
4062 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
4063 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
4064 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
4065 * diagnostic-path.h: Likewise.
4066 * digraph.cc: Likewise.
4067 * gcc-rich-location.h: Likewise.
4068 * gimple-array-bounds.cc: Likewise.
4069 * gimple-loop-versioning.cc: Likewise.
4070 * gimple-range-cache.cc: Likewise.
4071 * gimple-range-cache.h: Likewise.
4072 * gimple-range-fold.cc: Likewise.
4073 * gimple-range-fold.h: Likewise.
4074 * gimple-range-tests.cc: Likewise.
4075 * gimple-range.h: Likewise.
4076 * gimple-ssa-evrp.cc: Likewise.
4077 * input.cc: Likewise.
4079 * read-rtl-function.cc: Likewise.
4080 * tree-complex.cc: Likewise.
4081 * tree-diagnostic-path.cc: Likewise.
4082 * tree-ssa-ccp.cc: Likewise.
4083 * tree-ssa-copy.cc: Likewise.
4084 * tree-vrp.cc: Likewise.
4085 * value-query.h: Likewise.
4086 * vr-values.h: Likewise.
4088 2022-05-20 Marcel Vollweiler <marcel@codesourcery.com>
4090 * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
4091 target_memcpy_rect_async to omp_runtime_apis array.
4093 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
4095 * doc/sourcebuild.texi (Decimal floating point attributes): Document
4096 dfp_bid effective-target.
4098 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
4100 * config/aarch64/aarch64.cc
4101 (aarch64_split_128bit_move): Handle DFP modes.
4102 (aarch64_mode_valid_for_sched_fusion_p): Likewise.
4103 (aarch64_classify_address): Likewise.
4104 (aarch64_legitimize_address_displacement): Likewise.
4105 (aarch64_reinterpret_float_as_int): Likewise.
4106 (aarch64_float_const_zero_rtx_p): Likewise.
4107 (aarch64_can_const_movi_rtx_p): Likewise.
4108 (aarch64_anchor_offset): Likewise.
4109 (aarch64_secondary_reload): Likewise.
4110 (aarch64_rtx_costs): Likewise.
4111 (aarch64_legitimate_constant_p): Likewise.
4112 (aarch64_gimplify_va_arg_expr): Likewise.
4113 (aapcs_vfp_sub_candidate): Likewise.
4114 (aarch64_vfp_is_call_or_return_candidate): Likewise.
4115 (aarch64_output_scalar_simd_mov_immediate): Likewise.
4116 (aarch64_gen_adjusted_ldpstp): Likewise.
4117 (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
4118 * config/aarch64/aarch64.md
4119 (movsf_aarch64): Use SFD iterator and rename into
4121 (movdf_aarch64): Use DFD iterator and rename into
4123 (movtf_aarch64): Use TFD iterator and rename into
4125 (split pattern for move TF mode): Use TFD iterator.
4126 * config/aarch64/iterators.md
4127 (GPF_TF_F16_MOV): Add DFP modes.
4128 (SFD, DFD, TFD): New iterators.
4129 (GPF_TF): Add DFP modes.
4130 (TX, DX, DX2): Likewise.
4132 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
4134 * configure: Regenerate.
4136 2022-05-19 Roger Sayle <roger@nextmovesoftware.com>
4139 * expr.cc (expand_expr_real_2) [MULT_EXPR]: Expand X*Y as X&Y
4140 when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
4141 likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
4143 2022-05-19 Will Schmidt <will_schmidt@vnet.ibm.com>
4145 * config/rs6000/rs6000-builtins.def: Rephrase
4146 to remove RS6000_BTC_SPECIAL from comment.
4147 * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
4148 RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
4149 RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
4150 RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
4151 RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
4152 RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
4153 RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
4154 RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
4155 RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
4156 RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
4157 RS6000_BTM_ALWAYS): Delete.
4159 2022-05-19 Richard Biener <rguenther@suse.de>
4161 * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
4162 computation of the new value.
4164 2022-05-19 Richard Biener <rguenther@suse.de>
4166 * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
4167 (add_to_value): Use get_expression_id.
4168 (bitmap_insert_into_set): Likewise.
4169 (bitmap_value_insert_into_set): Likewise.
4171 2022-05-19 David Malcolm <dmalcolm@redhat.com>
4173 * doc/invoke.texi (-fanalyzer-checker=): Add
4174 -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
4175 the list of analyzer warnings disabled by
4176 -fanalyzer-checker=taint.
4178 2022-05-19 Jakub Jelinek <jakub@redhat.com>
4181 * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
4182 global vars without symtab node even when they have DECL_RTL
4185 2022-05-19 Jakub Jelinek <jakub@redhat.com>
4188 * pointer-query.cc (gimple_parm_array_size): Return NULL if var
4189 doesn't have pointer or reference type.
4191 2022-05-18 Marek Polacek <polacek@redhat.com>
4194 * doc/invoke.texi: Document -Wenum-int-mismatch.
4196 2022-05-18 Uros Bizjak <ubizjak@gmail.com>
4198 * config/i386/gnu-user-common.h (defined): Only define
4199 TARGET_CAN_SPLIT_STACK for glibc targets.
4200 * config/i386/gnu.h (defined): Ditto.
4202 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
4204 * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
4205 is wider than word_mode, a multiplication costs three word_mode
4206 multiplications and two word_mode additions.
4208 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
4210 * config/i386/i386.md (define_split): Split *andsi_1
4211 and *andn_si_ccno after reload with -Oz.
4213 2022-05-18 Frederik Harwath <frederik@codesourcery.com>
4215 * graphite-scop-detection.cc (scop_detection::can_represent_loop):
4216 Output reason for failure to dump file.
4217 (scop_detection::harmful_loop_in_region): Likewise.
4218 (scop_detection::graphite_can_represent_expr): Likewise.
4219 (scop_detection::stmt_has_simple_data_refs_p): Likewise.
4220 (scop_detection::stmt_simple_for_scop_p): Likewise.
4221 (print_sese_loop_numbers): New function.
4222 (scop_detection::add_scop): Use from here.
4224 2022-05-18 liuhongt <hongtao.liu@intel.com>
4226 PR middle-end/103462
4227 * match.pd (bitwise_induction_p): New match.
4228 * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
4230 (analyze_and_compute_bitwise_induction_effect): New function.
4231 (enum bit_op_kind): New enum.
4232 (final_value_replacement_loop): Enhanced to handle bitwise
4235 2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org>
4238 * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
4240 2022-05-18 liuhongt <hongtao.liu@intel.com>
4243 * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
4246 2022-05-18 liuhongt <hongtao.liu@intel.com>
4249 * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
4250 for QImode when code is EQ or NE.
4251 * config/i386/i386.md (cbranchoi4): New expander.
4253 2022-05-18 Peter Bergner <bergner@linux.ibm.com>
4254 Segher Boessenkool <segher@kernel.crashing.org>
4257 * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
4258 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
4259 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
4260 mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
4261 Update other operands accordingly.
4263 2022-05-17 Marek Polacek <polacek@redhat.com>
4265 * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
4267 2022-05-17 Pat Haugen <pthaugen@linux.ibm.com>
4270 * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
4271 register count when not splitting IEEE 128-bit Complex.
4273 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
4275 * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
4276 target inside target if inner is reverse offload.
4278 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
4280 * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
4281 * config/nvptx/mkoffload.cc (process): Likewise.
4283 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
4285 * Makefile.in (OBJS): Add gimple-range-side-effect.o.
4286 * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
4287 (non_null_ref::~non_null_ref): Delete.
4288 (non_null_ref::set_nonnull): Delete.
4289 (non_null_ref::non_null_deref_p): Delete.
4290 (non_null_ref::process_name): Delete.
4291 (ranger_cache::ranger_cache): Initialize m_exit object.
4292 (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
4293 (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
4294 (ranger_cache::update_to_nonnull): Delete.
4295 (non_null_loadstore): Delete.
4296 (ranger_cache::block_apply_nonnull): Delete.
4297 (ranger_cache::apply_side_effects): New.
4298 * gimple-range-cache.h (class non_null_ref): Delete.
4299 (non_null_ref::adjust_range): Delete.
4300 (class ranger_cache): Adjust prototypes, add side effect manager.
4301 * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
4302 side effect manager for queries.
4303 (path_range_query::adjust_for_non_null_uses): Ditto.
4304 * gimple-range-path.h (class path_range_query): Delete non_null_ref.
4305 * gimple-range-side-effect.cc: New.
4306 * gimple-range-side-effect.h: New.
4307 * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
4308 (gimple_ranger::range_of_expr): Check def block for override value.
4309 (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
4310 (gimple_ranger::range_on_edge): Check for outgoing side-effects.
4311 (gimple_ranger::register_side_effects): Call apply_side_effects.
4312 (enable_ranger): Update contructor.
4313 * gimple-range.h (class gimple_ranger): Update prototype.
4314 (enable_ranger): Update prototype.
4315 * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
4317 2022-05-17 Giuliano Belinassi <gbelinassi@suse.de>
4320 * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
4321 * varasm.cc (switch_to_comdat_section): New
4322 (handle_vtv_comdat_section): Call switch_to_comdat_section.
4323 * varasm.h: Declare switch_to_comdat_section.
4325 2022-05-17 Richard Biener <rguenther@suse.de>
4327 * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
4328 not clear bb->aux of the copied blocks.
4330 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
4332 PR tree-optimization/105458
4333 * value-relation.cc (path_oracle::register_relation): Merge, then check
4336 2022-05-17 Uroš Bizjak <ubizjak@gmail.com>
4340 * config/i386/i386.md: Remove constraints when used with
4341 const_int_operand, const0_operand, const_1_operand, constm1_operand,
4342 const8_operand, const128_operand, const248_operand, const123_operand,
4343 const2367_operand, const1248_operand, const359_operand,
4344 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
4345 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
4346 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
4347 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
4348 const_0_to_255_mul_8_operand, const_1_to_31_operand,
4349 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
4350 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
4351 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
4352 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
4353 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
4354 const_24_to_27_operand and const_28_to_31_operand.
4355 * config/i386/mmx.md: Ditto.
4356 * config/i386/sse.md: Ditto.
4357 * config/i386/subst.md: Ditto.
4358 * config/i386/sync.md: Ditto.
4360 2022-05-17 Thomas Schwinge <thomas@codesourcery.com>
4362 * diagnostic.cc: Don't advise to call 'abort' instead of
4364 * system.h: Advise to call 'internal_error' instead of 'abort' or
4367 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
4369 * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
4370 a reference to a variable which does not exist.
4371 * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
4374 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
4376 * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
4377 (isl_id_for_parameter): ... this new function name.
4378 (build_scop_context): Adjust function use.
4380 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
4383 * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
4384 * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
4386 2022-05-17 Jakub Jelinek <jakub@redhat.com>
4388 * tree-core.h (enum omp_clause_depend_kind): Add
4389 OMP_CLAUSE_DEPEND_INOUTSET.
4390 * tree-pretty-print.cc (dump_omp_clause): Handle
4391 OMP_CLAUSE_DEPEND_INOUTSET.
4392 * gimplify.cc (gimplify_omp_depend): Likewise.
4393 * omp-low.cc (lower_depend_clauses): Likewise.
4395 2022-05-17 Jakub Jelinek <jakub@redhat.com>
4398 * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
4399 andv4si3 only for EQ, for NE use iorv4si3 instead.
4401 2022-05-17 Richard Biener <rguenther@suse.de>
4403 PR tree-optimization/105618
4404 * tree-ssa-sink.cc (statement_sink_location): For virtual
4405 PHI uses ignore those defining the used virtual operand.
4407 2022-05-17 Jakub Jelinek <jakub@redhat.com>
4409 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
4410 hanlde -> handle. Fix up comment formatting.
4412 2022-05-17 liuhongt <hongtao.liu@intel.com>
4415 * config/i386/sse.md (*vec_concatv4si): Extend to ..
4416 (*vec_concat<mode>): .. V16QI and V8HImode.
4417 (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
4418 (*vec_concatv8hi_permt2): Ditto.
4420 2022-05-17 liuhongt <hongtao.liu@intel.com>
4422 PR tree-optimization/105591
4423 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
4424 vec_perm_expr index.
4426 2022-05-16 Jason Merrill <jason@redhat.com>
4429 * attribs.cc (decl_attributes): Fix broken typedefs here.
4431 2022-05-16 David Malcolm <dmalcolm@redhat.com>
4434 * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
4435 * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
4436 -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
4437 -Wanalyzer-va-list-use-after-va-end.
4439 2022-05-16 Richard Biener <rguenther@suse.de>
4441 * gimple-match.h (gimple_build): Move code_helper overloads ...
4442 * gimple-fold.h (gimple_build): ... here.
4443 (gimple_build): Transition to new worker API. Provide
4444 overloads from sequence-based API.
4445 (gimple_convert): Likewise.
4446 (gimple_convert_to_ptrofftype): Likewise.
4447 (gimple_build_vector_from_val): Likewise.
4448 (gimple_build_vector): Likewise.
4449 (gimple_build_round_up): Likewise.
4450 * gimple-fold.cc (gimple_build_insert_seq): New helper.
4451 (gimple_build): Use it. Transition combined_fn and code_helper
4453 (gimple_convert): Transition to new worker API.
4454 (gimple_convert_to_ptrofftype): Likewise.
4455 (gimple_build_vector_from_val): Likewise.
4456 (gimple_build_vector): Likewise.
4457 (gimple_build_round_up): Likewise.
4459 2022-05-16 Richard Biener <rguenther@suse.de>
4461 * gimple-match.h (code_helper): Move class ...
4462 * tree.h (code_helper): ... here.
4464 2022-05-16 Martin Liska <mliska@suse.cz>
4466 * opts-global.cc (write_langs): Add comment.
4468 2022-05-16 Eric Botcazou <ebotcazou@adacore.com>
4470 * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
4471 instead of a bitwise negation.
4472 <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
4474 2022-05-16 Martin Liska <mliska@suse.cz>
4476 * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
4477 (decls_mismatched_attributes): Likewise.
4478 * builtins.cc (c_strlen): Likewise.
4479 * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
4480 * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
4481 * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
4482 (aarch64_init_simd_builtin_types): Likewise.
4483 (aarch64_init_builtin_rsqrt): Likewise.
4484 * config/aarch64/aarch64.cc (is_madd_op): Likewise.
4485 * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
4486 (arm_init_simd_builtin_types): Likewise.
4487 * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
4488 (c_prefix): Likewise.
4490 * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
4491 * config/darwin-c.cc (darwin_register_frameworks): Likewise.
4492 * config/gcn/mkoffload.cc (process_obj): Likewise.
4493 * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
4494 (fold_builtin_cpu): Likewise.
4495 * config/m32c/m32c.cc (PUSHM_N): Likewise.
4496 * config/nvptx/mkoffload.cc (process): Likewise.
4497 * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
4498 * config/s390/s390.cc (NR_C_MODES): Likewise.
4499 * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
4500 (create_insn_code_compression_table): Likewise.
4501 * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
4502 * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
4503 * dwarf2out.cc (ARRAY_SIZE): Likewise.
4504 * genhooks.cc (emit_documentation): Likewise.
4505 (emit_init_macros): Likewise.
4506 * gimple-ssa-sprintf.cc (format_floating): Likewise.
4507 * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
4508 * godump.cc (keyword_hash_init): Likewise.
4509 * hash-table.cc (hash_table_higher_prime_index): Likewise.
4510 * input.cc (for_each_line_table_case): Likewise.
4511 * ipa-free-lang-data.cc (free_lang_data): Likewise.
4512 * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
4513 * optc-save-gen.awk: Likewise.
4514 * spellcheck.cc (test_metric_conditions): Likewise.
4515 * tree-vect-slp-patterns.cc (sizeof): Likewise.
4516 (ARRAY_SIZE): Likewise.
4517 * tree.cc (build_common_tree_nodes): Likewise.
4519 2022-05-16 Martin Liska <mliska@suse.cz>
4521 * opts-global.cc (write_langs): Allocate at least one byte.
4523 2022-05-16 Richard Biener <rguenther@suse.de>
4525 * match.pd (A cmp B ? A : B -> min/max): New patterns
4526 carried over from fold_cond_expr_with_comparison.
4528 2022-05-16 liuhongt <hongtao.liu@intel.com>
4531 * config/i386/i386-expand.cc
4532 (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
4533 d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
4535 2022-05-15 Uroš Bizjak <ubizjak@gmail.com>
4537 * config/i386/i386.md: Remove constraints when used with
4538 const_int_operand, const0_operand, const_1_operand, constm1_operand,
4539 const8_operand, const128_operand, const248_operand, const123_operand,
4540 const2367_operand, const1248_operand, const359_operand,
4541 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
4542 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
4543 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
4544 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
4545 const_0_to_255_mul_8_operand, const_1_to_31_operand,
4546 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
4547 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
4548 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
4549 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
4550 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
4551 const_24_to_27_operand and const_28_to_31_operand.
4552 * config/i386/mmx.md: Ditto.
4553 * config/i386/sse.md: Ditto.
4554 * config/i386/subst.md: Ditto.
4555 * config/i386/sync.md: Ditto.
4557 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
4558 Uroš Bizjak <ubizjak@gmail.com>
4560 * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
4561 For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
4562 by a pshufd and pand.
4563 (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
4564 vector equality as a V2DImode vector comparison (see above),
4565 followed by a pshufd and pand.
4567 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
4569 PR tree-optimization/83907
4570 * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
4571 for memset with an constant char value.
4572 (handle_store): Improved handling of stores with a first byte
4573 of zero, but not storing_all_zeros_p.
4575 2022-05-13 Philipp Tomsich <philipp.tomsich@vrull.eu>
4576 Manolis Tsamis <manolis.tsamis@vrull.eu>
4578 * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
4579 (CTZ_DEFINED_VALUE_AT_ZERO): Same.
4580 * doc/sourcebuild.texi: add documentation for RISC-V specific
4581 test target keywords
4583 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
4585 PR tree-optimization/105597
4586 * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
4587 of the lhs and make sure it is not undefined.
4589 2022-05-13 Sebastian Pop <spop@amazon.com>
4592 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
4594 * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
4595 memmodel_from_int and handle MEMMODEL_SYNC_*.
4596 (DEF0): Add __aarch64_*_sync functions.
4598 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
4600 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
4602 * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
4603 * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
4604 new VREL enumerated values.
4605 (*::lhs_op2_relation): Ditto.
4606 (*::op1_op2_relation): Ditto.
4607 (*::fold_range): Use new VREL enumerated values.
4608 (minus_op1_op2_relation_effect): Ditto.
4609 (range_relational_tests): Ditto.
4610 * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
4611 (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
4613 (*_op1_op2_relation): Return relation_kind.
4614 (relop_early_resolve): Use VREL_UNDEFINED.
4615 * value-query.cc (range_query::query_relation): Use VREL_VARYING.
4616 * value-relation.cc (VREL_LAST): Change enumerated value.
4617 (vrel_range_assert): Delete.
4618 (print_relation): Remove range assert.
4619 (rr_negate_table): Adjust table to use new enumerated values..
4620 (relation_negate): Remove range assert.
4621 (rr_swap_table): Adjust.
4622 (relation_swap): Remove range assert.
4623 (rr_intersect_table): Adjust.
4624 (relation_intersect): Remove range assert.
4625 (rr_union_table): Adjust.
4626 (relation_union): Remove range assert.
4627 (rr_transitive_table): Adjust.
4628 (relation_transitive): Remove range assert.
4629 (equiv_oracle::query_relation): Use new VREL enumerated values.
4630 (equiv_oracle::register_relation): Ditto.
4631 (relation_oracle::register_stmt): Ditto.
4632 (dom_oracle::set_one_relation): Ditto.
4633 (dom_oracle::register_transitives): Ditto.
4634 (dom_oracle::query_relation): Ditto.
4635 (path_oracle::register_relation): Ditto.
4636 (path_oracle::query_relation): Ditto.
4637 * value-relation.h (enum relation_kind_t): New relation_kind.
4638 (*_op1_op2_relation): Adjust prototypes.
4640 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
4642 * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
4643 * value-range.cc (irange::legacy_verbose_union_): Add return value.
4644 (irange::irange_single_pair_union): New.
4645 (irange::irange_union): Add return value.
4646 * value-range.h (class irange): Adjust prototypes.
4648 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
4650 * value-range.cc (irange::legacy_verbose_intersect): Add return value.
4651 (irange::irange_contains_p): New.
4652 (irange::irange_intersect): Add return value.
4653 * value-range.h (class irange): Adjust prototypes.
4655 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
4657 * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
4658 had_global value instead.
4660 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
4662 PR tree-optimization/104547
4663 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
4664 the op1/op2 relation to the relation call.
4665 * range-op.cc (*::lhs_op1_relation): Add param.
4666 (*::lhs_op2_relation): Ditto.
4667 (operator_minus::lhs_op1_relation): New.
4668 (range_relational_tests): Add relation param.
4669 * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
4671 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
4673 * gimple-range.cc (gimple_ranger::register_side_effects): First check
4674 if the DEF should be exported as a global.
4675 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
4676 which will export globals.
4677 (execute_ranger_vrp): Remove call to export_global_ranges.
4679 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
4681 * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
4683 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
4685 * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
4687 (ranger_cache::entry_range): Add rfd_mode parameter.
4688 (ranger_cache::exit_range): Ditto.
4689 (ranger_cache::edge_range): New. Incorporate from range_on_edge.
4690 (ranger_cache::range_of_expr): Adjust call to entry_range.
4691 (ranger_cache::range_on_edge): Split to edge_range and call.
4692 (ranger_cache::fill_block_cache): Always invoke range_from_dom.
4693 (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
4694 mutiple predecessors.
4695 (ranger_cache::update_to_nonnull): Adjust call to exit_range.
4696 * gimple-range-cache.h (ranger_cache): Add enum rfd_mode. Adjust
4699 2022-05-13 Alexandre Oliva <oliva@adacore.com>
4701 * gimple-harden-conditionals.cc: Include sbitmap.h.
4702 (pass_harden_conditional_branches::execute): Skip new blocks.
4703 (pass_harden_compares::execute): Likewise.
4705 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
4708 * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
4710 (*movmisalign<mode>_mve_load): Likewise.
4711 * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
4713 (@movmisalign<mode>): ... thus. Use generic predicates and then
4714 rework operands if they are not valid. For MVE rework to a
4715 narrower element size if the alignment is not high enough.
4717 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
4719 * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
4720 when there is no write-back. Fix use when strict is true.
4722 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4724 * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
4727 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4729 * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
4730 extzvsi_internal): Rename from extv, extv_internal, extzv and
4731 extzv_internal, respectively.
4733 2022-05-13 Eric Botcazou <ebotcazou@adacore.com>
4735 * tree-sra.cc (sra_modify_assign): Check that scalar storage order
4736 is the same on the LHS and RHS before rewriting one with the model
4739 2022-05-13 Richard Biener <rguenther@suse.de>
4741 * gimple-fold.cc (gimple_build): Adjust for new
4743 * gimple-fold.h (gimple_build): New main APIs with
4744 iterator, insert direction and iterator update.
4745 (gimple_build): New forwarder template.
4746 (clear_padding_type_may_have_padding_p): Remove.
4747 (clear_type_padding_in_mask): Likewise.
4748 (arith_overflowed_p): Likewise.
4749 * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
4750 (clear_type_padding_in_mask): Likewise.
4751 (arith_overflowed_p): Likewise.
4752 * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
4753 (gimplify_build2): Likewise.
4754 (gimplify_build1): Likewise.
4755 * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
4757 * gengtype.cc (open_base_files): Re-order includes.
4758 * builtins.cc: Re-order gimple-fold.h include.
4759 * calls.cc: Likewise.
4760 * cgraphbuild.cc: Likewise.
4761 * cgraphunit.cc: Likewise.
4762 * config/rs6000/rs6000-builtin.cc: Likewise.
4763 * config/rs6000/rs6000-call.cc: Likewise.
4764 * config/rs6000/rs6000.cc: Likewise.
4765 * config/s390/s390.cc: Likewise.
4766 * expr.cc: Likewise.
4767 * fold-const.cc: Likewise.
4768 * function-tests.cc: Likewise.
4769 * gimple-match-head.cc: Likewise.
4770 * gimple-range-fold.cc: Likewise.
4771 * gimple-ssa-evrp-analyze.cc: Likewise.
4772 * gimple-ssa-evrp.cc: Likewise.
4773 * gimple-ssa-sprintf.cc: Likewise.
4774 * gimple-ssa-warn-access.cc: Likewise.
4775 * gimplify.cc: Likewise.
4776 * graphite-isl-ast-to-gimple.cc: Likewise.
4777 * ipa-cp.cc: Likewise.
4778 * ipa-devirt.cc: Likewise.
4779 * ipa-prop.cc: Likewise.
4780 * omp-low.cc: Likewise.
4781 * pointer-query.cc: Likewise.
4782 * range-op.cc: Likewise.
4783 * tree-cfg.cc: Likewise.
4784 * tree-if-conv.cc: Likewise.
4785 * tree-inline.cc: Likewise.
4786 * tree-object-size.cc: Likewise.
4787 * tree-ssa-ccp.cc: Likewise.
4788 * tree-ssa-dom.cc: Likewise.
4789 * tree-ssa-forwprop.cc: Likewise.
4790 * tree-ssa-ifcombine.cc: Likewise.
4791 * tree-ssa-loop-ivcanon.cc: Likewise.
4792 * tree-ssa-math-opts.cc: Likewise.
4793 * tree-ssa-pre.cc: Likewise.
4794 * tree-ssa-propagate.cc: Likewise.
4795 * tree-ssa-reassoc.cc: Likewise.
4796 * tree-ssa-sccvn.cc: Likewise.
4797 * tree-ssa-strlen.cc: Likewise.
4798 * tree-ssa.cc: Likewise.
4799 * value-pointer-equiv.cc: Likewise.
4800 * vr-values.cc: Likewise.
4802 2022-05-13 Alexandre Oliva <oliva@adacore.com>
4804 PR rtl-optimization/105455
4805 * gimple-harden-conditionals.cc (insert_check_and_trap): Set
4806 probabilities for newly-conditional edges.
4808 2022-05-13 liuhongt <hongtao.liu@intel.com>
4810 PR tree-optimization/102583
4811 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
4812 contiguous stride in the VEC_PERM_EXPR.
4814 2022-05-12 Richard Biener <rguenther@suse.de>
4816 PR rtl-optimization/105577
4817 * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
4818 edges before running fast DCE via df_analyze.
4820 2022-05-12 Richard Biener <rguenther@suse.de>
4822 PR tree-optimization/105562
4823 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
4824 against all CLOBBER defs if there's not an obvious must-alias
4825 and we are not doing redundant store elimination.
4826 (vn_walk_cb_data::redundant_store_removal_p): New field.
4827 (vn_reference_lookup_pieces): Initialize it.
4828 (vn_reference_lookup): Add argument to specify if we are
4829 doing redundant store removal.
4830 (eliminate_dom_walker::eliminate_stmt): Specify we do.
4831 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
4833 2022-05-12 Haochen Jiang <haochen.jiang@intel.com>
4836 * config/i386/sse.md (vi1avx2const): New define_mode_attr.
4837 (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
4838 New define_split pattern.
4840 2022-05-12 Jakub Jelinek <jakub@redhat.com>
4842 * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
4843 if null_pointer_node.
4844 (gimplify_scan_omp_clauses): Likewise.
4845 * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
4848 2022-05-11 Patrick Palka <ppalka@redhat.com>
4850 * tree.h (TREE_VEC_BEGIN): Define.
4851 (TREE_VEC_END): Correct 'length' member access.
4852 (class tree_vec_range): Define.
4854 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
4856 * config/rs6000/rs6000.md: Use wa instead of <Fv>.
4858 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
4860 * config/rs6000/rs6000.md: Use d instead of <Ff>.
4862 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
4864 * config/rs6000/constraints.md (register_constraint "f"): Use
4865 RS6000_CONSTRAINT_d.
4866 * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
4867 RS6000_CONSTRAINT_f.
4868 (rs6000_init_hard_regno_mode_ok): Ditto. Reorder and simplify a bit.
4869 * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
4870 RS6000_CONSTRAINT_d.
4872 2022-05-11 Richard Biener <rguenther@suse.de>
4874 * gimple-fold.h (gimple_build): Use variadic template
4875 functions for the gimple_build API forwarders without
4876 location_t argument.
4878 2022-05-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
4881 * asan.cc (initialize_sanitizer_builtins): Register
4882 __builtin_dynamic_object_size if necessary.
4884 2022-05-11 Richard Biener <rguenther@suse.de>
4886 PR rtl-optimization/105559
4887 * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
4888 for non-debug insns.
4890 2022-05-11 Richard Biener <rguenther@suse.de>
4892 * generic-match-head.cc: Include tree-eh.h.
4893 * match.pd ((cond ...) cmp X): New simplification inspired
4894 by fold_binary_op_with_conditional_arg.
4895 (eq/ne (cmp ...) true/false): Likewise.
4897 2022-05-11 Thomas Schwinge <thomas@codesourcery.com>
4899 * doc/install.texi: Don't document '--with-hsa-runtime',
4900 '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
4902 2022-05-11 Martin Liska <mliska@suse.cz>
4905 * doc/install.texi: Document the configure option --with-zstd.
4907 2022-05-11 Martin Liska <mliska@suse.cz>
4909 * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
4910 compute index in cpu_features2.
4911 (set_cpu_feature): Likewise.
4912 * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
4913 loop for cpu_features2 and use NOP_EXPRs.
4915 2022-05-11 Richard Biener <rguenther@suse.de>
4918 * opts.cc (finish_options): Also disable var-tracking if
4919 !DWARF2_DEBUGGING_INFO.
4921 2022-05-11 liuhongt <hongtao.liu@intel.com>
4924 * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
4925 pre_reload define_insn_and_split.
4926 (*vec_setv2di_0_zero_extendhi_1): Ditto.
4927 (*vec_set<mode>_0_zero_extendsi): Ditto.
4928 (*vec_setv2di_0_zero_extendsi_1): Ditto.
4929 (ssewvecmode): New mode attr.
4930 (ssewvecmodelower): Ditto.
4931 (ssepackmodelower): Ditto.
4933 2022-05-11 Kewen Lin <linkw@linux.ibm.com>
4935 * config/rs6000/constraints.md (register constraint v): Use
4936 rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
4938 2022-05-11 Martin Liska <mliska@suse.cz>
4941 * config/riscv/riscv.opt: Remove Separate from
4942 -msmall-data-limit=.
4943 * optc-gen.awk: Report error for the described situation.
4944 * gcc.cc: Use Separate syntax.
4945 * opts.cc (gen_command_line_string): Change option name.
4947 2022-05-11 Haochen Gui <guihaoc@gcc.gnu.org>
4950 * match.pd (minmax): Skip constant folding for fmin/fmax when both
4951 arguments are sNaN or one is sNaN and another is NaN.
4953 2022-05-10 Jakub Jelinek <jakub@redhat.com>
4955 PR tree-optimization/105528
4956 * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
4957 set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment.
4959 2022-05-10 Segher Boessenkool <segher@kernel.crashing.org>
4961 * doc/md.texi (Defining Mode Iterators): Correct example replacement
4964 2022-05-10 Maciej W. Rozycki <macro@embecosm.com>
4966 * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
4968 (fmin<mode>3, fmax<mode>3): New insns.
4970 2022-05-10 Richard Biener <rguenther@suse.de>
4972 * tree-if-conv.cc (fold_build_cond_expr): Use
4973 match-and-simplify to simplify the condition.
4974 (ifcvt_follow_ssa_use_edges): Remove.
4975 (predicate_scalar_phi): Use follow_all_ssa_edges.
4977 2022-05-10 Thomas Schwinge <thomas@codesourcery.com>
4979 PR middle-end/100400
4980 * omp-oacc-kernels-decompose.cc
4981 (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
4982 call 'internal_error'.
4984 2022-05-10 Richard Biener <rguenther@suse.de>
4986 PR middle-end/105537
4987 * toplev.cc (process_options): Move flag_var_tracking
4989 * opts.cc (finish_options): ... here.
4991 2022-05-10 Martin Liska <mliska@suse.cz>
4993 * basic-block.h (struct basic_block_d): Use void *
4995 * cfgloop.h: Likewise.
4996 * cgraph.h: Likewise.
4997 * gengtype-state.cc (state_ident_by_name): Likewise.
4998 (record_type): Likewise.
4999 (read_state_already_seen_type): Likewise.
5000 * gengtype.cc (dump_type): Likewise.
5001 (input_file_by_name): Likewise.
5003 * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
5004 * ipa-utils.h (struct ipa_dfs_info): Likewise.
5005 * plugin.cc (htab_hash_plugin): Likewise.
5007 2022-05-10 Richard Biener <rguenther@suse.de>
5009 * flags.h (dwarf_debuginfo_p): Add opts argument, guard
5010 API with !GENERATOR_FILE.
5011 * opts.cc (global_options): Poison.
5012 (global_options_set): Likewise.
5013 (finish_options): Refer to options via opts.
5015 2022-05-10 Uroš Bizjak <ubizjak@gmail.com>
5016 Roger Sayle <roger@nextmovesoftware.com>
5018 * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
5019 alternative when optimizing for size and the immediate operand is
5020 const_0_to_127_operand.
5021 (*andqi_2_maybe_si): Likewise.
5022 * config/i386/predicates.md (const_0_to_127_operand): New predicate.
5024 2022-05-10 Roger Sayle <roger@nextmovesoftware.com>
5026 * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
5027 "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
5030 2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
5033 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
5034 true only for 8-byte vector modes.
5036 2022-05-10 Siddhesh Poyarekar <siddhesh@gotplt.org>
5039 * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
5040 (instrument_object_size): Get dynamic object size expression.
5042 2022-05-10 Jiufu Guo <guojiufu@linux.ibm.com>
5044 PR preprocessor/101168
5045 * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
5046 Avoid empty identifier.
5048 2022-05-09 Qing Zhao <qing.zhao@oracle.com>
5051 * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
5052 as a generic MMX mode instead of V4HImode.
5053 (zero_all_mm_registers): Use SET to zero instead of MOV for
5054 zeroing scratch registers.
5055 (ix86_zero_call_used_regs): Likewise.
5057 2022-05-09 liuhongt <hongtao.liu@intel.com>
5060 * config/i386/i386-expand.cc
5061 (expand_vec_perm_pslldq_psrldq_por): New function.
5062 (ix86_expand_vec_perm_const_1): Try
5063 expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
5064 4/5-instruction sequence.
5066 2022-05-09 Martin Liška <mliska@suse.cz>
5068 * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
5069 * system.h (STATIC_ASSERT): Define as static_assert for C++
5070 and fallback to array index in C.
5072 2022-05-09 Richard Biener <rguenther@suse.de>
5074 PR tree-optimization/105517
5075 * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
5076 offset can be represented in the POINTER_PLUS_EXPR IL.
5077 (vn_reference_insert): Likewise.
5078 * poly-int.h (sext_hwi): Add poly version of sext_hwi.
5080 2022-05-09 Richard Biener <rguenther@suse.de>
5082 * match.pd: Remove #if GIMPLE guards around ! using patterns.
5084 2022-05-09 liuhongt <hongtao.liu@intel.com>
5087 * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
5089 (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
5090 define_insn_and_split.
5092 2022-05-09 Alex Coplan <alex.coplan@arm.com>
5094 * cgraph.cc (cgraph_node::get_create): Don't dump if the current
5095 symtab state is PARSING.
5097 2022-05-09 Martin Liska <mliska@suse.cz>
5099 * system.h (LIKELY): Define.
5100 (UNLIKELY): Likewise.
5101 * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
5103 * dse.cc (set_position_unneeded): Likewise.
5104 (set_all_positions_unneeded): Likewise.
5105 (any_positions_needed_p): Likewise.
5106 (all_positions_needed_p): Likewise.
5107 * expmed.cc (flip_storage_order): Likewise.
5108 * genmatch.cc (dt_simplify::gen_1): Likewise.
5109 * ggc-common.cc (gt_pch_save): Likewise.
5110 * print-rtl.cc: Likewise.
5111 * rtl-iter.h (T>::array_type::~array_type): Likewise.
5112 (T>::next): Likewise.
5113 * rtl-ssa/internals.inl: Likewise.
5114 * rtl-ssa/member-fns.inl: Likewise.
5115 * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
5116 (rtx_properties::try_to_add_dest): Likewise.
5117 * rtlanal.h (growing_rtx_properties::repeat): Likewise.
5118 (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
5119 * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
5120 * sort.cc (likely): Likewise.
5121 (mergesort): Likewise.
5122 * wide-int.h (wi::eq_p): Likewise.
5123 (wi::ltu_p): Likewise.
5124 (wi::cmpu): Likewise.
5125 (wi::bit_and): Likewise.
5126 (wi::bit_and_not): Likewise.
5127 (wi::bit_or): Likewise.
5128 (wi::bit_or_not): Likewise.
5129 (wi::bit_xor): Likewise.
5130 (wi::add): Likewise.
5131 (wi::sub): Likewise.
5133 2022-05-09 Kito Cheng <kito.cheng@sifive.com>
5135 * config/riscv/arch-canonicalize: Handle g correctly.
5137 2022-05-07 Marek Polacek <polacek@redhat.com>
5141 * tree-core.h (struct attribute_spec): Update comment for HANDLER.
5143 2022-05-06 Jason Merrill <jason@redhat.com>
5145 * diagnostic-color.cc: Add fnname and targs color entries.
5146 * doc/invoke.texi: Document them.
5148 2022-05-06 Jason Merrill <jason@redhat.com>
5150 * vec.h (vec::iterate): Fix comment.
5152 2022-05-06 Michael Meissner <meissner@linux.ibm.com>
5155 * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
5156 and -mpower10-fusion options for inlining purposes.
5158 2022-05-06 Christophe Lyon <christophe.lyon@arm.com>
5160 * config/aarch64/iterators.md (GPF_TF_F16): Delete.
5162 2022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
5164 * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
5165 omp_runtime_apis array.
5167 2022-05-06 Hafiz Abid Qadeer <abidh@codesourcery.com>
5169 * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
5170 (scan_sharing_clauses): Check a restriction on allocate clause.
5172 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
5174 * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
5175 and ORDERED clause conflict errors. Add check for GRAINSIZE and
5176 NUM_TASKS on TASKLOOP.
5178 2022-05-05 Martin Liska <mliska@suse.cz>
5180 * genautomata.cc (create_composed_state): Remove dead code.
5181 * graphite-poly.cc (print_pdrs): Likewise.
5182 * lto-wrapper.cc (run_gcc): Likewise.
5183 * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
5186 2022-05-05 Martin Liska <mliska@suse.cz>
5188 * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
5190 (gimple_gen_time_profiler): Likewise.
5192 2022-05-05 Martin Liska <mliska@suse.cz>
5194 * value-prof.cc (stream_out_histogram_value): Remove sanity
5197 2022-05-05 Richard Biener <rguenther@suse.de>
5199 PR tree-optimization/104162
5200 * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
5201 &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
5203 (vn_reference_insert): Likewise.
5205 2022-05-05 Richard Biener <rguenther@suse.de>
5207 * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
5208 to real_value field.
5209 (tree_real_cst::value): Add real_value field.
5210 * tree.h (TREE_REAL_CST_PTR): Adjust.
5211 * tree.cc (build_real): Remove separate allocation.
5212 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
5215 2022-05-05 Richard Biener <rguenther@suse.de>
5217 * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
5218 divisions with undefined overflow unconditionally.
5219 (pass_tree_ifcombine::execute): Rewrite stmts with undefined
5220 overflow to defined.
5222 2022-05-05 Richard Biener <rguenther@suse.de>
5224 PR tree-optimization/105484
5225 * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
5226 whether the CFG changed.
5227 (gimple_expand_vec_exprs): When the CFG changed, clean it up.
5229 2022-05-05 Richard Biener <rguenther@suse.de>
5231 PR tree-optimization/104595
5232 * tree-vect-patterns.cc (vect_recog_bool_pattern): For
5233 COND_EXPR do not fail if check_bool_pattern returns false.
5235 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
5237 * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
5238 item that is in an outer data-sharing clause.
5240 2022-05-04 Richard Biener <rguenther@suse.de>
5242 PR tree-optimization/104658
5243 * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
5244 create VECTOR_BOOLEAN_TYPE_P extern defs. Reset the vector
5245 type on nodes we promote.
5246 (vectorizable_bb_reduc_epilogue): Deal with externalized
5248 * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
5249 not allow VECTOR_BOOLEAN_TYPE_P extern defs.
5251 2022-05-04 Richard Biener <rguenther@suse.de>
5253 PR tree-optimization/103116
5254 * tree-vect-stmts.cc (get_group_load_store_type): Handle the
5255 case we need peeling for gaps even though GROUP_GAP is zero.
5257 2022-05-04 Martin Liska <mliska@suse.cz>
5259 * gengtype-state.cc (read_a_state_token): Remove dead code.
5260 * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
5262 2022-05-04 Richard Biener <rguenther@suse.de>
5264 * gimplify.cc (gimplify_init_constructor): First gimplify,
5265 then simplify the result to a VECTOR_CST.
5267 2022-05-04 Jakub Jelinek <jakub@redhat.com>
5269 * genconditions.cc (write_conditions): Append a { nullptr, -1 }
5270 element at the end of insn_conditions.
5271 (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
5272 ARRAY_SIZE (insn_conditions).
5274 2022-05-04 Christophe Lyon <christophe.lyon@arm.com>
5277 * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
5278 vector of booleans and MVE is not enabled.
5280 2022-05-04 Richard Biener <rguenther@suse.de>
5283 * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
5284 Move debug stmts to the predecessor if moving to the
5285 destination is not possible.
5286 (remove_forwarder_block): Adjust.
5287 (remove_forwarder_block_with_phi): Likewise.
5289 2022-05-03 Roger Sayle <roger@nextmovesoftware.com>
5291 PR tree-optimization/102950
5292 * range-op.cc (wi_optimize_signed_bitwise_op): New function to
5293 determine bounds of bitwise operations on signed types.
5294 (operator_bitwise_and::wi_fold): Call the above function.
5295 (operator_bitwise_or::wi_fold): Likewise.
5296 (operator_bitwise_xor::wi_fold): Likewise. Additionally, the
5297 result can't be zero if the operands can't be equal.
5299 2022-05-03 Iain Sandoe <iain@sandoe.co.uk>
5301 * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
5302 protocol class methods linker-visible.
5304 2022-05-03 Uroš Bizjak <ubizjak@gmail.com>
5307 * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
5308 define_insn_and_split pattern.
5310 2022-05-03 Richard Biener <rguenther@suse.de>
5312 PR middle-end/105083
5313 * tree-scalar-evolution.cc (scev_initialize): Verify we
5314 have appropriate loop state.
5315 * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
5316 loop init and finalization.
5318 2022-05-03 Richard Biener <rguenther@suse.de>
5320 PR middle-end/105461
5321 * opts.cc (finish_options): Match the condition to
5322 disable flag_var_tracking to that of process_options.
5324 2022-05-03 Richard Biener <rguenther@suse.de>
5326 * opts.cc: #undef OPTIONS_SET_P.
5327 (finish_options): Use opts_set instead of OPTIONS_SET_P.
5329 2022-05-03 Richard Biener <rguenther@suse.de>
5331 PR tree-optimization/105394
5332 * tree-vect-generic.cc (expand_vector_condition): Adjust
5333 comp_width for non-integer mode masks as well.
5335 2022-05-03 Marcel Vollweiler <marcel@codesourcery.com>
5337 * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
5338 omp_runtime_apis array.
5340 2022-05-02 Richard Biener <rguenther@suse.de>
5342 * tree-scalar-evolution.cc (expression_expensive_p):
5343 Never consider mismatched calls as cheap.
5345 2022-05-02 Richard Biener <rguenther@suse.de>
5347 PR tree-optimization/104240
5348 * tree-vect-slp.cc (op1_op0_map): New.
5349 (vect_get_operand_map): Handle compares.
5350 (vect_build_slp_tree_1): Support swapped operands for
5353 2022-05-02 Jakub Jelinek <jakub@redhat.com>
5356 * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
5357 if there is no symtab node for the VAR_DECL.
5359 2022-05-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
5361 * gcov-io.cc (gcov_rewrite): Clear the file error status.
5363 2022-05-02 Richard Biener <rguenther@suse.de>
5365 PR tree-optimization/105437
5366 * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
5367 case where last_stmt alters control flow.
5369 2022-05-02 Richard Biener <rguenther@suse.de>
5371 * dojump.cc (do_jump): Use CASE_CONVERT.
5372 * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
5374 2022-05-02 Jakub Jelinek <jakub@redhat.com>
5376 * system.h: Include initializer_list.
5378 2022-05-01 Segher Boessenkool <segher@kernel.crashing.org>
5380 * config/rs6000/constraints.md (Y constraint): Fix comment.
5382 2022-05-01 Aldy Hernandez <aldyh@redhat.com>
5384 * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
5385 VR_RANGE before passing a piecewise range to set_range_info_raw.
5387 2022-04-30 Patrick Palka <ppalka@redhat.com>
5389 * gengtype.cc (adjust_field_tree_exp): Remove.
5390 (adjust_field_type): Don't handle the "tree_exp" special attribute.
5391 * tree-core.h (struct tree_exp): Remove "special" and "desc"
5392 attributes. Add "length" attribute.
5394 2022-04-29 Martin Jambor <mjambor@suse.cz>
5397 * cgraph.cc (cgraph_node::remove): Release body of the node this
5398 is clone_of if appropriate.
5400 2022-04-29 Uroš Bizjak <ubizjak@gmail.com>
5403 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
5405 2022-04-29 Richard Biener <rguenther@suse.de>
5407 * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
5408 (canonicalize_cond_expr_cond): Move here from gimple.cc,
5409 allow both COND_EXPR and GIMPLE_COND forms.
5410 * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
5411 * gimple.cc (canonicalize_cond_expr_cond): Remove here.
5412 * gimple.h (canonicalize_cond_expr_cond): Likewise.
5413 * gimple-loop-versioning.cc (loop_versioning::version_loop):
5414 Use is_gimple_condexpr_for_cond.
5415 * tree-parloops.cc (gen_parallel_loop): Likewise.
5416 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
5417 a proper cond expr after canonicalize_cond_expr_cond.
5418 Use is_gimple_condexpr_for_cond where appropriate.
5419 * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
5420 * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
5422 2022-04-29 Richard Biener <rguenther@suse.de>
5424 * gimple-iterator.h (gsi_after_labels): Add overload for
5426 (gsi_start_1): Rename to gsi_start and take a reference.
5427 (gsi_last_1): Likewise.
5428 * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
5429 * omp-low.cc (lower_rec_input_clauses): Likewise.
5430 (lower_omp_scan): Likewise.
5432 2022-04-29 Richard Biener <rguenther@suse.de>
5434 PR tree-optimization/105431
5435 * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
5436 (powi_as_mults): Use absu_hwi.
5437 (gimple_expand_builtin_powi): Remove now pointless n != -n
5440 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
5442 * range-op.cc (empty_range_varying): Move to range-op.h.
5443 (range_true): Move to range.h.
5444 (range_false): Same.
5445 (range_true_and_false): Same.
5446 (enum bool_range_state): Move to range-op.h.
5447 (relop_early_resolve): Same.
5448 (operator_equal::op1_op2_relation): Abstract code to...
5449 (equal_op1_op2_relation): ...here.
5450 (operator_not_equal::op1_op2_relation): Abstract code to...
5451 (not_equal_op1_op2_relation): ...here.
5452 (operator_lt::op1_op2_relation): Abstract code to...
5453 (lt_op1_op2_relation): ...here.
5454 (operator_le::op1_op2_relation): Abstract code to...
5455 (le_op1_op2_relation): ...here.
5456 (operator_gt::op1_op2_relation): Abstract code to...
5457 (gt_op1_op2_relation): ...here.
5458 (operator_ge::op1_op2_relation): Abstract code to...
5459 (ge_op1_op2_relation): ...here.
5460 (class range_op_table): Move to range-op.h.
5461 * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
5462 (not_equal_op1_op2_relation): Same.
5463 (lt_op1_op2_relation): Same.
5464 (le_op1_op2_relation): Same.
5465 (gt_op1_op2_relation): Same.
5466 (ge_op1_op2_relation): Same.
5467 (enum bool_range_state): Same.
5468 (get_bool_state): Same.
5469 (empty_range_varying): Same.
5470 (relop_early_resolve): Same.
5471 (class range_op_table): Same.
5472 * range.h (range_true): Same.
5473 (range_false): Same.
5474 (range_true_and_false): Same.
5476 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
5478 * gimple-fold.cc (size_must_be_zero_p): Use reference
5480 * gimple-ssa-evrp-analyze.cc
5481 (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
5482 intersect to legacy_verbose_intersect.
5483 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
5485 * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
5486 instead of value_range_equiv.
5487 * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
5489 (find_case_label_range): Same.
5490 * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
5491 (value_range_equiv::legacy_verbose_intersect): ...this.
5492 (value_range_equiv::union_): Rename to...
5493 (value_range_equiv::legacy_verbose_union_): ...this.
5494 * value-range-equiv.h (class value_range_equiv): Rename union and
5495 intersect to legacy_verbose_{intersect,union}.
5496 * value-range.cc (irange::union_): Rename to...
5497 (irange::legacy_verbose_union_): ...this.
5498 (irange::intersect): Rename to...
5499 (irange::legacy_verbose_intersect): ...this.
5500 * value-range.h (irange::union_): Rename union_ to
5501 legacy_verbose_union.
5502 (irange::intersect): Rename intersect to legacy_verbose_intersect.
5503 * vr-values.cc (vr_values::update_value_range): Same.
5504 (vr_values::extract_range_for_var_from_comparison_expr): Same.
5505 (vr_values::extract_range_from_cond_expr): Rename union_ to
5506 legacy_verbose_union.
5507 (vr_values::extract_range_from_phi_node): Same.
5509 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
5511 * gimple-ssa-evrp-analyze.cc
5512 (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
5514 * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
5515 * ipa-prop.cc (ipcp_update_vr): Same.
5516 * tree-inline.cc (remap_ssa_name): Same.
5517 * tree-ssa-copy.cc (fini_copy_prop): Same.
5518 * tree-ssa-math-opts.cc (optimize_spaceship): Same.
5519 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
5520 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
5521 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
5522 * tree-ssa-strlen.cc (set_strlen_range): Same.
5523 (strlen_pass::handle_builtin_string_cmp): Same.
5524 * tree-ssanames.cc (set_range_info): Make static.
5525 (duplicate_ssa_name_range_info): Make static and add a new variant
5527 * tree-ssanames.h (set_range_info): Remove version taking wide ints.
5528 (duplicate_ssa_name_range_info): Remove version taking a
5529 range_info_def and replace with a version taking SSA names.
5530 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
5532 (vect_do_peeling): Same.
5533 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
5534 * vr-values.cc (simplify_truth_ops_using_ranges): Same.
5536 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
5538 * value-range.h (irange::irange): Use set_undefined.
5540 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
5542 * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
5543 irange::intersect (wide_int, wide_int).
5544 * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
5545 (adjust_imagpart_expr): Same.
5546 * value-range.h (irange::intersect (wide_int, wide_int)): Make
5549 2022-04-29 Richard Biener <rguenther@suse.de>
5551 PR tree-optimization/104322
5552 * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
5554 2022-04-29 Richard Biener <rguenther@suse.de>
5556 PR middle-end/105376
5557 * tree.cc (build_real): Special case dconst* arguments
5558 for decimal floating point types.
5560 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
5562 * doc/gcov.texi (Profiling and Test Coverage in Freestanding
5563 Environments): New section.
5565 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
5567 * doc/gcov-tool.texi: Document merge-stream subcommand.
5568 * doc/invoke.texi (fprofile-info-section): Mention merge-stream
5569 subcommand of gcov-tool.
5570 * gcov-tool.cc (gcov_profile_merge_stream): Declare.
5571 (print_merge_stream_usage_message): New.
5572 (merge_stream_usage): Likewise.
5573 (do_merge_stream): Likewise.
5574 (print_usage): Call print_merge_stream_usage_message().
5575 (main): Call do_merge_stream() to execute merge-stream subcommand.
5577 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
5579 * gcov-io.cc (gcov_file_error): New enum.
5580 (gcov_var): Use gcov_file_error enum for the error member.
5581 (gcov_open): Use GCOV_FILE_NO_ERROR.
5582 (gcov_close): Use GCOV_FILE_WRITE_ERROR.
5583 (gcov_write): Likewise.
5584 (gcov_write_unsigned): Likewise.
5585 (gcov_write_string): Likewise.
5586 (gcov_read_bytes): Set error code if EOF is reached.
5587 (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
5589 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
5591 * gcov-io.cc (GCOV_MODE_STDIN): Define.
5592 (gcov_position): For gcov-tool, return calculated position if file is
5594 (gcov_open): For gcov-tool, use stdin if filename is NULL.
5595 (gcov_close): For gcov-tool, do not close stdin.
5596 (gcov_read_bytes): For gcov-tool, update position if file is stdin.
5597 (gcov_sync): For gcov-tool, discard input if file is stdin.
5599 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
5601 * doc/invoke.texi (fprofile-info-section): Mention
5602 __gcov_filename_to_gcfn(). Use "freestanding" to match with C11
5603 standard language. Fix minor example code issues.
5604 * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
5606 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
5608 * gcov-io.cc (gcov_seek): Make it static.
5609 * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
5611 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
5613 * gcov-tool.cc (gcov_do_dump): Add mode parameter.
5614 (gcov_output_files): Open files for reading and writing.
5616 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
5618 * gcov-io.cc (gcov_open): Always use the mode parameter.
5619 * gcov-io.h (gcov_open): Declare it unconditionally.
5621 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
5623 * gcov-tool.cc (gcov_profile_merge): Adjust return type.
5624 (profile_merge): Allow merging of directories which contain no profile
5627 2022-04-28 David Malcolm <dmalcolm@redhat.com>
5629 * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
5632 2022-04-28 Jakub Jelinek <jakub@redhat.com>
5634 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
5635 temporary only if out overlaps compare_op, not when it overlaps
5638 2022-04-28 Jakub Jelinek <jakub@redhat.com>
5641 * cgraph.cc (cgraph_node::verify_node): Don't verify
5642 semantic_interposition flag against
5643 opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
5645 2022-04-28 Jakub Jelinek <jakub@redhat.com>
5648 * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
5649 temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
5652 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
5654 * doc/install.texi (Configuration): Remove misleading text
5655 around LE PowerPC Linux multilibs.
5657 2022-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5660 * doc/install.texi (Tools/packages necessary for building GCC)
5661 (GDC): Document libphobos requirement.
5662 (Host/target specific installation notes for GCC, *-*-solaris2*):
5663 Document libphobos and GDC specifics.
5665 2022-04-28 Richard Biener <rguenther@suse.de>
5667 PR tree-optimization/105219
5668 * tree-vect-loop.cc (vect_transform_loop): Disable
5669 special code narrowing the vectorized epilogue max
5670 iterations when peeling for alignment or gaps was in effect.
5672 2022-04-28 Xi Ruoyao <xry111@mengyan1223.wang>
5674 * config/loongarch/loongarch.cc
5675 (loongarch_flatten_aggregate_field): Ignore empty fields for
5678 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
5680 * config/loongarch/loongarch.md: Add fdiv define_expand template,
5681 then generate floating-point division and floating-point reciprocal
5684 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
5686 * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
5687 to PLV instruction templates.
5689 2022-04-27 Richard Biener <rguenther@suse.de>
5691 PR middle-end/104492
5692 * gimple-ssa-warn-access.cc
5693 (pass_waccess::warn_invalid_pointer): Exclude equality compare
5694 diagnostics for all kind of invalidations.
5695 (pass_waccess::check_dangling_uses): Fix post-dominator query.
5696 (pass_waccess::check_pointer_uses): Likewise.
5698 2022-04-27 Andreas Krebbel <krebbel@linux.ibm.com>
5701 * config/s390/s390-protos.h (s390_function_arg_vector): Remove
5703 * config/s390/s390.cc (s390_single_field_struct_p): New function.
5704 (s390_function_arg_vector): Invoke s390_single_field_struct_p.
5705 (s390_function_arg_float): Likewise.
5707 2022-04-27 Jakub Jelinek <jakub@redhat.com>
5710 * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
5711 where offset is bigger than off but smaller than m_prev_offset + 32
5712 bits by pushing one or more 0 bytes. Sink the
5713 m_shadow_bytes.safe_push (value); flush_if_full (); statements from
5714 all cases to the end of the function.
5716 2022-04-27 Kewen Lin <linkw@linux.ibm.com>
5719 * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
5722 2022-04-26 Thomas Schwinge <thomas@codesourcery.com>
5724 * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
5725 data-share memory exhausted" error more verbose.
5727 2022-04-26 Martin Liska <mliska@suse.cz>
5730 * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
5731 (run_gcc): Parse OPT_fdiagnostics_urls_.
5732 (main): Initialize global_dc.
5734 2022-04-26 Jakub Jelinek <jakub@redhat.com>
5736 PR rtl-optimization/105314
5737 * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
5738 operand is equal to if_info->x, instead use the non-zero operand
5739 as one of the operands of AND with if_info->x as target.
5741 2022-04-26 Jakub Jelinek <jakub@redhat.com>
5743 PR tree-optimization/105374
5744 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
5745 !fold_convertible_p rather than assuming fold_convert must succeed.
5747 2022-04-26 Jakub Jelinek <jakub@redhat.com>
5750 * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
5751 el_mode == DFmode ? double_type_node : float_type_node instead of
5752 TREE_TYPE (type_in) as first arguments to mathfn_built_in.
5754 2022-04-25 David Malcolm <dmalcolm@redhat.com>
5757 * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
5758 the location of new_stmt in all places that don't already set it,
5759 whether explicitly, or via a call to gsi_replace.
5761 2022-04-25 Paul A. Clarke <pc@us.ibm.com>
5763 * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
5765 2022-04-25 Andrew MacLeod <amacleod@redhat.com>
5767 PR tree-optimization/105276
5768 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
5769 existing global range with calculated value.
5771 2022-04-25 Richard Biener <rguenther@suse.de>
5773 PR tree-optimization/105368
5774 * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
5776 2022-04-25 Richard Biener <rguenther@suse.de>
5778 PR tree-optimization/100810
5779 * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
5780 (find_ssa_undef): New function.
5781 (add_candidate_1): Avoid adding derived candidates with
5782 undefined SSA names and mark the original ones.
5783 (determine_group_iv_cost_generic): Reject rewriting
5784 uses with a different IV when that involves undefined SSA names.
5786 2022-04-25 Steven G. Kargl <kargl@gcc.gnu.org>
5789 * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
5790 bsd_libc_has_function.
5791 * targhooks.cc (bsd_libc_has_function): New function.
5792 Expand the supported math functions to inclue C99 libm.
5793 * targhooks.h (bsd_libc_has_function): New Prototype.
5795 2022-04-25 Richard Biener <rguenther@suse.de>
5797 PR rtl-optimization/105231
5798 * combine.cc (distribute_notes): Assert that a REG_EH_REGION
5799 with landing pad > 0 is from i3. Put any REG_EH_REGION note
5800 on i3 or drop it if the insn can not trap.
5801 (try_combine): Ensure that we can merge REG_EH_REGION notes
5802 with non-call exceptions. Ensure we are not splitting a
5803 trapping part of an insn with non-call exceptions when there
5804 is any REG_EH_REGION note to preserve.
5806 2022-04-25 Hongyu Wang <hongyu.wang@intel.com>
5809 * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
5810 Add parentheses for parameters and djust format.
5811 (_mm512_mask_scalef_round_pd): Ditto.
5812 (_mm512_maskz_scalef_round_pd): Ditto.
5813 (_mm512_scalef_round_ps): Ditto.
5814 (_mm512_mask_scalef_round_ps): Ditto.
5815 (_mm512_maskz_scalef_round_ps): Ditto.
5816 (_mm_scalef_round_sd): Use _mm_undefined_pd.
5817 (_mm_scalef_round_ss): Use _mm_undefined_ps.
5818 (_mm_mask_scalef_round_sd): New macro.
5819 (_mm_mask_scalef_round_ss): Ditto.
5820 (_mm_maskz_scalef_round_sd): Ditto.
5821 (_mm_maskz_scalef_round_ss): Ditto.
5823 2022-04-23 Jakub Jelinek <jakub@redhat.com>
5826 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
5827 op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
5830 2022-04-22 Segher Boessenkool <segher@kernel.crashing.org>
5833 * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
5834 (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
5835 (pack<mode>_hard for FMOVE128): ... this...
5836 (pack<mode>_soft for FMOVE128): ... and this.
5838 2022-04-22 Paul A. Clarke <pc@us.ibm.com>
5840 * doc/extend.texi: Correct "This" to "These".
5842 2022-04-22 Jakub Jelinek <jakub@redhat.com>
5844 PR rtl-optimization/105333
5845 * rtlanal.cc (replace_rtx): Use simplify_subreg or
5846 simplify_unary_operation if CONST_SCALAR_INT_P rather than just
5849 2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
5853 * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
5854 the "Z" alternatives in {l,st}{f,xs}iwzx.
5855 (zero_extendhi<mode>2 for EXTHI): Ditto.
5856 (zero_extendsi<mode>2 for EXTSI): Ditto.
5857 (*movsi_internal1): Ditto.
5858 (*mov<mode>_internal1 for QHI): Ditto.
5859 (movsd_hardfloat): Ditto.
5861 2022-04-21 Martin Liska <mliska@suse.cz>
5863 * configure.ac: Enable compressed debug sections for mold
5865 * configure: Regenerate.
5867 2022-04-21 Jakub Jelinek <jakub@redhat.com>
5870 * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
5873 2022-04-20 Richard Biener <rguenther@suse.de>
5875 PR tree-optimization/104912
5876 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
5877 the cost model check to a separate BB to make sure it is
5878 checked first and not combined with other version checks.
5880 2022-04-20 Richard Biener <rguenther@suse.de>
5882 PR tree-optimization/105312
5883 * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
5884 VCOND and VCONDU for EQ and NE.
5886 2022-04-20 Jan Hubicka <hubicka@ucw.cz>
5889 * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
5890 poly_offset_int to avoid overflow.
5891 (modref_access_node::update2): likewise.
5893 2022-04-20 Jakub Jelinek <jakub@redhat.com>
5896 * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
5897 to opt_for_fn (decl, flag_semantic_interposition).
5898 * cgraphclones.cc (cgraph_node::create_clone): Copy over
5899 semantic_interposition flag.
5901 2022-04-19 Sergei Trofimovich <siarheit@google.com>
5903 PR gcov-profile/105282
5904 * value-prof.cc (stream_out_histogram_value): Allow negative counts
5905 on HIST_TYPE_INDIR_CALL.
5907 2022-04-19 Jakub Jelinek <jakub@redhat.com>
5910 * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
5911 use gen_raw_REG instead of gen_rtx_REG and copy over also
5912 ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */.
5914 2022-04-19 Richard Biener <rguenther@suse.de>
5916 PR tree-optimization/104010
5917 PR tree-optimization/103941
5918 * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
5919 we run into stmts in patterns continue walking those
5920 for uses outside of the vectorized region instead of
5921 marking the lane live.
5923 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
5925 * doc/install.texi <CRIS>: Remove references to removed websites and
5926 adjust for cris-*-elf being the only remaining toolchain.
5928 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
5930 * doc/invoke.texi <CRIS>: Remove references to options for removed
5931 subtarget cris-axis-linux-gnu and tweak wording accordingly.
5933 2022-04-16 Gerald Pfeifer <gerald@pfeifer.com>
5935 * doc/install.texi (Specific): Adjust mingw-w64 download link.
5937 2022-04-15 Hongyu Wang <hongyu.wang@intel.com>
5939 * config/i386/smmintrin.h: Correct target pragma from sse4.1
5940 and sse4.2 to crc32 for crc32 intrinsics.
5942 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
5945 * ctfc.cc (ctf_dvd_ignore_insert): New function.
5946 (ctf_dvd_ignore_lookup): Likewise.
5947 (ctf_add_variable): Keep track of non-defining decl DIEs.
5948 (new_ctf_container): Initialize the new hash-table.
5949 (ctfc_delete_container): Empty hash-table.
5950 * ctfc.h (struct ctf_container): Add new hash-table.
5951 (ctf_dvd_ignore_lookup): New declaration.
5952 (ctf_add_variable): Add additional argument.
5953 * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
5954 record for non-defining decl for which a defining decl exists
5956 (ctf_preprocess): Defer updating the number of global objts
5958 (output_ctf_header): Use ctfc_vars_list_count as some CTF
5959 variables may not make it to the final output.
5960 (output_ctf_vars): Likewise.
5961 * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
5962 if this is known to be a non-defining decl DIE.
5964 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
5966 * ctfc.h (struct ctf_container): Introduce a new member.
5967 * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
5970 2022-04-14 Jakub Jelinek <jakub@redhat.com>
5973 * simplify-rtx.cc (simplify_const_binary_operation): For shifts
5974 or rotates by VOIDmode constant integer shift count use word_mode
5975 for the operand if int_mode is narrower than word.
5977 2022-04-14 Robin Dapp <rdapp@linux.ibm.com>
5979 * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
5980 (s390_get_unit_mask): Likewise.
5981 (s390_is_fpd): Likewise.
5982 (s390_is_fxd): Likewise.
5983 * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
5984 * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
5986 (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
5988 * config/s390/3931.md: New file.
5990 2022-04-13 Richard Sandiford <richard.sandiford@arm.com>
5992 PR tree-optimization/105254
5993 * config/aarch64/aarch64.cc
5994 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
5995 loop_vec_info as argument. Restrict the unroll factor to values
5997 (aarch64_vector_costs::finish_cost): Update call accordingly.
5999 2022-04-13 Richard Biener <rguenther@suse.de>
6001 PR tree-optimization/105263
6002 * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
6003 negates in multiplication chains with DFP.
6005 2022-04-13 Jakub Jelinek <jakub@redhat.com>
6007 PR middle-end/105253
6008 * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
6009 use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
6010 comparisons or tree_nop_conversion_p checks.
6012 2022-04-13 Hongyu Wang <hongyu.wang@intel.com>
6015 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
6016 Add missing set to target_val at pause label.
6018 2022-04-13 Jakub Jelinek <jakub@redhat.com>
6021 * attribs.cc (decl_attributes): Don't set
6022 DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
6025 2022-04-13 Richard Biener <rguenther@suse.de>
6027 PR tree-optimization/105250
6028 * fold-const.cc (fold_convertible_p): Revert
6029 r12-7979-geaaf77dd85c333, instead check for size equality
6030 of the vector types involved.
6032 2022-04-13 Richard Biener <rguenther@suse.de>
6035 2022-04-13 Richard Biener <rguenther@suse.de>
6037 PR tree-optimization/104912
6038 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
6039 the cost model check to a separate BB to make sure it is
6040 checked first and not combined with other version checks.
6042 2022-04-13 Richard Biener <rguenther@suse.de>
6044 PR tree-optimization/104912
6045 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
6046 the cost model check to a separate BB to make sure it is
6047 checked first and not combined with other version checks.
6049 2022-04-13 Jakub Jelinek <jakub@redhat.com>
6051 * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
6053 2022-04-12 Antoni Boucher <bouanto@zoho.com>
6056 * reginfo.cc: New functions (clear_global_regs_cache,
6057 reginfo_cc_finalize) to avoid an issue where compiling the same
6058 code multiple times gives an error about assigning the same
6059 register to 2 global variables.
6060 * rtl.h: New function (reginfo_cc_finalize).
6061 * toplev.cc: Call it.
6063 2022-04-12 Antoni Boucher <bouanto@zoho.com>
6066 * toplev.cc: Call the new function tree_cc_finalize in
6068 * tree.cc: New functions (clear_nonstandard_integer_type_cache
6069 and tree_cc_finalize) to clear the cache of non-standard integer
6070 types to avoid having issues with some optimizations of
6071 bitcast where the SSA_NAME will have a size of a cached
6072 integer type that should have been invalidated, causing a
6073 comparison of integer constant to fail.
6074 * tree.h: New function (tree_cc_finalize).
6076 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
6079 * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
6080 * config/nvptx/nvptx.opt (misa): Adjust comment.
6082 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
6085 2022-03-03 Tom de Vries <tdevries@suse.de>
6087 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
6089 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
6092 2022-03-31 Tom de Vries <tdevries@suse.de>
6094 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
6096 2022-04-12 Richard Biener <rguenther@suse.de>
6099 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
6100 include local escaped memory as obviously necessary stores.
6102 2022-04-12 Richard Biener <rguenther@suse.de>
6104 PR tree-optimization/105235
6105 * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
6106 return whether the CFG changed.
6107 (execute_cse_sincos_1): Adjust.
6109 2022-04-12 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
6112 * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
6113 (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
6114 (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
6115 (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
6116 (MULTILIB_REUSE): Remove remap rules for Armv9-a.
6117 * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
6118 (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
6120 2022-04-12 Richard Biener <rguenther@suse.de>
6122 PR tree-optimization/105232
6123 * tree.cc (component_ref_size): Bail out for too large
6124 or non-constant sizes.
6126 2022-04-12 Richard Biener <rguenther@suse.de>
6128 PR tree-optimization/105226
6129 * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
6130 we can split the exit of an outer loop we choose to version.
6132 2022-04-12 Jakub Jelinek <jakub@redhat.com>
6134 * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
6135 ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
6136 ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
6137 ix86_emit_swdivsf, ix86_emit_swsqrtsf,
6138 ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
6140 * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
6142 2022-04-12 Jakub Jelinek <jakub@redhat.com>
6145 * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
6146 do_pending_stack_adjust.
6148 2022-04-12 Jakub Jelinek <jakub@redhat.com>
6150 PR rtl-optimization/105211
6151 * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
6152 fails for TREE_TYPE (arg), retry it with
6153 TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
6154 fails, emit call normally.
6156 2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
6158 * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
6159 * config.gcc: Add z16 as march/mtune switch.
6160 * config/s390/driver-native.cc (s390_host_detect_local_cpu):
6161 Recognize z16 with -march=native.
6162 * config/s390/s390-opts.h (enum processor_type): Rename
6163 PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
6164 * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
6165 (PROCESSOR_3931_Z16): ... throughout the file.
6166 (s390_processor processor_table): Add z16 as cpu string.
6167 * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
6169 (TARGET_CPU_ARCH14): Rename to ...
6170 (TARGET_CPU_Z16): ... this.
6171 (TARGET_CPU_ARCH14_P): Rename to ...
6172 (TARGET_CPU_Z16_P): ... this.
6173 (TARGET_ARCH14): Rename to ...
6174 (TARGET_Z16): ... this.
6175 (TARGET_ARCH14_P): Rename to ...
6176 (TARGET_Z16_P): ... this.
6177 * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
6178 check TARGET_Z16 instead of TARGET_ARCH14.
6179 * config/s390/s390.opt: Add z16 to processor_type.
6180 * doc/invoke.texi: Document z16 and arch14.
6182 2022-04-12 chenglulu <chenglulu@loongson.cn>
6184 * config/loongarch/loongarch.cc: Fix bug for
6185 tmpdir-g++.dg-struct-layout-1/t033.
6187 2022-04-11 Peter Bergner <bergner@linux.ibm.com>
6190 * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
6191 to longcall functions.
6193 2022-04-11 Jason Merrill <jason@redhat.com>
6195 * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
6197 2022-04-11 Segher Boessenkool <segher@kernel.crashing.org>
6201 * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
6203 2022-04-11 Jakub Jelinek <jakub@redhat.com>
6205 PR tree-optimization/105218
6206 * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
6207 more than one predecessor or phi's bb more than 2 predecessors,
6208 reset phi result uses instead of adding a debug temp.
6210 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
6213 * config.gcc: Pass -misa-spec to arch-canonicalize and
6215 * config/riscv/arch-canonicalize: Adding -misa-spec option.
6216 (SUPPORTED_ISA_SPEC): New.
6217 (arch_canonicalize): New argument `isa_spec`.
6218 Handle multiple ISA spec versions.
6219 * config/riscv/multilib-generator: Adding -misa-spec option.
6221 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
6223 * config/riscv/arch-canonicalize: Add TODO item.
6224 (IMPLIED_EXT): Sync.
6225 (arch_canonicalize): Checking until no change.
6227 2022-04-11 Tamar Christina <tamar.christina@arm.com>
6230 * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
6233 2022-04-11 Jason Merrill <jason@redhat.com>
6236 * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
6239 2022-04-11 Jakub Jelinek <jakub@redhat.com>
6241 PR tree-optimization/104639
6242 * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
6243 (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
6246 2022-04-11 Jeff Law <jeffreyalaw@gmail.com>
6248 * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
6249 sign bit of the source ends up in CC.
6251 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
6254 * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
6257 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
6259 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
6260 nondeterministic and side_effects flags.
6262 2022-04-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
6265 * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
6266 * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
6267 (TARGET_CPU_MASK): Likewise.
6268 (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
6269 * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
6270 (aarch64_get_arch): Likewise.
6271 (aarch64_override_options): Use TARGET_CPU_NBITS.
6273 2022-04-08 Richard Biener <rguenther@suse.de>
6275 PR tree-optimization/105198
6276 * tree-predcom.cc (find_looparound_phi): Check whether
6277 the found memory location of the entry value is clobbered
6278 inbetween the value we want to use and loop entry.
6280 2022-04-08 Jakub Jelinek <jakub@redhat.com>
6282 PR tree-optimization/105189
6283 * fold-const.cc (make_range_step): Fix up handling of
6284 (unsigned) x +[low, -] ranges for signed x if low fits into
6287 2022-04-08 Richard Biener <rguenther@suse.de>
6289 PR tree-optimization/105175
6290 * tree-vect-stmts.cc (vectorizable_operation): Suppress
6291 -Wvector-operation-performance if using emulated vectors.
6292 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
6293 -Wvector-operation-performance when suppressed.
6294 (expand_vector_parallel): Likewise.
6295 (expand_vector_comparison): Likewise.
6296 (expand_vector_condition): Likewise.
6297 (lower_vec_perm): Likewise.
6298 (expand_vector_conversion): Likewise.
6300 2022-04-07 Tamar Christina <tamar.christina@arm.com>
6303 * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
6304 (aarch64_general_init_builtins): Move LS64 code.
6305 * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
6307 * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
6308 * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
6310 2022-04-07 Richard Biener <rguenther@suse.de>
6311 Jan Hubicka <hubicka@ucw.cz>
6314 * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
6315 ref_may_alias_global_p, ref_may_alias_global_p,
6316 stmt_may_clobber_global_p, pt_solution_includes_global): Add
6317 bool parameters indicating whether escaped locals should be
6319 * tree-ssa-structalias.cc (pt_solution_includes_global):
6320 When the new escaped_nonlocal_p flag is true also consider
6321 pt->vars_contains_escaped.
6322 * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
6323 Pass down new escaped_nonlocal_p flag.
6324 (ref_may_alias_global_p): Likewise.
6325 (stmt_may_clobber_global_p): Likewise.
6326 (ref_may_alias_global_p_1): Likewise. For decls also
6327 query the escaped solution if true.
6328 (ref_may_access_global_memory_p): Remove.
6329 (modref_may_conflict): Use ref_may_alias_global_p with
6330 escaped locals considered global.
6331 (ref_maybe_used_by_stmt_p): Adjust.
6332 * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
6334 * tree-ssa-dse.cc (dse_classify_store): Likewise.
6335 * trans-mem.cc (thread_private_new_memory): Likewise, but
6336 consider escaped locals global.
6337 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
6339 2022-04-07 Richard Biener <rguenther@suse.de>
6341 PR tree-optimization/105185
6342 * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
6345 2022-04-07 Tamar Christina <tamar.christina@arm.com>
6348 * config/aarch64/aarch64-simd.md
6349 (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
6350 (reduc_plus_scal_<mode>): ... This.
6351 (reduc_plus_scal_v4sf): Moved.
6352 (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
6353 (reduc_plus_scal_v2si): ... This.
6355 2022-04-07 Jakub Jelinek <jakub@redhat.com>
6357 PR tree-optimization/102586
6358 * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
6360 * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
6361 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
6362 * gimple-fold.cc (clear_padding_type): Use ftype instead of
6363 TREE_TYPE (field) some more. For artificial FIELD_DECLs without
6364 name try the lang_hooks.types.classtype_as_base langhook and
6365 if it returns non-NULL, use that instead of ftype for recursive call.
6367 2022-04-07 Jakub Jelinek <jakub@redhat.com>
6369 PR tree-optimization/105150
6370 * tree.cc (tree_builtin_call_types_compatible_p): New function.
6371 (get_call_combined_fn): Use it.
6373 2022-04-07 Richard Biener <rguenther@suse.de>
6375 PR middle-end/105165
6376 * tree-complex.cc (expand_complex_asm): Sorry for asm goto
6379 2022-04-07 liuhongt <hongtao.liu@intel.com>
6381 * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
6383 (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
6385 (<code><mode>3<mask_name>): Ditto.
6386 (*<code><mode>3<mask_name>): Ditto.
6387 (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
6392 2022-04-06 Jakub Jelinek <jakub@redhat.com>
6394 PR rtl-optimization/104985
6395 * combine.cc (struct undo): Add where.regno member.
6396 (do_SUBST_MODE): Rename to ...
6397 (subst_mode): ... this. Change first argument from rtx * into int,
6398 operate on regno_reg_rtx[regno] and save regno into where.regno.
6399 (SUBST_MODE): Remove.
6400 (try_combine): Use subst_mode instead of SUBST_MODE, change first
6401 argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use
6402 regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
6403 (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
6404 instead of *undo->where.r.
6405 (simplify_set): Use subst_mode instead of SUBST_MODE, change first
6406 argument from regno_reg_rtx[whatever] to whatever.
6408 2022-04-06 Jakub Jelinek <jakub@redhat.com>
6411 * config/sh/sh.opt (mdiv=): Add Save.
6413 2022-04-06 Martin Liska <mliska@suse.cz>
6416 * common.opt: Document properly based on what it does.
6417 * gcc.cc (display_help): Unify with what we have in common.opt.
6418 * opts.cc (common_handle_option): Do not print undocumented
6421 2022-04-06 Xi Ruoyao <xry111@mengyan1223.wang>
6423 * config/mips/mips.cc (mips_fpr_return_fields): Ignore
6424 cxx17_empty_base_field_p fields and set an indicator.
6425 (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
6426 (mips_function_value_1): Inform psABI change about C++17 empty
6429 2022-04-06 Jakub Jelinek <jakub@redhat.com>
6431 PR tree-optimization/105150
6432 * gimple.cc (gimple_builtin_call_types_compatible_p): Use
6433 builtin_decl_explicit here...
6434 (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
6437 2022-04-06 Richard Biener <rguenther@suse.de>
6439 PR tree-optimization/105173
6440 * tree-ssa-reassoc.cc (find_insert_point): Get extra
6441 insert_before output argument and compute it.
6442 (insert_stmt_before_use): Adjust.
6443 (rewrite_expr_tree): Likewise.
6445 2022-04-06 Richard Biener <rguenther@suse.de>
6448 * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
6449 out for non-pointer arguments.
6451 2022-04-06 Richard Biener <rguenther@suse.de>
6453 PR tree-optimization/105163
6454 * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
6457 2022-04-06 Jakub Jelinek <jakub@redhat.com>
6459 PR tree-optimization/105150
6460 * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
6461 For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
6462 preferrably on builtin_decl_explicit decl rather than fndecl.
6463 * tree-ssa-strlen.cc (valid_builtin_call): Don't call
6464 gimple_builtin_call_types_compatible_p here.
6466 2022-04-06 Richard Sandiford <richard.sandiford@arm.com>
6468 PR tree-optimization/103761
6469 * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
6470 the ncopies parameter with an slp_node parameter. Calculate the
6471 number of vectors based on it and vectype. Rename lambda to
6472 group_memory_nvectors.
6473 (vectorizable_store, vectorizable_load): Update calls accordingly.
6475 2022-04-06 Martin Liska <mliska@suse.cz>
6477 * doc/invoke.texi: Document it.
6479 2022-04-06 Richard Biener <rguenther@suse.de>
6481 PR tree-optimization/105148
6482 * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
6483 2 and 3 of ARRAY_REFs.
6485 2022-04-06 Roger Sayle <roger@nextmovesoftware.com>
6487 * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
6488 (*andnottf3): Replace with...
6489 (*andnot<mode>3): New define_insn using ANDNOT_MODE.
6491 2022-04-06 Richard Biener <rguenther@suse.de>
6493 PR tree-optimization/105142
6494 * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
6495 basic-block parameter.
6496 (maybe_fold_or_comparisons): Likewise.
6497 * gimple-fold.cc (follow_outer_ssa_edges): New.
6498 (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
6499 when an outer condition basic-block is specified.
6500 (and_comparisons_1, and_var_with_comparison,
6501 and_var_with_comparison_1, or_comparisons_1,
6502 or_var_with_comparison, or_var_with_comparison_1): Receive and pass
6503 down the outer condition basic-block.
6504 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
6505 basic-block of the outer condition.
6507 2022-04-06 Kewen Lin <linkw@linux.ibm.com>
6510 * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
6511 comparison codes UNLT/UNLE/UNGT/UNGE.
6513 2022-04-05 David Malcolm <dmalcolm@redhat.com>
6515 * doc/extend.texi (Common Function Attributes): Document that
6516 'access' does not imply 'nonnull'.
6518 2022-04-05 Uroš Bizjak <ubizjak@gmail.com>
6521 * config/i386/mmx.md (*movv2qi_internal):
6522 Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
6524 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
6526 * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
6527 define_expand and turn operands 0 and 1 from REGs to MEMs.
6528 (*aarch64_cpymemdi): New pattern.
6529 (aarch64_setmemdi): Turn into a define_expand and turn operand 0
6530 from a REG to a MEM.
6531 (*aarch64_setmemdi): New pattern.
6532 * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
6533 copy_to_mode_reg on all three registers. Replace the original
6534 MEM addresses rather than creating wild reads and writes.
6535 (aarch64_expand_setmem_mops): Likewise for the size and for the
6536 destination memory and address.
6538 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
6541 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
6542 * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
6543 from aarch64_simd_switcher.
6544 * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
6546 (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
6547 (register_tuple_type): Add more asserts. Expect the alignment
6548 of the structure to be subject to flag_pack_struct and
6549 maximum_field_alignment. Set aarch64_simd_tuple_modes.
6550 (aarch64_simd_switcher::aarch64_simd_switcher): New function.
6551 (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
6552 (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
6553 (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
6554 while calling aarch64_init_simd_builtins.
6555 * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
6556 (sve_switcher::~sve_switcher): Remove code now performed by
6557 aarch64_simd_switcher.
6559 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
6562 * config/aarch64/aarch64-sve-builtins.cc
6563 (function_resolver::infer_vector_or_tuple_type): Use error_n
6564 for "%d vectors" messages.
6566 2022-04-05 Chung-Lin Tang <cltang@codesourcery.com>
6568 * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
6569 argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
6572 2022-04-05 Richard Biener <rguenther@suse.de>
6575 * passes.def (pass_walloca): Move early instance into
6576 pass_build_ssa_passes to make SSA form available.
6578 2022-04-05 liuhongt <hongtao.liu@intel.com>
6581 * config/i386/i386.cc (ix86_split_stlf_stall_load): New
6583 (ix86_reorg): Call ix86_split_stlf_stall_load.
6584 * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
6587 2022-04-05 Alexandre Oliva <oliva@adacore.com>
6589 * targhooks.cc (default_zero_call_used_regs): Attempt to group
6590 regs that the target refuses to use in their natural modes.
6591 (zcur_select_mode_rtx): New.
6592 * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
6593 (hard_regno_max_nregs): Define.
6594 * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
6596 2022-04-04 Alex Coplan <alex.coplan@arm.com>
6598 * doc/match-and-simplify.texi: Fix typos.
6600 2022-04-04 Jakub Jelinek <jakub@redhat.com>
6603 * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
6604 only if configured with --enable-maintainer-mode, otherwise compare
6605 tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
6606 if they differ, emit a message and fail.
6608 2022-04-04 Jakub Jelinek <jakub@redhat.com>
6611 * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
6612 * config/aarch64/aarch64-tune.md: Regenerated.
6614 2022-04-04 Richard Biener <rguenther@suse.de>
6616 PR tree-optimization/105132
6617 * tree-vect-stmts.cc (vectorizable_operation): Check that
6618 the input vectors have the same number of elements.
6620 2022-04-04 Richard Biener <rguenther@suse.de>
6622 PR middle-end/105140
6623 * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
6625 2022-04-03 Jeff Law <jeffreyalaw@gmail.com>
6628 * config/iq2000/iq2000.md (bbi): New attribute, default to no.
6629 (delay slot descripts): Use different delay slot description when
6630 the insn as the "bbi" attribute.
6631 (bbi, bbin patterns): Set the bbi attribute to yes.
6633 2022-04-03 Jakub Jelinek <jakub@redhat.com>
6636 * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
6637 using word as target for expand_simple_binop when doing ASHIFT and
6640 2022-04-02 Xi Ruoyao <xry111@mengyan1223.wang>
6642 * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
6643 NULL before dereferencing it.
6645 2022-04-01 Qing Zhao <qing.zhao@oracle.com>
6647 * config/i386/i386.cc (zero_all_st_registers): Return the value of
6649 (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
6650 the return value of zero_all_st_registers.
6651 * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
6652 * function.cc (gen_call_used_regs_seq): Add an assertion.
6653 * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
6655 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
6658 * config/mips/mips.cc (mips_function_arg): Ignore zero-width
6659 fields, and inform if it causes a psABI change.
6661 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
6664 * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
6665 zero-width bit-fields and set up an indicator.
6666 (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
6667 (mips_function_value_1): Diagnose when the presense of a C++
6668 zero-width bit-field changes function returning in GCC 12.
6670 2022-04-01 Jakub Jelinek <jakub@redhat.com>
6672 PR tree-optimization/104645
6673 * tree-ssa-phiopt.cc (value_replacement): If assign has
6674 CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
6675 statement with constant evaluation.
6677 2022-04-01 YunQiang Su <yunqiang.su@cipunited.com>
6679 * config/mips/mips.cc (mips_expand_prologue):
6680 IPL is 8bit for MCU ASE.
6682 2022-03-31 Bill Schmidt <wschmidt@linux.ibm.com>
6685 * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
6688 (SET_FPSCR_RN): Likewise.
6689 (SET_FPSCR_DRN): Mark nosoft and no32bit.
6691 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
6693 * doc/options.texi (Option file format): Clarifications around
6694 option definition records' help texts.
6696 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
6698 * optc-gen.awk <END>: Fix "Multiple different help strings" error
6701 2022-03-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
6703 * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
6704 determine_suggested_unroll_factor and m_has_avg.
6705 (determine_suggested_unroll_factor): New function.
6706 (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
6707 to set m_nosve_pattern.
6708 (aarch64_vector_costs::finish_costs): Use
6709 determine_suggested_unroll_factor.
6710 * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
6711 * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
6713 2022-03-31 Martin Jambor <mjambor@suse.cz>
6716 * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
6717 (ipa_get_jf_ancestor_keep_null): New function.
6718 * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
6720 (compute_complex_assign_jump_func): Pass false to keep_null
6721 parameter of ipa_set_ancestor_jf.
6722 (compute_complex_ancestor_jump_func): Pass true to keep_null
6723 parameter of ipa_set_ancestor_jf.
6724 (update_jump_functions_after_inlining): Carry over keep_null from the
6725 original ancestor jump-function or merge them.
6726 (ipa_write_jump_function): Stream keep_null flag.
6727 (ipa_read_jump_function): Likewise.
6728 (ipa_print_node_jump_functions_for_edge): Print the new flag.
6729 * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const. New
6730 member function known_nonzero_p.
6731 (ipcp_bits_lattice::known_nonzero_p): New.
6732 (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
6734 (ipcp_bits_lattice::meet_with): Likewise.
6735 (propagate_bits_across_jump_function): Simplify. Pass true in
6736 drop_all_ones when it is necessary.
6737 (propagate_aggs_across_jump_function): Take care of keep_null
6739 (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
6742 2022-03-31 Martin Jambor <mjambor@suse.cz>
6745 * ipa-cp.cc (decide_whether_version_node): Skip scalar values
6746 which do not fit the known value_range.
6748 2022-03-31 Martin Jambor <mjambor@suse.cz>
6751 * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
6752 always when an ADDR_EXPR constant is known to reach a load because
6753 of inlining, not just when removing an ADDR reference.
6755 2022-03-31 Richard Biener <rguenther@suse.de>
6757 PR tree-optimization/105109
6758 * tree-ssa.cc (execute_update_addresses_taken): Suppress
6759 diagnostics on the load of the other complex component.
6761 2022-03-31 Tom de Vries <tdevries@suse.de>
6763 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
6765 2022-03-31 Richard Biener <rguenther@suse.de>
6767 PR rtl-optimization/105091
6768 * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
6771 2022-03-31 Richard Biener <rguenther@suse.de>
6774 2021-09-13 Richard Earnshaw <rearnsha@arm.com>
6777 * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
6778 memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
6780 2022-03-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
6782 * gcov-io.cc (gcov_read_string): Reword documentation comment.
6784 2022-03-30 Bill Schmidt <wschmidt@linux.ibm.com>
6786 * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
6788 (NEG_V4SF): Likewise.
6789 (NEG_V4SI): Likewise.
6790 (NEG_V8HI): Likewise.
6791 (NEG_V2DF): Move to [vsx] stanza.
6792 (NEG_V2DI): Likewise.
6794 2022-03-30 Vladimir N. Makarov <vmakarov@redhat.com>
6796 PR middle-end/105032
6797 * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
6799 2022-03-30 Tom de Vries <tdevries@suse.de>
6800 Tobias Burnus <tobias@codesourcery.com>
6802 * doc/invoke.texi (march): Document __PTX_SM__.
6803 (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
6804 __PTX_ISA_VERSION_MINOR__.
6806 2022-03-30 Jakub Jelinek <jakub@redhat.com>
6809 * ubsan.cc (instrument_object_size): If t is equal to inner and
6810 is a decl other than global var, punt. When emitting call to
6811 UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
6813 2022-03-30 Jakub Jelinek <jakub@redhat.com>
6815 PR tree-optimization/105094
6816 * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
6817 bitsize <= 0 rather than just == 0.
6819 2022-03-30 Tom de Vries <tdevries@suse.de>
6821 * doc/invoke.texi (misa, mptx): Update.
6822 (march, march-map): Add.
6824 2022-03-30 Thomas Schwinge <thomas@codesourcery.com>
6826 * opt-functions.awk (n_args): New function.
6827 (lang_enabled_by): Merge function into...
6828 * optc-gen.awk <END>: ... sole user here.
6829 Improve diagnostics.
6831 2022-03-29 Marek Polacek <polacek@redhat.com>
6832 Jakub Jelinek <jakub@redhat.com>
6834 PR middle-end/103597
6835 * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
6836 into labels. Maybe set prev to the statement preceding UNUSED_LABEL_P.
6837 (gimplify_cond_expr): Set UNUSED_LABEL_P.
6838 * tree.h (UNUSED_LABEL_P): New.
6840 2022-03-29 Michael Meissner <meissner@linux.ibm.com>
6842 * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
6843 be any VSX register.
6845 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
6848 * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
6849 zero-sized bit-fields. Detect cases where a warning may be needed.
6850 (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
6851 zero-sized bit-field has caused parameter passing to change.
6853 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
6856 * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
6857 bit-fields. Detect cases where a warning may be needed.
6858 (aapcs_vfp_is_call_or_return_candidate): Emit a note if
6859 a zero-sized bit-field has caused parameter passing to change.
6861 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
6864 * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
6865 ARM_PCS_AAPCS_LOCAL.
6867 2022-03-29 Tom de Vries <tdevries@suse.de>
6870 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
6871 __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
6872 * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
6873 * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
6875 2022-03-29 Tom de Vries <tdevries@suse.de>
6877 * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
6880 2022-03-29 Tom de Vries <tdevries@suse.de>
6883 * config/nvptx/nvptx.opt (march-map=*): Add aliases.
6885 2022-03-29 Jan Hubicka <hubicka@ucw.cz>
6887 * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
6888 TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
6889 * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
6890 (TARGET_USE_GATHER_4PARTS): New macro.
6891 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
6892 (X86_TUNE_USE_GATHER_4PARTS): New tune
6894 2022-03-29 Tom de Vries <tdevries@suse.de>
6896 * config/nvptx/nvptx.opt (march): Add alias of misa.
6898 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
6899 Lulu Cheng <chenglulu@loongson.cn>
6901 * doc/install.texi: Add LoongArch options section.
6902 * doc/invoke.texi: Add LoongArch options section.
6903 * doc/md.texi: Add LoongArch options section.
6905 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
6906 Lulu Cheng <chenglulu@loongson.cn>
6908 * config/loongarch/loongarch-c.cc
6910 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
6911 Lulu Cheng <chenglulu@loongson.cn>
6913 * config/loongarch/larchintrin.h: New file.
6914 * config/loongarch/loongarch-builtins.cc: New file.
6916 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
6917 Lulu Cheng <chenglulu@loongson.cn>
6919 * config/host-linux.cc: Add LoongArch support.
6920 * config/loongarch/loongarch-protos.h: New file.
6921 * config/loongarch/loongarch-tune.h: Likewise.
6922 * config/loongarch/loongarch.cc: Likewise.
6923 * config/loongarch/loongarch.h: Likewise.
6925 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
6926 Lulu Cheng <chenglulu@loongson.cn>
6928 * config/loongarch/constraints.md: New file.
6929 * config/loongarch/generic.md: New file.
6930 * config/loongarch/la464.md: New file.
6931 * config/loongarch/loongarch-ftypes.def: New file.
6932 * config/loongarch/loongarch-modes.def: New file.
6933 * config/loongarch/loongarch.md: New file.
6934 * config/loongarch/predicates.md: New file.
6935 * config/loongarch/sync.md: New file.
6937 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
6938 Lulu Cheng <chenglulu@loongson.cn>
6940 * configure: Regenerate file.
6942 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
6943 Lulu Cheng <chenglulu@loongson.cn>
6945 * common/config/loongarch/loongarch-common.cc: New file.
6946 * config/loongarch/genopts/genstr.sh: New file.
6947 * config/loongarch/genopts/loongarch-strings: New file.
6948 * config/loongarch/genopts/loongarch.opt.in: New file.
6949 * config/loongarch/loongarch-str.h: New file.
6950 * config/loongarch/gnu-user.h: New file.
6951 * config/loongarch/linux.h: New file.
6952 * config/loongarch/loongarch-cpu.cc: New file.
6953 * config/loongarch/loongarch-cpu.h: New file.
6954 * config/loongarch/loongarch-def.c: New file.
6955 * config/loongarch/loongarch-def.h: New file.
6956 * config/loongarch/loongarch-driver.cc: New file.
6957 * config/loongarch/loongarch-driver.h: New file.
6958 * config/loongarch/loongarch-opts.cc: New file.
6959 * config/loongarch/loongarch-opts.h: New file.
6960 * config/loongarch/loongarch.opt: New file.
6961 * config/loongarch/t-linux: New file.
6962 * config/loongarch/t-loongarch: New file.
6963 * config.gcc: Add LoongArch support.
6964 * configure.ac: Add LoongArch support.
6966 2022-03-29 Thomas Schwinge <thomas@codesourcery.com>
6968 * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
6971 2022-03-29 Richard Biener <rguenther@suse.de>
6973 PR tree-optimization/105080
6974 * tree-ssa-strlen.cc (printf_strlen_execute): Always init
6977 2022-03-28 Indu Bhagat <indu.bhagat@oracle.com>
6979 * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
6980 (output_ctf_vars): Likewise.
6982 2022-03-28 Jason Merrill <jason@redhat.com>
6985 * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
6987 2022-03-28 H.J. Lu <hjl.tools@gmail.com>
6990 * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
6993 2022-03-28 Tom de Vries <tdevries@suse.de>
6996 * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
6997 * config/nvptx/nvptx-gen.opt: Regenerate.
6998 * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
6999 * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
7002 2022-03-28 David Malcolm <dmalcolm@redhat.com>
7005 * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
7006 to loads then stores, set the location of the new load stmt.
7008 2022-03-28 Richard Biener <rguenther@suse.de>
7010 PR tree-optimization/105070
7011 * tree-switch-conversion.h
7012 (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
7014 * tree-switch-conversion.cc
7015 (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
7017 (bit_test_cluster::emit): Annotate all generated expressions
7020 2022-03-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
7022 * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
7024 2022-03-28 liuhongt <hongtao.liu@intel.com>
7027 * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
7028 alternative 4 from sse4_noavx to noavx.
7030 2022-03-28 Jakub Jelinek <jakub@redhat.com>
7032 PR tree-optimization/105056
7033 * tree-predcom.cc (component::component): Initialize also comp_step.
7035 2022-03-27 H.J. Lu <hjl.tools@gmail.com>
7038 * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
7041 2022-03-26 Roger Sayle <roger@nextmovesoftware.com>
7043 PR middle-end/104885
7044 * calls.cc (mark_stack_region_used): Check that the region
7045 is within the allocated size of stack_usage_map.
7047 2022-03-26 Jakub Jelinek <jakub@redhat.com>
7049 PR rtl-optimization/103775
7050 * recog.cc (check_invalid_inc_dec): New function.
7051 (insn_invalid_p): Return 1 if REG_INC operand overlaps
7054 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
7057 * config/i386/sse.md (loadiwkey): Replace "v" with "x".
7058 (aes<aesklvariant>u8): Likewise.
7060 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
7063 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
7064 Replace "Yv" with "x".
7065 (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
7066 (ssse3_psign<mode>3): Likewise.
7068 2022-03-26 Hans-Peter Nilsson <hp@axis.com>
7070 * reload.cc (find_reloads): Align comment with code where
7071 considering the intersection of register classes then tweaking the
7072 regclass for the current alternative or rejecting it.
7074 2022-03-25 Christophe Lyon <christohe.lyon@arm.com>
7078 2021-06-11 Christophe Lyon <christophe.lyon@linaro.org>
7080 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
7081 (mve_vec_unpack<US>_hi_<mode>): Delete.
7082 (@mve_vec_pack_trunc_lo_<mode>): Delete.
7083 (mve_vmovntq_<supf><mode>): Remove '@' prefix.
7084 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
7086 (vec_unpack<US>_lo_<mode>): Likewise.
7087 (vec_pack_trunc_<mode>): Rename from
7088 neon_quad_vec_pack_trunc_<mode>.
7089 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
7090 (vec_unpack<US>_lo_<mode>): Delete.
7091 (vec_pack_trunc_<mode>): Delete.
7093 2022-03-25 Vladimir N. Makarov <vmakarov@redhat.com>
7095 PR middle-end/104971
7096 * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
7097 regs to clear remove_p flag.
7099 2022-03-25 Richard Biener <rguenther@suse.de>
7101 PR tree-optimization/105053
7102 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
7103 the correct live-out stmt for a reduction chain.
7105 2022-03-25 Richard Biener <rguenther@suse.de>
7107 PR middle-end/105049
7108 * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
7109 CONSTRUCTOR first elements.
7111 2022-03-25 Tobias Burnus <tobias@codesourcery.com>
7114 * doc/invoke.texi (Static Analyzer Options): Move
7115 @ignore block after @gccoptlist's '}' for 'make pdf'.
7117 2022-03-25 David Malcolm <dmalcolm@redhat.com>
7120 * doc/invoke.texi (Static Analyzer Options): Add
7121 -fdump-analyzer-untracked.
7123 2022-03-25 Avinash Sonawane <rootkea@gmail.com>
7126 * doc/invoke.texi: Document that enabling taint analyzer
7127 checker disables some warnings from `-fanalyzer`.
7129 2022-03-24 Alexandre Oliva <oliva@adacore.com>
7132 * gimple-harden-conditionals.cc (detach_value): Keep temps
7135 2022-03-24 Alexandre Oliva <oliva@adacore.com>
7137 PR middle-end/104975
7138 * gimple-harden-conditionals.cc
7139 (pass_harden_compares::execute): Force split in case of
7142 2022-03-24 Jakub Jelinek <jakub@redhat.com>
7145 * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
7146 field0 or field1 is not a FIELD_DECL, return false.
7148 2022-03-24 Richard Biener <rguenther@suse.de>
7150 * tree-predcom.cc (chain::chain): Add CTOR.
7151 (component::component): Likewise.
7152 (pcom_worker::release_chain): Use delete.
7153 (release_components): Likewise.
7154 (pcom_worker::filter_suitable_components): Likewise.
7155 (pcom_worker::split_data_refs_to_components): Use new.
7156 (make_invariant_chain): Likewise.
7157 (make_rooted_chain): Likewise.
7158 (pcom_worker::combine_chains): Likewise.
7159 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
7160 Make sure to release previously constructed scalar_results.
7161 * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
7163 * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
7164 Release m_flag_set_edges.
7166 2022-03-24 Siddhesh Poyarekar <siddhesh@gotplt.org>
7168 PR tree-optimization/104970
7169 * tree-object-size.cc (parm_object_size): Restrict size
7170 computation scenarios to explicit access attributes.
7172 2022-03-24 Kewen Lin <linkw@linux.ibm.com>
7175 * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
7178 2022-03-23 Richard Biener <rguenther@suse.de>
7181 * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
7182 use of movmisalign when either the source or destination
7183 decl is properly aligned.
7185 2022-03-23 Richard Biener <rguenther@suse.de>
7187 PR rtl-optimization/105028
7188 * ira-color.cc (form_threads_from_copies): Remove unnecessary
7189 copying of the sorted_copies tail.
7191 2022-03-23 Martin Liska <mliska@suse.cz>
7193 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
7195 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
7196 Reword the error message.
7198 2022-03-23 liuhongt <hongtao.liu@intel.com>
7201 * config/i386/sse.md (ssePSmodelower): New.
7202 (*avx_cmp<mode>3_ltint_not): Force_reg operand before
7203 lowpart_subreg to avoid NULL_RTX.
7204 (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
7205 <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
7206 fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
7207 <avx512>_<complexopname>_<mode>_mask<round_name>,
7208 avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
7209 avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
7210 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
7211 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
7212 float<floatunssuffix><mode>v4hf2,
7213 float<floatunssuffix>v2div2hf2,
7214 fix<fixunssuffix>_truncv4hf<mode>2,
7215 fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
7217 trunc<mode>v4hf2,truncv2dfv2hf2,
7218 *avx512bw_permvar_truncv16siv16hi_1,
7219 *avx512bw_permvar_truncv16siv16hi_1_hf,
7220 *avx512f_permvar_truncv8siv8hi_1,
7221 *avx512f_permvar_truncv8siv8hi_1_hf,
7222 *avx512f_vpermvar_truncv8div8si_1,
7223 *avx512f_permvar_truncv32hiv32qi_1,
7224 *avx512f_permvar_truncv16hiv16qi_1,
7225 *avx512f_permvar_truncv4div4si_1,
7226 *avx512f_pshufb_truncv8hiv8qi_1,
7227 *avx512f_pshufb_truncv4siv4hi_1,
7228 *avx512f_pshufd_truncv2div2si_1,
7229 sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
7230 ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
7232 2022-03-22 Tom de Vries <tdevries@suse.de>
7235 * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
7236 Use % as register prefix.
7238 2022-03-22 Tom de Vries <tdevries@suse.de>
7240 * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
7241 (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
7244 2022-03-22 Tom de Vries <tdevries@suse.de>
7246 * config/nvptx/nvptx.opt (mexperimental): New option.
7248 2022-03-22 Tom de Vries <tdevries@suse.de>
7251 * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
7252 * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
7254 (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
7255 (nvptx_asm_output_def_from_decls): New function.
7256 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
7258 (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
7259 nvptx_asm_output_def_from_decls.
7260 * config/nvptx/nvptx.opt (malias): New opt.
7262 2022-03-22 Tom de Vries <tdevries@suse.de>
7266 * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
7267 sync (or uniform warp check for mptx < 6.0).
7269 2022-03-22 Richard Biener <rguenther@suse.de>
7271 PR tree-optimization/105012
7272 * tree-if-conv.cc (ifcvt_local_dce): Only call
7273 dse_classify_store when we have a VDEF.
7275 2022-03-22 Martin Liska <mliska@suse.cz>
7278 * config/nvptx/nvptx.cc (handle_ptx_version_option):
7279 Fix option wrapping in an error message.
7281 2022-03-22 Martin Liska <mliska@suse.cz>
7284 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
7287 2022-03-22 Martin Liska <mliska@suse.cz>
7289 * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
7292 2022-03-22 Martin Liska <mliska@suse.cz>
7295 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
7296 Use %qs instead of (%qs).
7298 2022-03-22 Martin Liska <mliska@suse.cz>
7301 * config/i386/i386-options.cc (ix86_option_override_internal):
7302 Use '%qs' instead of '(%qs)'.
7304 2022-03-22 Martin Liska <mliska@suse.cz>
7307 * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
7308 Use 'qs' and remove usage '(%qs)'.
7309 (aarch64_handle_attr_cpu): Likewise.
7310 (aarch64_handle_attr_tune): Likewise.
7311 (aarch64_handle_attr_isa_flags): Likewise.
7313 2022-03-22 Tamar Christina <tamar.christina@arm.com>
7314 Andre Vieira <andre.simoesdiasvieira@arm.com>
7316 * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
7318 (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
7320 (neoverse512tvb_tunings): Likewise.
7322 2022-03-22 Tamar Christina <tamar.christina@arm.com>
7323 Andre Vieira <andre.simoesdiasvieira@arm.com>
7325 * config/aarch64/aarch64.cc (demeter_addrcost_table,
7326 demeter_regmove_cost, demeter_advsimd_vector_cost,
7327 demeter_sve_vector_cost, demeter_scalar_issue_info,
7328 demeter_advsimd_issue_info, demeter_sve_issue_info,
7329 demeter_vec_issue_info, demeter_vector_cost,
7330 demeter_tunings): New tuning structs.
7331 (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
7333 * config/aarch64/aarch64-cores.def: Add entry for demeter.
7334 * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
7336 2022-03-22 Tamar Christina <tamar.christina@arm.com>
7337 Andre Vieira <andre.simoesdiasvieira@arm.com>
7339 * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
7340 (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
7341 * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
7342 tunings to use cpu_memmov_cost struct.
7344 2022-03-22 Tamar Christina <tamar.christina@arm.com>
7345 Andre Vieira <andre.simoesdiasvieira@arm.com>
7347 * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
7348 neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
7349 neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
7350 neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
7351 neoversen2_vec_issue_info, neoversen2_tunings): New structs.
7352 (neoversen2_tunings): Use new structs and update tuning flags.
7353 (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
7356 2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
7358 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
7361 2022-03-22 liuhongt <hongtao.liu@intel.com>
7364 * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
7365 following splitter to reversed condition.
7367 2022-03-22 Jakub Jelinek <jakub@redhat.com>
7369 PR rtl-optimization/104989
7370 * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
7371 sorry for passing too large argument, instead set sibcall_failure
7372 for pass == 0, or a new normal_failure flag otherwise. If
7373 normal_failure is set, don't assert all stack has been deallocated
7374 at the end and throw away the whole insn sequence.
7376 2022-03-22 Qian Jianhua <qianjh@cn.fujitsu.com>
7378 * print-tree.cc: Change array length
7380 2022-03-22 Hongyu Wang <hongyu.wang@intel.com>
7383 * config/i386/sse.md
7384 (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
7385 Use avx512f_movsf_mask instead of vmovaps or vblend, and
7386 force_reg before lowpart_subreg.
7387 (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
7389 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
7392 * common/config/i386/i386-common.cc
7393 (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
7394 OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
7396 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
7399 * common/config/i386/cpuinfo.h (get_available_features): Pass
7400 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
7403 2022-03-21 Richard Sandiford <richard.sandiford@arm.com>
7405 PR middle-end/104869
7406 * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
7407 (clobber_group::next_clobber): Likewise.
7408 (def_lookup::prev_def): Rename to...
7409 (def_lookup::last_def_of_prev_group): ...this.
7410 (def_lookup::next_def): Rename to...
7411 (def_lookup::first_def_of_next_group): ...this.
7412 (def_lookup::matching_or_prev_def): Rename to...
7413 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
7414 (def_lookup::matching_or_next_def): Rename to...
7415 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
7416 (def_lookup::prev_def): New function, taking the lookup insn as
7418 (def_lookup::next_def): Likewise.
7419 * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
7420 (def_lookup::last_def_of_prev_group): ...this.
7421 (def_lookup::next_def): Rename to...
7422 (def_lookup::first_def_of_next_group): ...this.
7423 (def_lookup::matching_or_prev_def): Rename to...
7424 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
7425 (def_lookup::matching_or_next_def): Rename to...
7426 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
7427 * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
7429 * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
7430 (clobber_group::next_clobber): Likewise.
7431 (def_lookup::prev_def): Likewise.
7432 (def_lookup::next_def): Likewise.
7433 (function_info::make_use_available): Pass the lookup insn to
7434 def_lookup::prev_def and def_lookup::next_def.
7436 2022-03-21 Martin Liska <mliska@suse.cz>
7438 * doc/invoke.texi: Document min-pagesize parameter.
7440 2022-03-21 Richard Biener <rguenther@suse.de>
7442 * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
7443 we are estimating niter of loop.
7445 2022-03-21 Kito Cheng <kito.cheng@sifive.com>
7447 * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
7448 Update flag name and mask name.
7449 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
7450 misc macro for vector extensions.
7451 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
7452 (MASK_VECTOR_ELEN_32): ... this.
7453 (MASK_VECTOR_EEW_64): Rename to ...
7454 (MASK_VECTOR_ELEN_64): ... this.
7455 (MASK_VECTOR_EEW_FP_32): Rename to ...
7456 (MASK_VECTOR_ELEN_FP_32): ... this.
7457 (MASK_VECTOR_EEW_FP_64): Rename to ...
7458 (MASK_VECTOR_ELEN_FP_64): ... this.
7459 (TARGET_VECTOR_ELEN_32): New.
7460 (TARGET_VECTOR_ELEN_64): Ditto.
7461 (TARGET_VECTOR_ELEN_FP_32): Ditto.
7462 (TARGET_VECTOR_ELEN_FP_64): Ditto.
7463 (TARGET_MIN_VLEN): Ditto.
7464 * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
7465 (riscv_vector_elen_flags): ... this.
7467 2022-03-21 Hongyu Wang <hongyu.wang@intel.com>
7470 * config/i386/sse.md
7471 (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
7472 Correct round operand for intel dialect.
7474 2022-03-19 Arthur Cohen <arthur.cohen@embecosm.com>
7476 * diagnostic.cc (diagnostic_cc_tests): Rename to...
7477 (c_diagnostic_cc_tests): ...this.
7478 * opt-problem.cc (opt_problem_cc_tests): Rename to...
7479 (c_opt_problem_cc_tests): ...this.
7480 * selftest-run-tests.cc (selftest::run_tests): No longer run
7481 opt_problem_cc_tests or diagnostic_cc_tests.
7482 * selftest.h (diagnostic_cc_tests): Remove declaration.
7483 (opt_problem_cc_tests): Likewise.
7485 2022-03-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
7488 * hash-traits.h (struct typed_const_free_remove): New.
7489 (struct free_string_hash): New.
7490 * pass_manager.h: Use free_string_hash.
7491 * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
7492 (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
7494 2022-03-19 Jakub Jelinek <jakub@redhat.com>
7496 PR middle-end/104971
7497 * config/i386/i386-expand.cc
7498 (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
7499 don't push/pop anything and just return const0_rtx.
7501 2022-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
7503 PR rtl-optimization/104961
7504 * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
7506 2022-03-18 Jason Merrill <jason@redhat.com>
7508 * tree.h (IDENTIFIER_LENGTH): Add comment.
7510 2022-03-18 Jakub Jelinek <jakub@redhat.com>
7513 PR middle-end/100680
7514 PR tree-optimization/100834
7515 * params.opt (--param=min-pagesize=): New parameter.
7517 (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
7518 (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
7519 of zero for pointer constants equal or larger than min-pagesize.
7521 2022-03-18 Tom de Vries <tdevries@suse.de>
7523 * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
7524 Set gfor location only when dealing with a OMP_TASKLOOP.
7526 2022-03-18 Tom de Vries <tdevries@suse.de>
7528 * gimplify.cc (gimplify_omp_for): Set taskloop location.
7530 2022-03-18 Tom de Vries <tdevries@suse.de>
7533 * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
7534 is executed unconditionally.
7536 2022-03-18 liuhongt <hongtao.liu@intel.com>
7539 * config/i386/i386.md (*movhi_internal): Set attr type from HI
7540 to HF for alternative 12 under TARGET_AVX512FP16.
7542 2022-03-18 Cui,Lili <lili.cui@intel.com>
7545 * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
7546 * doc/invoke.texi: Update documents for Intel sapphirerapids.
7548 2022-03-17 Roger Sayle <roger@nextmovesoftware.com>
7551 PR tree-optimization/90356
7552 * config/i386/i386.md (*movtf_internal): Don't guard
7553 standard_sse_constant_p clause by optimize_function_for_size_p.
7554 (*movdf_internal): Likewise.
7555 (*movsf_internal): Likewise.
7557 2022-03-17 Andrew MacLeod <amacleod@redhat.com>
7559 PR tree-optimization/102943
7560 * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
7561 dominators and apply intermediary outgoing edge ranges.
7563 2022-03-17 Richard Biener <rguenther@suse.de>
7565 PR tree-optimization/104960
7566 * passes.def: Add pass parameter to pass_sink_code, mark
7567 last one to unsplit edges.
7568 * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
7569 (pass_sink_code::execute): Always execute TODO_cleanup_cfg
7570 when we need to unsplit edges.
7572 2022-03-17 Jakub Jelinek <jakub@redhat.com>
7574 PR middle-end/103984
7575 * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
7576 TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
7577 and asan unpoisioning, then append the temporary sequence and
7578 finally the TARGET_EXPR_CLEANUP clobbers.
7580 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
7582 * config/i386/sse.md: Delete corrupt character/typo.
7584 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
7587 * config/i386/sse.md (sse2_movq128): New define_expand to
7588 preserve previous named instruction.
7589 (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
7590 generalized to VI8F_128 (both V2DI and V2DF).
7592 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
7594 PR tree-optimization/104941
7595 * tree-object-size.cc (size_for_offset): Make useless conversion
7596 check lighter and assign result of fold_convert to OFFSET.
7598 2022-03-16 H.J. Lu <hjl.tools@gmail.com>
7601 * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
7602 pushing target("general-regs-only").
7604 2022-03-16 Kito Cheng <kito.cheng@sifive.com>
7606 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
7607 Add version info for zk, zks and zkn.
7609 2022-03-16 LiaoShihua <shihua@iscas.ac.cn>
7611 * common/config/riscv/riscv-common.cc
7612 (riscv_combine_info): New.
7613 (riscv_subset_list::handle_combine_ext): Combine back into zk to
7614 maintain the canonical order in isa strings.
7615 (riscv_subset_list::parse): Ditto.
7616 * config/riscv/riscv-subset.h (handle_combine_ext): New.
7618 2022-03-16 Richard Biener <rguenther@suse.de>
7620 PR tree-optimization/102008
7621 * passes.def: Move the added code sinking pass before the
7622 preceeding phiopt pass.
7624 2022-03-16 Patrick Palka <ppalka@redhat.com>
7627 * doc/invoke.texi (C++ Dialect Options): Document
7628 -ffold-simple-inlines.
7630 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
7632 PR tree-optimization/104942
7633 * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
7635 2022-03-16 Jakub Jelinek <jakub@redhat.com>
7638 * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
7641 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
7642 Richard Biener <rguenther@suse.de>
7644 * gimple-match-head.cc (single_use): Implement inline using a
7647 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
7649 * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
7650 instead of HONOR_NANS.
7651 (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
7652 this can't trap/signal.
7654 2022-03-16 liuhongt <hongtao.liu@intel.com>
7657 * config/i386/i386-builtin.def (BDESC): Add
7658 CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
7659 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
7660 __builtin_ia32_blendvpd w/o sse4.2
7662 2022-03-15 Peter Bergner <bergner@linux.ibm.com>
7665 * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
7666 acceptable MEM addresses.
7668 2022-03-15 Jakub Jelinek <jakub@redhat.com>
7671 * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
7672 riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
7675 2022-03-15 Jakub Jelinek <jakub@redhat.com>
7678 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
7679 instead of general-regs-only.
7681 2022-03-15 Roger Sayle <roger@nextmovesoftware.com>
7682 Marc Glisse <marc.glisse@inria.fr>
7683 Richard Biener <rguenther@suse.de>
7685 PR tree-optimization/101895
7686 * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
7687 (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
7689 2022-03-15 Jakub Jelinek <jakub@redhat.com>
7691 PR rtl-optimization/104814
7692 * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
7693 end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL.
7695 2022-03-15 Martin Sebor <msebor@redhat.com>
7697 PR middle-end/104436
7698 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
7699 Check for warning suppression. Avoid by-value arguments transformed
7700 into by-transparent-reference.
7702 2022-03-14 Roger Sayle <roger@nextmovesoftware.com>
7703 Uroš Bizjak <ubizjak@gmail.com>
7705 * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
7706 transformation when *zero_extend<mode>si2 is not available.
7708 2022-03-14 Xi Ruoyao <xry111@mengyan1223.wang>
7710 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
7711 * config/mips/mips.cc (mips_option_override): Make
7712 -fsanitize=address imply -fasynchronous-unwind-tables. This is
7713 needed by libasan for stack backtrace on MIPS.
7714 (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
7716 2022-03-14 Jakub Jelinek <jakub@redhat.com>
7719 * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
7720 SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
7721 call simplified the first operand into VOIDmode constant.
7723 2022-03-14 Jakub Jelinek <jakub@redhat.com>
7725 PR tree-optimization/102586
7726 * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
7727 argument type should be pointer to trivially-copyable type unless it
7728 is address of a variable or parameter.
7730 2022-03-14 Jakub Jelinek <jakub@redhat.com>
7733 * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
7734 first rather than last element of the vector, use __m32_u to do
7735 a really unaligned load, use just 0 instead of (int)0.
7736 (_mm_loadu_si16): Put loaded value into first rather than last
7737 element of the vector, use __m16_u to do a really unaligned load,
7738 use just 0 instead of (short)0.
7740 2022-03-14 Jakub Jelinek <jakub@redhat.com>
7743 * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
7744 in diagnostic message - cannott -> cannot. Use %< and %> around
7745 names of attribute. Avoid too long line.
7746 * range-op.cc (operator_logical_and::op1_range): Fix up a typo
7747 in comment - cannott -> cannot. Use 2 spaces after . instead of one.
7749 2022-03-14 liuhongt <hongtao.liu@intel.com>
7752 * config/i386/i386-expand.cc
7753 (ix86_check_builtin_isa_match): New func.
7754 (ix86_expand_builtin): Move code to
7755 ix86_check_builtin_isa_match and call it.
7756 * config/i386/i386-protos.h
7757 (ix86_check_builtin_isa_match): Declare.
7758 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
7759 builtin into gimple when isa mismatches.
7761 2022-03-13 Tobias Burnus <tobias@codesourcery.com>
7763 * doc/invoke.texi: Fix typos.
7764 * doc/tm.texi.in: Remove duplicated word.
7765 * doc/tm.texi: Regenerate.
7767 2022-03-12 Segher Boessenkool <segher@kernel.crashing.org>
7770 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
7771 "ppc" and "ppc64" based on rs6000_cpu.
7773 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
7775 PR middle-end/100280
7776 PR middle-end/104892
7777 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
7778 Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
7780 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
7782 PR middle-end/100280
7783 PR middle-end/104086
7784 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
7785 Mark variables used in 'present' clauses as addressable.
7786 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
7787 handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
7789 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
7792 * tree-core.h (user_omp_claus_code_name): Declare function.
7793 * tree.cc (user_omp_clause_code_name): New function.
7795 2022-03-12 Roger Sayle <roger@nextmovesoftware.com>
7798 * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
7799 (the defaut) or -fno-signed-zeros.
7801 2022-03-12 Michael Meissner <meissner@linux.ibm.com>
7804 * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
7805 moving from a GPR register to an Altivec register.
7807 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
7809 PR tree-optimization/98335
7810 * config/i386/i386.md (peephole2): Eliminate redundant insv.
7811 Combine movl followed by movb. Transform xorl followed by
7812 a suitable movb or movw into the equivalent movz[bw]l.
7814 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
7815 Richard Biener <rguenther@suse.de>
7817 PR tree-optimization/98335
7818 * builtins.cc (get_object_alignment_2): Export.
7819 * builtins.h (get_object_alignment_2): Likewise.
7820 * tree-ssa-alias.cc (ao_ref_alignment): New.
7821 * tree-ssa-alias.h (ao_ref_alignment): Declare.
7822 * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
7823 to align head/tail, writing more bytes but using fewer store insns.
7825 2022-03-11 Richard Biener <rguenther@suse.de>
7827 PR tree-optimization/104880
7828 * tree-ssa.cc (execute_update_address_taken): Remember if we
7829 optimistically made something not addressable and
7832 2022-03-11 Richard Biener <rguenther@suse.de>
7835 * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
7836 cost the first lane of SSE pieces as inserts for vec_construct.
7838 2022-03-10 Roger Sayle <roger@nextmovesoftware.com>
7841 * calls.cc (expand_call): Ignore stack adjustments after sorry.
7843 2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
7846 * lra-constraints.cc (split_reg): Set up
7847 check_and_force_assignment_correctness_p when splitting hard
7848 register live range.
7850 2022-03-10 Martin Jambor <mjambor@suse.cz>
7853 * ipa-cp.cc (create_specialized_node): Move removal of
7854 self-recursive calls from callers vector before refrence
7857 2022-03-10 Richard Biener <rguenther@suse.de>
7859 PR tree-optimization/102943
7860 * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
7862 (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
7864 (sbr_sparse_bitmap::set_bb_range): Adjust.
7865 (sbr_sparse_bitmap::get_bb_range): Likewise.
7867 2022-03-10 Richard Biener <rguenther@suse.de>
7869 PR tree-optimization/102943
7870 * tree-ssa-dom.cc (back_propagate_equivalences): Only
7871 populate the dominance bitmap if fast queries are not
7872 available. Use a tree view bitmap.
7873 (record_temporary_equivalences): Cache the dominance bitmap
7874 across all equivalences on the edge.
7876 2022-03-10 Tom de Vries <tdevries@suse.de>
7879 * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
7882 2022-03-10 Tom de Vries <tdevries@suse.de>
7885 * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
7886 (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
7887 (nvptx_get_unisimt_outside_simt_predicate): New function.
7888 (predicate_insn): New function, factored out of ...
7889 (nvptx_reorg_uniform_simt): ... here. Predicate all emitted insns.
7890 * config/nvptx/nvptx.h (struct machine_function): Add
7891 unisimt_outside_simt_predicate field.
7892 * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
7893 (define_insn "nvptx_uniform_warp_check"): Make predicable.
7895 2022-03-10 Tom de Vries <tdevries@suse.de>
7897 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
7900 2022-03-10 Tom de Vries <tdevries@suse.de>
7903 * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
7905 * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
7907 2022-03-10 Tom de Vries <tdevries@suse.de>
7909 * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
7910 Emit atom.and.b64 instead of atom.b64.and.
7912 2022-03-10 Tom de Vries <tdevries@suse.de>
7914 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
7915 (MULTILIB_OPTIONS): ... here.
7917 2022-03-10 Tom de Vries <tdevries@suse.de>
7920 * config/nvptx/nvptx.opt (misa): Set default to sm_30.
7921 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
7923 2022-03-10 Thomas Schwinge <thomas@codesourcery.com>
7926 PR middle-end/102330
7927 PR middle-end/104774
7928 * omp-low.cc (oacc_privatization_candidate_p)
7929 (oacc_privatization_scan_clause_chain)
7930 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
7931 Analyze 'lookup_decl'-translated DECL.
7933 2022-03-10 Jakub Jelinek <jakub@redhat.com>
7936 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
7937 RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
7938 (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
7939 * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
7940 "**NULL**" if type_node is NULL first. Handle
7941 ieee128_float_type_node.
7942 (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
7943 and ptr_ibm128_float_type_node. Set ibm128_float_type_node and
7944 ieee128_float_type_node to NULL rather than long_double_type_node if
7945 they aren't supported. Do support __ibm128 even if
7946 !TARGET_FLOAT128_TYPE when long double is double double.
7947 (rs6000_expand_builtin): Error if bif_is_ibm128 and
7948 !ibm128_float_type_node. Remap RS6000_BIF_{,UN}PACK_IF to
7949 RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
7951 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
7952 __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
7953 (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
7954 Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
7956 * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
7957 (struct attrinfo): Add isibm128 member.
7958 (TYPE_MAP_SIZE): Remove.
7959 (type_map): Use [] instead of [TYPE_MAP_SIZE]. For "if" use
7960 ibm128_float_type_node only if it is non-NULL, otherwise fall back
7961 to long_double_type_node. Remove "pif" entry.
7962 (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
7963 (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
7964 (write_type_node): Use sizeof type_map / sizeof type_map[0]
7965 instead of TYPE_MAP_SIZE.
7966 (write_bif_static_init): Handle isibm128.
7967 * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
7968 (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
7971 2022-03-09 Richard Biener <rguenther@suse.de>
7973 * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
7974 with non-decl operand, avoiding a copy.
7976 2022-03-09 Jakub Jelinek <jakub@redhat.com>
7979 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
7981 2022-03-09 Richard Biener <rguenther@suse.de>
7983 PR middle-end/104786
7984 * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
7985 for VLAs without an upper size bound.
7987 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
7989 PR tree-optimization/104851
7990 * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
7993 2022-03-09 Jakub Jelinek <jakub@redhat.com>
7996 * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
7997 is enabled by it only for C++11 to C++17 rather than for C++03 or
7999 (-Wshift-negative-value): Similarly (except here we stated
8000 that it is enabled for C++11 or later).
8002 2022-03-09 Jakub Jelinek <jakub@redhat.com>
8004 PR rtl-optimization/104839
8005 * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
8006 Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
8007 (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
8008 instead of incorrect 0 in SUBREG_PROMOTED_SET.
8010 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
8013 * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
8014 value before adding an offset.
8016 2022-03-08 Christophe Lyon <christophe.lyon@arm.com>
8018 * config/arm/arm-builtins.cc
8019 (arm_binop_none_none_unone_qualifiers): Delete.
8020 (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
8022 2022-03-08 Iain Sandoe <iain@sandoe.co.uk>
8024 PR translation/104552
8025 * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
8026 the PCH out of memory error message punctuation and wording.
8028 2022-03-08 Marek Polacek <polacek@redhat.com>
8030 PR rtl-optimization/104777
8031 * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
8032 ASM_OPERANDS_LABEL_VEC has at least one element.
8034 2022-03-08 H.J. Lu <hjl.tools@gmail.com>
8037 * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
8038 stack realignment or regparm nested function with EH return.
8040 2022-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
8043 * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
8044 * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
8045 register for non widening loads or narrowing stores.
8047 2022-03-08 Eric Gallager <egallager@gcc.gnu.org>
8049 PR translation/104552
8050 * params.opt: Fix typo.
8052 2022-03-08 Richard Biener <rguenther@suse.de>
8054 PR tree-optimization/84201
8055 * params.opt (-param=vect-induction-float): Add.
8056 * doc/invoke.texi (vect-induction-float): Document.
8057 * tree-vect-loop.cc (vectorizable_induction): Honor
8058 param_vect_induction_float.
8060 2022-03-08 Martin Jambor <mjambor@suse.cz>
8062 PR translation/104552
8063 * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
8064 "that" in the description.
8066 2022-03-08 Richard Biener <rguenther@suse.de>
8068 PR tree-optimization/104825
8069 * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
8070 guard modref get_ao_ref on a pointer typed argument.
8072 2022-03-08 liuhongt <hongtao.liu@intel.com>
8074 * config/i386/sse.md (*vec_dupv4si): Disable memory operand
8075 for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
8077 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
8079 * doc/invoke.texi (C++ Modules): Remove anachronism.
8081 2022-03-07 Martin Liska <mliska@suse.cz>
8083 PR middle-end/104381
8084 * opts.cc (finish_options): If debug info is disabled
8085 (debug_info_level) and -fvar-tracking is unset, disable it.
8087 2022-03-07 Jakub Jelinek <jakub@redhat.com>
8089 * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
8090 * config/riscv/riscv.cc: Likewise.
8091 * config/darwin.h: Likewise.
8092 * config/i386/i386.cc: Likewise.
8093 * config/aarch64/thunderx3t110.md: Likewise.
8094 * config/aarch64/fractional-cost.h: Likewise.
8095 * config/vax/vax.cc: Likewise.
8096 * config/rs6000/pcrel-opt.md: Likewise.
8097 * config/rs6000/predicates.md: Likewise.
8099 * tree-ssa-uninit.cc: Likewise.
8100 * value-relation.h: Likewise.
8101 * gimple-range-gori.cc: Likewise.
8102 * ipa-polymorphic-call.cc: Likewise.
8103 * pointer-query.cc: Likewise.
8104 * ipa-sra.cc: Likewise.
8105 * internal-fn.cc: Likewise.
8106 * varasm.cc: Likewise.
8107 * gimple-ssa-warn-access.cc: Likewise.
8109 2022-03-07 Martin Liska <mliska@suse.cz>
8112 * config/arm/arm.cc (arm_option_override_internal): Add missing
8115 2022-03-07 Richard Biener <rguenther@suse.de>
8117 PR tree-optimization/104782
8118 * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
8119 Re-instantiate r10-5979 fix, add comment.
8121 2022-03-07 Martin Liska <mliska@suse.cz>
8124 * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
8125 parenthesis from built-in name.
8127 2022-03-07 Martin Liska <mliska@suse.cz>
8130 * config/arm/arm.cc (arm_option_override_internal): Fix quoting
8131 of options in error messages.
8132 (arm_option_reconfigure_globals): Likewise.
8134 2022-03-07 Martin Liska <mliska@suse.cz>
8137 * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
8138 message. Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
8139 have only range [0,32].
8141 2022-03-07 Jakub Jelinek <jakub@redhat.com>
8144 * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
8145 S constraint instead of T in the last alternative.
8147 2022-03-07 Martin Liska <mliska@suse.cz>
8149 * plugin.cc (default_plugin_dir_name): Remove <dir> from error
8152 2022-03-07 Martin Liska <mliska@suse.cz>
8154 PR translation/90148
8155 * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
8156 quote to a proper place.
8157 * plugin.cc (default_plugin_dir_name): Likewise.
8159 2022-03-07 Martin Liska <mliska@suse.cz>
8162 * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
8165 2022-03-07 Jakub Jelinek <jakub@redhat.com>
8168 * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
8169 define_expand pattern. Rename define_insn to ...
8170 (*avx512dq_mul<mode>3<mask_name>): ... this.
8171 (<code><mode>3_mask): New any_logic define_expand pattern.
8172 (<mask_codefor><code><mode>3<mask_name>): Rename to ...
8173 (*<code><mode>3<mask_name>): ... this.
8175 2022-03-05 Jakub Jelinek <jakub@redhat.com>
8177 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
8178 visited bitmap and its use. Also punt on EDGE_ABNORMAL edges.
8180 2022-03-05 Roger Sayle <roger@nextmovesoftware.com>
8181 Uroš Bizjak <ubizjak@gmail.com>
8184 * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
8185 Include DI mode unconditionally.
8186 (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
8187 i.e. always split on !TARGET_64BIT.
8188 (*<any_or>di3_doubleword): Likewise.
8189 (*one_cmpldi2_doubleword): Likewise.
8190 (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
8191 (<any_or><mode>3 expander): Likewise.
8192 (one_cmpl<mode>2 expander): Likewise.
8194 2022-03-05 Michael Meissner <meissner@linux.ibm.com>
8197 * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
8198 (mtvsrdd_diti_w1): Delete.
8199 (extendditi2): Convert from define_expand to
8200 define_insn_and_split. Replace with code to deal with both GPR
8201 registers and with altivec registers.
8203 2022-03-04 Segher Boessenkool <segher@kernel.crashing.org>
8205 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
8206 bit. Handle most older CPUs.
8208 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
8210 * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
8211 avoid a mismatch with DECL_MD_FUNCTION_CODE().
8213 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
8216 * config/rs6000/darwin.md (@machopic_high_<mode>): New.
8217 (@machopic_low_<mode>): New.
8218 * config/rs6000/predicates.md (macho_pic_address): New.
8219 * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
8220 apply the TLS processing to Darwin.
8221 * lra-constraints.cc (process_address_1): Revert the changes
8224 2022-03-04 Peter Bergner <bergner@linux.ibm.com>
8228 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
8229 ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
8231 Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
8233 * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
8236 2022-03-04 Jakub Jelinek <jakub@redhat.com>
8238 PR middle-end/104529
8239 * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
8240 on automatic objects which will be runtime initialized.
8242 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
8244 PR middle-end/100280
8245 PR middle-end/104132
8246 PR middle-end/104133
8247 * omp-low.cc (task_shared_vars): Rename to
8248 'make_addressable_vars'. Adjust all users.
8249 (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
8250 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
8252 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
8254 PR middle-end/100280
8255 * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
8256 * tree-core.h: Document it.
8257 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
8258 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
8259 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
8260 Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
8263 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
8265 PR middle-end/100280
8266 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
8267 Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
8268 '[...]' declared in block made addressable".
8270 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
8272 PR middle-end/100400
8273 PR middle-end/103836
8274 PR middle-end/104061
8275 * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
8276 Catch 'GIMPLE_DEBUG'.
8278 2022-03-04 Jakub Jelinek <jakub@redhat.com>
8281 * tree.cc (warn_deprecated_use): For types prefer to use node
8282 and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
8285 2022-03-04 H.J. Lu <hjl.tools@gmail.com>
8288 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
8291 2022-03-03 Martin Sebor <msebor@redhat.com>
8293 PR middle-end/104761
8294 * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
8295 mark_dfs_back_edges.
8297 2022-03-03 Martin Liska <mliska@suse.cz>
8299 * configure.ac: Use linker plug-in by default.
8300 * configure: Regenerate.
8302 2022-03-03 Martin Liska <mliska@suse.cz>
8304 * configure.ac: Now ld.mold support LTO plugin API, use it.
8305 * configure: Regenerate.
8307 2022-03-03 Tom de Vries <tdevries@suse.de>
8309 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
8311 2022-03-03 Tom de Vries <tdevries@suse.de>
8314 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
8316 2022-03-03 Tom de Vries <tdevries@suse.de>
8318 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
8320 2022-03-03 Jakub Jelinek <jakub@redhat.com>
8322 PR middle-end/104757
8323 * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
8325 (gimplify_expr) <case OMP_SIMD>: Temporarily disable
8326 gimplify_ctxp->into_ssa around call to gimplify_omp_for.
8328 2022-03-03 Jakub Jelinek <jakub@redhat.com>
8330 PR middle-end/104558
8331 * calls.cc (store_one_arg): When not calling emit_push_insn
8332 because size_rtx is const0_rtx, call at least anti_adjust_stack
8333 on arg->locate.alignment_pad if !argblock and the alignment might
8336 2022-03-02 Alexandre Oliva <oliva@adacore.com>
8338 * lra-constraints.cc (undo_optional_reloads): Recognize and
8339 drop insns of multi-word move sequences, tolerate removal
8340 iteration on an already-removed clobber, and refuse to
8341 substitute original pseudos into clobbers.
8343 2022-03-02 Qing Zhao <qing.zhao@oracle.com>
8345 PR middle-end/102276
8346 * common.opt (-Wtrivial-auto-var-init): New option.
8347 * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
8348 (-ftrivial-auto-var-init): Update option;
8349 * gimplify.cc (emit_warn_switch_unreachable): New function.
8350 (warn_switch_unreachable_r): Rename to ...
8351 (warn_switch_unreachable_and_auto_init_r): This.
8352 (maybe_warn_switch_unreachable): Rename to ...
8353 (maybe_warn_switch_unreachable_and_auto_init): This.
8354 (gimplify_switch_expr): Update calls to renamed function.
8356 2022-03-02 Richard Biener <rguenther@suse.de>
8358 PR rtl-optimization/104686
8359 * ira-color.cc (object_conflicts_with_allocno_p): New function
8360 using a bitvector test instead of iterating when possible.
8361 (allocnos_conflict_p): Choose the best allocno to iterate over
8363 (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
8366 2022-03-02 Jakub Jelinek <jakub@redhat.com>
8368 * cfg.cc (dump_edge_info): Dump goto_locus if present.
8370 2022-03-02 Jakub Jelinek <jakub@redhat.com>
8372 PR rtl-optimization/104589
8373 * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
8374 INSN_LOCATION comparison with goto_locus.
8376 2022-03-02 Jakub Jelinek <jakub@redhat.com>
8378 * tree-ssa-strlen.cc (strlen_pass::handle_assign,
8379 strlen_pass::before_dom_children): Comment spelling fixes.
8381 2022-03-02 Jakub Jelinek <jakub@redhat.com>
8383 * ipa-modref-tree.cc (modref_access_node::contains,
8384 modref_access_node::closer_pair_p, modref_access_node::insert,
8385 modref_access_node::insert_kill): Comment spelling fixes.
8386 * ipa-modref.cc: Likewise.
8387 (modref_summary::finalize, ignore_nondeterminism_p,
8388 class modref_access_analysis,
8389 modref_access_analysis::set_side_effects,
8390 modref_access_analysis::set_nondeterministic,
8391 modref_access_analysis::record_global_memory_load,
8392 modref_access_analysis::propagate, modref_access_analysis::analyze,
8393 struct escape_point, class modref_lattice, modref_lattice::merge,
8394 modref_lattice::merge_deref, class modref_eaf_analysis,
8395 modref_eaf_analysis::merge_call_lhs_flags,
8396 modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
8397 modref_eaf_analysis::record_escape_points, remap_kills,
8398 update_escape_summary, remove_useless_summaries,
8399 ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
8401 * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
8403 * ipa-modref-tree.h (enum modref_special_parms,
8404 struct modref_access_node): Likewise.
8406 2022-03-01 Jakub Jelinek <jakub@redhat.com>
8408 PR tree-optimization/104715
8409 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
8410 unnecessarily test if ptr is a SSA_NAME, it has to be. Only push lhs
8411 of a call if gimple_call_return_arg is equal to ptr, not just when it
8414 2022-03-01 Jakub Jelinek <jakub@redhat.com>
8416 * gimple-ssa-warn-access.cc (warn_string_no_nul,
8417 maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
8418 matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
8419 pass_waccess::check_alloca, pass_waccess::check_strcat,
8420 memmodel_to_uhwi, fntype_argno_type,
8421 pass_waccess::maybe_check_access_sizes,
8422 pass_waccess::check_call_access,
8423 pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
8424 Comment spelling fixes.
8426 2022-03-01 Richard Biener <rguenther@suse.de>
8428 PR tree-optimization/104716
8429 * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
8430 Check if we can copy the loop.
8432 2022-03-01 H.J. Lu <hjl.tools@gmail.com>
8434 PR middle-end/104721
8435 * cfgexpand.cc (expand_gimple_basic_block): Clear
8436 currently_expanding_gimple_stmt when returning inside the loop.
8438 2022-03-01 Martin Liska <mliska@suse.cz>
8441 * multiple_target.cc (get_attr_len): Move to tree.c.
8442 (expand_target_clones): Remove single value checking.
8443 * tree.cc (get_target_clone_attr_len): New fn.
8444 * tree.h (get_target_clone_attr_len): Likewise.
8446 2022-03-01 Martin Liska <mliska@suse.cz>
8448 PR gcov-profile/104677
8449 * doc/invoke.texi: Document more .gcda file name generation.
8451 2022-03-01 Tom de Vries <tdevries@suse.de>
8454 * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
8455 * config/nvptx/nvptx.md
8456 (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
8458 (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
8459 Use nvptx_register_or_complex_di_df_register_operand.
8461 2022-03-01 Tom de Vries <tdevries@suse.de>
8463 * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
8464 * config/nvptx/gen-copyright.sh: New file.
8465 * config/nvptx/gen-h.sh: New file.
8466 * config/nvptx/gen-opt.sh: New file.
8467 * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
8468 (TARGET_SM75, TARGET_SM80): Move ...
8469 * config/nvptx/nvptx-gen.h: ... here. New file, generate.
8470 * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
8471 * config/nvptx/nvptx-gen.opt: ... here. New file, generate.
8472 * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
8473 ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
8475 2022-03-01 Tom de Vries <tdevries@suse.de>
8477 * config/nvptx/gen-omp-device-properties.sh: New file.
8478 * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
8480 2022-03-01 Tom de Vries <tdevries@suse.de>
8482 * config/nvptx/nvptx-sm.def: New file.
8483 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
8484 * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
8485 * config/nvptx/nvptx.cc (sm_version_to_string)
8486 (nvptx_omp_device_kind_arch_isa): Same.
8488 2022-03-01 Robin Dapp <rdapp@linux.ibm.com>
8490 PR rtl-optimization/104154
8491 * config/arc/arc.cc (gen_compare_reg): Return the CC-mode
8492 comparison ifcvt passed us.
8494 2022-03-01 Hongyu Wang <hongyu.wang@intel.com>
8497 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
8498 Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
8500 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
8502 PR tree-optimization/91384
8503 * config/i386/i386.md (peephole2): Eliminate final testl insn
8504 from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
8505 transforming using *negsi_2 for the negation.
8507 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
8508 Eric Botcazou <ebotcazou@adacore.com>
8511 * expmed.cc (extract_integral_bit_field): If OP0 is a hard
8512 register, copy it to a pseudo before calling simplify_gen_subreg.
8514 2022-02-28 Vladimir N. Makarov <vmakarov@redhat.com>
8516 PR rtl-optimization/104637
8517 * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
8518 as possible on one subpass.
8520 2022-02-28 Qing Zhao <qing.zhao@oracle.com>
8522 PR middle-end/104550
8523 * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
8526 2022-02-28 Martin Liska <mliska@suse.cz>
8529 * main.cc (main): Use flag_checking instead of CHECKING_P
8530 and run toplev::finalize only if there is not error seen.
8532 2022-02-28 Richard Biener <rguenther@suse.de>
8534 * tree-ssa-pre.cc (compute_avail): Revert part of last change.
8536 2022-02-28 Richard Biener <rguenther@suse.de>
8538 PR tree-optimization/104700
8539 * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
8541 (find_or_generate_expression): ... here, simplifying code.
8543 2022-02-28 Tom de Vries <tdevries@suse.de>
8545 * config/nvptx/nvptx-opts.h (enum ptx_version): Add
8546 PTX_VERSION_default.
8547 * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
8548 PTX_VERSION_default.
8549 * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
8551 2022-02-28 Richard Biener <rguenther@suse.de>
8553 PR rtl-optimization/104686
8554 * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
8555 skipping bits that are zero.
8556 (ira_object_conflict_iter_cond): Likewise.
8558 2022-02-28 Hongyu Wang <hongyu.wang@intel.com>
8560 * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
8561 (_mm512_ternarylogic_epi64): Truncate imm to unsigned
8562 char to avoid error when using ~enum as parameter.
8563 (_mm512_mask_ternarylogic_epi64): Likewise.
8564 (_mm512_maskz_ternarylogic_epi64): Likewise.
8565 (_mm512_ternarylogic_epi32): Likewise.
8566 (_mm512_mask_ternarylogic_epi32): Likewise.
8567 (_mm512_maskz_ternarylogic_epi32): Likewise.
8568 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
8569 Adjust imm param type to unsigned char.
8570 (_mm256_mask_ternarylogic_epi64): Likewise.
8571 (_mm256_maskz_ternarylogic_epi64): Likewise.
8572 (_mm256_ternarylogic_epi32): Likewise.
8573 (_mm256_mask_ternarylogic_epi32): Likewise.
8574 (_mm256_maskz_ternarylogic_epi32): Likewise.
8575 (_mm_ternarylogic_epi64): Likewise.
8576 (_mm_mask_ternarylogic_epi64): Likewise.
8577 (_mm_maskz_ternarylogic_epi64): Likewise.
8578 (_mm_ternarylogic_epi32): Likewise.
8579 (_mm_mask_ternarylogic_epi32): Likewise.
8580 (_mm_maskz_ternarylogic_epi32): Likewise.
8582 2022-02-25 Jakub Jelinek <jakub@redhat.com>
8583 Marc Glisse <marc.glisse@inria.fr>
8585 PR tree-optimization/104675
8586 * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
8587 Restrict simplifications to INTEGRAL_TYPE_P.
8589 2022-02-25 Jakub Jelinek <jakub@redhat.com>
8592 * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
8594 2022-02-25 Claudiu Zissulescu <claziss@synopsys.com>
8596 * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
8597 comparison is not valid.
8598 * config/arc/arc.md (movsicc): Fail if comparison is not valid.
8599 (movdicc): Likewise.
8600 (movsfcc): Likewise.
8601 (movdfcc): Likewise.
8603 2022-02-25 Richard Biener <rguenther@suse.de>
8605 PR tree-optimization/103037
8606 * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
8607 (vn_nary_length_from_stmt): Likewise.
8608 (init_vn_nary_op_from_stmt): Likewise.
8609 (vn_nary_op_compute_hash): Likewise.
8610 * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
8611 (vn_nary_length_from_stmt): Likewise.
8612 (init_vn_nary_op_from_stmt): Likewise.
8613 (vn_nary_op_compute_hash): Likewise.
8614 * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
8615 (get_or_alloc_expr_for_nary): Pass in the value-id to use,
8616 (re-)compute the hash value and if the expression is not
8617 found allocate it from pre_expr_obstack.
8618 (phi_translate_1): Do not insert the NARY found in the
8619 VN tables but build a PRE expression from the valueized
8620 NARY with the value-id we eventually found.
8621 (find_or_generate_expression): Assert we have an entry
8622 for constant values.
8623 (compute_avail): Insert not valueized expressions into
8624 EXP_GEN using the value-id from the VN tables.
8625 (init_pre): Allocate pre_expr_obstack.
8626 (fini_pre): Free pre_expr_obstack.
8628 2022-02-25 Jakub Jelinek <jakub@redhat.com>
8631 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
8632 * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
8633 SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
8635 2022-02-25 Jakub Jelinek <jakub@redhat.com>
8637 * warning-control.cc (get_nowarn_spec): Comment spelling fix.
8639 2022-02-25 Jakub Jelinek <jakub@redhat.com>
8641 PR middle-end/104679
8642 * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
8644 2022-02-25 Jakub Jelinek <jakub@redhat.com>
8646 PR tree-optimization/104675
8647 * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
8650 2022-02-25 Alexandre Oliva <oliva@adacore.com>
8654 * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
8656 2022-02-25 Alexandre Oliva <oliva@adacore.com>
8658 PR middle-end/104540
8659 * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
8662 2022-02-25 Alexandre Oliva <oliva@adacore.com>
8664 PR tree-optimization/103856
8665 * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
8666 eh edge to be requested through an extra parameter.
8667 (pass_harden_compares::execute): Copy PHI args in the EH dest
8668 block for the new EH edge added for the inverted compare.
8670 2022-02-24 Palmer Dabbelt <palmer@rivosinc.com>
8672 * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
8673 of position independence that -mcmodel=medany affords.
8675 2022-02-24 Jose E. Marchesi <jose.marchesi@oracle.com>
8678 * configure.ac: --disable-gcov if targetting bpf-*.
8679 * configure: Regenerate.
8681 2022-02-24 Richard Biener <rguenther@suse.de>
8683 PR tree-optimization/104676
8684 * tree-loop-distribution.cc (loop_distribution::execute):
8685 Do a full scev_reset.
8687 2022-02-24 Jakub Jelinek <jakub@redhat.com>
8689 PR tree-optimization/104601
8690 * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
8691 non-SSA_NAME lhs value number vdef to itself instead of e.g. the
8694 2022-02-24 Tom de Vries <tdevries@suse.de>
8695 Tobias Burnus <tobias@codesourcery.com>
8697 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
8698 sm_70, sm_75 and sm_80.
8699 * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
8701 2022-02-24 Tom de Vries <tdevries@suse.de>
8703 * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
8704 "rotrsi3"): New define_insn.
8706 2022-02-24 Tom de Vries <tdevries@suse.de>
8708 * config/nvptx/nvptx.cc (gen_comment): Use
8709 DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
8711 2022-02-24 liuhongt <hongtao.liu@intel.com>
8713 * config/i386/sse.md (<code>v1ti3): Add suffix and replace
8714 isa attr of alternative 2 from avx to avx512vl.
8716 2022-02-23 Richard Biener <rguenther@suse.de>
8717 Jakub Jelinek <jakub@redhat.com>
8719 PR tree-optimization/104644
8720 * doc/match-and-simplify.texi: Amend ! documentation.
8721 * genmatch.cc (expr::gen_transform): Code-generate ! support
8723 (parser::parse_expr): Allow ! for GENERIC.
8724 * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
8727 2022-02-23 Richard Biener <rguenther@suse.de>
8729 PR tree-optimization/101636
8730 * tree-vect-slp.cc (vect_print_slp_tree): Dump the
8731 vector type of the node.
8732 (vect_slp_analyze_operations): Make sure the CTOR
8733 is vectorized with an expected type.
8734 (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
8736 2022-02-23 Jakub Jelinek <jakub@redhat.com>
8739 * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
8740 Don't warn about calls to corresponding builtin from extern inline
8741 gnu_inline wrappers.
8743 2022-02-23 Roger Sayle <roger@nextmovesoftware.com>
8746 * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
8748 2022-02-23 Christophe Lyon <christophe.lyon@arm.com>
8752 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
8755 2022-02-23 Cui,Lili <lili.cui@intel.com>
8757 * doc/invoke.texi: Update documents for Intel architectures.
8759 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
8761 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
8764 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
8766 * omp-low.cc (omp_build_component_ref): Move function...
8767 * omp-general.cc (omp_build_component_ref): ... here. Remove
8769 * omp-general.h (omp_build_component_ref): Declare function.
8770 * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
8772 (build_receiver_ref, build_sender_ref): Call
8773 'omp_build_component_ref' instead.
8775 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
8777 * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
8778 simplify. Adjust all users.
8780 2022-02-22 Segher Boessenkool <segher@kernel.crashing.org>
8783 * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
8784 atomic_update_decl): Add GTY markup.
8786 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
8788 * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
8790 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
8794 * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
8796 (CX_BINARY_UNONE_QUALIFIERS): Likewise.
8797 (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
8798 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
8799 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
8800 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
8801 * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
8802 * config/arm/mve.md: Use VxBI instead of HI.
8804 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
8808 * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
8810 (STRSBU_P_QUALIFIERS): Likewise.
8811 (LDRGBS_Z_QUALIFIERS): Likewise.
8812 (LDRGBU_Z_QUALIFIERS): Likewise.
8813 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
8814 (LDRGBWBS_Z_QUALIFIERS): Likewise.
8815 (LDRGBWBU_Z_QUALIFIERS): Likewise.
8816 (STRSBWBS_P_QUALIFIERS): Likewise.
8817 (STRSBWBU_P_QUALIFIERS): Likewise.
8818 * config/arm/mve.md: Use VxBI instead of HI.
8820 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
8824 * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
8825 (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
8826 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
8827 (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
8828 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
8829 (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
8830 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
8831 (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
8832 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
8833 (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
8834 (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
8835 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
8836 (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
8837 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
8838 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
8839 (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
8840 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
8841 (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
8842 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
8843 (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
8844 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
8845 (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
8846 (STRS_P_QUALIFIERS): Use predicate qualifier.
8847 (STRU_P_QUALIFIERS): Likewise.
8848 (STRSU_P_QUALIFIERS): Likewise.
8849 (STRSS_P_QUALIFIERS): Likewise.
8850 (LDRGS_Z_QUALIFIERS): Likewise.
8851 (LDRGU_Z_QUALIFIERS): Likewise.
8852 (LDRS_Z_QUALIFIERS): Likewise.
8853 (LDRU_Z_QUALIFIERS): Likewise.
8854 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
8855 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
8856 (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
8857 (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
8858 * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
8859 * config/arm/mve.md: Use MVE_VPRED instead of HI.
8861 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
8865 * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
8867 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
8868 (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
8869 (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
8870 * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
8871 predicated qualifiers.
8872 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
8873 (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
8875 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
8878 * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
8879 (arm_expand_vector_compare): Update prototype.
8880 * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
8881 (arm_vector_mode_supported_p): Add support for VxBI modes.
8882 (arm_expand_vector_compare): Remove useless generation of vpsel.
8883 (arm_expand_vcond): Fix select operands.
8884 (arm_get_mask_mode): New.
8885 * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
8886 (vec_cmpu<mode><MVE_vpred>): New.
8887 (vcond_mask_<mode><MVE_vpred>): New.
8888 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
8889 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
8890 * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
8891 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
8892 and disable for MVE.
8893 * doc/sourcebuild.texi (arm_mve): Document new effective-target.
8895 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
8899 * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
8900 (BINOP_PRED_NONE_NONE_QUALIFIERS)
8901 (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
8902 (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
8903 * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
8904 * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
8906 (arm_mode_to_pred_mode): New.
8907 (arm_expand_vector_compare): Use the right VxBI mode instead of
8909 (arm_expand_vcond): Likewise.
8910 (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
8911 (mve_bool_vec_to_const): New.
8912 (neon_make_constant): Call mve_bool_vec_to_const when needed.
8913 * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
8914 (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
8915 (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
8916 (vpselq_s, vpselq_f): Use new predicated qualifiers.
8917 * config/arm/constraints.md (DB): New.
8918 * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
8919 (MVE_VPRED, MVE_vpred): New attribute iterators.
8920 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
8921 (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
8922 (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
8923 (@mve_vpselq_<supf>v2di): Define separately.
8924 (mov<mode>): New expander for VxBI modes.
8925 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
8926 MVE_7_HI iterator and add support for DB constraint.
8928 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
8929 Richard Sandiford <richard.sandiford@arm.com>
8933 * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
8934 VNx2BI): Update definition.
8935 * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
8937 (arm_init_builtin): Map predicate vectors arguments to HImode.
8938 (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
8939 rtx. Move return value to HImode rtx.
8940 * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
8941 * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
8942 * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
8943 Pred2x8_t,Pred4x4_t): New.
8944 * emit-rtl.cc (init_emit_once): Handle all boolean modes.
8945 * genmodes.cc (mode_data): Add boolean field.
8946 (blank_mode): Initialize it.
8947 (make_complex_modes): Fix handling of boolean modes.
8948 (make_vector_modes): Likewise.
8949 (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
8950 (make_vector_bool_mode): Likewise.
8952 (make_bool_mode): New.
8953 (emit_insn_modes_h): Fix generation of boolean modes.
8954 (emit_class_narrowest_mode): Likewise.
8955 * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
8956 parameter. Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
8958 * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
8959 Fix handling of constm1_rtx for VECTOR_BOOL.
8960 * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
8961 (native_decode_vector_rtx): Likewise.
8962 (test_vector_ops_duplicate): Skip vec_merge test
8963 with vectors of booleans.
8964 * varasm.cc (output_constant_pool_2): Likewise.
8966 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
8968 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
8971 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
8973 * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
8975 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
8977 * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
8978 (REG_CLASS_NAMES): Likewise.
8979 (REG_CLASS_CONTENTS): Likewise.
8980 (CLASS_MAX_NREGS): Handle VPR.
8981 * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
8983 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
8984 Tom de Vries <tdevries@suse.de>
8986 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
8987 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
8989 * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
8991 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
8992 Tom de Vries <tdevries@suse.de>
8994 * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
8995 * doc/invoke.texi (-mptx): Update for new values and defaults.
8997 2022-02-22 Tom de Vries <tdevries@suse.de>
8999 * config/nvptx/nvptx.cc (gen_comment): New function.
9000 (workaround_uninit_method_1, workaround_uninit_method_2)
9001 (workaround_uninit_method_3): : Use gen_comment.
9002 * config/nvptx/nvptx.opt (mptx-comment): New option.
9004 2022-02-22 Richard Biener <rguenther@suse.de>
9006 * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
9009 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
9010 Richard Biener <rguenther@suse.de>
9012 * fold-const.cc (ctor_single_nonzero_element): New function to
9013 return the single non-zero element of a (vector) constructor.
9014 * fold-const.h (ctor_single_nonzero_element): Prototype here.
9015 * match.pd (reduc (constructor@0)): Simplify reductions of a
9016 constructor containing a single non-zero element.
9017 (reduc (@0 op VECTOR_CST) -> (reduc @0) op CONST): Simplify
9018 reductions of vector operations of the same operator with
9019 constant vector operands.
9021 2022-02-22 Jakub Jelinek <jakub@redhat.com>
9023 PR tree-optimization/104604
9024 * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
9025 Only check if gimple_assign_rhs1 is COMPLEX_CST if
9026 gimple_assign_rhs_code is COMPLEX_CST.
9028 2022-02-22 Jakub Jelinek <jakub@redhat.com>
9031 * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
9032 on input operands before calling lowpart_subreg on it. For output
9033 operand, use a vmode pseudo as destination and then move its lowpart
9034 subreg into operands[0] if lowpart_subreg fails on dest.
9035 (ix86_expand_xorsign): Likewise.
9037 2022-02-22 Richard Biener <rguenther@suse.de>
9039 PR tree-optimization/104582
9041 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
9042 Cost GPR to vector register moves for integer vector construction.
9044 2022-02-22 Richard Biener <rguenther@suse.de>
9046 PR tree-optimization/104582
9047 * tree-vectorizer.h (stmt_info_for_cost::node): New field.
9048 (vector_costs::add_stmt_cost): Add SLP node parameter.
9049 (dump_stmt_cost): Likewise.
9050 (add_stmt_cost): Likewise, new overload and adjust.
9051 (add_stmt_costs): Adjust.
9052 (record_stmt_cost): New overload.
9053 * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
9054 (vector_costs::add_stmt_cost): Adjust.
9055 * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
9057 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
9058 the SLP node for costing.
9059 (vectorizable_slp_permutation): Likewise.
9060 * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
9062 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
9064 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
9066 * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
9068 (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
9070 2022-02-22 Richard Biener <rguenther@suse.de>
9072 PR tree-optimization/104582
9073 * tree-vectorizer.h (add_stmt_cost): New overload.
9074 (record_stmt_cost): Likewise.
9075 * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
9077 (vect_get_known_peeling_cost): Use new overloads.
9078 (vect_estimate_min_profitable_iters): Likewise. Consistently
9079 use scalar_stmt for costing versioning checks.
9080 * tree-vect-stmts.cc (record_stmt_cost): New overload.
9082 2022-02-22 Hongyu Wang <hongyu.wang@intel.com>
9085 * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
9086 Split atomic fetch and loop part.
9087 (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
9088 * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
9090 * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
9091 expander under TARGET_RELAX_CMPXCHG_LOOP.
9092 (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
9094 2022-02-21 Dan Li <ashimida@linux.alibaba.com>
9096 * config/aarch64/aarch64.cc (SLOT_REQUIRED):
9097 Change wb_candidate[12] to wb_push_candidate[12].
9098 (aarch64_layout_frame): Likewise, and
9099 change callee_adjust when scs is enabled.
9100 (aarch64_save_callee_saves):
9101 Change wb_candidate[12] to wb_push_candidate[12].
9102 (aarch64_restore_callee_saves):
9103 Change wb_candidate[12] to wb_pop_candidate[12].
9104 (aarch64_get_separate_components):
9105 Change wb_candidate[12] to wb_push_candidate[12].
9106 (aarch64_expand_prologue): Push x30 onto SCS before it's
9108 (aarch64_expand_epilogue): Pop x30 frome SCS, while
9109 preventing it from being popped from the regular stack again.
9110 (aarch64_override_options_internal): Add SCS compile option check.
9111 (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
9112 * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
9113 wb_pop_candidate[12], and rename wb_candidate[12] to
9114 wb_push_candidate[12].
9115 * config/aarch64/aarch64.md (scs_push): New template.
9116 (scs_pop): Likewise.
9117 * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
9118 * doc/tm.texi: Regenerate.
9119 * doc/tm.texi.in: Add hook have_shadow_call_stack.
9120 * flag-types.h (enum sanitize_code):
9121 Add SANITIZE_SHADOW_CALL_STACK.
9122 * opts.cc (parse_sanitizer_options): Add shadow-call-stack
9123 and exclude SANITIZE_SHADOW_CALL_STACK.
9124 * target.def: New hook.
9125 * toplev.cc (process_options): Add SCS compile option check.
9126 * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
9128 2022-02-21 Tom de Vries <tdevries@suse.de>
9131 * config/nvptx/nvptx.cc (workaround_uninit_method_1)
9132 (workaround_uninit_method_2, workaround_uninit_method_3)
9133 (workaround_uninit): New function.
9134 (nvptx_reorg): Use workaround_uninit.
9135 * config/nvptx/nvptx.opt (minit-regs): New option.
9137 2022-02-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
9139 PR rtl-optimization/104498
9140 * alias.cc (compare_base_symbol_refs): Correct distance computation
9141 when swapping x and y.
9143 2022-02-21 Andrew Pinski <apinski@marvell.com>
9146 * tree-ssa.cc (tree_ssa_useless_type_conversion):
9147 Check the inner type before calling useless_type_conversion_p.
9149 2022-02-19 Tom de Vries <tdevries@suse.de>
9151 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
9152 * config/nvptx/nvptx.md
9153 (define_insn "nvptx_atomic_store<mode>"): Rename to ...
9154 (define_insn "nvptx_atomic_store_sm70<mode>"): This.
9155 (define_insn "nvptx_atomic_store<mode>"): New define_insn.
9156 (define_expand "atomic_store<mode>"): Handle rename. Use
9157 nvptx_atomic_store instead of atomic_exchange.
9159 2022-02-19 Tom de Vries <tdevries@suse.de>
9161 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
9162 insns with atomic attribute. Assert that all handled insns are
9164 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
9165 Set atomic attribute to false.
9167 2022-02-19 Tom de Vries <tdevries@suse.de>
9169 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
9171 (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
9172 nvptx_warpsync, if necessary.
9174 2022-02-19 Jakub Jelinek <jakub@redhat.com>
9177 * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
9178 known to be within bounds, treat it like automatic variables.
9179 If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
9180 current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
9183 2022-02-18 Pat Haugen <pthaugen@linux.ibm.com>
9185 * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
9186 (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
9187 mpower10-fusion-logical-add, mpower10-fusion-add-logical,
9188 mpower10-fusion-2add, mpower10-fusion-2store): Remove.
9189 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
9190 OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
9191 * config/rs6000/rs6000.cc (rs6000_option_override_internal,
9192 power10_sched_reorder): Likewise.
9193 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
9194 gen_addadd): Likewise
9195 * config/rs6000/fusion.md: Regenerate.
9197 2022-02-18 Jakub Jelinek <jakub@redhat.com>
9201 * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
9202 rather than __posix_memalign.
9204 2022-02-18 Richard Biener <rguenther@suse.de>
9207 * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
9208 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
9209 of calling ix86_avx_u128_mode_source which would eventually
9210 have returned AVX_U128_ANY in some very special case.
9212 2022-02-18 Richard Biener <rguenther@suse.de>
9214 PR tree-optimization/96881
9215 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
9217 (control_parents_preserved_p): New function.
9218 (eliminate_unnecessary_stmts): Check that we preserved control
9219 parents before retaining a CLOBBER.
9220 (perform_tree_ssa_dce): Pass down aggressive flag
9221 to eliminate_unnecessary_stmts.
9223 2022-02-17 Jason Merrill <jason@redhat.com>
9225 * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
9226 on TYPE_MAIN_VARIANT.
9228 2022-02-17 Paul A. Clarke <pc@us.ibm.com>
9231 * config/rs6000/bmi2intrin.h: Uglify local variables.
9232 * config/rs6000/emmintrin.h: Likewise.
9233 * config/rs6000/mm_malloc.h: Likewise.
9234 * config/rs6000/mmintrin.h: Likewise.
9235 * config/rs6000/pmmintrin.h: Likewise.
9236 * config/rs6000/smmintrin.h: Likewise.
9237 * config/rs6000/tmmintrin.h: Likewise.
9238 * config/rs6000/xmmintrin.h: Likewise.
9240 2022-02-17 Robin Dapp <rdapp@linux.ibm.com>
9243 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
9244 if the expected comparison's first operand is of mode MODE_CC.
9246 2022-02-17 Vladimir N. Makarov <vmakarov@redhat.com>
9248 PR rtl-optimization/104447
9249 * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
9250 hard reg set by lra_no_alloc_regs.
9252 2022-02-17 liuhongt <hongtao.liu@intel.com>
9254 PR tree-optimization/104551
9255 PR tree-optimization/103771
9256 * match.pd (cond_expr_convert_p): Add types_match check when
9257 convert is extension.
9258 * tree-vect-patterns.cc
9259 (gimple_cond_expr_convert_p): Adjust comments.
9260 (vect_recog_cond_expr_convert_pattern): Ditto.
9262 2022-02-17 Jakub Jelinek <jakub@redhat.com>
9265 * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
9266 if expr has VOIDmode.
9268 2022-02-17 liuhongt <hongtao.liu@intel.com>
9270 * config/i386/cpuid.h (bit_MPX): Removed.
9271 (bit_BNDREGS): Ditto.
9272 (bit_BNDCSR): Ditto.
9274 2022-02-17 Michael Meissner <meissner@the-meissners.org>
9277 * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
9278 __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
9279 Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
9282 2022-02-16 Andrew MacLeod <amacleod@redhat.com>
9284 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
9285 range_compatible_p instead of direct type comparison.
9287 2022-02-16 Jakub Jelinek <jakub@redhat.com>
9289 PR rtl-optimization/104544
9290 * combine.cc (try_combine): When looking for insn whose links
9291 should be updated from i3 to i2, don't stop on debug insns, instead
9294 2022-02-16 Richard Sandiford <richard.sandiford@arm.com>
9297 * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
9298 * config/aarch64/aarch64.md: Extend the PR100056 patterns
9299 to handle plus in the same way as ior, if the operands have
9300 no set bits in common.
9302 2022-02-15 Andrew MacLeod <amacleod@redhat.com>
9304 PR tree-optimization/104526
9305 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
9307 * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
9308 of dependency chain if there isn't one.
9309 (gori_compute::condexpr_adjust): New.
9310 * gimple-range-gori.h (class gori_compute): New prototype.
9312 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
9315 * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
9317 * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
9318 * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
9320 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
9322 * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
9323 (vect_scalar_ops_slice_hash): Likewise.
9324 (vect_scalar_ops_slice::op): New function.
9325 * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
9326 (vect_scalar_ops_slice_hash::hash): Likewise.
9327 (vect_scalar_ops_slice_hash::equal): Likewise.
9328 (vect_prologue_cost_for_slp): Check for duplicate vectors.
9329 * config/aarch64/aarch64.cc
9330 (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
9331 (aarch64_aligned_constant_offset_p): New function.
9332 (aarch64_stp_sequence_cost): Likewise.
9333 (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
9334 (aarch64_vector_costs::finish_cost): Likewise.
9336 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
9338 * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
9341 2022-02-15 Richard Biener <rguenther@suse.de>
9343 PR tree-optimization/104543
9344 * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
9345 come after the inner loop.
9347 2022-02-15 Jakub Jelinek <jakub@redhat.com>
9350 * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
9351 cannot instead of can%'t in diagnostics. Formatting fixes.
9353 2022-02-15 Jakub Jelinek <jakub@redhat.com>
9355 PR middle-end/104522
9356 * fold-const.h (native_interpret_real): Declare.
9357 * fold-const.cc (native_interpret_real): No longer static. Don't
9358 perform MODE_COMPOSITE_P verification here.
9359 (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
9361 * gimple-fold.cc (clear_padding_type): Call native_interpret_real
9362 instead of native_interpret_expr.
9363 * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
9364 and comparison verification for all FLOAT_MODE_P modes, not just
9367 2022-02-15 Richard Biener <rguenther@suse.de>
9369 PR tree-optimization/104519
9370 * fold-const.cc (multiple_of_p): Remove never true condition.
9371 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
9372 the appropriate types for determining whether the difference
9373 of final and base is a multiple of the step.
9375 2022-02-15 Jakub Jelinek <jakub@redhat.com>
9378 * omp-low.cc (task_cpyfns): New variable.
9379 (delete_omp_context): Don't call finalize_task_copyfn from here.
9380 (create_task_copyfn): Push task_stmt into task_cpyfns.
9381 (execute_lower_omp): Call finalize_task_copyfn here on entries from
9382 task_cpyfns vector and release the vector.
9384 2022-02-14 Martin Sebor <msebor@redhat.com>
9386 PR middle-end/104355
9387 * doc/invoke.texi (-Warray-bounds): Update documentation.
9389 2022-02-14 Michael Meissner <meissner@the-meissners.org>
9392 * config/rs6000/rs6000.cc (init_float128_ibm): Update the
9393 conversion functions used to convert IFmode types.
9395 2022-02-14 Andrew Stubbs <ams@codesourcery.com>
9397 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
9399 2022-02-14 Richard Biener <rguenther@suse.de>
9401 PR tree-optimization/104528
9402 * tree-ssa.h (find_released_ssa_name): Declare.
9403 * tree-ssa.cc (find_released_ssa_name): Export.
9404 * cfgloop.cc (verify_loop_structure): Look for released
9405 SSA names in loops nb_iterations.
9406 * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
9409 2022-02-14 Richard Biener <rguenther@suse.de>
9411 PR tree-optimization/104511
9412 * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
9413 touching DFP <-> FP conversions.
9415 2022-02-14 Richard Biener <rguenther@suse.de>
9417 PR middle-end/104497
9418 * gimplify.cc (gimplify_compound_lval): Make sure the
9419 base is a non-register if needed and possible.
9421 2022-02-13 liuhongt <hongtao.liu@intel.com>
9424 * match.pd (cond_expr_convert_p): New match.
9425 * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
9426 (vect_recog_cond_expr_convert_pattern): New.
9428 2022-02-12 Jakub Jelinek <jakub@redhat.com>
9431 * asan.cc: Include tree-eh.h.
9432 (handle_builtin_alloca): Handle the case when __builtin_alloca or
9433 __builtin_alloca_with_align can throw.
9435 2022-02-12 Jakub Jelinek <jakub@redhat.com>
9438 * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
9439 and AVX512VL isn't available, move operands[1] to operands[0] first.
9441 2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
9444 * config/i386/i386.cc (type_natural_mode):
9445 Skip decimal float vector modes.
9447 2022-02-11 Iain Sandoe <iain@sandoe.co.uk>
9448 Vladimir Makarov <vmakarov@redhat.com>
9451 * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
9452 Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
9454 (legitimate_lo_sum_address_p): Likewise.
9455 * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
9456 load from an invalid lo_sum address.
9458 2022-02-11 Jakub Jelinek <jakub@redhat.com>
9460 PR tree-optimization/104499
9461 * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
9464 2022-02-11 Jakub Jelinek <jakub@redhat.com>
9466 * tree.cc (build_common_builtin_nodes): Fix up formatting in
9467 __builtin_clear_padding decl creation.
9468 * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
9469 for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
9470 argument rather than in 3rd argument.
9471 (gimplify_call_expr): Likewise. Fix up comment formatting.
9472 * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
9473 2 arguments instead of 3, take for_auto_init from the value
9476 2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com>
9478 PR rtl-optimization/104400
9479 * lra-constraints.cc (process_alt_operands): Don't make union of
9480 this_alternative_exclude_start_hard_regs when reg class in insn
9481 alternative covers other reg classes in the same alternative.
9483 2022-02-11 Jakub Jelinek <jakub@redhat.com>
9485 PR middle-end/104446
9486 * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
9489 2022-02-11 Richard Biener <rguenther@suse.de>
9491 PR middle-end/104496
9492 * internal-fn.cc (vectorized_internal_fn_supported_p):
9493 Bail out for integer mode vector types.
9495 2022-02-11 Jakub Jelinek <jakub@redhat.com>
9497 PR rtl-optimization/104459
9498 * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
9499 moving DEBUG_INSNs between bbs.
9501 2022-02-11 liuhongt <hongtao.liu@intel.com>
9503 PR tree-optimization/104479
9504 * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
9505 for the dest of uncond_op.
9507 2022-02-11 Tom de Vries <tdevries@suse.de>
9510 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
9513 2022-02-10 Qing Zhao <qing.zhao@oracle.com>
9515 PR middle-end/100775
9516 * function.cc (gen_call_used_regs_seq): Call
9517 df_update_exit_block_uses when updating df.
9519 2022-02-10 Uroš Bizjak <ubizjak@gmail.com>
9522 * config/i386/sse.md (vec_unpacks_float_lo_v4si):
9523 Change operand 1 constraint to register_operand.
9525 2022-02-10 Richard Biener <rguenther@suse.de>
9527 PR tree-optimization/104373
9528 * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
9530 * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
9531 walk kind as argument.
9532 (run_rpo_vn): Adjust.
9533 (pass_fre::execute): Likewise.
9534 * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
9535 blocks not reachable.
9536 (execute_late_warn_uninitialized): Mark all edges as
9538 (execute_early_warn_uninitialized): Use VN to compute
9540 (pass_data_early_warn_uninitialized): Enable a dump file,
9541 change dump name to warn_uninit.
9543 2022-02-10 Richard Biener <rguenther@suse.de>
9545 PR middle-end/104467
9546 * match.pd (vector extract simplification): Multiply the
9547 number of CTOR elements with the number of element elements.
9549 2022-02-10 Richard Biener <rguenther@suse.de>
9551 PR tree-optimization/104466
9552 * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
9553 for the MR_DEPENDENCE checks as intended.
9555 2022-02-10 Tom de Vries <tdevries@suse.de>
9557 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
9559 (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
9561 (define_c_enum "unspecv"): Add UNSPECV_ST.
9563 2022-02-10 Tom de Vries <tdevries@suse.de>
9565 * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
9566 * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
9567 (nvptx_mem_maybe_shared_p): New function.
9568 * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
9571 2022-02-10 Tom de Vries <tdevries@suse.de>
9574 * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
9575 driver JIT bug by using sub.s16 instead of sub.u16.
9577 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
9579 * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
9580 floating point constants as operands 1 and/or 2.
9582 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
9585 * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
9586 (sel_false<mode>): Likewise.
9587 (define_code_iterator eqne): New code iterator for EQ and NE.
9588 (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
9589 the negation of a selp instruction.
9590 (*selp<mode>_not_<code>): New define_insn_and_split to optimize
9591 the bitwise not of a selp instruction.
9592 (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
9594 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
9596 * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
9597 in machine description.
9598 (logic): Move code attribute earlier in machine description.
9599 (ilogic): New code attribute, like logic but "ior" for IOR.
9600 (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
9601 (<ilogic><mode>3): New define_insn for HSDIM logic operations.
9602 (<ilogic>bi3): New define_insn for BI mode logic operations.
9603 (define_split): Lower logic operations from integer modes to
9604 BI mode predicate operations.
9606 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
9608 * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
9609 (one_cmplbi2): New define_insn for not.pred.
9610 (mulditi3): New define_expand for signed widening multiply.
9611 (umulditi3): New define_expand for unsigned widening multiply.
9612 (smul<mode>3_highpart): New define_insn for signed highpart mult.
9613 (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
9614 (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
9615 (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
9616 (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
9617 (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
9618 (*setcc<mode>_from_not_bi): New define_insn.
9619 (*setcc_isinf<mode>): New define_insn for testp.infinite.
9620 (isinf<mode>2): New define_expand.
9622 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
9624 * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
9625 (setcc<mode>_from_bi): Additionally support QImode.
9626 (extendbi<mode>2): Additionally support QImode.
9627 (zero_extendbi<mode>2): Additionally support QImode.
9628 (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
9629 iterators for signed and unsigned, binary and unary operations.
9630 (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
9631 expanders to perform QImode operations using SImode instructions.
9632 (cstoreqi4): New define_expand.
9633 (*ext_truncsi2_qi): New define_insn.
9634 (*zext_truncsi2_qi): New define_insn.
9636 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
9638 * config/nvptx/nvptx.md (*cmpf): New define_insn.
9639 (cstorehf4): New define_expand.
9640 (fmahf4): New define_insn.
9641 (neghf2): New define_insn.
9642 (abshf2): New define_insn.
9644 2022-02-10 Gerald Pfeifer <gerald@pfeifer.com>
9646 * doc/install.texi (Specific): Change the www.bitwizard.nl
9647 reference to use https.
9649 2022-02-10 Marcel Vollweiler <marcel@codesourcery.com>
9651 * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
9652 OMP_CLAUSE_HAS_DEVICE_ADDR
9653 and handle array sections.
9654 (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
9655 * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
9656 (lower_omp_target): Same.
9657 * tree-core.h (enum omp_clause_code): Same.
9658 * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
9659 (convert_local_omp_clauses): Same.
9660 * tree-pretty-print.cc (dump_omp_clause): Same.
9663 2022-02-10 Eugene Rozenfeld <erozen@microsoft.com>
9665 * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
9666 that will result in direct recursive calls.
9668 2022-02-10 Andrew Pinski <apinski@marvell.com>
9671 * config/aarch64/aarch64.cc
9672 (aarch64_sve_expand_vector_init_handle_trailing_constants):
9673 Use CONST0_RTX instead of const0_rtx for the non-constant elements.
9675 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
9678 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
9679 Also include OPTION_MASK_ISA2_AVX2_UNSET.
9681 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
9684 * config/i386/i386-expand.cc (ix86_split_idivmod):
9685 Force operands[2] and operands[3] into a register..
9687 2022-02-09 Jeff Law <jeffreyalaw@gmail.com>
9690 * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
9691 (*v850_fnmssf4): Renamed from fnmssf4
9693 2022-02-09 Ian Lance Taylor <iant@golang.org>
9695 * godump.cc (go_force_record_alignment): Really name the alignment
9696 field "_" (complete 2021-12-29 change).
9698 2022-02-09 Bill Schmidt <wschmidt@linux.ibm.com>
9700 * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
9702 (VREPLACE_UN_UV4SI): Likewise.
9703 (VREPLACE_UN_V2DF): Likewise.
9704 (VREPLACE_UN_V2DI): Likewise.
9705 (VREPLACE_UN_V4SF): Likewise.
9706 (VREPLACE_UN_V4SI): Likewise.
9707 * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
9708 function prototypes.
9709 * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
9710 (vreplace_un_<mode>): New define_insn.
9712 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
9714 * config/aarch64/iterators.md (VDCSIF): New mode iterator.
9716 (single_wx, single_type, single_dtype, dblq): New mode attributes.
9717 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
9719 (store_pair_lanes<mode>): Likewise.
9720 (*aarch64_combine_internal<mode>): Likewise.
9721 (*aarch64_combine_internal_be<mode>): Likewise.
9722 (*aarch64_combinez<mode>): Likewise.
9723 (*aarch64_combinez_be<mode>): Likewise.
9724 * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
9725 8-byte modes for ADDR_QUERY_LDP_STP_N.
9726 (aarch64_print_operand): Likewise for %y.
9728 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
9730 * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
9731 Use aarch64_combine instead of move_lo/hi_quad. Tabify.
9732 (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
9733 (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
9734 (vec_pack_trunc_<mode>): Take general_operand elements and use
9735 aarch64_combine rather than move_lo/hi_quad to combine them.
9736 (vec_pack_trunc_df): Likewise.
9738 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
9740 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
9742 * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
9744 (*aarch64_combinez<mode>): ...this.
9745 (@aarch64_combinez_be<mode>): Rename to...
9746 (*aarch64_combinez_be<mode>): ...this.
9747 (@aarch64_vec_concat<mode>): New expander.
9748 (aarch64_combine<mode>): Use it.
9749 (@aarch64_simd_combine<mode>): Delete.
9750 * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
9751 (aarch64_expand_vector_init): Use aarch64_vec_concat.
9753 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
9755 * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
9757 * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
9758 (*aarch64_combine_internal_be<mode>): New patterns.
9760 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
9762 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
9763 (move_lo_quad_internal_be_<mode>): Delete.
9764 (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
9766 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
9768 * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
9770 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
9771 aarch64_mergeable_load_pair_p instead of inline check.
9772 * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
9773 (aarch64_check_consecutive_mems): Allow the reversed parameter
9775 (aarch64_mergeable_load_pair_p): New function.
9777 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
9779 * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
9780 element to be an aarch64_simd_nonimmediate_operand.
9782 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
9784 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
9785 aarch64_simd_nonimmediate_operand instead of
9786 aarch64_simd_general_operand.
9787 (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
9789 (@aarch64_combinez_be<mode>): Likewise.
9791 2022-02-09 Richard Biener <rguenther@suse.de>
9793 PR middle-end/104464
9794 * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
9795 throwing check to after unproblematic replacement.
9797 2022-02-09 Roger Sayle <roger@nextmovesoftware.com>
9799 PR tree-optimization/104420
9800 * match.pd (mult @0 real_zerop): Tweak conditions for constant
9801 folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
9803 2022-02-09 Jakub Jelinek <jakub@redhat.com>
9806 * dwarf2out.cc (mangle_referenced_decls): New function.
9807 (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
9808 early_dwarf. Instead walk the initializer and try to mangle vars or
9809 functions referenced from it.
9811 2022-02-09 Andrew MacLeod <amacleod@redhat.com>
9813 PR tree-optimization/104288
9814 * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
9815 (non_null_ref::adjust_range): Move to header.
9816 (ranger_cache::range_of_def): Don't check non-null.
9817 (ranger_cache::entry_range): Don't check non-null.
9818 (ranger_cache::range_on_edge): Check for nonnull on normal edges.
9819 (ranger_cache::update_to_nonnull): New.
9820 (non_null_loadstore): New.
9821 (ranger_cache::block_apply_nonnull): New.
9822 * gimple-range-cache.h (class non_null_ref): Update prototypes.
9823 (non_null_ref::adjust_range): Move to here and inline.
9824 (class ranger_cache): Update prototypes.
9825 * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
9826 not search dominators.
9827 (path_range_query::adjust_for_non_null_uses): Ditto.
9828 * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
9829 def overrides. Do not check nonnull.
9830 (gimple_ranger::range_on_entry): Check dominators for nonnull.
9831 (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
9832 (gimple_ranger::register_side_effects): New.
9833 * gimple-range.h (gimple_ranger::register_side_effects): New.
9834 * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
9836 2022-02-09 Richard Biener <rguenther@suse.de>
9838 PR tree-optimization/104445
9839 PR tree-optimization/102832
9840 * optabs-query.h (can_vec_extract): New.
9841 * optabs-query.cc (can_vec_extract): Likewise.
9842 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
9843 we can extract a hi/lo part from the larger vector, rework
9844 check iteration from larger to smaller sizes.
9846 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
9850 * config/i386/gnu-property.cc: Include "i386-protos.h".
9851 (file_end_indicate_exec_stack_and_gnu_property): Generate
9852 a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
9853 nodirect_extern_access attribute.
9854 * config/i386/i386-options.cc
9855 (handle_nodirect_extern_access_attribute): New function.
9856 (ix86_attribute_table): Add nodirect_extern_access attribute.
9857 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
9859 (ix86_has_no_direct_extern_access): New.
9860 * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
9861 (ix86_force_load_from_GOT_p): Add a bool argument to indicate
9862 call operand. Force non-call load from GOT for
9863 -mno-direct-extern-access or nodirect_extern_access attribute.
9864 (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
9865 for -mno-direct-extern-access or nodirect_extern_access attribute.
9866 (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
9868 (asm_preferred_eh_data_format): Use PC-relative format for
9869 -mno-direct-extern-access to avoid copy relocation. Check
9870 ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
9871 (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
9872 true for -mno-direct-extern-access or nodirect_extern_access
9873 attribute. Don't treat protected data as extern and avoid copy
9874 relocation on common symbol with -mno-direct-extern-access or
9875 nodirect_extern_access attribute.
9876 (ix86_reloc_rw_mask): New to avoid copy relocation for
9877 -mno-direct-extern-access.
9878 (TARGET_ASM_RELOC_RW_MASK): New.
9879 * config/i386/i386.opt: Add -mdirect-extern-access.
9880 * doc/extend.texi: Document nodirect_extern_access attribute.
9881 * doc/invoke.texi: Document -m[no-]direct-extern-access.
9883 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
9886 * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
9887 (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
9888 Call ix86_avx_u128_mode_source to check mode for each component
9891 2022-02-09 liuhongt <hongtao.liu@intel.com>
9894 * config/i386/sse.md (<insn><mode>3): lowpart_subreg
9895 operands[2] from SImode to QImode.
9897 2022-02-09 Richard Biener <rguenther@suse.de>
9899 PR middle-end/104450
9900 * gimple-isel.cc: Pass cfun around.
9901 (+gimple_expand_vec_cond_expr): Do not combine a throwing
9902 comparison with the select.
9904 2022-02-09 Richard Biener <rguenther@suse.de>
9907 * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
9908 folding for NULL LHS.
9910 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
9912 PR rtl-optimization/104198
9913 PR rtl-optimization/104153
9914 * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
9915 using it directly. Rework comparison handling and always
9916 perform a second pass.
9918 2022-02-08 Jakub Jelinek <jakub@redhat.com>
9921 * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
9922 split1 pass has finished already.
9924 2022-02-08 Bill Schmidt <wschmidt@linux.ibm.com>
9926 * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
9927 * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
9928 * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
9929 (vmsumcud): New define_insn.
9931 2022-02-08 Tom de Vries <tdevries@suse.de>
9933 * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
9934 * config/nvptx/nvptx.h (TARGET_SM70): Define.
9936 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
9938 * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
9940 * config/s390/s390.md: Use paradoxical subreg.
9942 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
9944 * combine.cc (reg_subword_p): Check for paradoxical subreg.
9946 2022-02-08 Tom de Vries <tdevries@suse.de>
9949 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
9950 and PTX_VERSION_4_2.
9951 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
9952 (default_ptx_version_option, ptx_version_to_string)
9953 (sm_version_to_string, handle_ptx_version_option): New function.
9954 (nvptx_option_override): Call handle_ptx_version_option.
9955 (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
9956 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
9957 (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
9958 * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
9960 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
9962 * doc/install.texi (Configuration): Document `--with-isa-spec='
9964 * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
9966 (RISC-V Options): Document it.
9968 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
9970 * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
9972 2022-02-08 Tom de Vries <tdevries@suse.de>
9974 * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
9976 2022-02-08 Tom de Vries <tdevries@suse.de>
9979 * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
9980 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
9981 change is validated.
9982 (nvptx_mem_local_p): New function.
9983 * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
9984 (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
9985 (define_insn "atomic_compare_and_swap<mode>_1_local"): New
9986 non-atomic, non-predicable define_insn, factored out of ...
9987 (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
9988 Make predicable again.
9989 (define_expand "atomic_compare_and_swap<mode>"): Use
9990 atomic_compare_and_swap<mode>_1_local.
9992 2022-02-08 liuhongt <hongtao.liu@intel.com>
9994 PR rtl-optimization/104059
9995 * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
9996 for a more expensive reg-reg move.
9998 2022-02-07 Tamar Christina <tamar.christina@arm.com>
10000 * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
10001 vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
10002 * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
10003 (usdot_laneq, sudot_laneq): New.
10004 * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
10005 (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
10007 2022-02-07 Tamar Christina <tamar.christina@arm.com>
10009 * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
10010 vdot_laneq_s32, vdotq_laneq_s32): New.
10011 * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
10012 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
10013 (<sup>dot_prod<vsi2qi>): Re-order rtl.
10014 (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
10015 (neon_<sup>dot_laneq<vsi2qi>): New.
10017 2022-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
10020 * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
10021 if always_inline is set. Don't inline when tune differs without
10024 2022-02-07 Richard Biener <rguenther@suse.de>
10026 PR middle-end/104402
10027 * gimple-expr.cc (is_gimple_condexpr): _Complex typed
10028 compares are not valid.
10029 * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
10030 check is_gimple_condexpr.
10032 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
10035 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
10036 hunk affecting VSX and ALTIVEC to appropriate place.
10038 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
10041 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
10042 MMA if !TARGET_VSX.
10044 2022-02-06 Jakub Jelinek <jakub@redhat.com>
10048 * fold-const.h (folding_initializer): Adjust comment.
10049 (folding_cxx_constexpr): Declare.
10050 * fold-const.cc (folding_initializer): Adjust comment.
10051 (folding_cxx_constexpr): New variable.
10052 (address_compare): Restrict the decl vs. STRING_CST
10053 or vice versa or STRING_CST vs. STRING_CST or
10054 is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
10055 Punt for FUNCTION_DECLs with non-zero offsets. If folding_initializer,
10056 assume non-aliased functions have non-zero size and have different
10057 addresses. For folding_cxx_constexpr, punt on comparisons of start
10058 of some object and end of another one, regardless whether it is a decl
10059 or string literal. Also punt for folding_cxx_constexpr on
10060 STRING_CST vs. STRING_CST comparisons if the two literals could be
10063 2022-02-05 Jakub Jelinek <jakub@redhat.com>
10065 PR tree-optimization/104389
10066 * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
10069 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
10071 * configure.ac: Fix detection for zifencei support.
10072 * configure: Regenerate.
10074 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
10077 * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
10078 (all_defaults): Add isa_spec.
10079 * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
10081 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
10083 * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
10084 parameters instead of arglist and nargs. Simplify accordingly. Remove
10085 unnecessary test for argument count mismatch.
10086 (resolve_vec_cmpne): Likewise.
10087 (resolve_vec_adde_sube): Likewise.
10088 (resolve_vec_addec_subec): Likewise.
10089 (altivec_resolve_overloaded_builtin): Move overload special handling
10090 after the gathering of arguments into args[] and types[] and the test
10091 for correct number of arguments. Don't perform the test for correct
10092 number of arguments for certain special cases. Call the other special
10093 cases with args and types instead of arglist and nargs.
10095 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
10098 * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
10099 3.1): Provide consistent type names. Remove unnecessary semicolons.
10100 Fix bad line breaks.
10102 2022-02-04 Jakub Jelinek <jakub@redhat.com>
10105 * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
10106 adjust mangling of __builtin*printf_chk.
10108 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
10110 * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
10112 2022-02-04 Richard Biener <rguenther@suse.de>
10113 Bin Cheng <bin.cheng@linux.alibaba.com>
10115 PR tree-optimization/100499
10116 * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
10118 * fold-const.cc (multiple_of_p): Likewise. Honor it for
10119 MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
10120 switching to false for conversions.
10121 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
10122 claim the outermost expression does not wrap when calling
10123 multiple_of_p. Refactor the check done to check the
10124 original IV, avoiding a bias that might wrap.
10126 2022-02-04 Richard Biener <rguenther@suse.de>
10128 * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
10131 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
10134 * dwarf2out.cc (dwarf2out_finish): Empty base_types.
10135 (dwarf2out_early_finish): Likewise.
10137 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
10139 PR tree-optimization/104356
10140 * match.pd (X / bool_range_Y is X): Add guard.
10141 (X / X is one): Likewise.
10142 (X / abs (X) is X < 0 ? -1 : 1): Likewise.
10143 (X / -X is -1): Likewise.
10144 (1 / X -> X == 1): Likewise.
10146 2022-02-04 Richard Biener <rguenther@suse.de>
10148 PR tree-optimization/103641
10149 * tree-vect-patterns.cc (vect_synth_mult_by_constant):
10150 Pass the vector mode to choose_mult_variant.
10152 2022-02-04 Roger Sayle <roger@nextmovesoftware.com>
10154 PR rtl-optimization/101885
10155 * combine.cc (try_combine): When splitting a parallel into two
10156 sequential sets, check not only that the first doesn't clobber
10157 the second but also that the second doesn't clobber the first.
10159 2022-02-04 Richard Biener <rguenther@suse.de>
10161 PR middle-end/90348
10162 PR middle-end/104092
10163 * tree-core.h (clobber_kind): New enum.
10164 (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
10165 * tree.h (CLOBBER_KIND): Add.
10166 (build_clobber): Add clobber kind argument, defaulted to
10168 * tree.cc (build_clobber): Likewise.
10169 * gimple.h (gimple_clobber_p): New overload with specified kind.
10170 * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
10172 * tree-streamer-out.cc (streamer_write_tree_bitfields):
10174 * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
10175 * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
10177 (gimplify_target_expr): Likewise.
10178 * tree-inline.cc (expand_call_inline): Likewise.
10179 * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
10180 * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
10181 CLOBBER_EOL clobbers as ending lifetime of storage.
10183 2022-02-04 Martin Sebor <msebor@redhat.com>
10185 * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
10188 2022-02-03 Martin Sebor <msebor@redhat.com>
10190 PR middle-end/104260
10191 * passes.def (pass_warn_access): Adjust pass placement.
10193 2022-02-03 Uroš Bizjak <ubizjak@gmail.com>
10196 * config/i386/i386.cc (find_drap_reg): For 32bit targets
10197 return DI_REG if function uses __builtin_eh_return.
10199 2022-02-03 Martin Sebor <msebor@redhat.com>
10201 * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
10202 (pass_wrestrict::m_ptr_qry): New member.
10203 (wrestrict_walk): Rename...
10204 (pass_wrestrict::check_block): ...to this.
10205 (pass_wrestrict::execute): Set up and tear down pointer_query and
10207 (builtin_memref::builtin_memref): Change ctor argument. Simplify.
10208 (builtin_access::builtin_access): Same.
10209 (builtin_access::m_ptr_qry): New member.
10210 (check_call): Rename...
10211 (pass_wrestrict::check_call): ...to this.
10212 (check_bounds_or_overlap): Change argument.
10213 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
10215 2022-02-03 Martin Sebor <msebor@redhat.com>
10217 * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
10219 (array_bounds_checker::get_value_range): Use new member.
10220 (array_bounds_checker::check_mem_ref): Same.
10221 * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
10223 (array_bounds_checker::m_ptr_query): New member.
10225 2022-02-03 Martin Sebor <msebor@redhat.com>
10227 * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
10228 pointer_query cache.
10229 * pointer-query.cc (pointer_query::pointer_query): Remove cache
10230 argument. Zero-initialize new cache member.
10231 (pointer_query::get_ref): Replace cache pointer with direct access.
10232 (pointer_query::put_ref): Same.
10233 (pointer_query::flush_cache): Same.
10234 (pointer_query::dump): Same.
10235 * pointer-query.h (class pointer_query): Remove cache argument from
10236 ctor. Change cache pointer to cache subobject member.
10237 * tree-ssa-strlen.cc: Remove pointer_query cache.
10239 2022-02-03 Martin Sebor <msebor@redhat.com>
10241 PR tree-optimization/104119
10242 * gimple-ssa-sprintf.cc (struct directive): Change argument type.
10243 (format_none): Same.
10244 (format_percent): Same.
10245 (format_integer): Same.
10246 (format_floating): Same.
10247 (get_string_length): Same.
10248 (format_character): Same.
10249 (format_string): Same.
10250 (format_plain): Same.
10251 (format_directive): Same.
10252 (compute_format_length): Same.
10253 (handle_printf_call): Same.
10254 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same. Call
10256 (get_range_strlen_phi): Same.
10257 (get_maxbound): New function.
10258 (strlen_pass::get_len_or_size): Adjust to parameter change.
10259 * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
10261 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
10264 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
10265 test for !rs6000_fold_gimple.
10266 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
10267 * config/rs6000/rs6000.opt (mfold-gimple): Remove.
10269 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
10272 * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
10273 endianness for vclzlsbb and vctzlsbb.
10274 * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
10275 default pattern and indicate a different pattern will be used for
10277 (VCLZLSBB_V4SI): Likewise.
10278 (VCLZLSBB_V8HI): Likewise.
10279 (VCTZLSBB_V16QI): Likewise.
10280 (VCTZLSBB_V4SI): Likewise.
10281 (VCTZLSBB_V8HI): Likewise.
10283 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
10285 * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
10286 * config/rs6000/rs6000-builtin.cc: New file, containing code moved
10288 * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
10290 (cpu_supports_info): Likewise.
10291 (rs6000_type_string): Likewise.
10292 (altivec_expand_predicate_builtin): Likewise.
10293 (rs6000_htm_spr_icode): Likewise.
10294 (altivec_expand_vec_init_builtin): Likewise.
10295 (get_element_number): Likewise.
10296 (altivec_expand_vec_set_builtin): Likewise.
10297 (altivec_expand_vec_ext_builtin): Likewise.
10298 (rs6000_invalid_builtin): Likewise.
10299 (rs6000_fold_builtin): Likewise.
10300 (fold_build_vec_cmp): Likewise.
10301 (fold_compare_helper): Likewise.
10302 (map_to_integral_tree_type): Likewise.
10303 (fold_mergehl_helper): Likewise.
10304 (fold_mergeeo_helper): Likewise.
10305 (rs6000_builtin_valid_without_lhs): Likewise.
10306 (rs6000_builtin_is_supported): Likewise.
10307 (rs6000_gimple_fold_mma_builtin): Likewise.
10308 (rs6000_gimple_fold_builtin): Likewise.
10309 (rs6000_expand_ldst_mask): Likewise.
10310 (cpu_expand_builtin): Likewise.
10311 (elemrev_icode): Likewise.
10312 (ldv_expand_builtin): Likewise.
10313 (lxvrse_expand_builtin): Likewise.
10314 (lxvrze_expand_builtin): Likewise.
10315 (stv_expand_builtin): Likewise.
10316 (mma_expand_builtin): Likewise.
10317 (htm_spr_num): Likewise.
10318 (htm_expand_builtin): Likewise.
10319 (rs6000_expand_builtin): Likewise.
10320 (rs6000_vector_type): Likewise.
10321 (rs6000_init_builtins): Likewise. Remove initialization of
10322 builtin_mode_to_type entries.
10323 (rs6000_builtin_decl): Move to rs6000-builtin.cc.
10324 * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
10325 external declaration.
10326 (rs6000_builtin_md_vectorized_function): Likewise.
10327 (rs6000_builtin_reciprocal): Likewise.
10328 (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
10329 (rs6000_builtin_types): Likewise.
10330 (builtin_mode_to_type): Remove.
10331 (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc. Remove
10333 (rs6000_builtin_md_vectorized_function): Likewise.
10334 (rs6000_builtin_reciprocal): Likewise.
10335 * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
10336 * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
10338 2022-02-03 Richard Biener <rguenther@suse.de>
10341 * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
10342 together via DECL_ABSTRACT_ORIGIN.
10344 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
10346 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
10347 message for RES_BITS case.
10349 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
10351 * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
10353 2022-02-03 Jakub Jelinek <jakub@redhat.com>
10355 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
10356 mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
10358 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
10360 * cfganal.cc (verify_marked_backedges): New.
10361 * cfganal.h (verify_marked_backedges): New.
10362 * gimple-range-path.cc (path_range_query::path_range_query):
10363 Verify freshness of back edges.
10364 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
10365 mark_dfs_back_edges.
10366 * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
10367 path_range_query construction after backedges have been
10370 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
10372 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
10375 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
10377 * config/aarch64/iterators.md (VALL_F16MOV): Delete.
10378 * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
10381 2022-02-03 Martin Liska <mliska@suse.cz>
10383 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
10384 Change subject and object in the error message.
10385 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
10388 2022-02-03 Martin Liska <mliska@suse.cz>
10390 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
10391 Use the error message for i386 target.
10393 2022-02-03 Jakub Jelinek <jakub@redhat.com>
10395 PR tree-optimization/104334
10396 * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
10397 and rh_range type to widest_int and subtract in widest_int. Remove
10398 ov_rh, ov_lh and sign vars, always perform comparisons as signed
10399 and use >, < and == operators for it.
10401 2022-02-03 Martin Sebor <msebor@redhat.com>
10403 * common.opt (-Wuse-after-free): Correct typos.
10405 2022-02-02 David Malcolm <dmalcolm@redhat.com>
10408 * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
10409 -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
10410 -ftrivial-auto-var-init= doesn't suppress warnings.
10412 2022-02-02 Martin Liska <mliska@suse.cz>
10414 * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
10416 2022-02-02 Bernd Kuhls <bernd.kuhls@t-online.de>
10419 * config/or1k/linux.h (CPP_SPEC): Define.
10421 2022-02-02 Tamar Christina <tamar.christina@arm.com>
10423 PR tree-optimization/102819
10424 PR tree-optimization/103169
10425 * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
10428 2022-02-02 Tamar Christina <tamar.christina@arm.com>
10430 PR tree-optimization/102819
10431 PR tree-optimization/103169
10432 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
10434 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
10436 2022-02-02 Tamar Christina <tamar.christina@arm.com>
10438 PR tree-optimization/102819
10439 PR tree-optimization/103169
10440 * doc/md.texi: Update docs for cfms, cfma.
10441 * tree-data-ref.h (same_data_refs): Accept optional offset.
10442 * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
10444 (vect_normalize_conj_loc): Remove.
10445 (is_eq_or_top): Change to take two nodes.
10446 (enum _conj_status, compatible_complex_nodes_p,
10447 vect_validate_multiplication): New.
10448 (class complex_add_pattern, complex_add_pattern::matches,
10449 complex_add_pattern::recognize, class complex_mul_pattern,
10450 complex_mul_pattern::recognize, class complex_fms_pattern,
10451 complex_fms_pattern::recognize, class complex_operations_pattern,
10452 complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
10454 (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
10455 cache and use new validation code.
10456 * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
10457 vect_analyze_slp): Pass along cache.
10458 (compatible_calls_p): Expose.
10459 * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
10460 slp_compat_nodes_map_t): New.
10461 (class vect_pattern): Update signatures include new cache.
10463 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
10465 * config/cris/cris.cc (cris_preferred_reload_class): Reject
10466 "eliminated" registers and small-enough constants unless
10467 reloaded into a class that is a subset of GENERAL_REGS.
10468 * config/cris/cris.md (attribute "cpu_variant"): New.
10469 (attribute "enabled"): Conditionalize on a matching attribute
10470 cpu_variant, if specified.
10471 ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
10472 memory, add cpu-variant-enabled variants for "r" alternatives on
10473 the far side of the "x" alternatives, preferring the "x" ones
10474 only for variants where MOF is present (in addition to SRP).
10476 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
10478 * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
10479 extra cost for ALL_REGS.
10481 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
10483 * config/cris/constraints.md (define_register_constraint "b"): Now
10485 * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
10486 * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
10487 (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
10488 and SPEC_GENNONACR_REGS.
10489 * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
10490 ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
10492 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
10494 * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
10495 Conditionalize on (sub-)register operands or operand 1 being 0.
10497 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
10499 * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
10500 (MUL_BUG_ASM_DEFAULT): New macro.
10501 (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
10502 * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
10505 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
10507 * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
10510 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
10512 * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
10514 2022-02-01 Andrew Pinski <apinski@marvell.com>
10516 * doc/install.texi:
10518 2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com>
10520 * config/s390/s390.cc (s390_code_end): Do not switch back to
10523 2022-02-01 Jakub Jelinek <jakub@redhat.com>
10526 * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
10527 rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
10528 * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
10529 GTY((user)) for struct bifdata and struct ovlddata. Instead add
10530 GTY((skip(""))) to members with pointer and enum types that don't need
10531 to be tracked. Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
10532 declarations. Don't emit gt_ggc_mx and gt_pch_nx declarations.
10533 (write_extern_fntype, write_fntype): Remove.
10534 (write_fntype_init): Emit the fntype vars as automatic vars instead
10535 of file scope ones.
10536 (write_header_file): Don't iterate with write_extern_fntype.
10537 (write_init_file): Don't iterate with write_fntype. Don't emit
10538 gt_ggc_mx and gt_pch_nx definitions.
10540 2022-02-01 Jason Merrill <jason@redhat.com>
10542 * tree.h (struct tree_vec_map_cache_hasher): Move from...
10543 * tree.cc (struct tree_vec_map_cache_hasher): ...here.
10545 2022-02-01 Tom de Vries <tdevries@suse.de>
10547 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
10548 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
10549 UNSPECV_UNIFORM_WARP_CHECK.
10550 (define_insn "nvptx_uniform_warp_check"): New define_insn.
10552 2022-02-01 Tom de Vries <tdevries@suse.de>
10554 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
10555 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
10557 (define_insn "nvptx_warpsync"): New define_insn.
10559 2022-02-01 Tom de Vries <tdevries@suse.de>
10561 * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
10563 2022-02-01 Tom de Vries <tdevries@suse.de>
10565 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
10566 * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
10567 * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
10568 insn for TARGET_PTX_6_0.
10570 2022-02-01 Tom de Vries <tdevries@suse.de>
10573 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
10576 2022-02-01 Tom de Vries <tdevries@suse.de>
10578 * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
10579 (define_insn "atomic_exchange<mode>")
10580 (define_insn "atomic_fetch_add<mode>")
10581 (define_insn "atomic_fetch_addsf")
10582 (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
10583 if memory operands is frame-relative.
10585 2022-02-01 Tom de Vries <tdevries@suse.de>
10587 * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
10588 NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
10590 (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
10591 (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
10592 NVPTX_BUILTIN_MEMBAR_CTA.
10593 (nvptx_lockfull_update): Add level parameter. Emit barriers.
10594 (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
10595 nvptx_lockfull_update.
10596 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
10598 (define_expand "nvptx_membar_gl"): New expand.
10599 (define_insn "*nvptx_membar_gl"): New insn.
10601 2022-02-01 Martin Liska <mliska@suse.cz>
10603 * doc/install.texi: Remove option for GCC < 4.8.
10605 2022-02-01 Jakub Jelinek <jakub@redhat.com>
10607 PR middle-end/104307
10608 * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
10609 stmts to uses vector, just set vec_cond_expr_only to false for
10610 non-VEC_COND_EXPRs instead of pushing them into uses. Treat
10611 VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
10612 like non-VEC_COND_EXPRs.
10614 2022-02-01 Bill Schmidt <wschmidt@linux.ibm.com>
10616 * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
10617 (VEC_BLENDV): Likewise.
10618 (VEC_BPERM): Likewise.
10619 (VEC_CFUGE): Likewise.
10620 (VEC_CIPHER_BE): Likewise.
10621 (VEC_CIPHERLAST_BE): Likewise.
10622 (VEC_CLRL): Likewise.
10623 (VEC_CLRR): Likewise.
10624 (VEC_CMPNEZ): Likewise.
10625 (VEC_CNTLZ): Likewise.
10626 (VEC_CNTLZM): Likewise.
10627 (VEC_CNTTZM): Likewise.
10628 (VEC_CNTLZ_LSBB): Likewise.
10629 (VEC_CNTM): Likewise.
10630 (VEC_CNTTZ): Likewise.
10631 (VEC_CNTTZ_LSBB): Likewise.
10632 (VEC_CONVERT_4F32_8F16): Likewise.
10633 (VEC_DIV): Likewise.
10634 (VEC_DIVE): Likewise.
10635 (VEC_EQV): Likewise.
10636 (VEC_EXPANDM): Likewise.
10637 (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
10638 (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
10639 (VEC_EXTRACTH): Likewise.
10640 (VEC_EXTRACTL): Likewise.
10641 (VEC_EXTRACTM): Likewise.
10642 (VEC_EXTRACT4B): Likewise.
10643 (VEC_EXTULX): Likewise.
10644 (VEC_EXTURX): Likewise.
10645 (VEC_FIRSTMATCHINDEX): Likewise.
10646 (VEC_FIRSTMACHOREOSINDEX): Likewise.
10647 (VEC_FIRSTMISMATCHINDEX): Likewise.
10648 (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
10649 (VEC_GB): Likewise.
10650 (VEC_GENBM): Likewise.
10651 (VEC_GENHM): Likewise.
10652 (VEC_GENWM): Likewise.
10653 (VEC_GENDM): Likewise.
10654 (VEC_GENQM): Likewise.
10655 (VEC_GENPCVM): Likewise.
10656 (VEC_GNB): Likewise.
10657 (VEC_INSERTH): Likewise.
10658 (VEC_INSERTL): Likewise.
10659 (VEC_INSERT4B): Likewise.
10660 (VEC_LXVL): Likewise.
10661 (VEC_MERGEE): Likewise.
10662 (VEC_MERGEO): Likewise.
10663 (VEC_MOD): Likewise.
10664 (VEC_MSUB): Likewise.
10665 (VEC_MULH): Likewise.
10666 (VEC_NAND): Likewise.
10667 (VEC_NCIPHER_BE): Likewise.
10668 (VEC_NCIPHERLAST_BE): Likewise.
10669 (VEC_NEARBYINT): Likewise.
10670 (VEC_NMADD): Likewise.
10671 (VEC_ORC): Likewise.
10672 (VEC_PDEP): Likewise.
10673 (VEC_PERMX): Likewise.
10674 (VEC_PEXT): Likewise.
10675 (VEC_POPCNT): Likewise.
10676 (VEC_PARITY_LSBB): Likewise.
10677 (VEC_REPLACE_ELT): Likewise.
10678 (VEC_REPLACE_UN): Likewise.
10679 (VEC_REVB): Likewise.
10680 (VEC_RINT): Likewise.
10681 (VEC_RLMI): Likewise.
10682 (VEC_RLNM): Likewise.
10683 (VEC_SBOX_BE): Likewise.
10684 (VEC_SIGNEXTI): Likewise.
10685 (VEC_SIGNEXTLL): Likewise.
10686 (VEC_SIGNEXTQ): Likewise.
10687 (VEC_SLDB): Likewise.
10688 (VEC_SLV): Likewise.
10689 (VEC_SPLATI): Likewise.
10690 (VEC_SPLATID): Likewise.
10691 (VEC_SPLATI_INS): Likewise.
10692 (VEC_SQRT): Likewise.
10693 (VEC_SRDB): Likewise.
10694 (VEC_SRV): Likewise.
10695 (VEC_STRIL): Likewise.
10696 (VEC_STRIL_P): Likewise.
10697 (VEC_STRIR): Likewise.
10698 (VEC_STRIR_P): Likewise.
10699 (VEC_STXVL): Likewise.
10700 (VEC_TERNARYLOGIC): Likewise.
10701 (VEC_TEST_LSBB_ALL_ONES): Likewise.
10702 (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
10703 (VEC_VEE): Likewise.
10704 (VEC_VES): Likewise.
10705 (VEC_VIE): Likewise.
10706 (VEC_VPRTYB): Likewise.
10707 (VEC_VSCEEQ): Likewise.
10708 (VEC_VSCEGT): Likewise.
10709 (VEC_VSCELT): Likewise.
10710 (VEC_VSCEUO): Likewise.
10711 (VEC_VSEE): Likewise.
10712 (VEC_VSES): Likewise.
10713 (VEC_VSIE): Likewise.
10714 (VEC_VSTDC): Likewise.
10715 (VEC_VSTDCN): Likewise.
10716 (VEC_VTDC): Likewise.
10717 (VEC_XL): Likewise.
10718 (VEC_XL_BE): Likewise.
10719 (VEC_XL_LEN_R): Likewise.
10720 (VEC_XL_SEXT): Likewise.
10721 (VEC_XL_ZEXT): Likewise.
10722 (VEC_XST): Likewise.
10723 (VEC_XST_BE): Likewise.
10724 (VEC_XST_LEN_R): Likewise.
10725 (VEC_XST_TRUNC): Likewise.
10726 (VEC_XXPERMDI): Likewise.
10727 (VEC_XXSLDWI): Likewise.
10728 (VEC_TSTSFI_EQ_DD): Likewise.
10729 (VEC_TSTSFI_EQ_TD): Likewise.
10730 (VEC_TSTSFI_GT_DD): Likewise.
10731 (VEC_TSTSFI_GT_TD): Likewise.
10732 (VEC_TSTSFI_LT_DD): Likewise.
10733 (VEC_TSTSFI_LT_TD): Likewise.
10734 (VEC_TSTSFI_OV_DD): Likewise.
10735 (VEC_TSTSFI_OV_TD): Likewise.
10736 (VEC_VADDCUQ): Likewise.
10737 (VEC_VADDECUQ): Likewise.
10738 (VEC_VADDEUQM): Likewise.
10739 (VEC_VADDUDM): Likewise.
10740 (VEC_VADDUQM): Likewise.
10741 (VEC_VBPERMQ): Likewise.
10742 (VEC_VCLZB): Likewise.
10743 (VEC_VCLZD): Likewise.
10744 (VEC_VCLZH): Likewise.
10745 (VEC_VCLZW): Likewise.
10746 (VEC_VCTZB): Likewise.
10747 (VEC_VCTZD): Likewise.
10748 (VEC_VCTZH): Likewise.
10749 (VEC_VCTZW): Likewise.
10750 (VEC_VEEDP): Likewise.
10751 (VEC_VEESP): Likewise.
10752 (VEC_VESDP): Likewise.
10753 (VEC_VESSP): Likewise.
10754 (VEC_VIEDP): Likewise.
10755 (VEC_VIESP): Likewise.
10756 (VEC_VPKSDSS): Likewise.
10757 (VEC_VPKSDUS): Likewise.
10758 (VEC_VPKUDUM): Likewise.
10759 (VEC_VPKUDUS): Likewise.
10760 (VEC_VPOPCNT): Likewise.
10761 (VEC_VPOPCNTB): Likewise.
10762 (VEC_VPOPCNTD): Likewise.
10763 (VEC_VPOPCNTH): Likewise.
10764 (VEC_VPOPCNTW): Likewise.
10765 (VEC_VPRTYBD): Likewise.
10766 (VEC_VPRTYBQ): Likewise.
10767 (VEC_VPRTYBW): Likewise.
10768 (VEC_VRLD): Likewise.
10769 (VEC_VSLD): Likewise.
10770 (VEC_VSRAD): Likewise.
10771 (VEC_VSRD): Likewise.
10772 (VEC_VSTDCDP): Likewise.
10773 (VEC_VSTDCNDP): Likewise.
10774 (VEC_VSTDCNQP): Likewise.
10775 (VEC_VSTDCNSP): Likewise.
10776 (VEC_VSTDCQP): Likewise.
10777 (VEC_VSTDCSP): Likewise.
10778 (VEC_VSUBECUQ): Likewise.
10779 (VEC_VSUBEUQM): Likewise.
10780 (VEC_VSUBUDM): Likewise.
10781 (VEC_VSUBUQM): Likewise.
10782 (VEC_VTDCDP): Likewise.
10783 (VEC_VTDCSP): Likewise.
10784 (VEC_VUPKHSW): Likewise.
10785 (VEC_VUPKLSW): Likewise.
10787 2022-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
10789 PR rtl-optimization/101260
10790 * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
10793 2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang>
10795 PR middle-end/95115
10796 * fold-const.cc (const_binop): Do not fold NaN result from
10799 2022-02-01 Tom de Vries <tdevries@suse.de>
10801 * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
10802 -ftree-loop-distribute-patterns.
10803 (loop_distribution::execute): Don't call transform_reduction_loop for
10804 -fno-tree-loop-distribute-patterns.
10806 2022-01-31 Andrew Pinski <apinski@marvell.com>
10808 * fold-const.h (operand_compare::operand_equal_p):
10809 Fix comment about OEP_* flags.
10811 2022-01-31 Jakub Jelinek <jakub@redhat.com>
10814 * config/rs6000/aix.h (OPTION_GLIBC): Remove.
10815 * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
10816 * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
10817 if not already defined.
10819 2022-01-31 Martin Sebor <msebor@redhat.com>
10821 PR middle-end/104232
10822 * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
10823 Handle PHIs. Add a synonymous overload.
10824 (pass_waccess::check_pointer_uses): Call pointers_related_p.
10826 2022-01-31 Richard Biener <rguenther@suse.de>
10828 PR tree-optimization/100499
10829 * fold-const.cc (multiple_of_p): Pass the correct type of
10830 the expression to the recursive invocation of multiple_of_p
10831 for conversions and use CASE_CONVERT.
10833 2022-01-31 Eric Botcazou <ebotcazou@adacore.com>
10836 * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
10838 2022-01-31 Richard Biener <rguenther@suse.de>
10840 PR tree-optimization/100499
10841 * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
10842 on poly-ints instead of multiple_of_p.
10843 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
10844 (non_rewritable_mem_ref_base): Likewise.
10845 (non_rewritable_lvalue_p): Likewise.
10846 (execute_update_addresses_taken): Likewise.
10848 2022-01-29 Jakub Jelinek <jakub@redhat.com>
10849 Andrew Pinski <apinski@marvell.com>
10851 PR tree-optimization/104279
10852 PR tree-optimization/104280
10853 PR tree-optimization/104281
10854 * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
10855 boolean_type_node and convert to type. Formatting fixes.
10857 2022-01-28 Yoshinori Sato <yo-satoh@sios.com>
10859 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
10861 2022-01-28 Navid Rahimi <navidrahimi@microsoft.com>
10863 PR tree-optimization/103514
10864 * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
10865 (a & b) == (a ^ b) -> !(a | b): New optimization.
10867 2022-01-28 Marek Polacek <polacek@redhat.com>
10869 * doc/invoke.texi: Update -Wbidi-chars documentation.
10871 2022-01-28 Iain Sandoe <iain@sandoe.co.uk>
10873 * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
10875 2022-01-28 Zhao Wei Liew <zhaoweiliew@gmail.com>
10877 PR tree-optimization/95424
10878 * match.pd: Simplify 1 / X where X is an integer.
10880 2022-01-28 Jakub Jelinek <jakub@redhat.com>
10882 PR tree-optimization/104263
10883 * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
10884 cfun->can_throw_non_call_exceptions && cfun->eh test whether
10885 last non-debug stmt in the bb is store_valid_for_store_merging_p
10886 rather than last stmt.
10888 2022-01-28 Martin Liska <mliska@suse.cz>
10890 * diagnostic.cc (diagnostic_action_after_output): Remove extra
10893 2022-01-28 Martin Liska <mliska@suse.cz>
10895 * config/rs6000/host-darwin.cc (segv_crash_handler):
10896 Do not use leading capital letter.
10897 (segv_handler): Likewise.
10898 * ipa-sra.cc (verify_splitting_accesses): Likewise.
10899 * varasm.cc (get_section): Likewise.
10901 2022-01-28 Richard Biener <rguenther@suse.de>
10903 PR tree-optimization/104267
10904 * tree-vect-stmts.cc (vectorizable_call): Properly use the
10905 per-argument determined vector type for externals and
10908 2022-01-28 Richard Biener <rguenther@suse.de>
10910 PR tree-optimization/104263
10911 * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
10912 Purge edges also when !cfun->has_nonlocal_label
10913 and !cfun->calls_setjmp.
10915 2022-01-28 Maciej W. Rozycki <macro@embecosm.com>
10917 * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
10920 2022-01-28 Jakub Jelinek <jakub@redhat.com>
10923 * cfgrtl.cc (loc_equal): New function.
10924 (unique_locus_on_edge_between_p): Use it.
10926 2022-01-28 Richard Biener <rguenther@suse.de>
10928 * cfganal.h (mark_dfs_back_edges): Provide API with struct
10930 * cfganal.cc (mark_dfs_back_edges): Take a struct function
10931 to work on, add a wrapper passing cfun.
10932 * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
10933 uses with fun which is already passed.
10934 (draw_cfg_edges): Likewise.
10935 (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
10938 2022-01-27 Patrick Palka <ppalka@redhat.com>
10941 * tree.cc (build_call_vec): Add const to second parameter.
10942 * tree.h (build_call_vec): Likewise.
10944 2022-01-27 Martin Liska <mliska@suse.cz>
10947 * diagnostic.cc (diagnostic_initialize):
10948 Initialize report_bug flag.
10949 (diagnostic_action_after_output):
10950 Explain that -freport-bug option can be used for pre-processed
10951 file creation. Make the message shorter.
10952 (error_recursion): Rename Internal to internal.
10953 * diagnostic.h (struct diagnostic_context): New field.
10954 * opts.cc (common_handle_option): Init the field here.
10956 2022-01-27 Kewen Lin <linkw@linux.ibm.com>
10959 * config/rs6000/rs6000.cc
10960 (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
10961 assertion with early return.
10963 2022-01-27 Chung-Lin Tang <cltang@codesourcery.com>
10965 PR middle-end/103642
10966 * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
10967 for non-pointer or non-reference-to-pointer cases.
10969 2022-01-27 Jakub Jelinek <jakub@redhat.com>
10971 PR tree-optimization/104196
10972 * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
10973 * gimple-fold.cc (rewrite_to_defined_overflow): Likewise. If true,
10974 return NULL and emit needed stmts before and after stmt.
10975 * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
10976 pick as operand_entry that will hold the merged test the one feeding
10977 earliest condition, ensure that by swapping range->idx with some
10978 other range's idx if needed. If seq is non-NULL, don't actually swap
10979 it but instead rewrite stmts with undefined overflow in between
10981 (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
10982 corresponding condition even if they have non-NULL ops[]->op.
10985 2022-01-26 Jakub Jelinek <jakub@redhat.com>
10988 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
10990 * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
10991 before for loop instead of for init clause.
10992 * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
10994 2022-01-26 Jakub Jelinek <jakub@redhat.com>
10997 * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
10998 _X86INTRIN_H_INCLUDED and adjust #error wording.
10999 * config/rs6000/bmi2intrin.h: Likewise.
11001 2022-01-26 Jakub Jelinek <jakub@redhat.com>
11004 * dwarf2out.cc (long_double_as_float128): New function.
11005 (modified_type_die): For powerpc64le IEEE 754 quad long double
11006 and complex long double emit those as DW_TAG_typedef to
11007 _Float128 or complex _Float128 base type.
11009 2022-01-26 Marek Polacek <polacek@redhat.com>
11012 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
11013 warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
11015 2022-01-26 Martin Liska <mliska@suse.cz>
11017 * ipa-modref-tree.cc (modref_access_node::update):
11018 Remove "--param param=foo" with "--param foo".
11019 (modref_access_node::insert): Likewise.
11020 (modref_access_node::insert_kill): Likewise.
11021 * ipa-modref-tree.h (struct modref_ref_node): Likewise.
11022 (struct modref_base_node): Likewise.
11023 (struct modref_tree): Likewise.
11025 2022-01-26 Raoni Fassina Firmino <raoni@linux.ibm.com>
11028 * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
11031 2022-01-25 Martin Sebor <msebor@redhat.com>
11033 PR tree-optimization/104203
11034 * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
11036 * pointer-query.cc (access_ref::merge_ref): Change return type.
11037 Convert failure to a conservative success.
11038 (access_ref::get_ref): Adjust to the change above. Short-circuit
11039 PHI evaluation after first failure turned into conservative success.
11040 * pointer-query.h (access_ref::merge_ref): Change return type.
11041 * timevar.def (TV_WARN_ACCESS): New timer variable.
11043 2022-01-25 David Edelsohn <dje.gcc@gmail.com>
11045 * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
11047 2022-01-25 Richard Biener <rguenther@suse.de>
11049 PR tree-optimization/104214
11050 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
11051 stronger guarantees for relational pointer compares when
11052 rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
11053 BASE0 + STEP0 - STEP1 cmp BASE1.
11055 2022-01-25 Jakub Jelinek <jakub@redhat.com>
11058 * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
11060 * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
11061 ieee128_mangling_gcc_8_1): Remove.
11062 (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
11063 (rs6000_mangle_type): Return "u9__ieee128" instead of
11064 ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
11065 (rs6000_globalize_decl_name): Remove.
11066 * config/rs6000/rs6000-call.cc (init_cumulative_args,
11067 rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
11069 2022-01-24 Martin Sebor <msebor@redhat.com>
11071 * pointer-query.cc (pointer_query::dump): Remove duplicate
11074 2022-01-24 Marek Polacek <polacek@redhat.com>
11076 PR preprocessor/104030
11077 * doc/invoke.texi: Update documentation for -Wbidi-chars.
11079 2022-01-24 Raoni Fassina Firmino <raoni@linux.ibm.com>
11082 * builtins.cc (expand_builtin_fegetround): New function.
11083 (expand_builtin_feclear_feraise_except): New function.
11084 (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
11085 BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
11086 * config/rs6000/rs6000.md (fegetroundsi): New pattern.
11087 (feclearexceptsi): New Pattern.
11088 (feraiseexceptsi): New Pattern.
11089 * doc/extend.texi: Add a new introductory paragraph about the
11091 * doc/md.texi: (fegetround@var{m}): Document new optab.
11092 (feclearexcept@var{m}): Document new optab.
11093 (feraiseexcept@var{m}): Document new optab.
11094 * optabs.def (fegetround_optab): New optab.
11095 (feclearexcept_optab): New optab.
11096 (feraiseexcept_optab): New optab.
11098 2022-01-24 Richard Biener <rguenther@suse.de>
11099 Jiufu Guo <guojiufu@linux.ibm.com>
11101 PR tree-optimization/100740
11102 PR tree-optimization/101508
11103 PR tree-optimization/101972
11104 PR tree-optimization/102131
11105 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
11106 constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
11107 BASE0 + STEP0 - STEP1 cmp BASE1 transform.
11109 2022-01-24 Jakub Jelinek <jakub@redhat.com>
11111 PR sanitizer/104158
11112 * opt-functions.awk (var_set): Handle EnumBitSet property.
11113 * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
11115 * opts.h (enum cl_enum_var_value): New type.
11116 * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
11117 Handle CLEV_BITSET.
11118 (cmdline_handle_error): Handle CLEV_BITSET.
11119 * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
11120 * doc/options.texi (EnumBitSet): Document.
11121 * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
11123 (trace-pc, trace-cmp): Drop Set properties.
11125 2022-01-24 Jakub Jelinek <jakub@redhat.com>
11127 PR sanitizer/104158
11128 * common.opt (flag_sanitize_coverage): Remove Variable entry.
11129 (fsanitize-coverage=): Remove RejectNegative property, add
11130 Var(flag_sanitize_coverage) and EnumSet properties.
11131 (trace-pc): Add Set(1) property.
11132 (trace-cmp): Add Set(2) property.
11133 * opts.cc (common_handle_option): Don't handle
11134 OPT_fsanitize_coverage_.
11136 2022-01-24 Jakub Jelinek <jakub@redhat.com>
11138 PR sanitizer/104158
11139 * opt-functions.awk (var_set): Handle EnumSet property.
11140 * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
11142 * opt-read.awk: Handle Set property.
11143 * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
11144 (struct cl_decoded_option): Mention enum in value description.
11146 (set_option): Add mask argument defaulted to 0.
11147 * opts.cc (test_enum_sets): New function.
11148 (opts_cc_tests): Call it.
11149 * opts-common.cc (enum_arg_to_value): Change return argument
11150 from bool to int, on success return index into the cl_enum_arg
11151 array, on failure -1. Add len argument, if non-0, use strncmp
11153 (opt_enum_arg_to_value): Adjust caller.
11154 (decode_cmdline_option): Handle EnumSet represented as
11155 CLVC_ENUM with non-zero var_value. Initialize decoded->mask.
11156 (decode_cmdline_options_to_array): CLear opt_array[0].mask.
11157 (handle_option): Pass decoded->mask to set_options last argument.
11158 (generate_option): Clear decoded->mask.
11159 (generate_option_input_file): Likewise.
11160 (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
11161 (set_option): Add mask argument, use it for CLVC_ENUM.
11162 (control_warning_option): Adjust enum_arg_to_value caller.
11163 * doc/options.texi: Document Set and EnumSet properties.
11165 2022-01-24 Jakub Jelinek <jakub@redhat.com>
11167 PR bootstrap/104170
11168 * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
11169 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
11170 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
11171 using OPTION_*_P macros.
11172 * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
11173 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
11174 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
11175 using OPTION_*_P macros.
11176 * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
11177 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
11178 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
11179 using OPTION_*_P macros.
11180 * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
11181 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
11182 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
11183 using OPTION_*_P macros.
11184 * config/fuchsia.h (OPTION_MUSL_P): Redefine.
11185 * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
11186 * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
11187 ATTRIBUTE_UNUSED to opts parameter. If OPTION_GLIBC_P is defined, use
11188 OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
11189 * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
11190 OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
11191 otherwise assume if (true).
11193 2022-01-24 Kito Cheng <kito.cheng@sifive.com>
11195 * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
11196 Skip zicsr and zifencei if I-ext is 2.0.
11198 2022-01-24 Jia-Wei Chen <jiawei@iscas.ac.cn>
11200 * config.gcc: Modify default isa_spec version.
11202 2022-01-24 Jiufu Guo <guojiufu@linux.ibm.com>
11204 PR tree-optimization/102087
11205 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
11206 Correct PLUS result type.
11208 2022-01-24 H.J. Lu <hjl.tools@gmail.com>
11211 * config/i386/predicates.md (bcst_mem_operand): Also check mode
11212 of memory broadcast.
11214 2022-01-23 Andrew Pinski <apinski@marvell.com>
11217 * config/aarch64/aarch64-builtins.cc
11218 (aarch64_general_gimple_fold_builtin): Handle
11219 __builtin_aarch64_sqrt* and simplify into SQRT internal
11222 2022-01-22 Jakub Jelinek <jakub@redhat.com>
11225 * opts-global.cc (handle_common_deferred_options): Quote
11226 --enable-plugin in diagnostics to avoid -Werror=format-diag.
11228 2022-01-21 Michael Meissner <meissner@the-meissners.org>
11231 * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
11232 * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
11233 * config/rs6000/rs6000.md (prefixed attribute): Delete section
11234 that sets the prefixed attribute for xxspltiw, xxspltidp, and
11235 xxsplti32dx instructions.
11236 (movsf_hardfloat): Explicitly set the prefixed attribute
11237 when xxspltiw and xxspltidp instructions are generated.
11238 (mov<mode>_hardfloat32): Likewise.
11239 (mov<mode>_hardfloat64): Likewise.
11240 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
11241 prefixed attribute for xxspltiw and xxspltidp instructions.
11242 (vsx_mov<mode>_32bit): Likewise.
11244 2022-01-21 H.J. Lu <hjl.tools@gmail.com>
11246 PR bootstrap/104170
11247 * common/config/i386/i386-common.cc (ix86_supports_split_stack):
11248 Return true only on glibc.
11249 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
11250 Revert commit c163647ffbc.
11251 * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
11253 2022-01-21 Sören Tempel <soeren@soeren-tempel.net>
11255 * common/config/s390/s390-common.cc (s390_supports_split_stack):
11256 Only support split-stack on glibc targets.
11257 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
11258 * config/i386/gnu.h (defined): Ditto.
11260 2022-01-21 Bill Schmidt <wschmidt@linux.ibm.com>
11262 * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
11263 vector float and vector double.
11265 2022-01-21 Bill Seurer <seurer@gcc.gnu.org>
11267 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
11268 Fix mention of ifunc in string.
11270 2022-01-21 Roger Sayle <roger@nextmovesoftware.com>
11272 PR middle-end/104140
11273 * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
11274 operands of the widening multiplication are either both signed or
11275 both unsigned, and abort the conversion if mismatched.
11276 * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
11277 (MULT_HIGHPART_EXPR): Clarify that operands must have the same
11279 * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
11280 integer types with the same precision and signedness.
11281 (WIDEN_MULT_EXPR): Document that operands must have integer types
11282 with the same precision, but possibly differing signedness.
11283 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
11284 riscv_current_subset_list returning a NULL pointer (empty list).
11286 2022-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
11289 * ira.h (struct target_ira): Add member
11290 x_ira_exclude_class_mode_regs.
11291 (ira_exclude_class_mode_regs): New macro.
11292 * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
11294 * lra-int.h: ... to here.
11295 (lra_create_new_reg_with_unique_value): Add arg
11296 exclude_start_hard_regs.
11297 (class lra_reg): Add member exclude_start_hard_regs.
11298 * lra-assigns.cc (find_hard_regno_for_1): Setup
11299 impossible_start_hard_regs from exclude_start_hard_regs.
11300 * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
11301 it lra_create_new_reg[_with_unique_value].
11302 (match_reload): Ditto.
11303 (check_and_process_move): Pass NULL
11304 exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
11305 (goal_alt_exclude_start_hard_regs): New static variable.
11306 (process_addr_reg, simplify_operand_subreg): Pass NULL
11307 exclude_start_hard_regs to lra_create_new_reg_with_unique_value
11308 and get_reload_reg.
11309 (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
11310 Use this_alternative_exclude_start_hard_regs additionally to find
11311 winning operand alternative.
11312 (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
11313 exclude_start_hard_regs to lra_create_new_reg.
11314 (process_address_1, emit_inc): Ditto.
11315 (curr_insn_transform): Pass exclude_start_hard_regs value to
11316 lra_create_new_reg, get_reload_reg, match_reload.
11317 (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
11318 to lra_create_new_reg.
11319 (process_invariant_for_inheritance): Ditto.
11320 * lra-remat.cc (update_scratch_ops): Ditto.
11321 * lra.cc (lra_create_new_reg_with_unique_value): Add arg
11322 exclude_start_hard_regs. Setup the corresponding member of
11324 (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
11325 to lra_create_new_reg_with_unique_value.
11326 (initialize_lra_reg_info_element): Initialize member
11327 exclude_start_hard_regs.
11328 (get_scratch_reg): Pass NULL to lra_create_new_reg.
11329 * ira.cc (setup_prohibited_class_mode_regs): Rename to
11330 setup_prohibited_and_exclude_class_mode_regs and calculate
11331 ira_exclude_class_mode_regs.
11333 2022-01-21 Martin Liska <mliska@suse.cz>
11335 * configure.ac: Detect ld_is_mold and use it for
11336 comdat_group=yes and gcc_cv_ld_hidden=yes.
11337 * configure: Regenerate.
11339 2022-01-21 Richard Biener <rguenther@suse.de>
11341 PR tree-optimization/100089
11342 * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
11343 of if-converted loops with unvectorized COND_EXPRs for
11344 all but the unlimited cost models.
11346 2022-01-21 Ard Biesheuvel <ardb@kernel.org>
11348 * config/arm/arm-opts.h (enum stack_protector_guard): New.
11349 * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
11351 * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
11352 (arm_option_override_internal): Handle and put in error checks.
11353 for stack protector guard options.
11354 (arm_option_reconfigure_globals): Likewise.
11355 (arm_stack_protect_tls_canary_mem): New.
11356 (arm_stack_protect_guard): New.
11357 * config/arm/arm.md (stack_protect_set): New.
11358 (stack_protect_set_tls): Likewise.
11359 (stack_protect_test): Likewise.
11360 (stack_protect_test_tls): Likewise.
11361 (reload_tp_hard): Likewise.
11362 * config/arm/arm.opt (-mstack-protector-guard): New
11363 (-mstack-protector-guard-offset): New.
11364 * doc/invoke.texi: Document new options.
11366 2022-01-21 Richard Biener <rguenther@suse.de>
11368 PR tree-optimization/104156
11369 * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
11370 Collect and reset debug stmts with out-of-loop uses when
11372 (find_loop_guard): Adjust.
11373 (empty_bb_without_guard_p): Likewise. Ignore debug stmts.
11374 (used_outside_loop_p): Push debug uses to a vector of
11375 debug stmts to reset.
11376 (hoist_guard): Adjust -fopt-info category.
11378 2022-01-21 Richard Biener <rguenther@suse.de>
11380 PR tree-optimization/104152
11381 * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
11382 can_duplicate_and_interleave_p check.
11384 2022-01-21 Jakub Jelinek <jakub@redhat.com>
11386 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
11387 Avoid passing var to warning_at when the format string doesn't
11390 2022-01-21 Aldy Hernandez <aldyh@redhat.com>
11392 PR tree-optimization/103721
11393 * gimple-range-path.cc
11394 (path_range_query::relations_may_be_invalidated): New.
11395 (path_range_query::compute_ranges_in_block): Reset relations if
11396 they may be invalidated.
11397 (path_range_query::maybe_register_phi_relation): Exit if relations
11398 may be invalidated on incoming edge.
11399 (path_range_query::compute_phi_relations): Pass incoming PHI edge
11400 to maybe_register_phi_relation.
11401 * gimple-range-path.h (relations_may_be_invalidated): New.
11402 (maybe_register_phi_relation): Pass edge instead of tree.
11403 * tree-ssa-threadbackward.cc (back_threader::back_threader):
11405 * value-relation.cc (path_oracle::path_oracle): Call
11406 mark_dfs_back_edges.
11407 (path_oracle::register_relation): Add SSA names to m_registered
11409 (path_oracle::reset_path): Clear m_registered bitmap.
11410 * value-relation.h (path_oracle::set_root_oracle): New.
11412 2022-01-21 Jakub Jelinek <jakub@redhat.com>
11414 PR rtl-optimization/102478
11415 * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
11416 force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
11419 2022-01-20 Richard Biener <rguenther@suse.de>
11421 PR middle-end/100786
11422 * gimple-fold.cc (get_symbol_constant_value): Only return
11423 values of compatible type to the symbol.
11425 2022-01-20 Andrew MacLeod <amacleod@redhat.com>
11427 * value-relation.cc (relation_oracle::valid_equivs): Query and add
11428 if valid members of a set.
11429 (equiv_oracle::register_equiv): Call valid_equivs rather than
11430 bitmap direct operations.
11431 (path_oracle::register_equiv): Ditto.
11432 * value-relation.h (relation_oracle::valid_equivs): New prototype.
11434 2022-01-20 Richard Biener <rguenther@suse.de>
11437 * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
11438 LHS before folding __builtin_ia32_shufpd and friends.
11440 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
11442 * config/arm/crypto.md (aes_op_protect): Allow moves from core
11443 registers and from memory.
11444 (aes_op_protect_misalign_load): New pattern.
11445 (aes_op_protect_neon_vld1v16qi): New pattern.
11447 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
11449 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
11451 (aarch32_crypto_aese_fused_protected): Likewise.
11452 (aarch32_crypto_aesd_fused_protected): Likewise.
11454 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
11456 * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
11457 to define_expand. Add mitigation for the Cortex-A AES erratum
11459 (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
11460 on original crypto_<CRYPTO_AES:crypto_pattern> insn.
11461 (aes_op_protect): New pattern.
11462 * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
11464 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
11466 * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
11467 (ALL_QUIRKS): Add it.
11468 (cortex-a57, cortex-a72): Enable it.
11469 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
11470 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
11472 (mfix-cortex-a72-aes-1655431): New option alias.
11473 * config/arm/arm.cc (arm_option_override): Handle default settings
11474 for AES erratum switch.
11475 * doc/invoke.texi (Arm Options): Document new options.
11477 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
11479 * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
11480 <crypto_mode> rather than hard-coding the mode.
11481 (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
11482 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
11483 (*aarch32_crypto_aese_fused): Likewise.
11484 (*aarch32_crypto_aesd_fused): Likewise.
11485 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
11486 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
11487 (crypto_sha1h_lb): Likewise.
11488 (crypto_vmullp64): Likewise.
11489 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
11490 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
11492 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
11494 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
11495 iterator to pattern name to disambiguate.
11496 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
11497 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
11498 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
11499 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
11500 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
11502 2022-01-20 Martin Liska <mliska@suse.cz>
11504 PR bootstrap/104135
11505 * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
11506 * rtl.cc: Partially disable -Wformat-diag for RTL checking
11509 2022-01-20 Jakub Jelinek <jakub@redhat.com>
11512 * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
11513 block_num > 0, index entry even if !have_multiple_function_sections.
11515 2022-01-20 liuhongt <hongtao.liu@intel.com>
11518 * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
11519 integral mode mask pack by multi steps which takes
11520 vec_pack_sbool_trunc_optab as start when elements number is
11521 less than BITS_PER_UNITS.
11523 2022-01-20 Richard Biener <rguenther@suse.de>
11525 PR tree-optimization/104114
11526 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
11527 single element vector decomposition.
11529 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
11531 * ifcvt.cc (noce_convert_multiple_sets_1): New function.
11532 (noce_convert_multiple_sets): Call function a second time if we can
11533 improve the first try.
11535 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
11537 * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
11538 reversed comparison.
11539 (try_emit_cmove_seq): New function to facilitate creating a cmov
11541 (noce_convert_multiple_sets): Create two sequences and use the less
11544 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
11546 * rtl.h (struct rtx_comparison): New struct that holds an rtx
11548 * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
11550 (rs6000_emit_swsqrt): Likewise.
11551 * expmed.cc (expand_sdiv_pow2): Likewise.
11552 (emit_store_flag): Likewise.
11553 * expr.cc (expand_cond_expr_using_cmove): Likewise.
11554 (expand_expr_real_2): Likewise.
11555 * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
11557 * optabs.cc (emit_conditional_move_1): New function.
11558 (expand_doubleword_shift_condmove): Use struct.
11559 (emit_conditional_move): Use struct and allow to call directly
11560 without going through preparation steps.
11561 * optabs.h (emit_conditional_move): Use struct.
11563 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
11565 * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
11566 (noce_process_if_block): Use potential costs.
11568 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
11570 * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
11571 (bb_ok_for_noce_convert_multiple_sets): Likewise.
11573 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
11575 * ifcvt.cc (need_cmov_or_rewire): New function.
11576 (noce_convert_multiple_sets): Call it.
11578 2022-01-19 David Malcolm <dmalcolm@redhat.com>
11580 * attribs.cc (attribute_c_tests): Rename to...
11581 (attribs_cc_tests): ...this.
11582 * bitmap.cc (bitmap_c_tests): Rename to...
11583 (bitmap_cc_tests): ...this.
11584 * cgraph.cc (cgraph_c_finalize): Rename to...
11585 (cgraph_cc_finalize): ...this.
11586 (cgraph_c_tests): Rename to...
11587 (cgraph_cc_tests): ...this.
11588 * cgraph.h (cgraph_c_finalize): Rename to...
11589 (cgraph_cc_finalize): ...this.
11590 (cgraphunit_c_finalize): Rename to...
11591 (cgraphunit_cc_finalize): ...this.
11592 * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
11593 (cgraphunit_cc_finalize): ...this.
11594 * convert.cc (convert_c_tests): Rename to...
11595 (convert_cc_tests): ...this.
11596 * dbgcnt.cc (dbgcnt_c_tests): Rename to...
11597 (dbgcnt_cc_tests): ...this.
11598 * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
11599 (diagnostic_show_locus_cc_tests): ...this.
11600 * diagnostic.cc (diagnostic_c_tests): Rename to...
11601 (diagnostic_cc_tests): ...this.
11602 * dumpfile.cc (dumpfile_c_tests): Rename to...
11603 (dumpfile_cc_tests): ...this.
11604 * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
11605 (dwarf2out_cc_finalize): ...this.
11606 * dwarf2out.h (dwarf2out_c_finalize): Rename to...
11607 (dwarf2out_cc_finalize): ...this.
11608 * edit-context.cc (edit_context_c_tests): Rename to...
11609 (edit_context_cc_tests): ...this.
11610 * et-forest.cc (et_forest_c_tests): Rename to...
11611 (et_forest_cc_tests): ...this.
11612 * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
11613 (fibonacci_heap_cc_tests): ...this.
11614 * fold-const.cc (fold_const_c_tests): Rename to...
11615 (fold_const_cc_tests): ...this.
11616 * function-tests.cc (function_tests_c_tests): Rename to...
11617 (function_tests_cc_tests): ...this.
11618 * gcse.cc (gcse_c_finalize): Rename to...
11619 (gcse_cc_finalize): ...this.
11620 * gcse.h (gcse_c_finalize): Rename to...
11621 (gcse_cc_finalize): ...this.
11622 * ggc-tests.cc (ggc_tests_c_tests): Rename to...
11623 (ggc_tests_cc_tests): ...this.
11624 * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
11625 (store_merging_cc_tests): ...this.
11626 * gimple.cc (gimple_c_tests): Rename to...
11627 (gimple_cc_tests): ...this.
11628 * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
11629 (hash_map_tests_cc_tests): ...this.
11630 * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
11631 (hash_set_tests_cc_tests): ...this.
11632 * input.cc (input_c_tests): Rename to...
11633 (input_cc_tests): ...this.
11634 * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
11635 (ipa_cp_cc_finalize): ...this.
11636 * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
11637 (ipa_fnsummary_cc_finalize): ...this.
11638 * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
11639 (ipa_fnsummary_cc_finalize): ...this.
11640 * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
11641 (ipa_modref_tree_cc_tests): ...this.
11642 * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
11643 * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
11644 (ipa_modref_cc_finalize): ...this.
11645 * ipa-modref.h (ipa_modref_c_finalize): Rename to...
11646 (ipa_modref_cc_finalize): ...this.
11647 * ipa-prop.h (ipa_cp_c_finalize): Rename to...
11648 (ipa_cp_cc_finalize): ...this.
11649 * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
11650 (ipa_reference_cc_finalize): ...this.
11651 * ipa-reference.h (ipa_reference_c_finalize): Rename to...
11652 (ipa_reference_cc_finalize): ...this.
11653 * ira-costs.cc (ira_costs_c_finalize): Rename to...
11654 (ira_costs_cc_finalize): ...this.
11655 * ira.h (ira_costs_c_finalize): Rename to...
11656 (ira_costs_cc_finalize): ...this.
11657 * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
11658 (opt_suggestions_cc_tests): ...this.
11659 * opts.cc (opts_c_tests): Rename to...
11660 (opts_cc_tests): ...this.
11661 * predict.cc (predict_c_tests): Rename to...
11662 (predict_cc_tests): ...this.
11663 * pretty-print.cc (pretty_print_c_tests): Rename to...
11664 (pretty_print_cc_tests): ...this.
11665 * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
11666 (read_rtl_function_cc_tests): ...this.
11667 * rtl-tests.cc (rtl_tests_c_tests): Rename to...
11668 (rtl_tests_cc_tests): ...this.
11669 * sbitmap.cc (sbitmap_c_tests): Rename to...
11670 (sbitmap_cc_tests): ...this.
11671 * selftest-run-tests.cc (selftest::run_tests): Update calls for
11672 _c_ to _cc_ function renamings; fix names of attribs and
11673 opt-suggestions tests.
11674 * selftest.cc (selftest_c_tests): Rename to...
11675 (selftest_cc_tests): ...this.
11676 * selftest.h (attribute_c_tests): Rename to...
11677 (attribs_cc_tests): ...this.
11678 (bitmap_c_tests): Rename to...
11679 (bitmap_cc_tests): ...this.
11680 (cgraph_c_tests): Rename to...
11681 (cgraph_cc_tests): ...this.
11682 (convert_c_tests): Rename to...
11683 (convert_cc_tests): ...this.
11684 (diagnostic_c_tests): Rename to...
11685 (diagnostic_cc_tests): ...this.
11686 (diagnostic_show_locus_c_tests): Rename to...
11687 (diagnostic_show_locus_cc_tests): ...this.
11688 (dumpfile_c_tests): Rename to...
11689 (dumpfile_cc_tests): ...this.
11690 (edit_context_c_tests): Rename to...
11691 (edit_context_cc_tests): ...this.
11692 (et_forest_c_tests): Rename to...
11693 (et_forest_cc_tests): ...this.
11694 (fibonacci_heap_c_tests): Rename to...
11695 (fibonacci_heap_cc_tests): ...this.
11696 (fold_const_c_tests): Rename to...
11697 (fold_const_cc_tests): ...this.
11698 (function_tests_c_tests): Rename to...
11699 (function_tests_cc_tests): ...this.
11700 (ggc_tests_c_tests): Rename to...
11701 (ggc_tests_cc_tests): ...this.
11702 (gimple_c_tests): Rename to...
11703 (gimple_cc_tests): ...this.
11704 (hash_map_tests_c_tests): Rename to...
11705 (hash_map_tests_cc_tests): ...this.
11706 (hash_set_tests_c_tests): Rename to...
11707 (hash_set_tests_cc_tests): ...this.
11708 (input_c_tests): Rename to...
11709 (input_cc_tests): ...this.
11710 (opts_c_tests): Rename to...
11711 (opts_cc_tests): ...this.
11712 (predict_c_tests): Rename to...
11713 (predict_cc_tests): ...this.
11714 (pretty_print_c_tests): Rename to...
11715 (pretty_print_cc_tests): ...this.
11716 (read_rtl_function_c_tests): Rename to...
11717 (read_rtl_function_cc_tests): ...this.
11718 (rtl_tests_c_tests): Rename to...
11719 (rtl_tests_cc_tests): ...this.
11720 (sbitmap_c_tests): Rename to...
11721 (sbitmap_cc_tests): ...this.
11722 (selftest_c_tests): Rename to...
11723 (selftest_cc_tests): ...this.
11724 (simplify_rtx_c_tests): Rename to...
11725 (simplify_rtx_cc_tests): ...this.
11726 (spellcheck_c_tests): Rename to...
11727 (spellcheck_cc_tests): ...this.
11728 (spellcheck_tree_c_tests): Rename to...
11729 (spellcheck_tree_cc_tests): ...this.
11730 (sreal_c_tests): Rename to...
11731 (sreal_cc_tests): ...this.
11732 (store_merging_c_tests): Rename to...
11733 (store_merging_cc_tests): ...this.
11734 (tree_c_tests): Rename to...
11735 (tree_cc_tests): ...this.
11736 (tree_cfg_c_tests): Rename to...
11737 (tree_cfg_cc_tests): ...this.
11738 (typed_splay_tree_c_tests): Rename to...
11739 (typed_splay_tree_cc_tests): ...this.
11740 (vec_c_tests): Rename to...
11741 (vec_cc_tests): ...this.
11742 (vec_perm_indices_c_tests): Rename to...
11743 (vec_perm_indices_cc_tests): ..this.
11744 (opt_proposer_c_tests): Rename to...
11745 (opt_suggestions_cc_tests): ...this.
11746 (dbgcnt_c_tests): Rename to...
11747 (dbgcnt_cc_tests): ...this.
11748 (ipa_modref_tree_c_tests): Rename to...
11749 (ipa_modref_tree_cc_tests): ...this.
11750 * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
11751 (simplify_rtx_cc_tests): ...this.
11752 * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
11753 (spellcheck_tree_cc_tests): ...this.
11754 * spellcheck.cc (spellcheck_c_tests): Rename to...
11755 (spellcheck_cc_tests): ...this.
11756 * sreal.cc (sreal_c_tests): Rename to...
11757 (sreal_cc_tests): ...this.
11758 * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
11759 function renamings.
11760 * tree-cfg.cc (tree_cfg_c_tests): Rename to...
11761 (tree_cfg_cc_tests): ...this.
11762 * tree.cc (tree_c_tests): Rename to...
11763 (tree_cc_tests): ...this.
11764 * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
11765 (typed_splay_tree_cc_tests): ...this.
11766 * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
11767 (vec_perm_indices_cc_tests): ...this.
11768 * vec.cc (vec_c_tests): Rename to...
11769 (vec_cc_tests): ...this.
11771 2022-01-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
11773 PR tree-optimization/103997
11774 * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
11777 2022-01-19 Jakub Jelinek <jakub@redhat.com>
11779 PR middle-end/102860
11780 * match.pd (x %[fl] y -> x % y): New simplification for
11781 unsigned integral types.
11782 * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
11783 for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
11785 2022-01-19 Richard Biener <rguenther@suse.de>
11787 PR tree-optimization/104112
11788 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
11789 for required intermediate vector types.
11791 2022-01-19 Jakub Jelinek <jakub@redhat.com>
11793 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
11795 2022-01-19 Martin Liska <mliska@suse.cz>
11797 * configure.ac: Remove -Wno-error=format-diag.
11798 * configure: Regenerate.
11800 2022-01-19 Martin Liska <mliska@suse.cz>
11802 * config/riscv/riscv.cc (riscv_handle_type_attribute):
11803 Update one -Wformat-diag string in warning message.
11805 2022-01-19 Jakub Jelinek <jakub@redhat.com>
11807 PR middle-end/104103
11808 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
11811 2022-01-19 Jakub Jelinek <jakub@redhat.com>
11814 * fold-const.cc (address_compare): Consider different STRING_CSTs
11815 with the same lengths that memcmp the same as equal, not different.
11817 2022-01-19 Jakub Jelinek <jakub@redhat.com>
11819 * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
11822 2022-01-19 Martin Liska <mliska@suse.cz>
11823 Thomas Schwinge <thomas@codesourcery.com>
11825 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
11828 2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
11831 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
11834 2022-01-19 Jakub Jelinek <jakub@redhat.com>
11837 * config/i386/sse.md
11838 (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
11839 avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
11840 avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
11841 avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
11842 avx512dq_rangep<mode><mask_name><round_saeonly_name>,
11843 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
11844 <avx512>_getmant<mode><mask_name><round_saeonly_name>,
11845 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
11846 Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
11848 2022-01-19 Martin Sebor <msebor@redhat.com>
11850 PR middle-end/104069
11851 * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
11852 an unknown result as documented.
11854 2022-01-18 Andrew Pinski <apinski@marvell.com>
11856 * ipa-split.cc (visit_bb): Fix comment before the
11857 warning/error attribute checking code.
11859 2022-01-18 David Faust <david.faust@oracle.com>
11861 * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
11862 for base strtab offset yet as it may change.
11863 (output_asm_btfext_core_reloc): Do so here instead.
11864 (output_btfext_core_sections): Likewise.
11866 2022-01-18 David Faust <david.faust@oracle.com>
11868 * config/bpf/coreout.cc (output_btfext_header): Account for
11869 4-byte record size in core_relo_len.
11870 (output_btfext_core_sections): Only write record size once.
11871 * config/bpf/coreout.h (btf_ext_section_header): Delete unused
11874 2022-01-18 Maciej W. Rozycki <macro@embecosm.com>
11876 * common/config/riscv/riscv-common.cc
11877 (riscv_subset_list::parse_multiletter_ext): Move pointer
11878 arithmetic ahead of `free'.
11880 2022-01-18 Jason Merrill <jason@redhat.com>
11883 * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
11886 2022-01-18 Sandra Loosemore <sandra@codesourcery.com>
11888 PR middle-end/103163
11889 * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
11890 (init_emit_once): ...not here.
11892 2022-01-18 Martin Liska <mliska@suse.cz>
11894 * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
11895 * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
11896 * config/arc/arc.md: Likewise.
11897 * config/avr/avr.cc (avr_section_type_flags): Likewise.
11898 * config/bfin/bfin.cc (bfin_option_override): Likewise.
11899 (bfin_handle_longcall_attribute): Likewise.
11900 * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
11901 * config/frv/frv.cc (frv_expand_builtin): Likewise.
11902 * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
11903 * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
11904 (iq2000_print_operand_address): Likewise.
11905 (iq2000_print_operand): Likewise.
11906 * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
11907 (m32c_pragma_address): Likewise.
11908 * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
11909 * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
11910 (mips_set_compression_mode): Likewise.
11911 * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
11912 (mmix_print_operand): Likewise.
11913 (mmix_output_shiftvalue_op_from_str): Likewise.
11914 (mmix_output_shifted_value): Likewise.
11915 * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
11916 * config/msp430/msp430.cc (msp430_option_override): Likewise.
11917 (msp430_attr): Likewise.
11918 (msp430_expand_delay_cycles): Likewise.
11919 (msp430_expand_builtin): Likewise.
11920 * config/rs6000/aix73.h: Likewise.
11921 * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
11922 * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
11923 (valid_psw_flag): Likewise.
11924 * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
11925 * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
11926 (xstormy16_expand_builtin_va_start): Likewise.
11927 (xstormy16_handle_below100_attribute): Likewise.
11929 2022-01-18 Martin Liska <mliska@suse.cz>
11931 * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
11933 (vms_pragma_standard): Likewise.
11934 (vms_pragma_extern_prefix): Likewise.
11936 2022-01-18 Martin Liska <mliska@suse.cz>
11938 * config/xtensa/xtensa.cc (print_operand): Fix warnings.
11939 (print_operand_address): Likewise.
11940 (xtensa_multibss_section_type_flags): Likewise.
11942 2022-01-18 Martin Liska <mliska@suse.cz>
11944 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
11945 wording of an error message.
11947 2022-01-18 Martin Liska <mliska@suse.cz>
11949 * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
11951 (ghs_pragma_section): Likewise.
11952 (ghs_pragma_interrupt): Likewise.
11953 (ghs_pragma_starttda): Likewise.
11954 (ghs_pragma_startsda): Likewise.
11955 (ghs_pragma_startzda): Likewise.
11956 (ghs_pragma_endtda): Likewise.
11957 (ghs_pragma_endsda): Likewise.
11958 (ghs_pragma_endzda): Likewise.
11960 2022-01-18 Martin Liska <mliska@suse.cz>
11962 * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
11964 * config/nds32/nds32-intrinsic.md: Likewise.
11965 * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
11966 * config/nds32/nds32.cc (nds32_print_operand): Likewise.
11967 (nds32_insert_attributes): Likewise.
11969 2022-01-18 Martin Liska <mliska@suse.cz>
11971 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
11973 * config/nvptx/nvptx.md: Remove trailing dot.
11975 2022-01-18 Martin Liska <mliska@suse.cz>
11977 * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
11978 Wrap keywords with quotes and remove trailing dots.
11979 (riscv_subset_list::parsing_subset_version): Likewise.
11980 (riscv_subset_list::parse_std_ext): Likewise.
11981 (riscv_subset_list::parse_multiletter_ext): Likewise.
11982 * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
11984 2022-01-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
11986 * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
11987 argument suggested_unroll_factor.
11988 (vect_analyze_loop_costing): Likewise.
11989 (_loop_vec_info::_loop_vec_info): Initialize new member
11990 suggested_unroll_factor.
11991 (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
11992 main loop use partial vectors.
11993 (vect_analyze_loop_2): Pass and use new argument
11994 suggested_unroll_factor.
11995 (vect_analyze_loop_1): Change to intialize local
11996 suggested_unroll_factor and use it.
11997 (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
11998 * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
11999 suggested_unroll_factor.
12000 (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
12001 (vector_costs::suggested_unroll_factor): New getter function.
12002 (finish_cost): Set return argument suggested_unroll_factor.
12004 2022-01-18 Andrew MacLeod <amacleod@redhat.com>
12006 PR tree-optimization/104038
12007 * doc/invoke.texi (relation-block-limit): New.
12008 * params.opt (relation-block-limit): New.
12009 * value-relation.cc (dom_oracle::register_relation): Check for NULL
12010 record before invoking transitive registery.
12011 (dom_oracle::set_one_relation): Check limit before creating record.
12012 (dom_oracle::register_transitives): Stop when no record created.
12013 * value-relation.h (relation_chain_head::m_num_relations): New.
12015 2022-01-18 Richard Biener <rguenther@suse.de>
12018 * ipa-inline.cc (inline_small_functions): Do not enqueue call
12019 edges originating in functions compiled with -Og.
12021 2022-01-18 Richard Biener <rguenther@suse.de>
12024 * passes.def (pass_all_optimizations_g): Remove pass_modref
12025 and pass_local_pure_const.
12027 2022-01-18 Martin Liska <mliska@suse.cz>
12029 * config/s390/s390.cc: Fix -Wformat-diag warnings.
12031 2022-01-18 Martin Liska <mliska@suse.cz>
12033 * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
12035 (s390_resolve_overloaded_builtin): Remove trailing dot.
12036 * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
12037 (s390_expand_builtin): Remove trailing dot.
12038 (s390_emit_prologue): Likewise, use semicolon.
12039 (s390_option_override_internal): Update keyword.
12040 * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
12042 2022-01-18 Martin Liska <mliska@suse.cz>
12044 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
12045 keywords and use %qs instead of %<%s%>.
12047 2022-01-18 Richard Biener <rguenther@suse.de>
12049 PR tree-optimization/103987
12050 * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
12051 query with a pointer check.
12053 2022-01-18 Richard Sandiford <richard.sandiford@arm.com>
12056 * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
12057 When using MEM_EXPR, require the base to be a decl.
12059 2022-01-18 Richard Biener <rguenther@suse.de>
12061 * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
12063 * function.h (struct function): Likewise.
12065 2022-01-18 Arnaud Charlet <charlet@adacore.com>
12067 * doc/install.texi: Update prerequisites for GNAT
12069 2022-01-18 Andrew Pinski <apinski@marvell.com>
12071 PR tree-optimization/101941
12072 * ipa-split.cc (visit_bb): Disallow function calls where
12073 the function has either error or warning attribute.
12075 2022-01-18 Richard Biener <rguenther@suse.de>
12077 PR tree-optimization/104064
12078 * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
12079 DR_INIT fits in a signed HWI, represent the difference from the
12080 first DR in unsigned.
12082 2022-01-17 Martin Liska <mliska@suse.cz>
12084 * Makefile.in: Rename .c names to .cc.
12085 * config.gcc: Likewise.
12086 * configure: Regenerate. Likewise.
12087 * configure.ac: Likewise.
12088 * gengtype.cc (set_gc_used): Likewise.
12089 (source_dot_c_frul): Likewise.
12090 (source_dot_cc_frul): Likewise.
12091 (struct file_rule_st): Likewise.
12092 (close_output_files): Likewise.
12093 * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
12095 2022-01-17 Martin Liska <mliska@suse.cz>
12097 * Makefile.in: Rename .c names to .cc.
12098 * alias.h: Likewise.
12099 * asan.cc: Likewise.
12100 * auto-profile.h: Likewise.
12101 * basic-block.h (struct basic_block_d): Likewise.
12102 * btfout.cc: Likewise.
12103 * builtins.cc (expand_builtin_longjmp): Likewise.
12104 (validate_arg): Likewise.
12105 (access_ref::offset_bounded): Likewise.
12106 * caller-save.cc (reg_restore_code): Likewise.
12107 (setup_save_areas): Likewise.
12108 * calls.cc (initialize_argument_information): Likewise.
12109 (expand_call): Likewise.
12110 (emit_library_call_value_1): Likewise.
12111 * cfg-flags.def (RTL): Likewise.
12112 (SIBCALL): Likewise.
12113 (CAN_FALLTHRU): Likewise.
12114 * cfganal.cc (post_order_compute): Likewise.
12115 * cfgcleanup.cc (try_simplify_condjump): Likewise.
12116 (merge_blocks_move_predecessor_nojumps): Likewise.
12117 (merge_blocks_move_successor_nojumps): Likewise.
12118 (merge_blocks_move): Likewise.
12119 (old_insns_match_p): Likewise.
12120 (try_crossjump_bb): Likewise.
12121 * cfgexpand.cc (expand_gimple_stmt): Likewise.
12122 * cfghooks.cc (split_block_before_cond_jump): Likewise.
12123 (profile_record_check_consistency): Likewise.
12124 * cfghooks.h: Likewise.
12125 * cfgrtl.cc (pass_free_cfg::execute): Likewise.
12126 (rtl_can_merge_blocks): Likewise.
12127 (try_redirect_by_replacing_jump): Likewise.
12128 (make_pass_outof_cfg_layout_mode): Likewise.
12129 (cfg_layout_can_merge_blocks_p): Likewise.
12130 * cgraph.cc (release_function_body): Likewise.
12131 (cgraph_node::get_fun): Likewise.
12132 * cgraph.h (struct cgraph_node): Likewise.
12133 (asmname_hasher::equal): Likewise.
12134 (cgraph_inline_failed_type): Likewise.
12135 (thunk_adjust): Likewise.
12136 (dump_callgraph_transformation): Likewise.
12137 (record_references_in_initializer): Likewise.
12138 (ipa_discover_variable_flags): Likewise.
12139 * cgraphclones.cc (GTY): Likewise.
12140 * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
12141 * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
12142 * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
12143 * collect2.cc (maybe_run_lto_and_relink): Likewise.
12144 * combine-stack-adj.cc: Likewise.
12145 * combine.cc (setup_incoming_promotions): Likewise.
12146 (combine_simplify_rtx): Likewise.
12147 (count_rtxs): Likewise.
12148 * common.opt: Likewise.
12149 * common/config/aarch64/aarch64-common.cc: Likewise.
12150 * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
12151 * common/config/avr/avr-common.cc: Likewise.
12152 * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
12153 * conditions.h: Likewise.
12154 * config.gcc: Likewise.
12155 * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
12156 * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
12157 (aarch64_get_extension_string_for_isa_flags): Likewise.
12158 * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
12159 * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
12160 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
12161 (aarch64_option_valid_attribute_p): Likewise.
12162 (aarch64_short_vector_p): Likewise.
12163 (aarch64_float_const_representable_p): Likewise.
12164 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
12165 (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
12167 * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
12168 * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
12169 * config/aarch64/t-aarch64: Likewise.
12170 * config/aarch64/x-aarch64: Likewise.
12171 * config/aarch64/x-darwin: Likewise.
12172 * config/alpha/alpha-protos.h: Likewise.
12173 * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
12174 * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
12175 (enum reg_class): Likewise.
12176 * config/alpha/alpha.md: Likewise.
12177 * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
12178 * config/alpha/x-alpha: Likewise.
12179 * config/arc/arc-protos.h (arc_eh_uses): Likewise.
12180 * config/arc/arc.cc (ARC_OPT): Likewise.
12181 (arc_ccfsm_advance): Likewise.
12182 (arc_arg_partial_bytes): Likewise.
12183 (conditionalize_nonjump): Likewise.
12184 * config/arc/arc.md: Likewise.
12185 * config/arc/builtins.def: Likewise.
12186 * config/arc/t-arc: Likewise.
12187 * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
12188 (arm_pragma_target_parse): Likewise.
12189 * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
12190 (arm_cpu_cpp_builtins): Likewise.
12191 * config/arm/arm.cc (vfp3_const_double_index): Likewise.
12192 (shift_op): Likewise.
12193 (thumb2_final_prescan_insn): Likewise.
12194 (arm_final_prescan_insn): Likewise.
12195 (arm_asm_output_labelref): Likewise.
12196 (arm_small_register_classes_for_mode_p): Likewise.
12197 * config/arm/arm.h: Likewise.
12198 * config/arm/arm.md: Likewise.
12199 * config/arm/driver-arm.cc: Likewise.
12200 * config/arm/symbian.h: Likewise.
12201 * config/arm/t-arm: Likewise.
12202 * config/arm/thumb1.md: Likewise.
12203 * config/arm/x-arm: Likewise.
12204 * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
12205 * config/avr/avr-fixed.md: Likewise.
12206 * config/avr/avr-log.cc (avr_log_vadump): Likewise.
12207 * config/avr/avr-mcus.def: Likewise.
12208 * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
12209 * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
12210 * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
12211 * config/avr/avr.cc (avr_option_override): Likewise.
12212 (avr_build_builtin_va_list): Likewise.
12213 (avr_mode_dependent_address_p): Likewise.
12214 (avr_function_arg_advance): Likewise.
12215 (avr_asm_output_aligned_decl_common): Likewise.
12216 * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
12217 (SUPPORTS_INIT_PRIORITY): Likewise.
12218 * config/avr/avr.md: Likewise.
12219 * config/avr/builtins.def: Likewise.
12220 * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
12221 * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
12223 * config/avr/t-avr: Likewise.
12224 * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
12225 * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
12226 * config/bpf/bpf.h (enum reg_class): Likewise.
12227 * config/bpf/t-bpf: Likewise.
12228 * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
12229 * config/cr16/cr16-protos.h: Likewise.
12230 * config/cris/cris.cc (cris_address_cost): Likewise.
12231 (cris_side_effect_mode_ok): Likewise.
12232 (cris_init_machine_status): Likewise.
12233 (cris_emit_movem_store): Likewise.
12234 * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
12235 (enum reg_class): Likewise.
12236 (struct cum_args): Likewise.
12237 * config/cris/cris.opt: Likewise.
12238 * config/cris/sync.md: Likewise.
12239 * config/csky/csky.cc (csky_expand_prologue): Likewise.
12240 * config/darwin-c.cc: Likewise.
12241 * config/darwin-f.cc: Likewise.
12242 * config/darwin-sections.def (zobj_const_section): Likewise.
12243 * config/darwin.cc (output_objc_section_asm_op): Likewise.
12244 (fprintf): Likewise.
12245 * config/darwin.h (GTY): Likewise.
12246 * config/elfos.h: Likewise.
12247 * config/epiphany/epiphany-sched.md: Likewise.
12248 * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
12249 * config/epiphany/epiphany.h (GTY): Likewise.
12250 (NO_FUNCTION_CSE): Likewise.
12251 * config/epiphany/mode-switch-use.cc: Likewise.
12252 * config/epiphany/predicates.md: Likewise.
12253 * config/epiphany/t-epiphany: Likewise.
12254 * config/fr30/fr30-protos.h: Likewise.
12255 * config/frv/frv-protos.h: Likewise.
12256 * config/frv/frv.cc (TLS_BIAS): Likewise.
12257 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
12258 * config/ft32/ft32-protos.h: Likewise.
12259 * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
12260 * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
12261 * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
12262 * config/gcn/t-gcn-hsa: Likewise.
12263 * config/gcn/t-omp-device: Likewise.
12264 * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
12265 (same_cmp_following_p): Likewise.
12266 * config/h8300/h8300.cc (F): Likewise.
12267 * config/h8300/h8300.h (struct cum_arg): Likewise.
12268 (BRANCH_COST): Likewise.
12269 * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
12270 * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
12271 * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
12272 * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
12273 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
12274 * config/i386/i386-c.cc (ix86_target_macros): Likewise.
12275 * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
12276 * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
12277 * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
12278 (ix86_register_pragmas): Likewise.
12279 (ix86_d_has_stdcall_convention): Likewise.
12280 (i386_pe_seh_init_sections): Likewise.
12281 * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
12282 (ix86_function_value_regno_p): Likewise.
12283 (ix86_compute_frame_layout): Likewise.
12284 (legitimize_pe_coff_symbol): Likewise.
12285 (output_pic_addr_const): Likewise.
12286 * config/i386/i386.h (defined): Likewise.
12287 (host_detect_local_cpu): Likewise.
12288 (CONSTANT_ADDRESS_P): Likewise.
12289 (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
12290 (struct machine_frame_state): Likewise.
12291 * config/i386/i386.md: Likewise.
12292 * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
12293 * config/i386/mmx.md: Likewise.
12294 * config/i386/sse.md: Likewise.
12295 * config/i386/t-cygming: Likewise.
12296 * config/i386/t-djgpp: Likewise.
12297 * config/i386/t-gnu-property: Likewise.
12298 * config/i386/t-i386: Likewise.
12299 * config/i386/t-intelmic: Likewise.
12300 * config/i386/t-omp-device: Likewise.
12301 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
12302 (i386_pe_adjust_class_at_definition): Likewise.
12303 * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
12304 (i386_pe_mangle_decl_assembler_name): Likewise.
12305 (i386_pe_encode_section_info): Likewise.
12306 * config/i386/x-cygwin: Likewise.
12307 * config/i386/x-darwin: Likewise.
12308 * config/i386/x-i386: Likewise.
12309 * config/i386/x-mingw32: Likewise.
12310 * config/i386/x86-tune-sched-core.cc: Likewise.
12311 * config/i386/x86-tune.def: Likewise.
12312 * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
12313 * config/ia64/freebsd.h: Likewise.
12314 * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
12315 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
12316 * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
12317 (ia64_secondary_reload_class): Likewise.
12318 (bundling): Likewise.
12319 * config/ia64/ia64.h: Likewise.
12320 * config/ia64/ia64.md: Likewise.
12321 * config/ia64/predicates.md: Likewise.
12322 * config/ia64/sysv4.h: Likewise.
12323 * config/ia64/t-ia64: Likewise.
12324 * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
12325 * config/iq2000/iq2000.md: Likewise.
12326 * config/linux.h (TARGET_HAS_BIONIC): Likewise.
12328 * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
12329 * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
12330 * config/m32c/t-m32c: Likewise.
12331 * config/m32r/m32r-protos.h: Likewise.
12332 * config/m32r/m32r.cc (m32r_print_operand): Likewise.
12333 * config/m32r/m32r.h: Likewise.
12334 * config/m32r/m32r.md: Likewise.
12335 * config/m68k/m68k-isas.def: Likewise.
12336 * config/m68k/m68k-microarchs.def: Likewise.
12337 * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
12338 (m68k_epilogue_uses): Likewise.
12339 * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
12340 (m68k_sched_adjust_cost): Likewise.
12341 (m68k_sched_md_init): Likewise.
12342 * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
12343 (enum m68k_function_kind): Likewise.
12344 * config/m68k/m68k.md: Likewise.
12345 * config/m68k/m68kemb.h: Likewise.
12346 * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
12347 * config/mcore/mcore-protos.h: Likewise.
12348 * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
12349 (mcore_expand_prolog): Likewise.
12350 * config/mcore/mcore.h (TARGET_MCORE): Likewise.
12351 * config/mcore/mcore.md: Likewise.
12352 * config/microblaze/microblaze-protos.h: Likewise.
12353 * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
12354 (microblaze_function_prologue): Likewise.
12355 (microblaze_function_epilogue): Likewise.
12356 (microblaze_select_section): Likewise.
12357 (microblaze_asm_output_mi_thunk): Likewise.
12358 (microblaze_eh_return): Likewise.
12359 * config/microblaze/microblaze.h: Likewise.
12360 * config/microblaze/microblaze.md: Likewise.
12361 * config/microblaze/t-microblaze: Likewise.
12362 * config/mips/driver-native.cc: Likewise.
12363 * config/mips/loongson2ef.md: Likewise.
12364 * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
12365 * config/mips/mips.cc (mips_rtx_costs): Likewise.
12366 (mips_output_filename): Likewise.
12367 (mips_output_function_prologue): Likewise.
12368 (mips_output_function_epilogue): Likewise.
12369 (mips_output_mi_thunk): Likewise.
12370 * config/mips/mips.h: Likewise.
12371 * config/mips/mips.md: Likewise.
12372 * config/mips/t-mips: Likewise.
12373 * config/mips/x-native: Likewise.
12374 * config/mmix/mmix-protos.h: Likewise.
12375 * config/mmix/mmix.cc (mmix_option_override): Likewise.
12376 (mmix_dbx_register_number): Likewise.
12377 (mmix_expand_prologue): Likewise.
12378 * config/mmix/mmix.h: Likewise.
12379 * config/mmix/mmix.md: Likewise.
12380 * config/mmix/predicates.md: Likewise.
12381 * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
12382 (mn10300_legitimate_pic_operand_p): Likewise.
12383 * config/mn10300/mn10300.h (enum reg_class): Likewise.
12384 (NO_FUNCTION_CSE): Likewise.
12385 * config/moxie/moxie-protos.h: Likewise.
12386 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
12387 * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
12388 * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
12389 (msp430_incoming_return_addr_rtx): Likewise.
12390 * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
12391 * config/msp430/t-msp430: Likewise.
12392 * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
12393 (nds32_rtx_costs_size_prefer): Likewise.
12394 (nds32_init_rtx_costs): Likewise.
12395 * config/nds32/nds32-doubleword.md: Likewise.
12396 * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
12397 (nds32_builtin_decl): Likewise.
12398 * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
12399 (enum nds32_isr_nested_type): Likewise.
12400 (enum reg_class): Likewise.
12401 * config/nds32/predicates.md: Likewise.
12402 * config/nds32/t-nds32: Likewise.
12403 * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
12404 * config/nvptx/nvptx-protos.h: Likewise.
12405 * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
12406 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
12407 * config/nvptx/t-nvptx: Likewise.
12408 * config/nvptx/t-omp-device: Likewise.
12409 * config/pa/elf.h: Likewise.
12410 * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
12411 * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
12412 * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
12413 * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
12414 (pa_legitimize_reload_address): Likewise.
12415 (pa_can_use_return_insn): Likewise.
12416 * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
12417 (som_output_text_section_asm_op): Likewise.
12418 * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
12419 * config/pa/pa.md: Likewise.
12420 * config/pa/som.h: Likewise.
12421 * config/pa/t-pa: Likewise.
12422 * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
12423 * config/pdp11/pdp11.h: Likewise.
12424 * config/pdp11/pdp11.md: Likewise.
12425 * config/pdp11/t-pdp11: Likewise.
12426 * config/pru/pru.md: Likewise.
12427 * config/pru/t-pru: Likewise.
12428 * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
12429 (riscv_gpr_save_operation_p): Likewise.
12430 (riscv_d_register_target_info): Likewise.
12431 (riscv_init_builtins): Likewise.
12432 * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
12433 * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
12434 * config/riscv/t-riscv: Likewise.
12435 * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
12436 * config/rl78/t-rl78: Likewise.
12437 * config/rs6000/aix.h: Likewise.
12438 * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
12439 * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
12440 * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
12441 * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
12442 * config/rs6000/driver-rs6000.cc: Likewise.
12443 * config/rs6000/freebsd.h: Likewise.
12444 * config/rs6000/freebsd64.h: Likewise.
12445 * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
12446 * config/rs6000/rbtree.cc: Likewise.
12447 * config/rs6000/rbtree.h: Likewise.
12448 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
12449 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
12450 (rs6000_expand_builtin): Likewise.
12451 (rs6000_init_builtins): Likewise.
12452 * config/rs6000/rs6000-cpus.def: Likewise.
12453 * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
12454 * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
12455 (quad_address_offset_p): Likewise.
12456 * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
12457 (rs6000_emit_epilogue): Likewise.
12458 * config/rs6000/rs6000-overload.def: Likewise.
12459 * config/rs6000/rs6000-p8swap.cc: Likewise.
12460 * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
12461 (rs6000_const_f32_to_i32): Likewise.
12462 * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
12463 (rs6000_debug_legitimize_address): Likewise.
12464 (rs6000_mode_dependent_address): Likewise.
12465 (rs6000_adjust_priority): Likewise.
12466 (rs6000_c_mode_for_suffix): Likewise.
12467 * config/rs6000/rs6000.h (defined): Likewise.
12468 (LONG_DOUBLE_TYPE_SIZE): Likewise.
12469 * config/rs6000/rs6000.md: Likewise.
12470 * config/rs6000/sysv4.h: Likewise.
12471 * config/rs6000/t-linux: Likewise.
12472 * config/rs6000/t-linux64: Likewise.
12473 * config/rs6000/t-rs6000: Likewise.
12474 * config/rs6000/x-darwin: Likewise.
12475 * config/rs6000/x-darwin64: Likewise.
12476 * config/rs6000/x-rs6000: Likewise.
12477 * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
12478 * config/rx/rx.cc (rx_expand_builtin): Likewise.
12479 * config/s390/constraints.md: Likewise.
12480 * config/s390/driver-native.cc: Likewise.
12481 * config/s390/htmxlintrin.h: Likewise.
12482 * config/s390/s390-builtins.def (B_DEF): Likewise.
12483 (OB_DEF_VAR): Likewise.
12484 * config/s390/s390-builtins.h: Likewise.
12485 * config/s390/s390-c.cc: Likewise.
12486 * config/s390/s390-opts.h: Likewise.
12487 * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
12488 (s390_register_target_pragmas): Likewise.
12489 * config/s390/s390.cc (s390_init_builtins): Likewise.
12490 (s390_expand_plus_operand): Likewise.
12491 (s390_expand_atomic): Likewise.
12492 (s390_valid_target_attribute_inner_p): Likewise.
12493 * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
12494 * config/s390/s390.md: Likewise.
12495 * config/s390/t-s390: Likewise.
12496 * config/s390/vx-builtins.md: Likewise.
12497 * config/s390/x-native: Likewise.
12498 * config/sh/divtab-sh4-300.cc (main): Likewise.
12499 * config/sh/divtab-sh4.cc (main): Likewise.
12500 * config/sh/divtab.cc (main): Likewise.
12501 * config/sh/elf.h: Likewise.
12502 * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
12503 * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
12504 (sh_struct_value_rtx): Likewise.
12505 (sh_remove_reg_dead_or_unused_notes): Likewise.
12506 * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
12507 * config/sh/t-sh: Likewise.
12508 * config/sol2-protos.h (solaris_override_options): Likewise.
12509 * config/sol2.h: Likewise.
12510 * config/sparc/driver-sparc.cc: Likewise.
12511 * config/sparc/freebsd.h: Likewise.
12512 * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
12513 * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
12514 (sparc_asan_shadow_offset): Likewise.
12515 * config/sparc/sparc.h: Likewise.
12516 * config/sparc/sparc.md: Likewise.
12517 * config/sparc/t-sparc: Likewise.
12518 * config/sparc/x-sparc: Likewise.
12519 * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
12520 * config/t-darwin: Likewise.
12521 * config/t-dragonfly: Likewise.
12522 * config/t-freebsd: Likewise.
12523 * config/t-glibc: Likewise.
12524 * config/t-linux: Likewise.
12525 * config/t-netbsd: Likewise.
12526 * config/t-openbsd: Likewise.
12527 * config/t-pnt16-warn: Likewise.
12528 * config/t-sol2: Likewise.
12529 * config/t-vxworks: Likewise.
12530 * config/t-winnt: Likewise.
12531 * config/tilegx/t-tilegx: Likewise.
12532 * config/tilegx/tilegx-c.cc: Likewise.
12533 * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
12534 * config/tilegx/tilegx.md: Likewise.
12535 * config/tilepro/t-tilepro: Likewise.
12536 * config/tilepro/tilepro-c.cc: Likewise.
12537 * config/v850/t-v850: Likewise.
12538 * config/v850/v850-protos.h: Likewise.
12539 * config/v850/v850.cc (F): Likewise.
12540 * config/v850/v850.h (enum reg_class): Likewise.
12541 (SLOW_BYTE_ACCESS): Likewise.
12542 * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
12543 * config/vax/vax.h (enum reg_class): Likewise.
12544 * config/vax/vax.md: Likewise.
12545 * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
12546 * config/visium/visium.h: Likewise.
12547 * config/vms/t-vms: Likewise.
12548 * config/vms/vms-crtlmap.map: Likewise.
12549 * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
12550 * config/vx-common.h: Likewise.
12551 * config/x-darwin: Likewise.
12552 * config/x-hpux: Likewise.
12553 * config/x-linux: Likewise.
12554 * config/x-netbsd: Likewise.
12555 * config/x-openbsd: Likewise.
12556 * config/x-solaris: Likewise.
12557 * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
12558 * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
12559 * config/xtensa/xtensa.h: Likewise.
12560 * configure.ac: Likewise.
12561 * context.cc: Likewise.
12562 * convert.h: Likewise.
12563 * coretypes.h: Likewise.
12564 * coverage.cc: Likewise.
12565 * coverage.h: Likewise.
12566 * cppdefault.h (struct default_include): Likewise.
12567 * cprop.cc (local_cprop_pass): Likewise.
12568 (one_cprop_pass): Likewise.
12569 * cse.cc (hash_rtx_cb): Likewise.
12570 (fold_rtx): Likewise.
12571 * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
12572 * data-streamer.h (bp_unpack_var_len_int): Likewise.
12573 (streamer_write_widest_int): Likewise.
12574 * dbgcnt.def: Likewise.
12575 * dbxout.cc (dbxout_early_global_decl): Likewise.
12576 (dbxout_common_check): Likewise.
12577 * dbxout.h: Likewise.
12578 * debug.h (struct gcc_debug_hooks): Likewise.
12579 (dump_go_spec_init): Likewise.
12580 * df-core.cc: Likewise.
12581 * df-scan.cc (df_insn_info_delete): Likewise.
12582 (df_insn_delete): Likewise.
12583 * df.h (debug_df_chain): Likewise.
12584 (can_move_insns_across): Likewise.
12585 * dfp.cc (decimal_from_binary): Likewise.
12586 * diagnostic-color.cc: Likewise.
12587 * diagnostic-event-id.h: Likewise.
12588 * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
12589 * diagnostic.cc (bt_callback): Likewise.
12590 (num_digits): Likewise.
12591 * doc/avr-mmcu.texi: Likewise.
12592 * doc/cfg.texi: Likewise.
12593 * doc/contrib.texi: Likewise.
12594 * doc/cppinternals.texi: Likewise.
12595 * doc/extend.texi: Likewise.
12596 * doc/generic.texi: Likewise.
12597 * doc/gimple.texi: Likewise.
12598 * doc/gty.texi: Likewise.
12599 * doc/invoke.texi: Likewise.
12600 * doc/loop.texi: Likewise.
12601 * doc/lto.texi: Likewise.
12602 * doc/match-and-simplify.texi: Likewise.
12603 * doc/md.texi: Likewise.
12604 * doc/optinfo.texi: Likewise.
12605 * doc/options.texi: Likewise.
12606 * doc/passes.texi: Likewise.
12607 * doc/plugins.texi: Likewise.
12608 * doc/rtl.texi: Likewise.
12609 * doc/sourcebuild.texi: Likewise.
12610 * doc/tm.texi: Likewise.
12611 * doc/tm.texi.in: Likewise.
12612 * doc/tree-ssa.texi: Likewise.
12613 * dojump.cc (do_jump): Likewise.
12614 * dojump.h: Likewise.
12615 * dumpfile.cc (test_impl_location): Likewise.
12616 (test_capture_of_dump_calls): Likewise.
12617 * dumpfile.h (enum dump_kind): Likewise.
12618 (class dump_location_t): Likewise.
12619 (dump_enabled_p): Likewise.
12620 (enable_rtl_dump_file): Likewise.
12621 (dump_combine_total_stats): Likewise.
12622 * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
12623 * dwarf2ctf.h (ctf_debug_finish): Likewise.
12624 * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
12625 (struct loc_descr_context): Likewise.
12626 (rtl_for_decl_location): Likewise.
12627 (gen_subprogram_die): Likewise.
12628 (gen_label_die): Likewise.
12629 (is_trivial_indirect_ref): Likewise.
12630 (dwarf2out_late_global_decl): Likewise.
12631 (dwarf_file_hasher::hash): Likewise.
12632 (dwarf2out_end_source_file): Likewise.
12633 (dwarf2out_define): Likewise.
12634 (dwarf2out_early_finish): Likewise.
12635 * dwarf2out.h (struct dw_fde_node): Likewise.
12636 (struct dw_discr_list_node): Likewise.
12637 (output_loc_sequence_raw): Likewise.
12638 * emit-rtl.cc (gen_raw_REG): Likewise.
12639 (maybe_set_max_label_num): Likewise.
12640 * emit-rtl.h (struct rtl_data): Likewise.
12641 * errors.cc (internal_error): Likewise.
12642 (trim_filename): Likewise.
12643 * et-forest.cc: Likewise.
12644 * except.cc (init_eh_for_function): Likewise.
12645 * explow.cc (promote_ssa_mode): Likewise.
12646 (get_dynamic_stack_size): Likewise.
12647 * explow.h: Likewise.
12648 * expmed.h: Likewise.
12649 * expr.cc (safe_from_p): Likewise.
12650 (expand_expr_real_2): Likewise.
12651 (expand_expr_real_1): Likewise.
12652 * file-prefix-map.cc (remap_filename): Likewise.
12653 * final.cc (app_enable): Likewise.
12654 (make_pass_compute_alignments): Likewise.
12655 (final_scan_insn_1): Likewise.
12656 (final_scan_insn): Likewise.
12657 * fixed-value.h (fixed_from_string): Likewise.
12658 * flag-types.h (NO_DEBUG): Likewise.
12659 (DWARF2_DEBUG): Likewise.
12660 (VMS_DEBUG): Likewise.
12661 (BTF_DEBUG): Likewise.
12662 (enum ctf_debug_info_levels): Likewise.
12663 * fold-const.cc (const_binop): Likewise.
12664 (fold_binary_loc): Likewise.
12665 (fold_checksum_tree): Likewise.
12666 * fp-test.cc: Likewise.
12667 * function.cc (expand_function_end): Likewise.
12668 * function.h (struct function): Likewise.
12669 * fwprop.cc (should_replace_address): Likewise.
12670 * gcc-main.cc: Likewise.
12671 * gcc-rich-location.h (class gcc_rich_location): Likewise.
12672 * gcc-symtab.h: Likewise.
12673 * gcc.cc (MIN_FATAL_STATUS): Likewise.
12674 (driver_handle_option): Likewise.
12675 (quote_spec_arg): Likewise.
12676 (driver::finalize): Likewise.
12677 * gcc.h (set_input): Likewise.
12678 * gcov-dump.cc: Likewise.
12679 * gcov.cc (solve_flow_graph): Likewise.
12680 * gcse-common.cc: Likewise.
12681 * gcse.cc (make_pass_rtl_hoist): Likewise.
12682 * genattr-common.cc: Likewise.
12683 * genattrtab.cc (min_fn): Likewise.
12684 (write_const_num_delay_slots): Likewise.
12685 * genautomata.cc: Likewise.
12686 * genconditions.cc (write_one_condition): Likewise.
12687 * genconstants.cc: Likewise.
12688 * genemit.cc (gen_exp): Likewise.
12689 * generic-match-head.cc: Likewise.
12690 * genextract.cc: Likewise.
12691 * gengenrtl.cc (always_void_p): Likewise.
12692 * gengtype-parse.cc (gtymarker_opt): Likewise.
12693 * gengtype-state.cc (state_writer::state_writer): Likewise.
12694 (write_state_trailer): Likewise.
12695 (equals_type_number): Likewise.
12696 (read_state): Likewise.
12697 * gengtype.cc (open_base_files): Likewise.
12698 (struct file_rule_st): Likewise.
12699 (header_dot_h_frul): Likewise.
12700 * gengtype.h: Likewise.
12701 * genmatch.cc (main): Likewise.
12702 * genmddeps.cc: Likewise.
12703 * genmodes.cc (emit_mode_inner): Likewise.
12704 (emit_mode_unit_size): Likewise.
12705 * genpeep.cc (gen_peephole): Likewise.
12706 * genpreds.cc (write_tm_preds_h): Likewise.
12707 * genrecog.cc (validate_pattern): Likewise.
12708 (write_header): Likewise.
12710 * gensupport.cc (change_subst_attribute): Likewise.
12711 (traverse_c_tests): Likewise.
12712 (add_predicate): Likewise.
12713 (init_predicate_table): Likewise.
12714 * gensupport.h (struct optab_pattern): Likewise.
12715 (get_num_insn_codes): Likewise.
12716 (maybe_eval_c_test): Likewise.
12717 (struct pred_data): Likewise.
12718 * ggc-internal.h: Likewise.
12719 * gimple-fold.cc (maybe_fold_reference): Likewise.
12720 (get_range_strlen_tree): Likewise.
12721 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
12722 * gimple-low.cc: Likewise.
12723 * gimple-match-head.cc (directly_supported_p): Likewise.
12724 * gimple-pretty-print.h: Likewise.
12725 * gimple-ssa-sprintf.cc (format_percent): Likewise.
12726 (adjust_range_for_overflow): Likewise.
12727 * gimple-streamer.h: Likewise.
12728 * gimple.h (struct GTY): Likewise.
12729 (is_gimple_resx): Likewise.
12730 * gimplify.cc (gimplify_expr): Likewise.
12731 (gimplify_init_constructor): Likewise.
12732 (omp_construct_selector_matches): Likewise.
12733 (gimplify_omp_target_update): Likewise.
12734 (gimplify_omp_ordered): Likewise.
12735 (gimplify_va_arg_expr): Likewise.
12736 * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
12737 * haifa-sched.cc (increase_insn_priority): Likewise.
12738 (try_ready): Likewise.
12739 (sched_create_recovery_edges): Likewise.
12740 * ifcvt.cc (find_if_case_1): Likewise.
12741 (find_if_case_2): Likewise.
12742 * inchash.h: Likewise.
12743 * incpath.cc (add_env_var_paths): Likewise.
12744 * input.cc (dump_location_info): Likewise.
12745 (assert_loceq): Likewise.
12746 (test_lexer_string_locations_concatenation_1): Likewise.
12747 (test_lexer_string_locations_concatenation_2): Likewise.
12748 (test_lexer_string_locations_concatenation_3): Likewise.
12749 * input.h (BUILTINS_LOCATION): Likewise.
12750 (class string_concat_db): Likewise.
12751 * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
12752 (expand_LOOP_VECTORIZED): Likewise.
12753 * ipa-cp.cc (make_pass_ipa_cp): Likewise.
12754 * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
12755 (ipa_fn_summary_t::duplicate): Likewise.
12756 (make_pass_ipa_fn_summary): Likewise.
12757 * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
12758 * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
12759 (free_lang_data_in_decl): Likewise.
12760 * ipa-inline.cc (compute_inlined_call_time): Likewise.
12761 (inline_always_inline_functions): Likewise.
12762 * ipa-inline.h (free_growth_caches): Likewise.
12763 (inline_account_function_p): Likewise.
12764 * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
12765 (modref_eaf_analysis::analyze_ssa_name): Likewise.
12766 * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
12767 (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
12768 * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
12769 * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
12770 (unadjusted_ptr_and_unit_offset): Likewise.
12771 * ipa-reference.cc (make_pass_ipa_reference): Likewise.
12772 * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
12773 * ipa-split.cc (consider_split): Likewise.
12774 * ipa-sra.cc (isra_read_node_info): Likewise.
12775 * ipa-utils.h (struct ipa_dfs_info): Likewise.
12776 (recursive_call_p): Likewise.
12777 (ipa_make_function_pure): Likewise.
12778 * ira-build.cc (ira_create_allocno): Likewise.
12779 (ira_flattening): Likewise.
12780 * ira-color.cc (do_coloring): Likewise.
12781 (update_curr_costs): Likewise.
12782 * ira-conflicts.cc (process_regs_for_copy): Likewise.
12783 * ira-int.h (struct ira_emit_data): Likewise.
12784 (ira_prohibited_mode_move_regs): Likewise.
12785 (ira_get_dup_out_num): Likewise.
12786 (ira_destroy): Likewise.
12787 (ira_tune_allocno_costs): Likewise.
12788 (ira_implicitly_set_insn_hard_regs): Likewise.
12789 (ira_build_conflicts): Likewise.
12790 (ira_color): Likewise.
12791 * ira-lives.cc (process_bb_node_lives): Likewise.
12792 * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
12793 (setup_uniform_class_p): Likewise.
12794 (def_dominates_uses): Likewise.
12795 * ira.h (ira_nullify_asm_goto): Likewise.
12796 * langhooks.cc (lhd_post_options): Likewise.
12797 * langhooks.h (class substring_loc): Likewise.
12798 (struct lang_hooks_for_tree_inlining): Likewise.
12799 (struct lang_hooks_for_types): Likewise.
12800 (struct lang_hooks): Likewise.
12801 * libfuncs.h (synchronize_libfunc): Likewise.
12802 * loop-doloop.cc (doloop_condition_get): Likewise.
12803 * loop-init.cc (fix_loop_structure): Likewise.
12804 * loop-invariant.cc: Likewise.
12805 * lower-subreg.h: Likewise.
12806 * lra-constraints.cc (curr_insn_transform): Likewise.
12807 * lra-int.h (struct lra_insn_reg): Likewise.
12808 (lra_undo_inheritance): Likewise.
12809 (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
12810 (lra_split_hard_reg_for): Likewise.
12811 (lra_coalesce): Likewise.
12812 (lra_final_code_change): Likewise.
12813 * lra-spills.cc (lra_final_code_change): Likewise.
12814 * lra.cc (lra_process_new_insns): Likewise.
12815 * lto-compress.h (struct lto_compression_stream): Likewise.
12816 * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
12817 (write_symbol): Likewise.
12818 * lto-streamer.h (enum LTO_tags): Likewise.
12819 (lto_value_range_error): Likewise.
12820 (lto_append_block): Likewise.
12821 (lto_streamer_hooks_init): Likewise.
12822 (stream_read_tree_ref): Likewise.
12823 (lto_prepare_function_for_streaming): Likewise.
12824 (select_what_to_stream): Likewise.
12825 (omp_lto_input_declare_variant_alt): Likewise.
12826 (cl_optimization_stream_in): Likewise.
12827 * lto-wrapper.cc (append_compiler_options): Likewise.
12828 * machmode.def: Likewise.
12829 * machmode.h (struct int_n_data_t): Likewise.
12830 * main.cc (main): Likewise.
12831 * match.pd: Likewise.
12832 * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
12833 (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
12834 * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
12835 (make_pass_expand_omp_ssa): Likewise.
12836 * omp-low.cc (struct omp_context): Likewise.
12837 (struct omp_taskcopy_context): Likewise.
12838 (lower_omp): Likewise.
12839 * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
12840 (mask_name): Likewise.
12841 (omp_sese_dump_pars): Likewise.
12842 (worker_single_simple): Likewise.
12843 * omp-offload.cc (omp_finish_file): Likewise.
12844 (execute_oacc_loop_designation): Likewise.
12845 * optabs-query.cc (lshift_cheap_p): Likewise.
12846 * optc-gen.awk: Likewise.
12847 * optc-save-gen.awk: Likewise.
12848 * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
12849 * opts-common.cc: Likewise.
12850 * output.h (app_enable): Likewise.
12851 (output_operand_lossage): Likewise.
12852 (insn_current_reference_address): Likewise.
12853 (get_insn_template): Likewise.
12854 (output_quoted_string): Likewise.
12855 * pass_manager.h (struct register_pass_info): Likewise.
12856 * plugin.cc: Likewise.
12857 * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
12858 * plugin.h (invoke_plugin_callbacks): Likewise.
12859 * pointer-query.cc (handle_mem_ref): Likewise.
12860 * postreload-gcse.cc (alloc_mem): Likewise.
12861 * predict.h (enum prediction): Likewise.
12862 (add_reg_br_prob_note): Likewise.
12863 * prefix.h: Likewise.
12864 * profile.h (get_working_sets): Likewise.
12865 * read-md.cc: Likewise.
12866 * read-md.h (struct mapping): Likewise.
12867 (class md_reader): Likewise.
12868 (class noop_reader): Likewise.
12869 * read-rtl-function.cc (function_reader::create_function): Likewise.
12870 (function_reader::extra_parsing_for_operand_code_0): Likewise.
12871 * read-rtl.cc (initialize_iterators): Likewise.
12872 * real.cc: Likewise.
12873 * real.h (struct real_value): Likewise.
12874 (format_helper::format_helper): Likewise.
12875 (real_hash): Likewise.
12876 (real_can_shorten_arithmetic): Likewise.
12877 * recog.cc (struct target_recog): Likewise.
12878 (offsettable_nonstrict_memref_p): Likewise.
12879 (constrain_operands): Likewise.
12880 * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
12881 (which_op_alt): Likewise.
12882 (struct insn_gen_fn): Likewise.
12883 * reg-notes.def (REG_NOTE): Likewise.
12884 * reg-stack.cc: Likewise.
12885 * regs.h (reg_is_parm_p): Likewise.
12886 * regset.h: Likewise.
12887 * reload.cc (push_reload): Likewise.
12888 (find_reloads): Likewise.
12889 (find_reloads_address_1): Likewise.
12890 (find_replacement): Likewise.
12891 (refers_to_regno_for_reload_p): Likewise.
12892 (refers_to_mem_for_reload_p): Likewise.
12893 * reload.h (push_reload): Likewise.
12894 (deallocate_reload_reg): Likewise.
12895 * reload1.cc (emit_input_reload_insns): Likewise.
12896 * reorg.cc (relax_delay_slots): Likewise.
12897 * rtl.def (UNKNOWN): Likewise.
12898 (SEQUENCE): Likewise.
12899 (BARRIER): Likewise.
12900 (ASM_OPERANDS): Likewise.
12901 (EQ_ATTR_ALT): Likewise.
12902 * rtl.h (struct GTY): Likewise.
12903 (LABEL_NAME): Likewise.
12904 (LABEL_ALT_ENTRY_P): Likewise.
12905 (SUBREG_BYTE): Likewise.
12906 (get_stack_check_protect): Likewise.
12907 (dump_rtx_statistics): Likewise.
12908 (unwrap_const_vec_duplicate): Likewise.
12909 (subreg_promoted_mode): Likewise.
12910 (gen_lowpart_common): Likewise.
12911 (operand_subword): Likewise.
12912 (immed_wide_int_const): Likewise.
12913 (decide_function_section): Likewise.
12914 (active_insn_p): Likewise.
12915 (delete_related_insns): Likewise.
12916 (try_split): Likewise.
12917 (val_signbit_known_clear_p): Likewise.
12918 (simplifiable_subregs): Likewise.
12919 (set_insn_deleted): Likewise.
12920 (subreg_get_info): Likewise.
12921 (remove_free_EXPR_LIST_node): Likewise.
12922 (finish_subregs_of_mode): Likewise.
12923 (get_mem_attrs): Likewise.
12924 (lookup_constant_def): Likewise.
12925 (rtx_to_tree_code): Likewise.
12926 (hash_rtx): Likewise.
12927 (condjump_in_parallel_p): Likewise.
12928 (validate_subreg): Likewise.
12929 (make_compound_operation): Likewise.
12930 (schedule_ebbs): Likewise.
12931 (print_inline_rtx): Likewise.
12932 (fixup_args_size_notes): Likewise.
12933 (expand_dec): Likewise.
12934 (prepare_copy_insn): Likewise.
12935 (mark_elimination): Likewise.
12936 (valid_mode_changes_for_regno): Likewise.
12937 (make_debug_expr_from_rtl): Likewise.
12938 (delete_vta_debug_insns): Likewise.
12939 (simplify_using_condition): Likewise.
12940 (set_insn_locations): Likewise.
12941 (fatal_insn_not_found): Likewise.
12942 (word_register_operation_p): Likewise.
12943 * rtlanal.cc (get_call_fndecl): Likewise.
12944 (side_effects_p): Likewise.
12945 (subreg_nregs): Likewise.
12946 (rtx_cost): Likewise.
12947 (canonicalize_condition): Likewise.
12948 * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
12949 * run-rtl-passes.cc (run_rtl_passes): Likewise.
12950 * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
12951 * sched-deps.cc (add_dependence_1): Likewise.
12952 * sched-ebb.cc (begin_move_insn): Likewise.
12953 (add_deps_for_risky_insns): Likewise.
12954 (advance_target_bb): Likewise.
12955 * sched-int.h (reemit_notes): Likewise.
12956 (struct _haifa_insn_data): Likewise.
12958 (DEP_CANCELLED): Likewise.
12959 (debug_ds): Likewise.
12960 (number_in_ready): Likewise.
12961 (schedule_ebbs_finish): Likewise.
12962 (find_modifiable_mems): Likewise.
12963 * sched-rgn.cc (debug_rgn_dependencies): Likewise.
12964 * sel-sched-dump.cc (dump_lv_set): Likewise.
12965 * sel-sched-dump.h: Likewise.
12966 * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
12967 (setup_id_reg_sets): Likewise.
12968 (has_dependence_p): Likewise.
12969 (sel_num_cfg_preds_gt_1): Likewise.
12970 (bb_ends_ebb_p): Likewise.
12971 * sel-sched-ir.h (struct _list_node): Likewise.
12972 (struct idata_def): Likewise.
12973 (bb_next_bb): Likewise.
12974 * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
12975 (choose_best_pseudo_reg): Likewise.
12976 (verify_target_availability): Likewise.
12977 (can_speculate_dep_p): Likewise.
12978 (sel_rank_for_schedule): Likewise.
12979 * selftest-run-tests.cc (selftest::run_tests): Likewise.
12980 * selftest.h (class auto_fix_quotes): Likewise.
12981 * shrink-wrap.cc (handle_simple_exit): Likewise.
12982 * shrink-wrap.h: Likewise.
12983 * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
12984 (simplify_context::simplify_gen_vec_select): Likewise.
12985 * spellcheck-tree.h: Likewise.
12986 * spellcheck.h: Likewise.
12987 * statistics.h (struct function): Likewise.
12988 * stmt.cc (conditional_probability): Likewise.
12989 * stmt.h: Likewise.
12990 * stor-layout.h: Likewise.
12991 * streamer-hooks.h: Likewise.
12992 * stringpool.h: Likewise.
12993 * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
12994 * target.def (HOOK_VECTOR_END): Likewise.
12996 * target.h (union cumulative_args_t): Likewise.
12997 (by_pieces_ninsns): Likewise.
12998 (class predefined_function_abi): Likewise.
12999 * targhooks.cc (default_translate_mode_attribute): Likewise.
13000 * timevar.def: Likewise.
13001 * timevar.h (class timer): Likewise.
13002 * toplev.h (enable_rtl_dump_file): Likewise.
13003 * trans-mem.cc (collect_bb2reg): Likewise.
13004 * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
13005 * tree-cfg.cc (remove_bb): Likewise.
13006 (verify_gimple_debug): Likewise.
13007 (remove_edge_and_dominated_blocks): Likewise.
13008 (push_fndecl): Likewise.
13009 * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
13010 * tree-complex.cc (expand_complex_multiplication): Likewise.
13011 (expand_complex_div_straight): Likewise.
13012 * tree-core.h (enum tree_index): Likewise.
13013 (enum operand_equal_flag): Likewise.
13014 * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
13015 * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
13016 * tree-inline.cc (initialize_inlined_parameters): Likewise.
13017 * tree-inline.h (force_value_to_type): Likewise.
13018 * tree-nested.cc (get_chain_decl): Likewise.
13019 (walk_all_functions): Likewise.
13020 * tree-object-size.h: Likewise.
13021 * tree-outof-ssa.cc: Likewise.
13022 * tree-parloops.cc (create_parallel_loop): Likewise.
13023 * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
13024 (dump_generic_node): Likewise.
13025 * tree-profile.cc (tree_profiling): Likewise.
13026 * tree-sra.cc (maybe_add_sra_candidate): Likewise.
13027 * tree-ssa-address.cc: Likewise.
13028 * tree-ssa-alias.cc: Likewise.
13029 * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
13030 (dump_alias_stats): Likewise.
13031 * tree-ssa-ccp.cc: Likewise.
13032 * tree-ssa-coalesce.h: Likewise.
13033 * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
13034 * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
13035 * tree-ssa-loop-unswitch.cc: Likewise.
13036 * tree-ssa-math-opts.cc: Likewise.
13037 * tree-ssa-operands.cc (class operands_scanner): Likewise.
13038 * tree-ssa-pre.cc: Likewise.
13039 * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
13040 (debug_range_entry): Likewise.
13041 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
13042 * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
13043 * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
13044 (equal_mem_array_ref_p): Likewise.
13045 * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
13046 * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
13047 * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
13048 * tree-ssa-ter.h: Likewise.
13049 * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
13050 * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
13051 * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
13052 (write_ts_block_tree_pointers): Likewise.
13053 * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
13054 (streamer_read_tree_bitfields): Likewise.
13055 (streamer_write_integer_cst): Likewise.
13056 * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
13057 (vect_synth_mult_by_constant): Likewise.
13058 * tree-vect-stmts.cc (vectorizable_operation): Likewise.
13059 * tree-vectorizer.cc: Likewise.
13060 * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
13061 (vect_update_inits_of_drs): Likewise.
13062 (vect_get_mask_type_for_stmt): Likewise.
13063 (vect_rgroup_iv_might_wrap_p): Likewise.
13064 (cse_and_gimplify_to_preheader): Likewise.
13065 (vect_free_slp_tree): Likewise.
13066 (vect_pattern_recog): Likewise.
13067 (vect_stmt_dominates_stmt_p): Likewise.
13068 * tree.cc (initialize_tree_contains_struct): Likewise.
13069 (need_assembler_name_p): Likewise.
13070 (type_with_interoperable_signedness): Likewise.
13071 * tree.def (SWITCH_EXPR): Likewise.
13072 * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
13073 (poly_int_tree_p): Likewise.
13074 (inlined_function_outer_scope_p): Likewise.
13075 (tree_code_for_canonical_type_merging): Likewise.
13076 * value-prof.cc: Likewise.
13077 * value-prof.h (get_nth_most_common_value): Likewise.
13078 (find_func_by_profile_id): Likewise.
13079 * value-range.cc (vrp_operand_equal_p): Likewise.
13080 * value-range.h: Likewise.
13081 * var-tracking.cc: Likewise.
13082 * varasm.cc (default_function_section): Likewise.
13083 (function_section_1): Likewise.
13084 (assemble_variable): Likewise.
13085 (handle_vtv_comdat_section): Likewise.
13086 * vec.h (struct vec_prefix): Likewise.
13087 * vmsdbgout.cc (full_name): Likewise.
13088 * vtable-verify.cc: Likewise.
13089 * vtable-verify.h (struct vtv_graph_node): Likewise.
13090 * xcoffout.cc: Likewise.
13091 * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
13093 2022-01-17 Martin Liska <mliska@suse.cz>
13095 * adjust-alignment.c: Moved to...
13096 * adjust-alignment.cc: ...here.
13097 * alias.c: Moved to...
13098 * alias.cc: ...here.
13099 * alloc-pool.c: Moved to...
13100 * alloc-pool.cc: ...here.
13101 * asan.c: Moved to...
13102 * asan.cc: ...here.
13103 * attribs.c: Moved to...
13104 * attribs.cc: ...here.
13105 * auto-inc-dec.c: Moved to...
13106 * auto-inc-dec.cc: ...here.
13107 * auto-profile.c: Moved to...
13108 * auto-profile.cc: ...here.
13109 * bb-reorder.c: Moved to...
13110 * bb-reorder.cc: ...here.
13111 * bitmap.c: Moved to...
13112 * bitmap.cc: ...here.
13113 * btfout.c: Moved to...
13114 * btfout.cc: ...here.
13115 * builtins.c: Moved to...
13116 * builtins.cc: ...here.
13117 * caller-save.c: Moved to...
13118 * caller-save.cc: ...here.
13119 * calls.c: Moved to...
13120 * calls.cc: ...here.
13121 * ccmp.c: Moved to...
13122 * ccmp.cc: ...here.
13123 * cfg.c: Moved to...
13125 * cfganal.c: Moved to...
13126 * cfganal.cc: ...here.
13127 * cfgbuild.c: Moved to...
13128 * cfgbuild.cc: ...here.
13129 * cfgcleanup.c: Moved to...
13130 * cfgcleanup.cc: ...here.
13131 * cfgexpand.c: Moved to...
13132 * cfgexpand.cc: ...here.
13133 * cfghooks.c: Moved to...
13134 * cfghooks.cc: ...here.
13135 * cfgloop.c: Moved to...
13136 * cfgloop.cc: ...here.
13137 * cfgloopanal.c: Moved to...
13138 * cfgloopanal.cc: ...here.
13139 * cfgloopmanip.c: Moved to...
13140 * cfgloopmanip.cc: ...here.
13141 * cfgrtl.c: Moved to...
13142 * cfgrtl.cc: ...here.
13143 * cgraph.c: Moved to...
13144 * cgraph.cc: ...here.
13145 * cgraphbuild.c: Moved to...
13146 * cgraphbuild.cc: ...here.
13147 * cgraphclones.c: Moved to...
13148 * cgraphclones.cc: ...here.
13149 * cgraphunit.c: Moved to...
13150 * cgraphunit.cc: ...here.
13151 * collect-utils.c: Moved to...
13152 * collect-utils.cc: ...here.
13153 * collect2-aix.c: Moved to...
13154 * collect2-aix.cc: ...here.
13155 * collect2.c: Moved to...
13156 * collect2.cc: ...here.
13157 * combine-stack-adj.c: Moved to...
13158 * combine-stack-adj.cc: ...here.
13159 * combine.c: Moved to...
13160 * combine.cc: ...here.
13161 * common/common-targhooks.c: Moved to...
13162 * common/common-targhooks.cc: ...here.
13163 * common/config/aarch64/aarch64-common.c: Moved to...
13164 * common/config/aarch64/aarch64-common.cc: ...here.
13165 * common/config/alpha/alpha-common.c: Moved to...
13166 * common/config/alpha/alpha-common.cc: ...here.
13167 * common/config/arc/arc-common.c: Moved to...
13168 * common/config/arc/arc-common.cc: ...here.
13169 * common/config/arm/arm-common.c: Moved to...
13170 * common/config/arm/arm-common.cc: ...here.
13171 * common/config/avr/avr-common.c: Moved to...
13172 * common/config/avr/avr-common.cc: ...here.
13173 * common/config/bfin/bfin-common.c: Moved to...
13174 * common/config/bfin/bfin-common.cc: ...here.
13175 * common/config/bpf/bpf-common.c: Moved to...
13176 * common/config/bpf/bpf-common.cc: ...here.
13177 * common/config/c6x/c6x-common.c: Moved to...
13178 * common/config/c6x/c6x-common.cc: ...here.
13179 * common/config/cr16/cr16-common.c: Moved to...
13180 * common/config/cr16/cr16-common.cc: ...here.
13181 * common/config/cris/cris-common.c: Moved to...
13182 * common/config/cris/cris-common.cc: ...here.
13183 * common/config/csky/csky-common.c: Moved to...
13184 * common/config/csky/csky-common.cc: ...here.
13185 * common/config/default-common.c: Moved to...
13186 * common/config/default-common.cc: ...here.
13187 * common/config/epiphany/epiphany-common.c: Moved to...
13188 * common/config/epiphany/epiphany-common.cc: ...here.
13189 * common/config/fr30/fr30-common.c: Moved to...
13190 * common/config/fr30/fr30-common.cc: ...here.
13191 * common/config/frv/frv-common.c: Moved to...
13192 * common/config/frv/frv-common.cc: ...here.
13193 * common/config/gcn/gcn-common.c: Moved to...
13194 * common/config/gcn/gcn-common.cc: ...here.
13195 * common/config/h8300/h8300-common.c: Moved to...
13196 * common/config/h8300/h8300-common.cc: ...here.
13197 * common/config/i386/i386-common.c: Moved to...
13198 * common/config/i386/i386-common.cc: ...here.
13199 * common/config/ia64/ia64-common.c: Moved to...
13200 * common/config/ia64/ia64-common.cc: ...here.
13201 * common/config/iq2000/iq2000-common.c: Moved to...
13202 * common/config/iq2000/iq2000-common.cc: ...here.
13203 * common/config/lm32/lm32-common.c: Moved to...
13204 * common/config/lm32/lm32-common.cc: ...here.
13205 * common/config/m32r/m32r-common.c: Moved to...
13206 * common/config/m32r/m32r-common.cc: ...here.
13207 * common/config/m68k/m68k-common.c: Moved to...
13208 * common/config/m68k/m68k-common.cc: ...here.
13209 * common/config/mcore/mcore-common.c: Moved to...
13210 * common/config/mcore/mcore-common.cc: ...here.
13211 * common/config/microblaze/microblaze-common.c: Moved to...
13212 * common/config/microblaze/microblaze-common.cc: ...here.
13213 * common/config/mips/mips-common.c: Moved to...
13214 * common/config/mips/mips-common.cc: ...here.
13215 * common/config/mmix/mmix-common.c: Moved to...
13216 * common/config/mmix/mmix-common.cc: ...here.
13217 * common/config/mn10300/mn10300-common.c: Moved to...
13218 * common/config/mn10300/mn10300-common.cc: ...here.
13219 * common/config/msp430/msp430-common.c: Moved to...
13220 * common/config/msp430/msp430-common.cc: ...here.
13221 * common/config/nds32/nds32-common.c: Moved to...
13222 * common/config/nds32/nds32-common.cc: ...here.
13223 * common/config/nios2/nios2-common.c: Moved to...
13224 * common/config/nios2/nios2-common.cc: ...here.
13225 * common/config/nvptx/nvptx-common.c: Moved to...
13226 * common/config/nvptx/nvptx-common.cc: ...here.
13227 * common/config/or1k/or1k-common.c: Moved to...
13228 * common/config/or1k/or1k-common.cc: ...here.
13229 * common/config/pa/pa-common.c: Moved to...
13230 * common/config/pa/pa-common.cc: ...here.
13231 * common/config/pdp11/pdp11-common.c: Moved to...
13232 * common/config/pdp11/pdp11-common.cc: ...here.
13233 * common/config/pru/pru-common.c: Moved to...
13234 * common/config/pru/pru-common.cc: ...here.
13235 * common/config/riscv/riscv-common.c: Moved to...
13236 * common/config/riscv/riscv-common.cc: ...here.
13237 * common/config/rs6000/rs6000-common.c: Moved to...
13238 * common/config/rs6000/rs6000-common.cc: ...here.
13239 * common/config/rx/rx-common.c: Moved to...
13240 * common/config/rx/rx-common.cc: ...here.
13241 * common/config/s390/s390-common.c: Moved to...
13242 * common/config/s390/s390-common.cc: ...here.
13243 * common/config/sh/sh-common.c: Moved to...
13244 * common/config/sh/sh-common.cc: ...here.
13245 * common/config/sparc/sparc-common.c: Moved to...
13246 * common/config/sparc/sparc-common.cc: ...here.
13247 * common/config/tilegx/tilegx-common.c: Moved to...
13248 * common/config/tilegx/tilegx-common.cc: ...here.
13249 * common/config/tilepro/tilepro-common.c: Moved to...
13250 * common/config/tilepro/tilepro-common.cc: ...here.
13251 * common/config/v850/v850-common.c: Moved to...
13252 * common/config/v850/v850-common.cc: ...here.
13253 * common/config/vax/vax-common.c: Moved to...
13254 * common/config/vax/vax-common.cc: ...here.
13255 * common/config/visium/visium-common.c: Moved to...
13256 * common/config/visium/visium-common.cc: ...here.
13257 * common/config/xstormy16/xstormy16-common.c: Moved to...
13258 * common/config/xstormy16/xstormy16-common.cc: ...here.
13259 * common/config/xtensa/xtensa-common.c: Moved to...
13260 * common/config/xtensa/xtensa-common.cc: ...here.
13261 * compare-elim.c: Moved to...
13262 * compare-elim.cc: ...here.
13263 * config/aarch64/aarch64-bti-insert.c: Moved to...
13264 * config/aarch64/aarch64-bti-insert.cc: ...here.
13265 * config/aarch64/aarch64-builtins.c: Moved to...
13266 * config/aarch64/aarch64-builtins.cc: ...here.
13267 * config/aarch64/aarch64-c.c: Moved to...
13268 * config/aarch64/aarch64-c.cc: ...here.
13269 * config/aarch64/aarch64-d.c: Moved to...
13270 * config/aarch64/aarch64-d.cc: ...here.
13271 * config/aarch64/aarch64.c: Moved to...
13272 * config/aarch64/aarch64.cc: ...here.
13273 * config/aarch64/cortex-a57-fma-steering.c: Moved to...
13274 * config/aarch64/cortex-a57-fma-steering.cc: ...here.
13275 * config/aarch64/driver-aarch64.c: Moved to...
13276 * config/aarch64/driver-aarch64.cc: ...here.
13277 * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
13278 * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
13279 * config/aarch64/host-aarch64-darwin.c: Moved to...
13280 * config/aarch64/host-aarch64-darwin.cc: ...here.
13281 * config/alpha/alpha.c: Moved to...
13282 * config/alpha/alpha.cc: ...here.
13283 * config/alpha/driver-alpha.c: Moved to...
13284 * config/alpha/driver-alpha.cc: ...here.
13285 * config/arc/arc-c.c: Moved to...
13286 * config/arc/arc-c.cc: ...here.
13287 * config/arc/arc.c: Moved to...
13288 * config/arc/arc.cc: ...here.
13289 * config/arc/driver-arc.c: Moved to...
13290 * config/arc/driver-arc.cc: ...here.
13291 * config/arm/aarch-common.c: Moved to...
13292 * config/arm/aarch-common.cc: ...here.
13293 * config/arm/arm-builtins.c: Moved to...
13294 * config/arm/arm-builtins.cc: ...here.
13295 * config/arm/arm-c.c: Moved to...
13296 * config/arm/arm-c.cc: ...here.
13297 * config/arm/arm-d.c: Moved to...
13298 * config/arm/arm-d.cc: ...here.
13299 * config/arm/arm.c: Moved to...
13300 * config/arm/arm.cc: ...here.
13301 * config/arm/driver-arm.c: Moved to...
13302 * config/arm/driver-arm.cc: ...here.
13303 * config/avr/avr-c.c: Moved to...
13304 * config/avr/avr-c.cc: ...here.
13305 * config/avr/avr-devices.c: Moved to...
13306 * config/avr/avr-devices.cc: ...here.
13307 * config/avr/avr-log.c: Moved to...
13308 * config/avr/avr-log.cc: ...here.
13309 * config/avr/avr.c: Moved to...
13310 * config/avr/avr.cc: ...here.
13311 * config/avr/driver-avr.c: Moved to...
13312 * config/avr/driver-avr.cc: ...here.
13313 * config/avr/gen-avr-mmcu-specs.c: Moved to...
13314 * config/avr/gen-avr-mmcu-specs.cc: ...here.
13315 * config/avr/gen-avr-mmcu-texi.c: Moved to...
13316 * config/avr/gen-avr-mmcu-texi.cc: ...here.
13317 * config/bfin/bfin.c: Moved to...
13318 * config/bfin/bfin.cc: ...here.
13319 * config/bpf/bpf.c: Moved to...
13320 * config/bpf/bpf.cc: ...here.
13321 * config/bpf/coreout.c: Moved to...
13322 * config/bpf/coreout.cc: ...here.
13323 * config/c6x/c6x.c: Moved to...
13324 * config/c6x/c6x.cc: ...here.
13325 * config/cr16/cr16.c: Moved to...
13326 * config/cr16/cr16.cc: ...here.
13327 * config/cris/cris.c: Moved to...
13328 * config/cris/cris.cc: ...here.
13329 * config/csky/csky.c: Moved to...
13330 * config/csky/csky.cc: ...here.
13331 * config/darwin-c.c: Moved to...
13332 * config/darwin-c.cc: ...here.
13333 * config/darwin-d.c: Moved to...
13334 * config/darwin-d.cc: ...here.
13335 * config/darwin-driver.c: Moved to...
13336 * config/darwin-driver.cc: ...here.
13337 * config/darwin-f.c: Moved to...
13338 * config/darwin-f.cc: ...here.
13339 * config/darwin.c: Moved to...
13340 * config/darwin.cc: ...here.
13341 * config/default-c.c: Moved to...
13342 * config/default-c.cc: ...here.
13343 * config/default-d.c: Moved to...
13344 * config/default-d.cc: ...here.
13345 * config/dragonfly-d.c: Moved to...
13346 * config/dragonfly-d.cc: ...here.
13347 * config/epiphany/epiphany.c: Moved to...
13348 * config/epiphany/epiphany.cc: ...here.
13349 * config/epiphany/mode-switch-use.c: Moved to...
13350 * config/epiphany/mode-switch-use.cc: ...here.
13351 * config/epiphany/resolve-sw-modes.c: Moved to...
13352 * config/epiphany/resolve-sw-modes.cc: ...here.
13353 * config/fr30/fr30.c: Moved to...
13354 * config/fr30/fr30.cc: ...here.
13355 * config/freebsd-d.c: Moved to...
13356 * config/freebsd-d.cc: ...here.
13357 * config/frv/frv.c: Moved to...
13358 * config/frv/frv.cc: ...here.
13359 * config/ft32/ft32.c: Moved to...
13360 * config/ft32/ft32.cc: ...here.
13361 * config/gcn/driver-gcn.c: Moved to...
13362 * config/gcn/driver-gcn.cc: ...here.
13363 * config/gcn/gcn-run.c: Moved to...
13364 * config/gcn/gcn-run.cc: ...here.
13365 * config/gcn/gcn-tree.c: Moved to...
13366 * config/gcn/gcn-tree.cc: ...here.
13367 * config/gcn/gcn.c: Moved to...
13368 * config/gcn/gcn.cc: ...here.
13369 * config/gcn/mkoffload.c: Moved to...
13370 * config/gcn/mkoffload.cc: ...here.
13371 * config/glibc-c.c: Moved to...
13372 * config/glibc-c.cc: ...here.
13373 * config/glibc-d.c: Moved to...
13374 * config/glibc-d.cc: ...here.
13375 * config/h8300/h8300.c: Moved to...
13376 * config/h8300/h8300.cc: ...here.
13377 * config/host-darwin.c: Moved to...
13378 * config/host-darwin.cc: ...here.
13379 * config/host-hpux.c: Moved to...
13380 * config/host-hpux.cc: ...here.
13381 * config/host-linux.c: Moved to...
13382 * config/host-linux.cc: ...here.
13383 * config/host-netbsd.c: Moved to...
13384 * config/host-netbsd.cc: ...here.
13385 * config/host-openbsd.c: Moved to...
13386 * config/host-openbsd.cc: ...here.
13387 * config/host-solaris.c: Moved to...
13388 * config/host-solaris.cc: ...here.
13389 * config/i386/djgpp.c: Moved to...
13390 * config/i386/djgpp.cc: ...here.
13391 * config/i386/driver-i386.c: Moved to...
13392 * config/i386/driver-i386.cc: ...here.
13393 * config/i386/driver-mingw32.c: Moved to...
13394 * config/i386/driver-mingw32.cc: ...here.
13395 * config/i386/gnu-property.c: Moved to...
13396 * config/i386/gnu-property.cc: ...here.
13397 * config/i386/host-cygwin.c: Moved to...
13398 * config/i386/host-cygwin.cc: ...here.
13399 * config/i386/host-i386-darwin.c: Moved to...
13400 * config/i386/host-i386-darwin.cc: ...here.
13401 * config/i386/host-mingw32.c: Moved to...
13402 * config/i386/host-mingw32.cc: ...here.
13403 * config/i386/i386-builtins.c: Moved to...
13404 * config/i386/i386-builtins.cc: ...here.
13405 * config/i386/i386-c.c: Moved to...
13406 * config/i386/i386-c.cc: ...here.
13407 * config/i386/i386-d.c: Moved to...
13408 * config/i386/i386-d.cc: ...here.
13409 * config/i386/i386-expand.c: Moved to...
13410 * config/i386/i386-expand.cc: ...here.
13411 * config/i386/i386-features.c: Moved to...
13412 * config/i386/i386-features.cc: ...here.
13413 * config/i386/i386-options.c: Moved to...
13414 * config/i386/i386-options.cc: ...here.
13415 * config/i386/i386.c: Moved to...
13416 * config/i386/i386.cc: ...here.
13417 * config/i386/intelmic-mkoffload.c: Moved to...
13418 * config/i386/intelmic-mkoffload.cc: ...here.
13419 * config/i386/msformat-c.c: Moved to...
13420 * config/i386/msformat-c.cc: ...here.
13421 * config/i386/winnt-cxx.c: Moved to...
13422 * config/i386/winnt-cxx.cc: ...here.
13423 * config/i386/winnt-d.c: Moved to...
13424 * config/i386/winnt-d.cc: ...here.
13425 * config/i386/winnt-stubs.c: Moved to...
13426 * config/i386/winnt-stubs.cc: ...here.
13427 * config/i386/winnt.c: Moved to...
13428 * config/i386/winnt.cc: ...here.
13429 * config/i386/x86-tune-sched-atom.c: Moved to...
13430 * config/i386/x86-tune-sched-atom.cc: ...here.
13431 * config/i386/x86-tune-sched-bd.c: Moved to...
13432 * config/i386/x86-tune-sched-bd.cc: ...here.
13433 * config/i386/x86-tune-sched-core.c: Moved to...
13434 * config/i386/x86-tune-sched-core.cc: ...here.
13435 * config/i386/x86-tune-sched.c: Moved to...
13436 * config/i386/x86-tune-sched.cc: ...here.
13437 * config/ia64/ia64-c.c: Moved to...
13438 * config/ia64/ia64-c.cc: ...here.
13439 * config/ia64/ia64.c: Moved to...
13440 * config/ia64/ia64.cc: ...here.
13441 * config/iq2000/iq2000.c: Moved to...
13442 * config/iq2000/iq2000.cc: ...here.
13443 * config/linux.c: Moved to...
13444 * config/linux.cc: ...here.
13445 * config/lm32/lm32.c: Moved to...
13446 * config/lm32/lm32.cc: ...here.
13447 * config/m32c/m32c-pragma.c: Moved to...
13448 * config/m32c/m32c-pragma.cc: ...here.
13449 * config/m32c/m32c.c: Moved to...
13450 * config/m32c/m32c.cc: ...here.
13451 * config/m32r/m32r.c: Moved to...
13452 * config/m32r/m32r.cc: ...here.
13453 * config/m68k/m68k.c: Moved to...
13454 * config/m68k/m68k.cc: ...here.
13455 * config/mcore/mcore.c: Moved to...
13456 * config/mcore/mcore.cc: ...here.
13457 * config/microblaze/microblaze-c.c: Moved to...
13458 * config/microblaze/microblaze-c.cc: ...here.
13459 * config/microblaze/microblaze.c: Moved to...
13460 * config/microblaze/microblaze.cc: ...here.
13461 * config/mips/driver-native.c: Moved to...
13462 * config/mips/driver-native.cc: ...here.
13463 * config/mips/frame-header-opt.c: Moved to...
13464 * config/mips/frame-header-opt.cc: ...here.
13465 * config/mips/mips-d.c: Moved to...
13466 * config/mips/mips-d.cc: ...here.
13467 * config/mips/mips.c: Moved to...
13468 * config/mips/mips.cc: ...here.
13469 * config/mmix/mmix.c: Moved to...
13470 * config/mmix/mmix.cc: ...here.
13471 * config/mn10300/mn10300.c: Moved to...
13472 * config/mn10300/mn10300.cc: ...here.
13473 * config/moxie/moxie.c: Moved to...
13474 * config/moxie/moxie.cc: ...here.
13475 * config/msp430/driver-msp430.c: Moved to...
13476 * config/msp430/driver-msp430.cc: ...here.
13477 * config/msp430/msp430-c.c: Moved to...
13478 * config/msp430/msp430-c.cc: ...here.
13479 * config/msp430/msp430-devices.c: Moved to...
13480 * config/msp430/msp430-devices.cc: ...here.
13481 * config/msp430/msp430.c: Moved to...
13482 * config/msp430/msp430.cc: ...here.
13483 * config/nds32/nds32-cost.c: Moved to...
13484 * config/nds32/nds32-cost.cc: ...here.
13485 * config/nds32/nds32-fp-as-gp.c: Moved to...
13486 * config/nds32/nds32-fp-as-gp.cc: ...here.
13487 * config/nds32/nds32-intrinsic.c: Moved to...
13488 * config/nds32/nds32-intrinsic.cc: ...here.
13489 * config/nds32/nds32-isr.c: Moved to...
13490 * config/nds32/nds32-isr.cc: ...here.
13491 * config/nds32/nds32-md-auxiliary.c: Moved to...
13492 * config/nds32/nds32-md-auxiliary.cc: ...here.
13493 * config/nds32/nds32-memory-manipulation.c: Moved to...
13494 * config/nds32/nds32-memory-manipulation.cc: ...here.
13495 * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
13496 * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
13497 * config/nds32/nds32-predicates.c: Moved to...
13498 * config/nds32/nds32-predicates.cc: ...here.
13499 * config/nds32/nds32-relax-opt.c: Moved to...
13500 * config/nds32/nds32-relax-opt.cc: ...here.
13501 * config/nds32/nds32-utils.c: Moved to...
13502 * config/nds32/nds32-utils.cc: ...here.
13503 * config/nds32/nds32.c: Moved to...
13504 * config/nds32/nds32.cc: ...here.
13505 * config/netbsd-d.c: Moved to...
13506 * config/netbsd-d.cc: ...here.
13507 * config/netbsd.c: Moved to...
13508 * config/netbsd.cc: ...here.
13509 * config/nios2/nios2.c: Moved to...
13510 * config/nios2/nios2.cc: ...here.
13511 * config/nvptx/mkoffload.c: Moved to...
13512 * config/nvptx/mkoffload.cc: ...here.
13513 * config/nvptx/nvptx-c.c: Moved to...
13514 * config/nvptx/nvptx-c.cc: ...here.
13515 * config/nvptx/nvptx.c: Moved to...
13516 * config/nvptx/nvptx.cc: ...here.
13517 * config/openbsd-d.c: Moved to...
13518 * config/openbsd-d.cc: ...here.
13519 * config/or1k/or1k.c: Moved to...
13520 * config/or1k/or1k.cc: ...here.
13521 * config/pa/pa-d.c: Moved to...
13522 * config/pa/pa-d.cc: ...here.
13523 * config/pa/pa.c: Moved to...
13524 * config/pa/pa.cc: ...here.
13525 * config/pdp11/pdp11.c: Moved to...
13526 * config/pdp11/pdp11.cc: ...here.
13527 * config/pru/pru-passes.c: Moved to...
13528 * config/pru/pru-passes.cc: ...here.
13529 * config/pru/pru-pragma.c: Moved to...
13530 * config/pru/pru-pragma.cc: ...here.
13531 * config/pru/pru.c: Moved to...
13532 * config/pru/pru.cc: ...here.
13533 * config/riscv/riscv-builtins.c: Moved to...
13534 * config/riscv/riscv-builtins.cc: ...here.
13535 * config/riscv/riscv-c.c: Moved to...
13536 * config/riscv/riscv-c.cc: ...here.
13537 * config/riscv/riscv-d.c: Moved to...
13538 * config/riscv/riscv-d.cc: ...here.
13539 * config/riscv/riscv-shorten-memrefs.c: Moved to...
13540 * config/riscv/riscv-shorten-memrefs.cc: ...here.
13541 * config/riscv/riscv-sr.c: Moved to...
13542 * config/riscv/riscv-sr.cc: ...here.
13543 * config/riscv/riscv.c: Moved to...
13544 * config/riscv/riscv.cc: ...here.
13545 * config/rl78/rl78-c.c: Moved to...
13546 * config/rl78/rl78-c.cc: ...here.
13547 * config/rl78/rl78.c: Moved to...
13548 * config/rl78/rl78.cc: ...here.
13549 * config/rs6000/driver-rs6000.c: Moved to...
13550 * config/rs6000/driver-rs6000.cc: ...here.
13551 * config/rs6000/host-darwin.c: Moved to...
13552 * config/rs6000/host-darwin.cc: ...here.
13553 * config/rs6000/host-ppc64-darwin.c: Moved to...
13554 * config/rs6000/host-ppc64-darwin.cc: ...here.
13555 * config/rs6000/rbtree.c: Moved to...
13556 * config/rs6000/rbtree.cc: ...here.
13557 * config/rs6000/rs6000-c.c: Moved to...
13558 * config/rs6000/rs6000-c.cc: ...here.
13559 * config/rs6000/rs6000-call.c: Moved to...
13560 * config/rs6000/rs6000-call.cc: ...here.
13561 * config/rs6000/rs6000-d.c: Moved to...
13562 * config/rs6000/rs6000-d.cc: ...here.
13563 * config/rs6000/rs6000-gen-builtins.c: Moved to...
13564 * config/rs6000/rs6000-gen-builtins.cc: ...here.
13565 * config/rs6000/rs6000-linux.c: Moved to...
13566 * config/rs6000/rs6000-linux.cc: ...here.
13567 * config/rs6000/rs6000-logue.c: Moved to...
13568 * config/rs6000/rs6000-logue.cc: ...here.
13569 * config/rs6000/rs6000-p8swap.c: Moved to...
13570 * config/rs6000/rs6000-p8swap.cc: ...here.
13571 * config/rs6000/rs6000-pcrel-opt.c: Moved to...
13572 * config/rs6000/rs6000-pcrel-opt.cc: ...here.
13573 * config/rs6000/rs6000-string.c: Moved to...
13574 * config/rs6000/rs6000-string.cc: ...here.
13575 * config/rs6000/rs6000.c: Moved to...
13576 * config/rs6000/rs6000.cc: ...here.
13577 * config/rx/rx.c: Moved to...
13578 * config/rx/rx.cc: ...here.
13579 * config/s390/driver-native.c: Moved to...
13580 * config/s390/driver-native.cc: ...here.
13581 * config/s390/s390-c.c: Moved to...
13582 * config/s390/s390-c.cc: ...here.
13583 * config/s390/s390-d.c: Moved to...
13584 * config/s390/s390-d.cc: ...here.
13585 * config/s390/s390.c: Moved to...
13586 * config/s390/s390.cc: ...here.
13587 * config/sh/divtab-sh4-300.c: Moved to...
13588 * config/sh/divtab-sh4-300.cc: ...here.
13589 * config/sh/divtab-sh4.c: Moved to...
13590 * config/sh/divtab-sh4.cc: ...here.
13591 * config/sh/divtab.c: Moved to...
13592 * config/sh/divtab.cc: ...here.
13593 * config/sh/sh-c.c: Moved to...
13594 * config/sh/sh-c.cc: ...here.
13595 * config/sh/sh.c: Moved to...
13596 * config/sh/sh.cc: ...here.
13597 * config/sol2-c.c: Moved to...
13598 * config/sol2-c.cc: ...here.
13599 * config/sol2-cxx.c: Moved to...
13600 * config/sol2-cxx.cc: ...here.
13601 * config/sol2-d.c: Moved to...
13602 * config/sol2-d.cc: ...here.
13603 * config/sol2-stubs.c: Moved to...
13604 * config/sol2-stubs.cc: ...here.
13605 * config/sol2.c: Moved to...
13606 * config/sol2.cc: ...here.
13607 * config/sparc/driver-sparc.c: Moved to...
13608 * config/sparc/driver-sparc.cc: ...here.
13609 * config/sparc/sparc-c.c: Moved to...
13610 * config/sparc/sparc-c.cc: ...here.
13611 * config/sparc/sparc-d.c: Moved to...
13612 * config/sparc/sparc-d.cc: ...here.
13613 * config/sparc/sparc.c: Moved to...
13614 * config/sparc/sparc.cc: ...here.
13615 * config/stormy16/stormy16.c: Moved to...
13616 * config/stormy16/stormy16.cc: ...here.
13617 * config/tilegx/mul-tables.c: Moved to...
13618 * config/tilegx/mul-tables.cc: ...here.
13619 * config/tilegx/tilegx-c.c: Moved to...
13620 * config/tilegx/tilegx-c.cc: ...here.
13621 * config/tilegx/tilegx.c: Moved to...
13622 * config/tilegx/tilegx.cc: ...here.
13623 * config/tilepro/mul-tables.c: Moved to...
13624 * config/tilepro/mul-tables.cc: ...here.
13625 * config/tilepro/tilepro-c.c: Moved to...
13626 * config/tilepro/tilepro-c.cc: ...here.
13627 * config/tilepro/tilepro.c: Moved to...
13628 * config/tilepro/tilepro.cc: ...here.
13629 * config/v850/v850-c.c: Moved to...
13630 * config/v850/v850-c.cc: ...here.
13631 * config/v850/v850.c: Moved to...
13632 * config/v850/v850.cc: ...here.
13633 * config/vax/vax.c: Moved to...
13634 * config/vax/vax.cc: ...here.
13635 * config/visium/visium.c: Moved to...
13636 * config/visium/visium.cc: ...here.
13637 * config/vms/vms-c.c: Moved to...
13638 * config/vms/vms-c.cc: ...here.
13639 * config/vms/vms-f.c: Moved to...
13640 * config/vms/vms-f.cc: ...here.
13641 * config/vms/vms.c: Moved to...
13642 * config/vms/vms.cc: ...here.
13643 * config/vxworks-c.c: Moved to...
13644 * config/vxworks-c.cc: ...here.
13645 * config/vxworks.c: Moved to...
13646 * config/vxworks.cc: ...here.
13647 * config/winnt-c.c: Moved to...
13648 * config/winnt-c.cc: ...here.
13649 * config/xtensa/xtensa.c: Moved to...
13650 * config/xtensa/xtensa.cc: ...here.
13651 * context.c: Moved to...
13652 * context.cc: ...here.
13653 * convert.c: Moved to...
13654 * convert.cc: ...here.
13655 * coverage.c: Moved to...
13656 * coverage.cc: ...here.
13657 * cppbuiltin.c: Moved to...
13658 * cppbuiltin.cc: ...here.
13659 * cppdefault.c: Moved to...
13660 * cppdefault.cc: ...here.
13661 * cprop.c: Moved to...
13662 * cprop.cc: ...here.
13663 * cse.c: Moved to...
13665 * cselib.c: Moved to...
13666 * cselib.cc: ...here.
13667 * ctfc.c: Moved to...
13668 * ctfc.cc: ...here.
13669 * ctfout.c: Moved to...
13670 * ctfout.cc: ...here.
13671 * data-streamer-in.c: Moved to...
13672 * data-streamer-in.cc: ...here.
13673 * data-streamer-out.c: Moved to...
13674 * data-streamer-out.cc: ...here.
13675 * data-streamer.c: Moved to...
13676 * data-streamer.cc: ...here.
13677 * dbgcnt.c: Moved to...
13678 * dbgcnt.cc: ...here.
13679 * dbxout.c: Moved to...
13680 * dbxout.cc: ...here.
13681 * dce.c: Moved to...
13683 * ddg.c: Moved to...
13685 * debug.c: Moved to...
13686 * debug.cc: ...here.
13687 * df-core.c: Moved to...
13688 * df-core.cc: ...here.
13689 * df-problems.c: Moved to...
13690 * df-problems.cc: ...here.
13691 * df-scan.c: Moved to...
13692 * df-scan.cc: ...here.
13693 * dfp.c: Moved to...
13695 * diagnostic-color.c: Moved to...
13696 * diagnostic-color.cc: ...here.
13697 * diagnostic-show-locus.c: Moved to...
13698 * diagnostic-show-locus.cc: ...here.
13699 * diagnostic-spec.c: Moved to...
13700 * diagnostic-spec.cc: ...here.
13701 * diagnostic.c: Moved to...
13702 * diagnostic.cc: ...here.
13703 * dojump.c: Moved to...
13704 * dojump.cc: ...here.
13705 * dominance.c: Moved to...
13706 * dominance.cc: ...here.
13707 * domwalk.c: Moved to...
13708 * domwalk.cc: ...here.
13709 * double-int.c: Moved to...
13710 * double-int.cc: ...here.
13711 * dse.c: Moved to...
13713 * dumpfile.c: Moved to...
13714 * dumpfile.cc: ...here.
13715 * dwarf2asm.c: Moved to...
13716 * dwarf2asm.cc: ...here.
13717 * dwarf2cfi.c: Moved to...
13718 * dwarf2cfi.cc: ...here.
13719 * dwarf2ctf.c: Moved to...
13720 * dwarf2ctf.cc: ...here.
13721 * dwarf2out.c: Moved to...
13722 * dwarf2out.cc: ...here.
13723 * early-remat.c: Moved to...
13724 * early-remat.cc: ...here.
13725 * edit-context.c: Moved to...
13726 * edit-context.cc: ...here.
13727 * emit-rtl.c: Moved to...
13728 * emit-rtl.cc: ...here.
13729 * errors.c: Moved to...
13730 * errors.cc: ...here.
13731 * et-forest.c: Moved to...
13732 * et-forest.cc: ...here.
13733 * except.c: Moved to...
13734 * except.cc: ...here.
13735 * explow.c: Moved to...
13736 * explow.cc: ...here.
13737 * expmed.c: Moved to...
13738 * expmed.cc: ...here.
13739 * expr.c: Moved to...
13740 * expr.cc: ...here.
13741 * fibonacci_heap.c: Moved to...
13742 * fibonacci_heap.cc: ...here.
13743 * file-find.c: Moved to...
13744 * file-find.cc: ...here.
13745 * file-prefix-map.c: Moved to...
13746 * file-prefix-map.cc: ...here.
13747 * final.c: Moved to...
13748 * final.cc: ...here.
13749 * fixed-value.c: Moved to...
13750 * fixed-value.cc: ...here.
13751 * fold-const-call.c: Moved to...
13752 * fold-const-call.cc: ...here.
13753 * fold-const.c: Moved to...
13754 * fold-const.cc: ...here.
13755 * fp-test.c: Moved to...
13756 * fp-test.cc: ...here.
13757 * function-tests.c: Moved to...
13758 * function-tests.cc: ...here.
13759 * function.c: Moved to...
13760 * function.cc: ...here.
13761 * fwprop.c: Moved to...
13762 * fwprop.cc: ...here.
13763 * gcc-ar.c: Moved to...
13764 * gcc-ar.cc: ...here.
13765 * gcc-main.c: Moved to...
13766 * gcc-main.cc: ...here.
13767 * gcc-rich-location.c: Moved to...
13768 * gcc-rich-location.cc: ...here.
13769 * gcc.c: Moved to...
13771 * gcov-dump.c: Moved to...
13772 * gcov-dump.cc: ...here.
13773 * gcov-io.c: Moved to...
13774 * gcov-io.cc: ...here.
13775 * gcov-tool.c: Moved to...
13776 * gcov-tool.cc: ...here.
13777 * gcov.c: Moved to...
13778 * gcov.cc: ...here.
13779 * gcse-common.c: Moved to...
13780 * gcse-common.cc: ...here.
13781 * gcse.c: Moved to...
13782 * gcse.cc: ...here.
13783 * genattr-common.c: Moved to...
13784 * genattr-common.cc: ...here.
13785 * genattr.c: Moved to...
13786 * genattr.cc: ...here.
13787 * genattrtab.c: Moved to...
13788 * genattrtab.cc: ...here.
13789 * genautomata.c: Moved to...
13790 * genautomata.cc: ...here.
13791 * gencfn-macros.c: Moved to...
13792 * gencfn-macros.cc: ...here.
13793 * gencheck.c: Moved to...
13794 * gencheck.cc: ...here.
13795 * genchecksum.c: Moved to...
13796 * genchecksum.cc: ...here.
13797 * gencodes.c: Moved to...
13798 * gencodes.cc: ...here.
13799 * genconditions.c: Moved to...
13800 * genconditions.cc: ...here.
13801 * genconfig.c: Moved to...
13802 * genconfig.cc: ...here.
13803 * genconstants.c: Moved to...
13804 * genconstants.cc: ...here.
13805 * genemit.c: Moved to...
13806 * genemit.cc: ...here.
13807 * genenums.c: Moved to...
13808 * genenums.cc: ...here.
13809 * generic-match-head.c: Moved to...
13810 * generic-match-head.cc: ...here.
13811 * genextract.c: Moved to...
13812 * genextract.cc: ...here.
13813 * genflags.c: Moved to...
13814 * genflags.cc: ...here.
13815 * gengenrtl.c: Moved to...
13816 * gengenrtl.cc: ...here.
13817 * gengtype-parse.c: Moved to...
13818 * gengtype-parse.cc: ...here.
13819 * gengtype-state.c: Moved to...
13820 * gengtype-state.cc: ...here.
13821 * gengtype.c: Moved to...
13822 * gengtype.cc: ...here.
13823 * genhooks.c: Moved to...
13824 * genhooks.cc: ...here.
13825 * genmatch.c: Moved to...
13826 * genmatch.cc: ...here.
13827 * genmddeps.c: Moved to...
13828 * genmddeps.cc: ...here.
13829 * genmddump.c: Moved to...
13830 * genmddump.cc: ...here.
13831 * genmodes.c: Moved to...
13832 * genmodes.cc: ...here.
13833 * genopinit.c: Moved to...
13834 * genopinit.cc: ...here.
13835 * genoutput.c: Moved to...
13836 * genoutput.cc: ...here.
13837 * genpeep.c: Moved to...
13838 * genpeep.cc: ...here.
13839 * genpreds.c: Moved to...
13840 * genpreds.cc: ...here.
13841 * genrecog.c: Moved to...
13842 * genrecog.cc: ...here.
13843 * gensupport.c: Moved to...
13844 * gensupport.cc: ...here.
13845 * gentarget-def.c: Moved to...
13846 * gentarget-def.cc: ...here.
13847 * genversion.c: Moved to...
13848 * genversion.cc: ...here.
13849 * ggc-common.c: Moved to...
13850 * ggc-common.cc: ...here.
13851 * ggc-none.c: Moved to...
13852 * ggc-none.cc: ...here.
13853 * ggc-page.c: Moved to...
13854 * ggc-page.cc: ...here.
13855 * ggc-tests.c: Moved to...
13856 * ggc-tests.cc: ...here.
13857 * gimple-builder.c: Moved to...
13858 * gimple-builder.cc: ...here.
13859 * gimple-expr.c: Moved to...
13860 * gimple-expr.cc: ...here.
13861 * gimple-fold.c: Moved to...
13862 * gimple-fold.cc: ...here.
13863 * gimple-iterator.c: Moved to...
13864 * gimple-iterator.cc: ...here.
13865 * gimple-laddress.c: Moved to...
13866 * gimple-laddress.cc: ...here.
13867 * gimple-loop-jam.c: Moved to...
13868 * gimple-loop-jam.cc: ...here.
13869 * gimple-low.c: Moved to...
13870 * gimple-low.cc: ...here.
13871 * gimple-match-head.c: Moved to...
13872 * gimple-match-head.cc: ...here.
13873 * gimple-pretty-print.c: Moved to...
13874 * gimple-pretty-print.cc: ...here.
13875 * gimple-ssa-backprop.c: Moved to...
13876 * gimple-ssa-backprop.cc: ...here.
13877 * gimple-ssa-evrp-analyze.c: Moved to...
13878 * gimple-ssa-evrp-analyze.cc: ...here.
13879 * gimple-ssa-evrp.c: Moved to...
13880 * gimple-ssa-evrp.cc: ...here.
13881 * gimple-ssa-isolate-paths.c: Moved to...
13882 * gimple-ssa-isolate-paths.cc: ...here.
13883 * gimple-ssa-nonnull-compare.c: Moved to...
13884 * gimple-ssa-nonnull-compare.cc: ...here.
13885 * gimple-ssa-split-paths.c: Moved to...
13886 * gimple-ssa-split-paths.cc: ...here.
13887 * gimple-ssa-sprintf.c: Moved to...
13888 * gimple-ssa-sprintf.cc: ...here.
13889 * gimple-ssa-store-merging.c: Moved to...
13890 * gimple-ssa-store-merging.cc: ...here.
13891 * gimple-ssa-strength-reduction.c: Moved to...
13892 * gimple-ssa-strength-reduction.cc: ...here.
13893 * gimple-ssa-warn-alloca.c: Moved to...
13894 * gimple-ssa-warn-alloca.cc: ...here.
13895 * gimple-ssa-warn-restrict.c: Moved to...
13896 * gimple-ssa-warn-restrict.cc: ...here.
13897 * gimple-streamer-in.c: Moved to...
13898 * gimple-streamer-in.cc: ...here.
13899 * gimple-streamer-out.c: Moved to...
13900 * gimple-streamer-out.cc: ...here.
13901 * gimple-walk.c: Moved to...
13902 * gimple-walk.cc: ...here.
13903 * gimple-warn-recursion.c: Moved to...
13904 * gimple-warn-recursion.cc: ...here.
13905 * gimple.c: Moved to...
13906 * gimple.cc: ...here.
13907 * gimplify-me.c: Moved to...
13908 * gimplify-me.cc: ...here.
13909 * gimplify.c: Moved to...
13910 * gimplify.cc: ...here.
13911 * godump.c: Moved to...
13912 * godump.cc: ...here.
13913 * graph.c: Moved to...
13914 * graph.cc: ...here.
13915 * graphds.c: Moved to...
13916 * graphds.cc: ...here.
13917 * graphite-dependences.c: Moved to...
13918 * graphite-dependences.cc: ...here.
13919 * graphite-isl-ast-to-gimple.c: Moved to...
13920 * graphite-isl-ast-to-gimple.cc: ...here.
13921 * graphite-optimize-isl.c: Moved to...
13922 * graphite-optimize-isl.cc: ...here.
13923 * graphite-poly.c: Moved to...
13924 * graphite-poly.cc: ...here.
13925 * graphite-scop-detection.c: Moved to...
13926 * graphite-scop-detection.cc: ...here.
13927 * graphite-sese-to-poly.c: Moved to...
13928 * graphite-sese-to-poly.cc: ...here.
13929 * graphite.c: Moved to...
13930 * graphite.cc: ...here.
13931 * haifa-sched.c: Moved to...
13932 * haifa-sched.cc: ...here.
13933 * hash-map-tests.c: Moved to...
13934 * hash-map-tests.cc: ...here.
13935 * hash-set-tests.c: Moved to...
13936 * hash-set-tests.cc: ...here.
13937 * hash-table.c: Moved to...
13938 * hash-table.cc: ...here.
13939 * hooks.c: Moved to...
13940 * hooks.cc: ...here.
13941 * host-default.c: Moved to...
13942 * host-default.cc: ...here.
13943 * hw-doloop.c: Moved to...
13944 * hw-doloop.cc: ...here.
13945 * hwint.c: Moved to...
13946 * hwint.cc: ...here.
13947 * ifcvt.c: Moved to...
13948 * ifcvt.cc: ...here.
13949 * inchash.c: Moved to...
13950 * inchash.cc: ...here.
13951 * incpath.c: Moved to...
13952 * incpath.cc: ...here.
13953 * init-regs.c: Moved to...
13954 * init-regs.cc: ...here.
13955 * input.c: Moved to...
13956 * input.cc: ...here.
13957 * internal-fn.c: Moved to...
13958 * internal-fn.cc: ...here.
13959 * intl.c: Moved to...
13960 * intl.cc: ...here.
13961 * ipa-comdats.c: Moved to...
13962 * ipa-comdats.cc: ...here.
13963 * ipa-cp.c: Moved to...
13964 * ipa-cp.cc: ...here.
13965 * ipa-devirt.c: Moved to...
13966 * ipa-devirt.cc: ...here.
13967 * ipa-fnsummary.c: Moved to...
13968 * ipa-fnsummary.cc: ...here.
13969 * ipa-icf-gimple.c: Moved to...
13970 * ipa-icf-gimple.cc: ...here.
13971 * ipa-icf.c: Moved to...
13972 * ipa-icf.cc: ...here.
13973 * ipa-inline-analysis.c: Moved to...
13974 * ipa-inline-analysis.cc: ...here.
13975 * ipa-inline-transform.c: Moved to...
13976 * ipa-inline-transform.cc: ...here.
13977 * ipa-inline.c: Moved to...
13978 * ipa-inline.cc: ...here.
13979 * ipa-modref-tree.c: Moved to...
13980 * ipa-modref-tree.cc: ...here.
13981 * ipa-modref.c: Moved to...
13982 * ipa-modref.cc: ...here.
13983 * ipa-param-manipulation.c: Moved to...
13984 * ipa-param-manipulation.cc: ...here.
13985 * ipa-polymorphic-call.c: Moved to...
13986 * ipa-polymorphic-call.cc: ...here.
13987 * ipa-predicate.c: Moved to...
13988 * ipa-predicate.cc: ...here.
13989 * ipa-profile.c: Moved to...
13990 * ipa-profile.cc: ...here.
13991 * ipa-prop.c: Moved to...
13992 * ipa-prop.cc: ...here.
13993 * ipa-pure-const.c: Moved to...
13994 * ipa-pure-const.cc: ...here.
13995 * ipa-ref.c: Moved to...
13996 * ipa-ref.cc: ...here.
13997 * ipa-reference.c: Moved to...
13998 * ipa-reference.cc: ...here.
13999 * ipa-split.c: Moved to...
14000 * ipa-split.cc: ...here.
14001 * ipa-sra.c: Moved to...
14002 * ipa-sra.cc: ...here.
14003 * ipa-utils.c: Moved to...
14004 * ipa-utils.cc: ...here.
14005 * ipa-visibility.c: Moved to...
14006 * ipa-visibility.cc: ...here.
14007 * ipa.c: Moved to...
14009 * ira-build.c: Moved to...
14010 * ira-build.cc: ...here.
14011 * ira-color.c: Moved to...
14012 * ira-color.cc: ...here.
14013 * ira-conflicts.c: Moved to...
14014 * ira-conflicts.cc: ...here.
14015 * ira-costs.c: Moved to...
14016 * ira-costs.cc: ...here.
14017 * ira-emit.c: Moved to...
14018 * ira-emit.cc: ...here.
14019 * ira-lives.c: Moved to...
14020 * ira-lives.cc: ...here.
14021 * ira.c: Moved to...
14023 * jump.c: Moved to...
14024 * jump.cc: ...here.
14025 * langhooks.c: Moved to...
14026 * langhooks.cc: ...here.
14027 * lcm.c: Moved to...
14029 * lists.c: Moved to...
14030 * lists.cc: ...here.
14031 * loop-doloop.c: Moved to...
14032 * loop-doloop.cc: ...here.
14033 * loop-init.c: Moved to...
14034 * loop-init.cc: ...here.
14035 * loop-invariant.c: Moved to...
14036 * loop-invariant.cc: ...here.
14037 * loop-iv.c: Moved to...
14038 * loop-iv.cc: ...here.
14039 * loop-unroll.c: Moved to...
14040 * loop-unroll.cc: ...here.
14041 * lower-subreg.c: Moved to...
14042 * lower-subreg.cc: ...here.
14043 * lra-assigns.c: Moved to...
14044 * lra-assigns.cc: ...here.
14045 * lra-coalesce.c: Moved to...
14046 * lra-coalesce.cc: ...here.
14047 * lra-constraints.c: Moved to...
14048 * lra-constraints.cc: ...here.
14049 * lra-eliminations.c: Moved to...
14050 * lra-eliminations.cc: ...here.
14051 * lra-lives.c: Moved to...
14052 * lra-lives.cc: ...here.
14053 * lra-remat.c: Moved to...
14054 * lra-remat.cc: ...here.
14055 * lra-spills.c: Moved to...
14056 * lra-spills.cc: ...here.
14057 * lra.c: Moved to...
14059 * lto-cgraph.c: Moved to...
14060 * lto-cgraph.cc: ...here.
14061 * lto-compress.c: Moved to...
14062 * lto-compress.cc: ...here.
14063 * lto-opts.c: Moved to...
14064 * lto-opts.cc: ...here.
14065 * lto-section-in.c: Moved to...
14066 * lto-section-in.cc: ...here.
14067 * lto-section-out.c: Moved to...
14068 * lto-section-out.cc: ...here.
14069 * lto-streamer-in.c: Moved to...
14070 * lto-streamer-in.cc: ...here.
14071 * lto-streamer-out.c: Moved to...
14072 * lto-streamer-out.cc: ...here.
14073 * lto-streamer.c: Moved to...
14074 * lto-streamer.cc: ...here.
14075 * lto-wrapper.c: Moved to...
14076 * lto-wrapper.cc: ...here.
14077 * main.c: Moved to...
14078 * main.cc: ...here.
14079 * mcf.c: Moved to...
14081 * mode-switching.c: Moved to...
14082 * mode-switching.cc: ...here.
14083 * modulo-sched.c: Moved to...
14084 * modulo-sched.cc: ...here.
14085 * multiple_target.c: Moved to...
14086 * multiple_target.cc: ...here.
14087 * omp-expand.c: Moved to...
14088 * omp-expand.cc: ...here.
14089 * omp-general.c: Moved to...
14090 * omp-general.cc: ...here.
14091 * omp-low.c: Moved to...
14092 * omp-low.cc: ...here.
14093 * omp-offload.c: Moved to...
14094 * omp-offload.cc: ...here.
14095 * omp-simd-clone.c: Moved to...
14096 * omp-simd-clone.cc: ...here.
14097 * opt-suggestions.c: Moved to...
14098 * opt-suggestions.cc: ...here.
14099 * optabs-libfuncs.c: Moved to...
14100 * optabs-libfuncs.cc: ...here.
14101 * optabs-query.c: Moved to...
14102 * optabs-query.cc: ...here.
14103 * optabs-tree.c: Moved to...
14104 * optabs-tree.cc: ...here.
14105 * optabs.c: Moved to...
14106 * optabs.cc: ...here.
14107 * opts-common.c: Moved to...
14108 * opts-common.cc: ...here.
14109 * opts-global.c: Moved to...
14110 * opts-global.cc: ...here.
14111 * opts.c: Moved to...
14112 * opts.cc: ...here.
14113 * passes.c: Moved to...
14114 * passes.cc: ...here.
14115 * plugin.c: Moved to...
14116 * plugin.cc: ...here.
14117 * postreload-gcse.c: Moved to...
14118 * postreload-gcse.cc: ...here.
14119 * postreload.c: Moved to...
14120 * postreload.cc: ...here.
14121 * predict.c: Moved to...
14122 * predict.cc: ...here.
14123 * prefix.c: Moved to...
14124 * prefix.cc: ...here.
14125 * pretty-print.c: Moved to...
14126 * pretty-print.cc: ...here.
14127 * print-rtl-function.c: Moved to...
14128 * print-rtl-function.cc: ...here.
14129 * print-rtl.c: Moved to...
14130 * print-rtl.cc: ...here.
14131 * print-tree.c: Moved to...
14132 * print-tree.cc: ...here.
14133 * profile-count.c: Moved to...
14134 * profile-count.cc: ...here.
14135 * profile.c: Moved to...
14136 * profile.cc: ...here.
14137 * read-md.c: Moved to...
14138 * read-md.cc: ...here.
14139 * read-rtl-function.c: Moved to...
14140 * read-rtl-function.cc: ...here.
14141 * read-rtl.c: Moved to...
14142 * read-rtl.cc: ...here.
14143 * real.c: Moved to...
14144 * real.cc: ...here.
14145 * realmpfr.c: Moved to...
14146 * realmpfr.cc: ...here.
14147 * recog.c: Moved to...
14148 * recog.cc: ...here.
14149 * ree.c: Moved to...
14151 * reg-stack.c: Moved to...
14152 * reg-stack.cc: ...here.
14153 * regcprop.c: Moved to...
14154 * regcprop.cc: ...here.
14155 * reginfo.c: Moved to...
14156 * reginfo.cc: ...here.
14157 * regrename.c: Moved to...
14158 * regrename.cc: ...here.
14159 * regstat.c: Moved to...
14160 * regstat.cc: ...here.
14161 * reload.c: Moved to...
14162 * reload.cc: ...here.
14163 * reload1.c: Moved to...
14164 * reload1.cc: ...here.
14165 * reorg.c: Moved to...
14166 * reorg.cc: ...here.
14167 * resource.c: Moved to...
14168 * resource.cc: ...here.
14169 * rtl-error.c: Moved to...
14170 * rtl-error.cc: ...here.
14171 * rtl-tests.c: Moved to...
14172 * rtl-tests.cc: ...here.
14173 * rtl.c: Moved to...
14175 * rtlanal.c: Moved to...
14176 * rtlanal.cc: ...here.
14177 * rtlhash.c: Moved to...
14178 * rtlhash.cc: ...here.
14179 * rtlhooks.c: Moved to...
14180 * rtlhooks.cc: ...here.
14181 * rtx-vector-builder.c: Moved to...
14182 * rtx-vector-builder.cc: ...here.
14183 * run-rtl-passes.c: Moved to...
14184 * run-rtl-passes.cc: ...here.
14185 * sancov.c: Moved to...
14186 * sancov.cc: ...here.
14187 * sanopt.c: Moved to...
14188 * sanopt.cc: ...here.
14189 * sbitmap.c: Moved to...
14190 * sbitmap.cc: ...here.
14191 * sched-deps.c: Moved to...
14192 * sched-deps.cc: ...here.
14193 * sched-ebb.c: Moved to...
14194 * sched-ebb.cc: ...here.
14195 * sched-rgn.c: Moved to...
14196 * sched-rgn.cc: ...here.
14197 * sel-sched-dump.c: Moved to...
14198 * sel-sched-dump.cc: ...here.
14199 * sel-sched-ir.c: Moved to...
14200 * sel-sched-ir.cc: ...here.
14201 * sel-sched.c: Moved to...
14202 * sel-sched.cc: ...here.
14203 * selftest-diagnostic.c: Moved to...
14204 * selftest-diagnostic.cc: ...here.
14205 * selftest-rtl.c: Moved to...
14206 * selftest-rtl.cc: ...here.
14207 * selftest-run-tests.c: Moved to...
14208 * selftest-run-tests.cc: ...here.
14209 * selftest.c: Moved to...
14210 * selftest.cc: ...here.
14211 * sese.c: Moved to...
14212 * sese.cc: ...here.
14213 * shrink-wrap.c: Moved to...
14214 * shrink-wrap.cc: ...here.
14215 * simplify-rtx.c: Moved to...
14216 * simplify-rtx.cc: ...here.
14217 * sparseset.c: Moved to...
14218 * sparseset.cc: ...here.
14219 * spellcheck-tree.c: Moved to...
14220 * spellcheck-tree.cc: ...here.
14221 * spellcheck.c: Moved to...
14222 * spellcheck.cc: ...here.
14223 * sreal.c: Moved to...
14224 * sreal.cc: ...here.
14225 * stack-ptr-mod.c: Moved to...
14226 * stack-ptr-mod.cc: ...here.
14227 * statistics.c: Moved to...
14228 * statistics.cc: ...here.
14229 * stmt.c: Moved to...
14230 * stmt.cc: ...here.
14231 * stor-layout.c: Moved to...
14232 * stor-layout.cc: ...here.
14233 * store-motion.c: Moved to...
14234 * store-motion.cc: ...here.
14235 * streamer-hooks.c: Moved to...
14236 * streamer-hooks.cc: ...here.
14237 * stringpool.c: Moved to...
14238 * stringpool.cc: ...here.
14239 * substring-locations.c: Moved to...
14240 * substring-locations.cc: ...here.
14241 * symtab.c: Moved to...
14242 * symtab.cc: ...here.
14243 * target-globals.c: Moved to...
14244 * target-globals.cc: ...here.
14245 * targhooks.c: Moved to...
14246 * targhooks.cc: ...here.
14247 * timevar.c: Moved to...
14248 * timevar.cc: ...here.
14249 * toplev.c: Moved to...
14250 * toplev.cc: ...here.
14251 * tracer.c: Moved to...
14252 * tracer.cc: ...here.
14253 * trans-mem.c: Moved to...
14254 * trans-mem.cc: ...here.
14255 * tree-affine.c: Moved to...
14256 * tree-affine.cc: ...here.
14257 * tree-call-cdce.c: Moved to...
14258 * tree-call-cdce.cc: ...here.
14259 * tree-cfg.c: Moved to...
14260 * tree-cfg.cc: ...here.
14261 * tree-cfgcleanup.c: Moved to...
14262 * tree-cfgcleanup.cc: ...here.
14263 * tree-chrec.c: Moved to...
14264 * tree-chrec.cc: ...here.
14265 * tree-complex.c: Moved to...
14266 * tree-complex.cc: ...here.
14267 * tree-data-ref.c: Moved to...
14268 * tree-data-ref.cc: ...here.
14269 * tree-dfa.c: Moved to...
14270 * tree-dfa.cc: ...here.
14271 * tree-diagnostic.c: Moved to...
14272 * tree-diagnostic.cc: ...here.
14273 * tree-dump.c: Moved to...
14274 * tree-dump.cc: ...here.
14275 * tree-eh.c: Moved to...
14276 * tree-eh.cc: ...here.
14277 * tree-emutls.c: Moved to...
14278 * tree-emutls.cc: ...here.
14279 * tree-if-conv.c: Moved to...
14280 * tree-if-conv.cc: ...here.
14281 * tree-inline.c: Moved to...
14282 * tree-inline.cc: ...here.
14283 * tree-into-ssa.c: Moved to...
14284 * tree-into-ssa.cc: ...here.
14285 * tree-iterator.c: Moved to...
14286 * tree-iterator.cc: ...here.
14287 * tree-loop-distribution.c: Moved to...
14288 * tree-loop-distribution.cc: ...here.
14289 * tree-nested.c: Moved to...
14290 * tree-nested.cc: ...here.
14291 * tree-nrv.c: Moved to...
14292 * tree-nrv.cc: ...here.
14293 * tree-object-size.c: Moved to...
14294 * tree-object-size.cc: ...here.
14295 * tree-outof-ssa.c: Moved to...
14296 * tree-outof-ssa.cc: ...here.
14297 * tree-parloops.c: Moved to...
14298 * tree-parloops.cc: ...here.
14299 * tree-phinodes.c: Moved to...
14300 * tree-phinodes.cc: ...here.
14301 * tree-predcom.c: Moved to...
14302 * tree-predcom.cc: ...here.
14303 * tree-pretty-print.c: Moved to...
14304 * tree-pretty-print.cc: ...here.
14305 * tree-profile.c: Moved to...
14306 * tree-profile.cc: ...here.
14307 * tree-scalar-evolution.c: Moved to...
14308 * tree-scalar-evolution.cc: ...here.
14309 * tree-sra.c: Moved to...
14310 * tree-sra.cc: ...here.
14311 * tree-ssa-address.c: Moved to...
14312 * tree-ssa-address.cc: ...here.
14313 * tree-ssa-alias.c: Moved to...
14314 * tree-ssa-alias.cc: ...here.
14315 * tree-ssa-ccp.c: Moved to...
14316 * tree-ssa-ccp.cc: ...here.
14317 * tree-ssa-coalesce.c: Moved to...
14318 * tree-ssa-coalesce.cc: ...here.
14319 * tree-ssa-copy.c: Moved to...
14320 * tree-ssa-copy.cc: ...here.
14321 * tree-ssa-dce.c: Moved to...
14322 * tree-ssa-dce.cc: ...here.
14323 * tree-ssa-dom.c: Moved to...
14324 * tree-ssa-dom.cc: ...here.
14325 * tree-ssa-dse.c: Moved to...
14326 * tree-ssa-dse.cc: ...here.
14327 * tree-ssa-forwprop.c: Moved to...
14328 * tree-ssa-forwprop.cc: ...here.
14329 * tree-ssa-ifcombine.c: Moved to...
14330 * tree-ssa-ifcombine.cc: ...here.
14331 * tree-ssa-live.c: Moved to...
14332 * tree-ssa-live.cc: ...here.
14333 * tree-ssa-loop-ch.c: Moved to...
14334 * tree-ssa-loop-ch.cc: ...here.
14335 * tree-ssa-loop-im.c: Moved to...
14336 * tree-ssa-loop-im.cc: ...here.
14337 * tree-ssa-loop-ivcanon.c: Moved to...
14338 * tree-ssa-loop-ivcanon.cc: ...here.
14339 * tree-ssa-loop-ivopts.c: Moved to...
14340 * tree-ssa-loop-ivopts.cc: ...here.
14341 * tree-ssa-loop-manip.c: Moved to...
14342 * tree-ssa-loop-manip.cc: ...here.
14343 * tree-ssa-loop-niter.c: Moved to...
14344 * tree-ssa-loop-niter.cc: ...here.
14345 * tree-ssa-loop-prefetch.c: Moved to...
14346 * tree-ssa-loop-prefetch.cc: ...here.
14347 * tree-ssa-loop-split.c: Moved to...
14348 * tree-ssa-loop-split.cc: ...here.
14349 * tree-ssa-loop-unswitch.c: Moved to...
14350 * tree-ssa-loop-unswitch.cc: ...here.
14351 * tree-ssa-loop.c: Moved to...
14352 * tree-ssa-loop.cc: ...here.
14353 * tree-ssa-math-opts.c: Moved to...
14354 * tree-ssa-math-opts.cc: ...here.
14355 * tree-ssa-operands.c: Moved to...
14356 * tree-ssa-operands.cc: ...here.
14357 * tree-ssa-phiopt.c: Moved to...
14358 * tree-ssa-phiopt.cc: ...here.
14359 * tree-ssa-phiprop.c: Moved to...
14360 * tree-ssa-phiprop.cc: ...here.
14361 * tree-ssa-pre.c: Moved to...
14362 * tree-ssa-pre.cc: ...here.
14363 * tree-ssa-propagate.c: Moved to...
14364 * tree-ssa-propagate.cc: ...here.
14365 * tree-ssa-reassoc.c: Moved to...
14366 * tree-ssa-reassoc.cc: ...here.
14367 * tree-ssa-sccvn.c: Moved to...
14368 * tree-ssa-sccvn.cc: ...here.
14369 * tree-ssa-scopedtables.c: Moved to...
14370 * tree-ssa-scopedtables.cc: ...here.
14371 * tree-ssa-sink.c: Moved to...
14372 * tree-ssa-sink.cc: ...here.
14373 * tree-ssa-strlen.c: Moved to...
14374 * tree-ssa-strlen.cc: ...here.
14375 * tree-ssa-structalias.c: Moved to...
14376 * tree-ssa-structalias.cc: ...here.
14377 * tree-ssa-tail-merge.c: Moved to...
14378 * tree-ssa-tail-merge.cc: ...here.
14379 * tree-ssa-ter.c: Moved to...
14380 * tree-ssa-ter.cc: ...here.
14381 * tree-ssa-threadbackward.c: Moved to...
14382 * tree-ssa-threadbackward.cc: ...here.
14383 * tree-ssa-threadedge.c: Moved to...
14384 * tree-ssa-threadedge.cc: ...here.
14385 * tree-ssa-threadupdate.c: Moved to...
14386 * tree-ssa-threadupdate.cc: ...here.
14387 * tree-ssa-uncprop.c: Moved to...
14388 * tree-ssa-uncprop.cc: ...here.
14389 * tree-ssa-uninit.c: Moved to...
14390 * tree-ssa-uninit.cc: ...here.
14391 * tree-ssa.c: Moved to...
14392 * tree-ssa.cc: ...here.
14393 * tree-ssanames.c: Moved to...
14394 * tree-ssanames.cc: ...here.
14395 * tree-stdarg.c: Moved to...
14396 * tree-stdarg.cc: ...here.
14397 * tree-streamer-in.c: Moved to...
14398 * tree-streamer-in.cc: ...here.
14399 * tree-streamer-out.c: Moved to...
14400 * tree-streamer-out.cc: ...here.
14401 * tree-streamer.c: Moved to...
14402 * tree-streamer.cc: ...here.
14403 * tree-switch-conversion.c: Moved to...
14404 * tree-switch-conversion.cc: ...here.
14405 * tree-tailcall.c: Moved to...
14406 * tree-tailcall.cc: ...here.
14407 * tree-vect-data-refs.c: Moved to...
14408 * tree-vect-data-refs.cc: ...here.
14409 * tree-vect-generic.c: Moved to...
14410 * tree-vect-generic.cc: ...here.
14411 * tree-vect-loop-manip.c: Moved to...
14412 * tree-vect-loop-manip.cc: ...here.
14413 * tree-vect-loop.c: Moved to...
14414 * tree-vect-loop.cc: ...here.
14415 * tree-vect-patterns.c: Moved to...
14416 * tree-vect-patterns.cc: ...here.
14417 * tree-vect-slp-patterns.c: Moved to...
14418 * tree-vect-slp-patterns.cc: ...here.
14419 * tree-vect-slp.c: Moved to...
14420 * tree-vect-slp.cc: ...here.
14421 * tree-vect-stmts.c: Moved to...
14422 * tree-vect-stmts.cc: ...here.
14423 * tree-vector-builder.c: Moved to...
14424 * tree-vector-builder.cc: ...here.
14425 * tree-vectorizer.c: Moved to...
14426 * tree-vectorizer.cc: ...here.
14427 * tree-vrp.c: Moved to...
14428 * tree-vrp.cc: ...here.
14429 * tree.c: Moved to...
14430 * tree.cc: ...here.
14431 * tsan.c: Moved to...
14432 * tsan.cc: ...here.
14433 * typed-splay-tree.c: Moved to...
14434 * typed-splay-tree.cc: ...here.
14435 * ubsan.c: Moved to...
14436 * ubsan.cc: ...here.
14437 * valtrack.c: Moved to...
14438 * valtrack.cc: ...here.
14439 * value-prof.c: Moved to...
14440 * value-prof.cc: ...here.
14441 * var-tracking.c: Moved to...
14442 * var-tracking.cc: ...here.
14443 * varasm.c: Moved to...
14444 * varasm.cc: ...here.
14445 * varpool.c: Moved to...
14446 * varpool.cc: ...here.
14447 * vec-perm-indices.c: Moved to...
14448 * vec-perm-indices.cc: ...here.
14449 * vec.c: Moved to...
14451 * vmsdbgout.c: Moved to...
14452 * vmsdbgout.cc: ...here.
14453 * vr-values.c: Moved to...
14454 * vr-values.cc: ...here.
14455 * vtable-verify.c: Moved to...
14456 * vtable-verify.cc: ...here.
14457 * web.c: Moved to...
14459 * xcoffout.c: Moved to...
14460 * xcoffout.cc: ...here.
14462 2022-01-17 qing zhao <qing.zhao@oracle.com>
14464 * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
14465 .DEFERRED_INIT call with an anonymous SSA_NAME specially.
14466 (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
14468 (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
14469 (warn_uninitialized_vars): Likewise.
14470 (warn_uninitialized_phi): Likewise.
14472 2022-01-17 Jason Merrill <jason@redhat.com>
14474 * diagnostic.h (struct diagnostic_context): Add includes_seen.
14475 * diagnostic.c (diagnostic_initialize): Initialize it.
14476 (diagnostic_finish): Clean it up.
14477 (includes_seen): New function.
14478 (diagnostic_report_current_module): Use it.
14480 2022-01-17 Richard Biener <rguenther@suse.de>
14482 PR middle-end/101292
14483 * diagnostic-spec.c (copy_warning): Make sure to not
14484 reference old hashtable content on possible resize.
14485 * warning-control.cc (copy_warning): Likewise.
14487 2022-01-17 Jakub Jelinek <jakub@redhat.com>
14490 * tree-cfg.h (cond_only_block_p): Declare.
14491 * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
14492 * tree-cfg.c (cond_only_block_p): ... here. No longer static.
14493 * optabs.def (spaceship_optab): New optab.
14494 * internal-fn.def (SPACESHIP): New internal function.
14495 * internal-fn.h (expand_SPACESHIP): Declare.
14496 * internal-fn.c (expand_PHI): Formatting fix.
14497 (expand_SPACESHIP): New function.
14498 * tree-ssa-math-opts.c (optimize_spaceship): New function.
14499 (math_opts_dom_walker::after_dom_children): Use it.
14500 * config/i386/i386.md (spaceship<mode>3): New define_expand.
14501 * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
14502 * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
14503 * doc/md.texi (spaceship@var{m}3): Document.
14505 2022-01-17 Kewen Lin <linkw@linux.ibm.com>
14507 * config/rs6000/altivec.md (altivec_vreveti2): Remove.
14508 * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
14509 *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
14510 known constant values to simplify code.
14512 2022-01-17 Haochen Gui <guihaoc@gcc.gnu.org>
14515 * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
14517 2022-01-16 wwwhhhyyy <hongyu.wang@intel.com>
14519 * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
14520 * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
14521 Insert zero-idiom in output template when attr enabled, set new attribute to
14522 true for non-mask/maskz insn.
14523 (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
14525 (avx512dq_mul<mode>3<mask_name>): Likewise.
14526 (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
14527 (avx2_perm<mode>_1<mask_name>): Likewise.
14528 (avx512f_perm<mode>_1<mask_name>): Likewise.
14529 (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
14530 (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
14532 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
14533 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
14535 * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
14537 (mask4_dest_false_dep_for_glc_cond): Likewise.
14538 (mask6_dest_false_dep_for_glc_cond): Likewise.
14539 (mask10_dest_false_dep_for_glc_cond): Likewise.
14540 (maskc_dest_false_dep_for_glc_cond): Likewise.
14541 (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
14542 (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
14543 * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
14544 DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
14546 2022-01-15 Martin Sebor <msebor@redhat.com>
14549 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
14550 -Wdangling-pointer.
14551 * doc/invoke.texi (-Wdangling-pointer): Document new option.
14552 * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
14553 (pass_waccess::check_pointer_uses): New function.
14554 (pass_waccess::gimple_call_return_arg): New function.
14555 (pass_waccess::gimple_call_return_arg_ref): New function.
14556 (pass_waccess::check_call_dangling): New function.
14557 (pass_waccess::check_dangling_uses): New function overloads.
14558 (pass_waccess::check_dangling_stores): New function.
14559 (pass_waccess::check_dangling_stores): New function.
14560 (pass_waccess::m_clobbers): New data member.
14561 (pass_waccess::m_func): New data member.
14562 (pass_waccess::m_run_number): New data member.
14563 (pass_waccess::m_check_dangling_p): New data member.
14564 (pass_waccess::check_alloca): Check m_early_checks_p.
14565 (pass_waccess::check_alloc_size_call): Same.
14566 (pass_waccess::check_strcat): Same.
14567 (pass_waccess::check_strncat): Same.
14568 (pass_waccess::check_stxcpy): Same.
14569 (pass_waccess::check_stxncpy): Same.
14570 (pass_waccess::check_strncmp): Same.
14571 (pass_waccess::check_memop_access): Same.
14572 (pass_waccess::check_read_access): Same.
14573 (pass_waccess::check_builtin): Call check_pointer_uses.
14574 (pass_waccess::warn_invalid_pointer): Add arguments.
14575 (is_auto_decl): New function.
14576 (pass_waccess::check_stmt): New function.
14577 (pass_waccess::check_block): Call check_stmt.
14578 (pass_waccess::execute): Call check_dangling_uses,
14579 check_dangling_stores. Empty m_clobbers.
14580 * passes.def (pass_warn_access): Invoke pass two more times.
14582 2022-01-15 Martin Sebor <msebor@redhat.com>
14584 PR tree-optimization/80532
14585 * common.opt (-Wuse-after-free): New options.
14586 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
14587 OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
14588 * diagnostic-spec.h (NW_DANGLING): New enumerator.
14589 * doc/invoke.texi (-Wuse-after-free): Document new option.
14590 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
14591 (pass_waccess::check_call_access): ...to this.
14592 (pass_waccess::check): Rename...
14593 (pass_waccess::check_block): ...to this.
14594 (pass_waccess::check_pointer_uses): New function.
14595 (pass_waccess::gimple_call_return_arg): New function.
14596 (pass_waccess::warn_invalid_pointer): New function.
14597 (pass_waccess::check_builtin): Handle free and realloc.
14598 (gimple_use_after_inval_p): New function.
14599 (get_realloc_lhs): New function.
14600 (maybe_warn_mismatched_realloc): New function.
14601 (pointers_related_p): New function.
14602 (pass_waccess::check_call): Call check_pointer_uses.
14603 (pass_waccess::execute): Compute and free dominance info.
14605 2022-01-15 Uroš Bizjak <ubizjak@gmail.com>
14607 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
14608 expand_simple_unop and expand_simple_binop instead of manually
14609 constructing NOT, AND and IOR RTXes. Use vector_all_ones_operand
14610 consistently. Eliminate common subexpressions and simplify code.
14611 * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
14612 (<any_logic:code><MODEF:mode>3): Make public.
14614 2022-01-14 Eric Botcazou <ebotcazou@adacore.com>
14616 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
14617 reverse flag as "reverse" for the sake of consistency.
14618 * ipa-sra.c: Fix copyright year.
14619 (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
14620 (dump_isra_access): Tweak dump line.
14621 (isra_write_node_summary): Write the reverse flag.
14622 (isra_read_node_info): Read it.
14623 (pull_accesses_from_callee): Test its consistency and copy it.
14625 2022-01-14 Richard Sandiford <richard.sandiford@arm.com>
14627 PR middle-end/104026
14628 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
14629 partial_load_store_bias.
14631 2022-01-14 Martin Sebor <msebor@redhat.com>
14633 PR middle-end/101475
14634 * pointer-query.cc (handle_component_ref): Use the size of
14635 the enclosing object if it's smaller than the member.
14637 2022-01-14 Martin Liska <mliska@suse.cz>
14639 * configure: Regenerate.
14641 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
14643 * config/i386/i386.md (*add<mode>_1_slp"):
14644 Mark alternative 1 output operand earlyclobbered.
14645 (*sub<mode>_1_slp): Ditto.
14646 (*and<mode>_1_slp): Ditto.
14647 (*<code><mode>_1_slp): Ditto.
14648 (*neg<mode>_1_slp): Ditto.
14649 (*one_cmpl<mode>_1_slp): Ditto.
14650 (*ashl<mode>3_1_slp): Ditto.
14651 (*<insn><mode>3_1_slp): Ditto.
14652 (*<insn><mode>3_1_slp): Ditto.
14654 2022-01-14 Kewen Lin <linkw@linux.ibm.com>
14656 PR tree-optimization/104015
14657 * tree-vect-loop.c (vect_analyze_loop): Check
14658 param_vect_partial_vector_usage for supports_partial_vectors.
14660 2022-01-14 Jakub Jelinek <jakub@redhat.com>
14663 * fold-const.c (address_compare): Punt on comparison of address of
14664 one object with address of end of another object if
14665 folding_initializer.
14667 2022-01-14 Jakub Jelinek <jakub@redhat.com>
14670 * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
14671 __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
14672 and __atomic_op_fetch (p, x, y) iop x into
14673 __atomic_fetch_op (p, x, y).
14675 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
14677 * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
14678 (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
14679 (INCOMING_RETURN_ADDR_RTX): Likewise.
14680 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
14682 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
14684 * config/arc/arc.c (arc_compute_frame_size): Remove condition when
14685 computin checking accumulator regs.
14686 (arc_expand_prologue): Update comments.
14687 (arc_expand_epilogue): Likewise.
14689 2022-01-14 Roger Sayle <roger@nextmovesoftware.com>
14690 Uroš Bizjak <ubizjak@gmail.com>
14692 * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
14693 (ix86_expand_ti_to_v1ti): Use force_reg.
14694 (ix86_expand_v1ti_shift): Use force_reg.
14695 (ix86_expand_v1ti_rotate): Use force_reg.
14696 (ix86_expand_v1ti_ashiftrt): Provide new three operation
14697 implementations for shifts by 111..126 bits. Use force_reg.
14699 2022-01-14 Martin Liska <mliska@suse.cz>
14701 * common/config/arm/arm-common.c (arm_target_mode): Fix
14702 warning: unterminated quoting directive [-Wformat=].
14704 2022-01-14 Siddhesh Poyarekar <siddhesh@gotplt.org>
14706 PR tree-optimization/104009
14707 * tree-object-size.c (compute_builtin_object_size): Bail out on
14709 (plus_stmt_object_size): Return maximum of wholesize and minimum
14710 of 0 for negative offset.
14712 2022-01-14 liuhongt <hongtao.liu@intel.com>
14717 * config/i386/i386.md (*xor2andn): Refine predicate of
14718 operands[0] from nonimmediate_operand to
14719 register_operand, remove TARGET_AVX512BW from condition.
14721 2022-01-14 David Malcolm <dmalcolm@redhat.com>
14723 * doc/extend.texi (Function Attributes): Note that "tainted_args" can
14724 be used on field decls.
14725 (Common Function Attributes): Add entry on "tainted_args" attribute.
14727 2022-01-13 Anthony Sharp <anthonysharp15@gmail.com>
14728 Jason Merrill <jason@redhat.com>
14731 * doc/invoke.texi: Documentation for Wmissing-template-keyword.
14733 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
14736 * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
14737 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
14738 * config/i386/mmx.md (<any_shift:insn>v2qi):
14739 New insn_and_split pattern.
14741 2022-01-13 Robin Dapp <rdapp@linux.ibm.com>
14743 * internal-fn.c (expand_partial_load_optab_fn): Add bias.
14744 (expand_partial_store_optab_fn): Likewise.
14745 (internal_len_load_store_bias): New function.
14746 * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
14747 (internal_len_load_store_bias): New function.
14748 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
14749 (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
14750 * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
14751 (vect_estimate_min_profitable_iters): Account for bias.
14752 (vect_get_loop_len): Add bias-adjusted length.
14753 * tree-vect-stmts.c (vectorizable_store): Use.
14754 (vectorizable_load): Use.
14755 * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
14756 (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
14757 * config/rs6000/vsx.md: Use const0 bias predicate.
14758 * doc/md.texi: Document bias value.
14760 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
14762 PR tree-optimization/83072
14763 PR tree-optimization/83073
14764 PR tree-optimization/97909
14765 * fold-const.c (expr_not_equal_to): Use a multi-range class.
14767 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
14769 PR tree-optimization/96707
14770 * range-op.cc (operator_rshift::lhs_op1_relation): New.
14772 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
14774 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
14775 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
14776 (negv2qi splitters): Use lowpart_subreg instead of
14777 gen_lowpart to create subreg.
14778 (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
14779 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
14780 (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
14781 gen_lowpart to create subreg.
14782 * config/i386/i386.md (*subqi_ext<mode>_2): Move.
14784 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
14787 * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
14789 2022-01-13 Martin Liska <mliska@suse.cz>
14791 * common/config/arm/arm-common.c (arm_target_mode): Wrap
14792 keywords with %<, %> and remove trailing punctuation char.
14793 (arm_canon_arch_option_1): Likewise.
14794 (arm_asm_auto_mfpu): Likewise.
14795 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
14796 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
14797 (use_vfp_abi): Likewise.
14798 (aapcs_vfp_is_call_or_return_candidate): Likewise.
14799 (arm_handle_cmse_nonsecure_entry): Likewise.
14800 (arm_handle_cmse_nonsecure_call): Likewise.
14801 (thumb1_md_asm_adjust): Likewise.
14803 2022-01-13 Paul A. Clarke <pc@us.ibm.com>
14805 * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
14806 _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
14807 _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
14808 _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
14809 _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
14810 _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
14811 (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
14812 _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
14815 2022-01-13 Jakub Jelinek <jakub@redhat.com>
14817 PR tree-optimization/103989
14818 * tree-inline.c (setup_one_parameter): Don't copy parms with
14821 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
14823 * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
14824 'TYPE_ADDR_SPACE' for offloading.
14825 * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
14826 'TYPE_ADDR_SPACE' for offloading.
14828 2022-01-13 Julian Brown <julian@codesourcery.com>
14829 Thomas Schwinge <thomas@codesourcery.com>
14831 * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
14833 (add_async_clauses_and_wait): ...here. Call new outlined function.
14834 (decompose_kernels_region_body): Add wait at the end of
14835 explicitly-asynchronous kernels regions.
14837 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
14839 PR middle-end/100280
14840 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
14841 Mark variables used in synthesized data clauses as addressable.
14843 2022-01-13 Martin Liska <mliska@suse.cz>
14845 * config/epiphany/epiphany.c (epiphany_mode_priority):
14846 Use gcc_unreachable for not handled cases.
14848 2022-01-13 Martin Liska <mliska@suse.cz>
14850 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
14851 Use %qs format specifier.
14852 (epiphany_override_options): Wrap keyword in %<, %>.
14854 2022-01-13 Haochen Jiang <haochen.jiang@intel.com>
14857 * config/i386/i386.md (*xor2andn): New define_insn_and_split.
14859 2022-01-13 Xionghu Luo <luoxhu@linux.ibm.com>
14861 * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
14863 2022-01-12 Uroš Bizjak <ubizjak@gmail.com>
14867 * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
14868 (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
14869 when constructing vector logic RTXes.
14870 (expand_vec_perm_pshufb2): Ditto.
14871 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
14872 (<plusminus:insn>v2qi3): Ditto.
14873 (vcond<mode><mode>): Re-enable for TARGET_SSE2.
14874 (vcondu<mode><mode>): Ditto.
14875 (vcond_mask_<mode><mode>): Ditto.
14876 (one_cmpl<VI_32:mode>2): Remove expander.
14877 (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
14878 Use VI_16_32 mode iterator.
14879 (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
14880 Use lowpart_subreg instead of gen_lowpart to create subreg.
14881 (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
14882 "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
14883 Disparage GPR alternative a bit. Add CC clobber.
14884 (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
14885 Use lowpart_subreg instead of gen_lowpart to create subreg.
14886 (*<any_logic:code><VI_16_32:mode>3): Merge from
14887 "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
14888 using VI_16_32 mode iterator. Disparage GPR alternative a bit.
14890 (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
14891 iterator. Use lowpart_subreg instead of gen_lowpart to create subreg.
14893 2022-01-12 Clément Chigot <clement.chigot@atos.net>
14895 * configure.ac: Check sizeof ino_t and dev_t.
14896 (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
14897 syscall being able to handle 64bit inodes.
14898 * config.in: Regenerate.
14899 * configure: Regenerate.
14900 * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
14901 (remove_duplicates): Use it.
14903 2022-01-12 Andrew MacLeod <amacleod@redhat.com>
14905 PR tree-optimization/103551
14906 * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
14908 2022-01-12 Richard Biener <rguenther@suse.de>
14910 PR tree-optimization/103990
14911 * tree-pass.h (tail_merge_optimize): Drop unused argument.
14912 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
14913 * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
14914 and adjust call to tail_merge_optimize.
14916 2022-01-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
14918 * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
14919 does not add autovectorize_vector_modes.
14921 2022-01-12 Martin Liska <mliska@suse.cz>
14923 * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
14924 %qs where possible.
14925 (aarch64_parse_sve_width_string): Likewise.
14926 (aarch64_override_options_internal): Likewise.
14927 (aarch64_print_hint_for_extensions): Likewise.
14928 (aarch64_validate_sls_mitigation): Likewise.
14929 (aarch64_handle_attr_arch): Likewise.
14930 (aarch64_handle_attr_cpu): Likewise.
14931 (aarch64_handle_attr_tune): Likewise.
14932 (aarch64_handle_attr_isa_flags): Likewise.
14934 2022-01-12 Martin Liska <mliska@suse.cz>
14936 * config.gcc: Include elfos.h before ${tm_file}.
14938 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
14940 * config/cris/cris.c: Quote identifiers in parameters to error
14941 and internal_error, and remove extraneous spaces with punctuation.
14942 * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
14943 expression to internal_error, pass it as a parameter instead of
14944 appending it to the format part.
14946 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
14948 * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
14951 2022-01-11 qing zhao <qing.zhao@oracle.com>
14953 * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
14954 Change the 3rd argument of function .DEFERRED_INIT to the name of the
14956 (gimplify_decl_expr): Delete the 3rd argument when call
14957 gimple_add_init_for_auto_var.
14958 * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
14959 the 3rd argument change of function .DEFERRED_INIT.
14960 * tree-cfg.c (verify_gimple_call): Update comments and verification
14961 to reflect the 3rd argument change of function .DEFERRED_INIT.
14962 * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
14963 (sra_modify_deferred_init): Change the 3rd argument of function
14964 .DEFERRED_INIT to the name of the decl.
14966 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
14968 * flag-types.h (enum gfc_convert): Add flags for
14971 2022-01-11 Michael Meissner <meissner@the-meissners.org>
14973 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
14974 checks for only C/C++ front ends before allowing the long double
14975 format to change without a warning.
14977 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
14979 PR rtl-optimization/103974
14980 * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
14981 extra argument, default true, that says whether old-reload
14982 targets should be excluded.
14983 * ira-color.c (color_pass): Pass false.
14985 2022-01-11 Uroš Bizjak <ubizjak@gmail.com>
14988 * config/i386/mmx.md (vcond<mode><mode>):
14989 Use VI_16_32 mode iterator. Enable for TARGET_SSE4_1.
14990 (vcondu<mode><mode>): Ditto.
14991 (vcond_mask_<mode><mode>): Ditto.
14992 (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
14993 (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
14994 Use VI_16_32 mode iterator.
14995 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
14996 Update for rename. Handle V2QImode.
14997 (expand_vec_perm_blend): Update for rename.
14999 2022-01-11 Jakub Jelinek <jakub@redhat.com>
15002 * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
15004 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
15006 PR middle-end/70090
15007 * tree-object-size.c (size_valid_p): New function.
15008 (size_for_offset): Remove OFFSET constness assertion.
15009 (addr_object_size): Build dynamic expressions for object
15010 sizes and use size_valid_p to decide if it is valid for the
15011 given OBJECT_SIZE_TYPE.
15012 (compute_builtin_object_size): Allow dynamic offsets when
15013 computing size at O0.
15014 (call_object_size): Call size_valid_p.
15015 (plus_stmt_object_size): Allow non-constant offset and use
15016 size_valid_p to decide if it is valid for the given
15019 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
15021 PR middle-end/70090
15022 * tree-object-size.c (alloc_object_size): Make and return
15023 non-constant size expression.
15024 (call_object_size): Return expression or unknown based on
15025 whether dynamic object size is requested.
15027 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
15029 PR middle-end/70090
15030 * tree-object-size.c: Include tree-dfa.h.
15031 (parm_object_size): New function.
15032 (collect_object_sizes_for): Call it.
15034 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
15036 PR middle-end/70090
15037 * builtins.c (fold_builtin_object_size): Adjust for dynamic size
15039 * tree-object-size.c: Include gimplify-me.h.
15040 (struct object_size_info): New member UNKNOWNS.
15041 (size_initval_p, size_usable_p, object_sizes_get_raw): New
15043 (object_sizes_get): Return suitable gimple variable for
15045 (bundle_sizes): New function.
15046 (object_sizes_set): Use it and handle dynamic object size
15048 (object_sizes_set_temp): New function.
15049 (size_for_offset): Adjust for dynamic size expressions.
15050 (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
15052 (compute_builtin_object_size): Call gimplify_size_expressions
15054 (dynamic_object_size): New function.
15055 (cond_expr_object_size): Use it.
15056 (phi_dynamic_object_size): New function.
15057 (collect_object_sizes_for): Call it for OST_DYNAMIC. Adjust to
15058 accommodate dynamic object sizes.
15060 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
15061 Jakub Jelinek <jakub@redhat.com>
15063 PR tree-optimization/103961
15064 * tree-object-size.c (plus_stmt_object_size): Always avoid
15065 computing offset for -1 size.
15067 2022-01-11 Andrew MacLeod <amacleod@redhat.com>
15069 PR tree-optimization/103821
15070 * range-op.cc (range_operator::fold_range): Only do precise ranges
15071 when there are not too many subranges.
15073 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
15075 * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
15076 definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
15078 2022-01-11 Roger Sayle <roger@nextmovesoftware.com>
15079 Richard Biener <rguenther@suse.de>
15081 * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
15082 highpart_mults_inserted field.
15083 (convert_mult_to_highpart): New function to convert right shift
15084 of a widening multiply into a MULT_HIGHPART_EXPR.
15085 (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
15086 Call new convert_mult_to_highpart function.
15087 (pass_optimize_widening_mul::execute): Add a statistics counter
15088 for tracking "highpart multiplications inserted" events.
15090 2022-01-11 Xionghu Luo <luoxhu@linux.ibm.com>
15093 * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
15095 * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
15097 * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
15099 2022-01-11 Olivier Hainque <hainque@adacore.com>
15101 * gcc.c (driver_handle_option): State --sysroot as
15104 2022-01-11 Kewen Lin <linkw@linux.ibm.com>
15106 * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
15107 useless related to option -mno-power10.
15109 2022-01-11 Haochen Jiang <haochen.jiang@intel.com>
15112 * config/i386/sse.md (*andnot<mode>3): Extend predicate of
15113 operands[1] from register_operand to vector_operand.
15115 2022-01-10 Uroš Bizjak <ubizjak@gmail.com>
15118 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
15120 * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
15121 Use VI1_16_32 mode iterator.
15122 (*eq<mode>3): Ditto.
15123 (*gt<mode>3): Ditto.
15124 (*xop_maskcmp<mode>3): Ditto.
15125 (*xop_maskcmp_uns<mode>3): Ditto.
15126 (vec_cmp<mode><mode>): Ditto.
15127 (vec_cmpu<mode><mode>): Ditto.
15129 2022-01-10 Richard Biener <rguenther@suse.de>
15131 PR tree-optimization/103948
15132 * tree-vect-generic.c (expand_vector_condition): Return true if
15133 all ones vector is returned for true, all zeros vector for false
15134 and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
15136 2022-01-10 Paul A. Clarke <pc@us.ibm.com>
15138 * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
15139 when _ARCH_PWR10. Use signed types.
15140 (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
15141 (_mm_blendv_pd): Likewise.
15143 2022-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
15145 * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
15147 * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
15148 epilogues, unless we are guaranteed that we can't have partial vectors.
15149 * genopinit.c: (partial_vectors_supported): Generate new function.
15151 2022-01-10 Jakub Jelinek <jakub@redhat.com>
15154 * config/i386/i386.c (classify_argument): Add zero_width_bitfields
15155 argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
15156 always ignore them, when seeing other zero sized bitfields, either
15157 set zero_width_bitfields to 1 and ignore it or if equal to 2 process
15158 it. Pass it to recursive calls. Add wrapper
15159 with old arguments and diagnose ABI differences for C structures
15160 with zero width bitfields. Formatting fixes.
15162 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
15164 PR rtl-optimization/98782
15165 * ira-int.h (ira_soft_conflict): Declare.
15166 * ira-color.c (max_soft_conflict_loop_depth): New constant.
15167 (ira_soft_conflict): New function.
15168 (spill_soft_conflicts): Likewise.
15169 (assign_hard_reg): Use them to handle the case described by
15170 the comment above ira_soft_conflict.
15171 (improve_allocation): Likewise.
15172 * ira.c (check_allocation): Allow allocnos with "soft" conflicts
15173 to share the same register.
15175 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
15177 PR rtl-optimization/98782
15178 * ira-int.h (ira_caller_save_cost): New function.
15179 (ira_caller_save_loop_spill_p): Likewise.
15180 * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
15181 cheaper to spill a call-clobbered register throughout a loop rather
15182 than spill it around each individual call. If so, treat all
15183 call-clobbered registers as conflicts and...
15184 (propagate_allocno_info): ...do not propagate call information
15185 from the child to the parent.
15186 * ira-color.c (move_spill_restore): Update accordingly.
15187 * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
15189 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
15191 PR rtl-optimization/98782
15192 * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
15193 (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
15194 (ira_single_region_allocno_p): New function.
15195 (ira_total_conflict_hard_regs): Likewise.
15196 * ira-build.c (ira_create_allocno): Initialize
15197 ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
15198 (ira_propagate_hard_reg_costs): New function.
15199 (propagate_allocno_info): Use it. Try to avoid propagating
15200 hard register conflicts to parent allocnos if we can handle
15201 the conflicts by spilling instead. Limit the propagated
15202 register costs to the cost of spilling throughout the child loop.
15203 * ira-color.c (color_pass): Use ira_single_region_allocno_p to
15204 test whether a child and parent allocno can share the same
15206 (move_spill_restore): Adjust for the new behavior of
15207 propagate_allocno_info.
15209 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
15211 PR rtl-optimization/98782
15212 * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
15214 * ira-color.c (color_pass): ...here.
15216 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
15218 PR rtl-optimization/98782
15219 * ira-color.c (color_pass): Add comments to describe the spill costs.
15220 (move_spill_restore): Likewise. Fix reversed calculation.
15222 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
15224 PR rtl-optimization/98782
15225 * ira-int.h (ira_loop_border_costs): New class.
15226 * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
15228 (calculate_allocno_spill_cost): Use ira_loop_border_costs.
15229 (color_pass): Likewise.
15230 (move_spill_restore): Likewise.
15232 2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
15235 * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
15237 2022-01-10 Richard Biener <rguenther@suse.de>
15239 PR tree-optimization/100359
15240 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
15241 Allow non-growing peeling with !allow_peel and UL_ALL.
15243 2022-01-08 Roger Sayle <roger@nextmovesoftware.com>
15245 * config/i386/i386-expand.c (ix86_expand_vector_move): Add
15246 special case for TImode to V1TImode moves, going via V2DImode.
15248 2022-01-08 Jakub Jelinek <jakub@redhat.com>
15251 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
15254 2022-01-08 David Malcolm <dmalcolm@redhat.com>
15256 * doc/analyzer.texi
15257 (Special Functions for Debugging the Analyzer): Document
15258 __analyzer_dump_escaped.
15260 2022-01-08 David Malcolm <dmalcolm@redhat.com>
15262 * doc/analyzer.texi (Other Debugging Techniques): Document
15263 region::is_named_decl_p.
15265 2022-01-07 Andrew Pinski <apinski@marvell.com>
15268 * config/arm/aarch-common.c (arm_md_asm_adjust):
15269 Use a temp if !REG_P.
15271 2022-01-07 Uroš Bizjak <ubizjak@gmail.com>
15273 * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
15274 (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
15276 2022-01-07 liuhongt <hongtao.liu@intel.com>
15278 PR rtl-optimization/103750
15279 * fwprop.c (forward_propagate_into): Allow propagations from
15280 inner loop to outer loop.
15282 2022-01-07 Roger Sayle <roger@nextmovesoftware.com>
15284 * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
15286 2022-01-07 Haochen Gui <guihaoc@gcc.gnu.org>
15288 * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
15289 (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
15290 Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
15292 2022-01-07 liuhongt <hongtao.liu@intel.com>
15294 * config/i386/sse.md
15295 (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
15296 UNSPEC_PCMP_UNSIGNED.
15298 2022-01-07 liuhongt <hongtao.liu@intel.com>
15301 * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
15302 gen_avx2_pblendph_1 when elt == 0.
15303 * config/i386/sse.md (avx2_pblendph): Rename to ..
15304 (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
15305 (*avx2_pblendw): Rename to ..
15306 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
15307 (avx2_pblendw): Rename to ..
15308 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
15309 (blendsuf): Removed.
15310 (sse4_1_pblend<blendsuf>): Renamed to ..
15311 (sse4_1_pblend<ssemodesuffix>): .. this.
15313 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
15316 * config/i386/i386.c (ix86_output_indirect_function_return):
15317 Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
15319 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
15322 * config/i386/i386-opts.h (harden_sls): Replace
15323 harden_sls_indirect_branch with harden_sls_indirect_jmp.
15324 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
15326 (ix86_output_indirect_jmp): Likewise.
15327 (ix86_output_call_insn): Likewise.
15328 * config/i386/i386.opt: Replace indirect-branch with
15329 indirect-jmp. Replace harden_sls_indirect_branch with
15330 harden_sls_indirect_jmp.
15331 * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
15334 2022-01-06 Uroš Bizjak <ubizjak@gmail.com>
15336 * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
15337 Add %q modifier for operands in general registers.
15338 <MODE_SI>: Add %q modifier for operands in general registers.
15339 * config/i386/i386.md (*movhi_internal): Change type attribute of
15340 xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
15341 to SImode for non-avx512fp16 targets.
15342 (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
15343 * config/i386/mmx.md (*movv2qi_internal):
15344 Ditto for xmm-gpr interunit alternatives 8,9.
15346 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
15348 * common/config/riscv/riscv-common.c (riscv_implied_info): Add
15350 (riscv_ext_version_table): Add version info for vector extensions.
15351 (riscv_ext_flag_table): Add option mask for vector extensions.
15352 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
15353 (MASK_VECTOR_EEW_64): New.
15354 (MASK_VECTOR_EEW_FP_32): New.
15355 (MASK_VECTOR_EEW_FP_64): New.
15356 (MASK_ZVL32B): New.
15357 (MASK_ZVL64B): New.
15358 (MASK_ZVL128B): New.
15359 (MASK_ZVL256B): New.
15360 (MASK_ZVL512B): New.
15361 (MASK_ZVL1024B): New.
15362 (MASK_ZVL2048B): New.
15363 (MASK_ZVL4096B): New.
15364 (MASK_ZVL8192B): New.
15365 (MASK_ZVL16384B): New.
15366 (MASK_ZVL32768B): New.
15367 (MASK_ZVL65536B): New.
15368 (TARGET_ZVL32B): New.
15369 (TARGET_ZVL64B): New.
15370 (TARGET_ZVL128B): New.
15371 (TARGET_ZVL256B): New.
15372 (TARGET_ZVL512B): New.
15373 (TARGET_ZVL1024B): New.
15374 (TARGET_ZVL2048B): New.
15375 (TARGET_ZVL4096B): New.
15376 (TARGET_ZVL8192B): New.
15377 (TARGET_ZVL16384B): New.
15378 (TARGET_ZVL32768B): New.
15379 (TARGET_ZVL65536B): New.
15380 * config/riscv/riscv.opt (Mask(VECTOR)): New.
15381 (riscv_vector_eew_flags): New.
15382 (riscv_zvl_flags): New.
15384 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
15386 * common/config/riscv/riscv-common.c
15387 (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
15390 2022-01-06 Jakub Jelinek <jakub@redhat.com>
15392 PR tree-optimization/103899
15393 * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
15394 warning by moving context variable to the only spot where it is used
15395 and moving gcc_assert into if body.
15397 2022-01-06 Jakub Jelinek <jakub@redhat.com>
15399 PR rtl-optimization/103908
15400 * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
15403 2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com>
15406 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15407 Skip over instances with undefined function types.
15409 2022-01-05 Andrew Pinski <apinski@marvell.com>
15412 * config/i386/i386.h (x86_mfence): Mark with GTY.
15414 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
15417 * config/i386/mmx.md (VI_16_32): New mode iterator.
15418 (VI1_16_32): Ditto.
15419 (mmxvecsize): Handle V2QI mode.
15420 (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
15421 Use VI1_16_32 mode iterator.
15422 (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
15423 Use VI1_16_32 mode iterator.
15424 (abs<mode>2): Use VI_16_32 mode iterator.
15425 (uavgv2qi3_ceil): New insn pattern.
15427 2022-01-05 Martin Sebor <msebor@redhat.com>
15429 * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
15430 %qs to avoid -Wformat-diag.
15432 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
15435 * config/i386/mmx.md (one_cmplv2qi2): Change
15436 alternatives 1,2 type from sselog to sselog1.
15438 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
15441 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
15442 narrow mode remapped elements for !one_operand_p case.
15444 2022-01-05 Richard Biener <rguenther@suse.de>
15446 PR tree-optimization/103816
15447 * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
15448 check DR_GROUP_GAP compute for overflow and representability.
15450 2022-01-05 Jakub Jelinek <jakub@redhat.com>
15453 * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
15454 for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
15455 it can do unwanted rhs folding like &a[0] into &2.0 etc.
15457 2022-01-05 Kewen Lin <linkw@linux.ibm.com>
15460 * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
15461 (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
15462 (rs6000_need_ipa_fn_target_info): New function.
15463 (rs6000_update_ipa_fn_target_info): Likewise.
15464 (rs6000_can_inline_p): Adjust for ipa function summary target info.
15465 * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
15466 * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
15467 summary target info.
15468 (analyze_function_body): Adjust for ipa function summary target info
15469 and call hook rs6000_need_ipa_fn_target_info and
15470 rs6000_update_ipa_fn_target_info.
15471 (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
15473 (inline_read_section): Likewise.
15474 (ipa_fn_summary_write): Likewise.
15475 * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
15476 * doc/tm.texi: Regenerate.
15477 * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
15478 (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
15479 * target.def (update_ipa_fn_target_info): New hook.
15480 (need_ipa_fn_target_info): Likewise.
15481 * targhooks.c (default_need_ipa_fn_target_info): New function.
15482 (default_update_ipa_fn_target_info): Likewise.
15483 * targhooks.h (default_update_ipa_fn_target_info): New declare.
15484 (default_need_ipa_fn_target_info): Likewise.
15486 2022-01-04 Martin Sebor <msebor@redhat.com>
15488 PR middle-end/99612
15489 * builtins.c (get_memmodel): Move warning code to
15490 gimple-ssa-warn-access.cc.
15491 (expand_builtin_atomic_compare_exchange): Same.
15492 (expand_ifn_atomic_compare_exchange): Same.
15493 (expand_builtin_atomic_load): Same.
15494 (expand_builtin_atomic_store): Same.
15495 (expand_builtin_atomic_clear): Same.
15496 * doc/extend.texi (__atomic_exchange_n): Update valid memory
15498 * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
15499 (struct memmodel_pair): New struct.
15500 (memmodel_name): New function.
15501 (pass_waccess::maybe_warn_memmodel): New function.
15502 (pass_waccess::check_atomic_memmodel): New function.
15503 (pass_waccess::check_atomic_builtin): Handle memory model.
15504 * input.c (expansion_point_location_if_in_system_header): Return
15505 original location if expansion location is in a system header.
15507 2022-01-04 Uroš Bizjak <ubizjak@gmail.com>
15510 * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
15511 (one_cmplv2qi3 splitters): New post-reload splitters.
15512 (*andnotv2qi3): New insn pattern.
15513 (andnotv2qi3 splitters): New post-reload splitters.
15514 (<any_logic:code>v2qi3): New insn pattern.
15515 (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
15517 2022-01-04 Richard Biener <rguenther@suse.de>
15519 PR tree-optimization/103800
15520 * tree-vect-loop.c (vectorizable_phi): Remove assert and
15523 2022-01-04 Richard Biener <rguenther@suse.de>
15525 PR tree-optimization/103690
15526 * tree-pass.h (tail_merge_optimize): Adjust.
15527 * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
15528 to re-split critical edges, move CFG cleanup ...
15529 * tree-ssa-pre.c (pass_pre::execute): ... here, before
15530 simple_dce_from_worklist and delay freeing inserted_exprs from
15532 (fini_pre): .. here.
15534 2022-01-04 Roger Sayle <roger@nextmovesoftware.com>
15536 * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
15537 * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
15538 (setcc_from_bi): Remove SImode specific pattern.
15539 (setcc<mode>_from_bi): Provide more general HSDIM pattern.
15540 (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
15541 for sign- and zero-extending BImode predicates to integers.
15542 (setcc_int<mode>): Remove previous (-1-based) instructions.
15543 (cstorebi4): Remove BImode to SImode specific expander.
15544 (cstore<mode>4): Fix indentation. Expand using setccsi_from_bi.
15545 (cstore<mode>4): For both integer and floating point modes.
15547 2022-01-04 Olivier Hainque <hainque@adacore.com>
15549 * gcc.c (driver_handle_option): do_save --sysroot.
15551 2022-01-04 Richard Biener <rguenther@suse.de>
15553 PR tree-optimization/103864
15554 PR tree-optimization/103544
15555 * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
15556 reductions wrapped in conversions from SLP handling.
15557 (vect_analyze_slp): Revert PR103544 change.
15559 2022-01-04 Jakub Jelinek <jakub@redhat.com>
15561 PR rtl-optimization/103860
15562 * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
15563 uselessly for blocks for which it has been called already.
15565 2022-01-04 Cui,Lili <lili.cui@intel.com>
15567 * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
15568 to Alderlake and Rocketlake.
15570 2022-01-04 Chung-Lin Tang <cltang@codesourcery.com>
15572 PR middle-end/103643
15573 * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
15574 OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
15576 2022-01-04 liuhongt <hongtao.liu@intel.com>
15579 * config/i386/sse.md (*bit_and_float_vector_all_ones):
15580 Force_reg operand 1 to avoid ICE.
15582 2022-01-04 Jason Merrill <jason@redhat.com>
15584 * tree-pretty-print.c (do_niy): Add spc parameter.
15586 (print_call_name): Add spc local variable.
15588 2022-01-03 Uroš Bizjak <ubizjak@gmail.com>
15591 * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
15592 (mov<V_32:mode>_internal): Ditto.
15593 (*push<V_32:mode>_rex64): Ditto.
15594 (movmisalign<V_32:mode>): Ditto.
15595 (*push<V_32:mode>_rex64 splitter): Enable for
15596 TARGET_64BIT && TARGET_SSE.
15597 (*push<V_32:mode>2): Remove insn pattern.
15599 2022-01-03 Andrew Pinski <apinski@marvell.com>
15602 * doc/extend.texi: Extend the documentation about Complex
15603 types for casting and also rewrite the __real__/__imag__
15604 expression portion to use tables.
15605 Move __builtin_complex to the Complex type section.
15607 2022-01-03 Jakub Jelinek <jakub@redhat.com>
15610 * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
15611 ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
15613 * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
15614 ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
15615 ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
15616 * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
15617 expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
15618 expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
15620 * optabs.def (atomic_add_fetch_cmp_0_optab,
15621 atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
15622 atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
15624 * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
15625 * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
15626 * tree-ssa-ccp.c: Include internal-fn.h.
15627 (optimize_atomic_bit_test_and): Add . before internal fn call
15628 in function comment. Change return type from void to bool and
15629 return true only if successfully replaced.
15630 (optimize_atomic_op_fetch_cmp_0): New function.
15631 (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
15632 for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
15633 BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
15634 for *XOR* ones only if optimize_atomic_bit_test_and failed.
15635 * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
15636 atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
15637 (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
15638 atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
15639 * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
15640 atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
15641 atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
15642 new named patterns.
15644 2022-01-03 Richard Biener <rguenther@suse.de>
15646 PR middle-end/103851
15647 * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
15649 2022-01-03 Jakub Jelinek <jakub@redhat.com>
15652 * symtab.c: Include fold-const.h.
15653 (symtab_node::equal_address_to): If folding_initializer is true,
15654 handle it like memory_accessed. Simplify.
15656 2022-01-03 Martin Liska <mliska@suse.cz>
15658 * doc/extend.texi: Use ; for function declarations.
15660 2022-01-03 Jakub Jelinek <jakub@redhat.com>
15663 * symtab.c (symtab_node::equal_address_to): Return 0 if one of
15664 VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
15666 2022-01-03 Jakub Jelinek <jakub@redhat.com>
15668 * gcc.c (process_command): Update copyright notice dates.
15669 * gcov-dump.c (print_version): Ditto.
15670 * gcov.c (print_version): Ditto.
15671 * gcov-tool.c (print_version): Ditto.
15672 * gengtype.c (create_file): Ditto.
15673 * doc/cpp.texi: Bump @copying's copyright year.
15674 * doc/cppinternals.texi: Ditto.
15675 * doc/gcc.texi: Ditto.
15676 * doc/gccint.texi: Ditto.
15677 * doc/gcov.texi: Ditto.
15678 * doc/install.texi: Ditto.
15679 * doc/invoke.texi: Ditto.
15681 2022-01-02 Uroš Bizjak <ubizjak@gmail.com>
15684 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
15685 (VALID_INT_MODE_P): Ditto.
15686 * config/i386/i386.c (ix86_secondary_reload): Handle
15687 V2QImode reloads from SSE register to memory.
15688 (vector_mode_supported_p): Always return true for V2QImode.
15689 * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
15690 (*negqi_ext<mode>_2): Ditto.
15691 * config/i386/mmx.md (movv2qi): New expander.
15692 (movmisalignv2qi): Ditto.
15693 (*movv2qi_internal): New insn pattern.
15694 (*pushv2qi2): Ditto.
15695 (negv2qi2 and splitters): Ditto.
15696 (<plusminus:insn>v2qi3 and splitters): Ditto.
15698 2022-01-02 John David Anglin <danglin@gcc.gnu.org>
15700 * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
15701 sync_lock_test_and_set libfunc. Call convert_memory_address to
15702 convert memory address to Pmode.
15703 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
15706 Copyright (C) 2022 Free Software Foundation, Inc.
15708 Copying and distribution of this file, with or without modification,
15709 are permitted in any medium without royalty provided the copyright
15710 notice and this notice are preserved.