1 2021-07-21 Thomas Schwinge <thomas@codesourcery.com>
2 Joseph Myers <joseph@codesourcery.com>
3 Cesar Philippidis <cesar@codesourcery.com>
5 * tree-core.h (omp_clause_code): Add 'OMP_CLAUSE_NOHOST'.
6 * tree.c (omp_clause_num_ops, omp_clause_code_name, walk_tree_1):
8 * tree-pretty-print.c (dump_omp_clause): Likewise.
9 * omp-general.c (oacc_verify_routine_clauses): Likewise.
10 * gimplify.c (gimplify_scan_omp_clauses)
11 (gimplify_adjust_omp_clauses): Likewise.
12 * tree-nested.c (convert_nonlocal_omp_clauses)
13 (convert_local_omp_clauses): Likewise.
14 * omp-low.c (scan_sharing_clauses): Likewise.
15 * omp-offload.c (execute_oacc_device_lower): Update.
17 2021-07-21 Martin Sebor <msebor@redhat.com>
19 * tree-ssa-alias.c (walk_aliased_vdefs_1): Fix typos in a comment.
21 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
23 * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table):
26 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
28 * config/rs6000/rs6000-gen-builtins.c (write_fntype): New
30 (write_fntype_init): New stub function.
31 (write_init_bif_table): Likewise.
32 (write_init_ovld_table): New function.
33 (write_init_file): Implement.
35 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
37 * config/rs6000/rs6000-gen-builtins.c
38 (write_autogenerated_header): New function.
39 (write_decls): Likewise.
40 (write_extern_fntype): New callback function.
41 (write_header_file): Implement.
43 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
45 * config/rs6000/rs6000-gen-builtins.c (write_defines_file):
48 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
50 * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New
52 (complete_base_type): Likewise.
53 (construct_fntype_id): Likewise.
54 (parse_bif_entry): Call contruct_fntype_id.
55 (parse_ovld_entry): Likewise.
57 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
59 * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct.
60 (MAXOVLDSTANZAS): New macro.
61 (ovld_stanzas): New variable.
62 (curr_ovld_stanza): Likewise.
63 (MAXOVLDS): New macro.
64 (ovlddata): New struct.
65 (ovlds): New variable.
66 (curr_ovld): Likewise.
67 (max_ovld_args): Likewise.
68 (parse_ovld_entry): New function.
69 (parse_ovld_stanza): Likewise.
70 (parse_ovld): Implement.
72 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
74 * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs):
77 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
79 * config/rs6000/rs6000-gen-builtins.c (parse_args): New function.
80 (parse_prototype): Implement.
82 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
84 * config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum.
85 (curr_bif_stanza): New variable.
86 (stanza_entry): New struct.
87 (stanza_map): New initialized variable.
88 (enable_string): Likewise.
90 (typelist): New struct.
92 (MAXRESTROPNDS): New macro.
93 (prototype): New struct.
95 (bifdata): New struct.
98 (bif_order): Likewise.
99 (bif_index): Likewise.
100 (fatal): New function.
101 (stanza_name_to_stanza): Likewise.
102 (parse_bif_attrs): New stub function.
103 (parse_prototype): Likewise.
104 (parse_bif_entry): New function.
105 (parse_bif_stanza): Likewise.
106 (parse_bif): Implement.
107 (set_bif_order): New function.
108 (create_bif_order): Implement.
110 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
112 * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include.
113 (num_bifs): New variable.
114 (num_ovld_stanzas): Likewise.
115 (num_ovlds): Likewise.
116 (parse_codes): New enum.
117 (bif_rbt): New variable.
118 (ovld_rbt): Likewise.
119 (fntype_rbt): Likewise.
120 (bifo_rbt): Likewise.
121 (parse_bif): New stub function.
122 (create_bif_order): Likewise.
123 (parse_ovld): Likewise.
124 (write_header_file): Likewise.
125 (write_init_file): Likewise.
126 (write_defines_file): Likewise.
127 (delete_output_files): New function.
130 2021-07-21 H.J. Lu <hjl.tools@gmail.com>
133 * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2
134 from CRC32 _builtin functions.
136 2021-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
138 * coverage.c (build_gcov_info_var_registration): Mark the object placed
139 in the linker set as referenced so that it does not get optimized away.
141 2021-07-21 Kito Cheng <kito.cheng@sifive.com>
144 2021-07-20 Kito Cheng <kito.cheng@sifive.com>
146 * config.gcc (riscv*-*-*): Detect which python is available.
148 2021-07-21 Jakub Jelinek <jakub@redhat.com>
151 * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA
152 contexts in which decl isn't privatized and for ORT_TARGET return
153 false if decl is mapped.
155 2021-07-21 Richard Sandiford <richard.sandiford@arm.com>
157 * gimple-loop-jam.c: Include tree-ssa-sccvn.h.
158 (tree_loop_unroll_and_jam): Run value-numbering on a loop that
159 has been successfully unrolled.
161 2021-07-21 Richard Sandiford <richard.sandiford@arm.com>
163 * tree-ssa-loop-manip.c (determine_exit_conditions): Return a null
164 exit condition if no tail loop is needed, and if the original exit
165 condition should therefore be kept as-is.
166 (tree_transform_and_unroll_loop): Handle that case here too.
168 2021-07-21 Kewen Lin <linkw@linux.ibm.com>
170 * tree-data-ref.c (free_dependence_relations): Adjust to pass vec
172 (free_data_refs): Likewise.
173 * tree-data-ref.h (free_dependence_relations): Likewise.
174 (free_data_refs): Likewise.
175 * tree-predcom.c (struct chain): Use auto_vec instead of vec for
177 (struct component): Likewise.
178 (pcom_worker::pcom_worker): Adjust for auto_vec and renaming changes.
179 (pcom_worker::~pcom_worker): Likewise.
180 (pcom_worker::release_chain): Adjust as auto_vec changes.
181 (pcom_worker::loop): Rename to ...
182 (pcom_worker::m_loop): ... this.
183 (pcom_worker::datarefs): Rename to ...
184 (pcom_worker::m_datarefs): ... this. Use auto_vec instead of vec.
185 (pcom_worker::dependences): Rename to ...
186 (pcom_worker::m_dependences): ... this. Use auto_vec instead of vec.
187 (pcom_worker::chains): Rename to ...
188 (pcom_worker::m_chains): ... this. Use auto_vec instead of vec.
189 (pcom_worker::looparound_phis): Rename to ...
190 (pcom_worker::m_looparound_phis): ... this. Use auto_vec instead of
192 (pcom_worker::cache): Rename to ...
193 (pcom_worker::m_cache): ... this. Use auto_vec instead of vec.
194 (pcom_worker::release_chain): Adjust for auto_vec changes.
195 (pcom_worker::release_chains): Adjust for auto_vec and renaming
197 (release_component): Remove.
198 (release_components): Adjust for release_component removal.
199 (component_of): Adjust to use vec.
200 (merge_comps): Likewise.
201 (pcom_worker::aff_combination_dr_offset): Adjust for renaming changes.
202 (pcom_worker::determine_offset): Likewise.
203 (class comp_ptrs): Remove.
204 (pcom_worker::split_data_refs_to_components): Adjust for renaming
205 changes, for comp_ptrs removal with auto_vec.
206 (pcom_worker::suitable_component_p): Adjust for renaming changes.
207 (pcom_worker::filter_suitable_components): Adjust for release_component
209 (pcom_worker::valid_initializer_p): Adjust for renaming changes.
210 (pcom_worker::find_looparound_phi): Likewise.
211 (pcom_worker::add_looparound_copies): Likewise.
212 (pcom_worker::determine_roots_comp): Likewise.
213 (pcom_worker::single_nonlooparound_use): Likewise.
214 (pcom_worker::execute_pred_commoning_chain): Likewise.
215 (pcom_worker::execute_pred_commoning): Likewise.
216 (pcom_worker::try_combine_chains): Likewise.
217 (pcom_worker::prepare_initializers_chain): Likewise.
218 (pcom_worker::prepare_initializers): Likewise.
219 (pcom_worker::prepare_finalizers_chain): Likewise.
220 (pcom_worker::prepare_finalizers): Likewise.
221 (pcom_worker::tree_predictive_commoning_loop): Likewise.
223 2021-07-20 Martin Sebor <msebor@redhat.com>
226 * builtins.c (gimple_call_return_array): Add argument. Correct
227 offsets for memchr, mempcpy, stpcpy, and stpncpy.
228 (compute_objsize_r): Adjust offset computation for argument returning
231 2021-07-20 Martin Sebor <msebor@redhat.com>
234 * tree-ssa-uninit.c (check_defs): Handle UBSAN built-ins.
236 2021-07-20 Jeff Law <jlaw@localhost.localdomain>
238 * function.c (assign_parm_setup_block): Use adjust_address instead
239 of change_address to preserve MEM_EXPR and friends.
241 2021-07-20 Martin Sebor <msebor@redhat.com>
243 * cfgloop.h (single_likely_exit): Adjust by-value argument to
245 * cfgloopanal.c (single_likely_exit): Same.
246 * cgraph.h (struct cgraph_node): Same.
247 * cgraphclones.c (cgraph_node::create_virtual_clone): Same.
248 * genautomata.c (merge_states): Same.
249 * genextract.c (VEC_char_to_string): Same.
250 * genmatch.c (dt_node::gen_kids_1): Same.
251 (walk_captures): Adjust by-value argument to by-reference.
252 * gimple-ssa-store-merging.c (check_no_overlap): Adjust by-value argument
253 to by-const-reference.
254 * gimple.c (gimple_build_call_vec): Same.
255 (gimple_build_call_internal_vec): Same.
256 (gimple_build_switch): Same.
257 (sort_case_labels): Same.
258 (preprocess_case_label_vec_for_gimple): Adjust by-value argument to
260 * gimple.h (gimple_build_call_vec): Adjust by-value argument to
262 (gimple_build_call_internal_vec): Same.
263 (gimple_build_switch): Same.
264 (sort_case_labels): Same.
265 (preprocess_case_label_vec_for_gimple): Adjust by-value argument to
267 * haifa-sched.c (calc_priorities): Adjust by-value argument to
269 (sched_init_luids): Same.
270 (haifa_init_h_i_d): Same.
271 * ipa-cp.c (ipa_get_indirect_edge_target_1): Same.
272 (adjust_callers_for_value_intersection): Adjust by-value argument to
274 (find_more_scalar_values_for_callers_subset): Adjust by-value argument to
276 (find_more_contexts_for_caller_subset): Same.
277 (find_aggregate_values_for_callers_subset): Same.
278 (copy_useful_known_contexts): Same.
279 * ipa-fnsummary.c (remap_edge_summaries): Same.
280 (remap_freqcounting_predicate): Same.
281 * ipa-inline.c (add_new_edges_to_heap): Adjust by-value argument to
283 * ipa-predicate.c (predicate::remap_after_inlining): Adjust by-value argument
284 to by-const-reference.
285 * ipa-predicate.h (predicate::remap_after_inlining): Same.
286 * ipa-prop.c (ipa_find_agg_cst_for_param): Same.
287 * ipa-prop.h (ipa_find_agg_cst_for_param): Same.
288 * ira-build.c (ira_loop_tree_body_rev_postorder): Same.
289 * read-rtl.c (add_overload_instance): Same.
290 * rtl.h (native_decode_rtx): Same.
291 (native_decode_vector_rtx): Same.
292 * sched-int.h (sched_init_luids): Same.
293 (haifa_init_h_i_d): Same.
294 * simplify-rtx.c (native_decode_vector_rtx): Same.
295 (native_decode_rtx): Same.
296 * tree-call-cdce.c (gen_shrink_wrap_conditions): Same.
297 (shrink_wrap_one_built_in_call_with_conds): Same.
298 (shrink_wrap_conditional_dead_built_in_calls): Same.
299 * tree-data-ref.c (create_runtime_alias_checks): Same.
300 (compute_all_dependences): Same.
301 * tree-data-ref.h (compute_all_dependences): Same.
302 (create_runtime_alias_checks): Same.
303 (index_in_loop_nest): Same.
304 * tree-if-conv.c (mask_exists): Same.
305 * tree-loop-distribution.c (class loop_distribution): Same.
306 (loop_distribution::create_rdg_vertices): Same.
307 (dump_rdg_partitions): Same.
308 (debug_rdg_partitions): Same.
309 (partition_contains_all_rw): Same.
310 (loop_distribution::distribute_loop): Same.
311 * tree-parloops.c (oacc_entry_exit_ok_1): Same.
312 (oacc_entry_exit_single_gang): Same.
313 * tree-ssa-loop-im.c (hoist_memory_references): Same.
314 (loop_suitable_for_sm): Same.
315 * tree-ssa-loop-niter.c (bound_index): Same.
316 * tree-ssa-reassoc.c (update_ops): Same.
317 (swap_ops_for_binary_stmt): Same.
318 (rewrite_expr_tree): Same.
319 (rewrite_expr_tree_parallel): Same.
320 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Same.
321 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Same.
322 * tree-ssa-structalias.c (process_all_all_constraints): Same.
323 (make_constraints_to): Same.
324 (handle_lhs_call): Same.
325 (find_func_aliases_for_builtin_call): Same.
326 (sort_fieldstack): Same.
327 (check_for_overlaps): Same.
328 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Same.
329 (vect_create_cond_for_unequal_addrs): Same.
330 (vect_create_cond_for_lower_bounds): Same.
331 (vect_create_cond_for_alias_checks): Same.
332 * tree-vect-slp-patterns.c (vect_validate_multiplication): Same.
333 * tree-vect-slp.c (vect_analyze_slp_instance): Same.
334 (vect_make_slp_decision): Same.
335 (vect_slp_bbs): Same.
336 (duplicate_and_interleave): Same.
337 (vect_transform_slp_perm_load): Same.
338 (vect_schedule_slp): Same.
339 * tree-vectorizer.h (vect_transform_slp_perm_load): Same.
340 (vect_schedule_slp): Same.
341 (duplicate_and_interleave): Same.
342 * tree.c (build_vector_from_ctor): Same.
343 (build_vector): Same.
344 (check_vector_cst): Same.
345 (check_vector_cst_duplicate): Same.
346 (check_vector_cst_fill): Same.
347 (check_vector_cst_stepped): Same.
348 * tree.h (build_vector_from_ctor): Same.
350 2021-07-20 Jakub Jelinek <jakub@redhat.com>
353 * config/rs6000/rs6000-protos.h (easy_altivec_constant): Change return
354 type from bool to int.
355 * config/rs6000/rs6000.c (vspltis_constant): Fix up handling the
356 EASY_VECTOR_MSB case if either step or copies is not 1.
357 (vspltis_shifted): Fix comment typo.
358 (easy_altivec_constant): Change return type from bool to int, instead
359 of returning true return byte size of the element mode that should be
360 used to synthetize the constant.
361 * config/rs6000/predicates.md (easy_vector_constant_msb): Require
362 that vspltis_shifted is 0, handle the case where easy_altivec_constant
363 assumes using different vector mode from CONST_VECTOR's mode.
364 * config/rs6000/altivec.md (easy_vector_constant_msb splitter): Use
365 easy_altivec_constant to determine mode in which -1 >> -1 should be
366 performed, use rs6000_expand_vector_init instead of gen_vec_initv4sisi.
368 2021-07-20 Richard Biener <rguenther@suse.de>
371 * dwarf2out.h (dwarf_file_data): Add key member.
372 * dwarf2out.c (dwarf_file_hasher::equal): Compare key.
373 (dwarf_file_hasher::hash): Hash key.
374 (lookup_filename): Remap the filename and store it in the
375 filename member of dwarf_file_data when creating a new
377 (file_name_acquire): Do not remap the filename again.
378 (maybe_emit_file): Likewise.
380 2021-07-20 Jonathan Wright <jonathan.wright@arm.com>
382 * config/aarch64/aarch64-simd-builtins.def: Use two variant
383 generators for all TBL/TBX intrinsics and rename to
384 consistent forms: qtbl[1234] or qtbx[1234].
385 * config/aarch64/aarch64-simd.md (aarch64_tbl1<mode>):
387 (aarch64_qtbl1<mode>): This.
388 (aarch64_tbx1<mode>): Rename to...
389 (aarch64_qtbx1<mode>): This.
390 (aarch64_tbl2v16qi): Delete.
391 (aarch64_tbl3<mode>): Rename to...
392 (aarch64_qtbl2<mode>): This.
393 (aarch64_tbx4<mode>): Rename to...
394 (aarch64_qtbx2<mode>): This.
395 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Use
396 renamed qtbl1 and qtbl2 RTL patterns.
397 * config/aarch64/arm_neon.h (vqtbl1_p8): Use renamed qtbl1
399 (vqtbl1_s8): Likewise.
400 (vqtbl1_u8): Likewise.
401 (vqtbl1q_p8): Likewise.
402 (vqtbl1q_s8): Likewise.
403 (vqtbl1q_u8): Likewise.
404 (vqtbx1_s8): Use renamed qtbx1 RTL pattern.
405 (vqtbx1_u8): Likewise.
406 (vqtbx1_p8): Likewise.
407 (vqtbx1q_s8): Likewise.
408 (vqtbx1q_u8): Likewise.
409 (vqtbx1q_p8): Likewise.
410 (vtbl1_s8): Use renamed qtbl1 RTL pattern.
411 (vtbl1_u8): Likewise.
412 (vtbl1_p8): Likewise.
414 (vtbl2_u8): Likewise.
415 (vtbl2_p8): Likewise.
416 (vtbl3_s8): Use renamed qtbl2 RTL pattern.
417 (vtbl3_u8): Likewise.
418 (vtbl3_p8): Likewise.
419 (vtbl4_s8): Likewise.
420 (vtbl4_u8): Likewise.
421 (vtbl4_p8): Likewise.
422 (vtbx2_s8): Use renamed qtbx2 RTL pattern.
423 (vtbx2_u8): Likewise.
424 (vtbx2_p8): Likewise.
425 (vqtbl2_s8): Use renamed qtbl2 RTL pattern.
426 (vqtbl2_u8): Likewise.
427 (vqtbl2_p8): Likewise.
428 (vqtbl2q_s8): Likewise.
429 (vqtbl2q_u8): Likewise.
430 (vqtbl2q_p8): Likewise.
431 (vqtbx2_s8): Use renamed qtbx2 RTL pattern.
432 (vqtbx2_u8): Likewise.
433 (vqtbx2_p8): Likewise.
434 (vqtbx2q_s8): Likewise.
435 (vqtbx2q_u8): Likewise.
436 (vqtbx2q_p8): Likewise.
437 (vtbx4_s8): Likewise.
438 (vtbx4_u8): Likewise.
439 (vtbx4_p8): Likewise.
441 2021-07-20 Uroš Bizjak <ubizjak@gmail.com>
444 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
446 (define_peephole2 atomic_loaddi_fpu): Ditto.
448 2021-07-20 Kito Cheng <kito.cheng@sifive.com>
450 * config.gcc (riscv*-*-*): Detect which python is available.
452 2021-07-20 Kewen Lin <linkw@linux.ibm.com>
454 * config/rs6000/vsx.md (mulhs_<mode>): Rename to...
455 (smul<mode>3_highpart): ... this.
456 (mulhu_<mode>): Rename to...
457 (umul<mode>3_highpart): ... this.
458 * config/rs6000/rs6000-builtin.def (MULHS_V2DI, MULHS_V4SI,
459 MULHU_V2DI, MULHU_V4SI): Adjust.
461 2021-07-20 Kewen Lin <linkw@linux.ibm.com>
463 PR tree-optimization/100696
464 * internal-fn.c (first_commutative_argument): Add info for IFN_MULH.
465 * internal-fn.def (IFN_MULH): New internal function.
466 * tree-vect-patterns.c (vect_recog_mulhs_pattern): Add support to
467 recog normal multiply highpart as IFN_MULH.
468 * config/i386/i386.c (ix86_add_stmt_cost): Adjust for combined
471 2021-07-19 Indu Bhagat <indu.bhagat@oracle.com>
473 * config/elfos.h (CTF_DEBUGGING_INFO): New definition.
474 (BTF_DEBUGGING_INFO): Likewise.
475 * doc/tm.texi.in: Document the new macros.
476 * doc/tm.texi: Regenerated.
477 * toplev.c: Guard initialization of debug hooks.
479 2021-07-19 Indu Bhagat <indu.bhagat@oracle.com>
481 * flags.h (ctf_debuginfo_p): New function declaration.
482 * opts.c (ctf_debuginfo_p): New function definition.
484 2021-07-19 Andrew Stubbs <ams@codesourcery.com>
487 * config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New.
488 (ASM_SPEC): Set -mattr for xnack and sram-ecc.
489 * config/gcn/gcn-opts.h (enum sram_ecc_type): New.
490 * config/gcn/gcn-valu.md: Add a warning comment.
491 * config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack.
492 (output_file_start): Add xnack and sram-ecc state to ".amdgcn_target".
493 * config/gcn/gcn.md: Add a warning comment.
494 * config/gcn/gcn.opt: Add -mxnack and -msram-ecc.
495 * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove
497 (EF_AMDGPU_XNACK): New.
498 (EF_AMDGPU_SRAM_ECC): New.
500 (copy_early_debug_info): Use elf_flags.
501 (main): Handle -mxnack and -msram-ecc options.
502 * doc/invoke.texi: Document -mxnack and -msram-ecc.
504 2021-07-19 Andrew Pinski <apinski@marvell.com>
507 * config/aarch64/aarch64.md (csneg3_uxtw_insn): Rename to ...
508 (*cs<neg_not_cs>3_uxtw_insn4): and extend to NEG_NOT.
510 2021-07-19 Richard Biener <rguenther@suse.de>
512 PR tree-optimization/101505
513 * tree-vect-patterns.c (vect_determine_precisions): Walk
514 PHIs also for loop vectorization.
516 2021-07-19 Richard Biener <rguenther@suse.de>
518 * gimple.h (gimple_expr_type): Remove.
519 * doc/gimple.texi: Remove gimple_expr_type documentation.
521 2021-07-19 Richard Biener <rguenther@suse.de>
523 * tree-ssa-sccvn.c (vn_reference_eq): Handle NULL vr->type.
524 (ao_ref_init_from_vn_reference): Likewise.
525 (fully_constant_reference): Likewise.
526 (vn_reference_lookup_call): Do not set vr->type to random
528 * tree-ssa-pre.c (compute_avail): Do not try to PRE calls
530 * tree-vect-generic.c (expand_vector_piecewise): Pass in
531 whether we expanded parallel.
532 (expand_vector_parallel): Adjust.
533 (expand_vector_addition): Likewise.
534 (expand_vector_comparison): Likewise.
535 (expand_vector_operation): Likewise.
536 (expand_vector_scalar_condition): Likewise.
537 (expand_vector_conversion): Likewise.
539 2021-07-19 Richard Biener <rguenther@suse.de>
541 * tree-vrp.c (register_edge_assert_for_2): Use the
543 (vrp_folder::fold_predicate_in): Likewise.
544 * vr-values.c (gimple_assign_nonzero_p): Likewise.
545 (vr_values::extract_range_from_comparison): Likewise.
546 (vr_values::extract_range_from_ubsan_builtin): Use the
547 type of the first operand.
548 (vr_values::extract_range_basic): Push down type
549 computation, use the appropriate LHS.
550 (vr_values::extract_range_from_assignment): Use the
553 2021-07-18 H.J. Lu <hjl.tools@gmail.com>
556 * common/config/i386/i386-common.c (ix86_handle_option): For
557 -mgeneral-regs-only, enable the GPR only instructions which are
558 enabled implicitly by SSE ISAs unless they have been disabled
561 2021-07-18 H.J. Lu <hjl.tools@gmail.com>
564 * config/i386/i386.c (ix86_check_avx_upper_stores): Moved before
565 ix86_avx_u128_mode_needed.
566 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY if callee
567 returns AVX register.
569 2021-07-17 Jan Hubicka <hubicka@ucw.cz>
571 * tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED.
572 (handle_const_call): Liekise
573 (handle_pure_call): Liekise
575 2021-07-17 Andrew MacLeod <amacleod@redhat.com>
577 PR tree-optimization/96542
578 * range-op.cc (range_operator::wi_fold_in_parts): New.
579 (range_operator::fold_range): Call wi_fold_in_parts.
580 (operator_lshift::wi_fold): Fix broken lshift by [0,0].
581 * range-op.h (wi_fold_in_parts): Add prototype.
583 2021-07-16 David Malcolm <dmalcolm@redhat.com>
585 * doc/analyzer.texi: Add __analyzer_dump_state.
587 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
589 * config/rs6000/rbtree.c: New file.
590 * config/rs6000/rbtree.h: New file.
592 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
594 * config/rs6000/rs6000-gen-builtins.c (restriction): New enum.
595 (typeinfo): Add restr field.
596 (match_bracketed_pair): New function.
597 (match_const_restriction): Implement.
599 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
601 * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement.
603 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
605 * config/rs6000/rs6000-gen-builtins.c (void_status): New enum.
606 (basetype): Likewise.
607 (typeinfo): Likewise.
608 (handle_pointer): New function.
609 (match_basetype): New stub function.
610 (match_const_restriction): Likewise.
611 (match_type): New function.
613 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
615 * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New
617 (advance_line): Likewise.
618 (safe_inc_pos): Likewise.
619 (match_identifier): Likewise.
620 (match_integer): Likewise.
621 (match_to_right_bracket): Likewise.
623 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
625 * config/rs6000/rs6000-gen-builtins.c (bif_file): New variable.
626 (ovld_file): Likewise.
627 (header_file): Likewise.
628 (init_file): Likewise.
629 (defines_file): Likewise.
630 (pgm_path): Likewise.
631 (bif_path): Likewise.
632 (ovld_path): Likewise.
633 (header_path): Likewise.
634 (init_path): Likewise.
635 (defines_path): Likewise.
636 (LINELEN): New macro.
637 (linebuf): New variable.
641 (bif_diag): New function.
642 (ovld_diag): Likewise.
644 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
646 * config/rs6000/rs6000-builtin-new.def: New.
647 * config/rs6000/rs6000-overload.def: New.
649 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
651 * config/rs6000/rs6000-gen-builtins.c: New.
653 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
655 * Makefile.in (EXTRA_GTYPE_DEPS): New variable.
656 (s-gtype): Depend on EXTRA_GTYPE_DEPS.
657 * gengtype-state.c (state_writer::write_state_file_list): Add a
658 parameter to the fileslist expression for the number of build
660 (read_state_files_list): Detect build headers and strip the
661 initial "./" or ".\" from their names.
662 * gengtype.c (build_headers): New global variable.
663 (num_build_headers): Likewise.
664 (open_base_files): Emit #include for each build header.
665 (main): Detect and count build headers.
666 * gengtype.h (build_headers): New extern variable.
667 (num_build_headers): Likewise.
669 2021-07-16 Richard Biener <rguenther@suse.de>
671 * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use
673 (find_bswap_or_nop_1): Likewise.
674 (find_bswap_or_nop): Likewise.
675 * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust
677 * tree-vect-data-refs.c (vect_get_smallest_scalar_type):
678 Remove unused parameters, pass in the scalar type. Fix
679 internal store function handling.
680 * tree-vect-stmts.c (vect_analyze_stmt): Remove assert.
681 (vect_get_vector_types_for_stmt): Move down check for
682 existing vector stmt after we've determined a scalar type.
683 Pass down the used scalar type to vect_get_smallest_scalar_type.
684 * tree-vect-generic.c (expand_vector_condition): Use
686 (expand_vector_scalar_condition): Likewise.
687 (expand_vector_operations_1): Likewise.
688 * tree-vect-patterns.c (vect_widened_op_tree): Likewise.
689 (vect_recog_dot_prod_pattern): Likewise.
690 (vect_recog_sad_pattern): Likewise.
691 (vect_recog_widen_op_pattern): Likewise.
692 (vect_recog_widen_sum_pattern): Likewise.
693 (vect_recog_mixed_size_cond_pattern): Likewise.
695 2021-07-16 Jan Hubicka <hubicka@ucw.cz>
697 * ipa-modref.c (struct escape_entry): Use eaf_fleags_t.
698 (dump_eaf_flags): Dump EAF_NOT_RETURNED
699 (eaf_flags_useful_p): Use eaf_fleags_t; handle const functions
700 and EAF_NOT_RETURNED.
701 (modref_summary::useful_p): Likewise.
702 (modref_summary_lto::useful_p): Likewise.
703 (struct) modref_summary_lto: Use eaf_fleags_t.
704 (deref_flags): Handle EAF_NOT_RETURNED.
705 (struct escape_point): Use min_flags.
706 (modref_lattice::init): Add EAF_NOT_RETURNED.
707 (merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions
708 (analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return;
710 (analyze_parms): Also analyze const functions; update conition on
712 (modref_write): Update streaming.
713 (read_section): Update streaming.
714 (remap_arg_flags): Use eaf_flags_t.
715 (modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED.
716 * ipa-modref.h: (eaf_flags_t): New typedef.
717 (struct modref_summary): Use eaf_flags_t.
718 * tree-core.h (EAF_NOT_RETURNED): New constant.
720 2021-07-16 Richard Biener <rguenther@suse.de>
722 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use
724 (gimple_assign_nonnegative_warnv_p): Likewise.
725 (gimple_call_nonnegative_warnv_p): Likewise. Return false
726 if the call has no LHS.
727 * gimple.c (gimple_could_trap_p_1): Use the type of the LHS.
728 * tree-eh.c (stmt_could_throw_1_p): Likewise.
729 * tree-inline.c (insert_init_stmt): Likewise.
730 * tree-ssa-loop-niter.c (get_val_for): Likewise.
731 * tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of
733 * tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a
734 gassign *. Use the type of the lhs.
735 (vn_nary_op_lookup_stmt): Adjust.
736 (vn_nary_op_insert_stmt): Likewise.
738 2021-07-16 Ilya Leoshkevich <iii@linux.ibm.com>
740 * config/s390/predicates.md (bras_sym_operand): Accept all
741 functions in 64-bit mode, use UNSPEC_PLT31.
742 (larl_operand): Use UNSPEC_PLT31.
743 * config/s390/s390.c (s390_loadrelative_operand_p): Likewise.
744 (legitimize_pic_address): Likewise.
745 (s390_emit_tls_call_insn): Mark __tls_get_offset as function,
747 (s390_delegitimize_address): Use UNSPEC_PLT31.
748 (s390_output_addr_const_extra): Likewise.
749 (print_operand): Add @PLT to TLS calls, handle %K.
750 (s390_function_profiler): Mark __fentry__/_mcount as function,
751 use %K, use UNSPEC_PLT31.
752 (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K.
753 (s390_emit_call): Use UNSPEC_PLT31.
754 (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function.
755 * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT.
757 (reload_base_64): Likewise.
758 (*sibcall_brc): Likewise.
759 (*sibcall_brcl): Likewise.
760 (*sibcall_value_brc): Likewise.
761 (*sibcall_value_brcl): Likewise.
765 (*brasl_r): Likewise.
766 (*bras_tls): Likewise.
767 (*brasl_tls): Likewise.
768 (main_base_64): Likewise.
769 (reload_base_64): Likewise.
770 (@split_stack_call<mode>): Likewise.
772 2021-07-16 Richard Biener <rguenther@suse.de>
774 PR tree-optimization/101467
775 * tree-vect-stmts.c (vect_gen_while): Properly guard
776 make_temp_ssa_name usage.
778 2021-07-16 Cooper Qu <cooper.qu@linux.alibaba.com>
780 * config.gcc: Don't use forked print-sysroot-suffix.sh and
781 t-sysroot-suffix for C-SKY.
782 * config/csky/print-sysroot-suffix.sh: Delete.
783 * config/csky/t-csky-linux: Delete.
784 * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES
785 instead of CSKY_MULTILIB_DIRNAMES.
787 2021-07-16 Richard Biener <rguenther@suse.de>
789 * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign
790 conversion issues with the partial reduction of the reused
793 2021-07-16 Richard Biener <rguenther@suse.de>
795 * config/i386/i386-options.c (ix86_option_override_internal): Set
796 param_vect_partial_vector_usage to zero if not set.
798 2021-07-15 Uroš Bizjak <ubizjak@gmail.com>
801 * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode.
802 (VALID_INT_MODE_P): Add SDmode and DDmode.
803 Add TDmode for TARGET_64BIT.
804 (VALID_DFP_MODE_P): Remove.
805 * config/i386/i386.c (ix86_hard_regno_mode_ok):
806 Do not use VALID_DFP_MODE_P.
808 2021-07-15 Andrew MacLeod <amacleod@redhat.com>
810 * gimple-range-fold.cc (adjust_pointer_diff_expr): Use
812 (fold_using_range::fold_stmt): Ditto.
813 (fold_using_range::range_of_range_op): Ditto.
814 (fold_using_range::range_of_phi): Ditto.
815 (fold_using_range::range_of_call): Ditto.
816 (fold_using_range::range_of_builtin_ubsan_call): Ditto.
817 (fold_using_range::range_of_builtin_call): Ditto.
818 (fold_using_range::range_of_cond_expr): Ditto.
819 * gimple-range-fold.h (gimple_range_type): New.
821 2021-07-15 Martin Sebor <msebor@redhat.com>
824 * tree-ssa-strlen.c (handle_assign): New function.
825 (maybe_warn_overflow): Add argument.
826 (nonzero_bytes_for_type): New function.
827 (count_nonzero_bytes): Handle more tree types. Call
828 nonzero_bytes_for_tye.
829 (count_nonzero_bytes): Handle types.
830 (handle_store): Handle stores from function calls.
831 (strlen_check_and_optimize_call): Move code to handle_assign. Call
832 it for assignments from function calls.
834 2021-07-15 David Malcolm <dmalcolm@redhat.com>
839 * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value.
841 2021-07-15 David Malcolm <dmalcolm@redhat.com>
843 * doc/invoke.texi (-fdump-analyzer-exploded-paths): New.
845 2021-07-15 Martin Sebor <msebor@redhat.com>
849 * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME.
850 (operand_compare::verify_hash_value): Same.
851 * tree-core.h (OEP_DECL_NAME): New.
853 2021-07-15 Martin Jambor <mjambor@suse.cz>
855 * profile-count.h (profile_count::value): Change the return type to
857 * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print
859 * tree-cfg.c (dump_function_to_file): Likewise.
861 2021-07-15 Bill Schmidt <wschmidt@linux.ibm.com>
864 * config/rs6000/rs6000-p8swap.c (has_part_mult): New.
865 (rs6000_analyze_swaps): Insns containing a subreg of a mult are
868 2021-07-15 Richard Biener <rguenther@suse.de>
870 * tree-vectorizer.h (vect_gen_while): Match up with
872 * tree-vect-stmts.c (vect_gen_while): Adjust API to that
873 of vect_gen_while_not.
874 (vect_gen_while_not): Adjust.
875 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise.
877 2021-07-15 Aldy Hernandez <aldyh@redhat.com>
879 * gimple-range-cache.cc (non_null_ref::adjust_range): New.
880 (ranger_cache::range_of_def): Call adjust_range.
881 (ranger_cache::entry_range): Same.
882 * gimple-range-cache.h (non_null_ref::adjust_range): New.
883 * gimple-range.cc (gimple_ranger::range_of_expr): Call
885 (gimple_ranger::range_on_entry): Same.
887 2021-07-15 Tamar Christina <tamar.christina@arm.com>
890 2021-07-14 Tamar Christina <tamar.christina@arm.com>
892 * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
894 2021-07-15 Tamar Christina <tamar.christina@arm.com>
897 2021-07-14 Tamar Christina <tamar.christina@arm.com>
899 * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
900 (sdot_prod, udot_prod): ...These.
901 * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
902 (aarch64_<sur>dot<vsi2qi>): Rename to...
903 (<sur>dot_prod<vsi2qi>): ...This.
904 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
907 2021-07-15 Jakub Jelinek <jakub@redhat.com>
910 * gimplify.c (gimplify_expr): Throw away volatile reads from empty
911 types even if they have non-BLKmode TYPE_MODE.
913 2021-07-15 Richard Biener <rguenther@suse.de>
916 * gcc.c (process_command): Process -gtoggle like process_options
917 would after parsing options.
919 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org>
921 * cfgexpand.c (expand_asm_loc): Adjust.
922 (expand_asm_stmt): Likewise.
923 * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise.
924 * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
925 * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
926 * config/avr/avr.c (avr_md_asm_adjust): Likewise.
927 * config/cris/cris.c (cris_md_asm_adjust): Likewise.
928 * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
929 * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
930 * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
931 * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
932 * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
933 * config/s390/s390.c (s390_md_asm_adjust): Likewise.
934 * config/vax/vax.c (vax_md_asm_adjust): Likewise.
935 * config/visium/visium.c (visium_md_asm_adjust): Likewise.
936 * doc/tm.texi: Regenerate.
937 * target.def: Add location argument to md_asm_adjust.
939 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org>
941 * tree-diagnostic.c (diagnostic_report_current_function): Use the
942 diagnostic's location, not input_location.
944 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org>
946 * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to
948 (expand_asm_stmt): Likewise.
950 2021-07-14 Peter Bergner <bergner@linux.ibm.com>
952 * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower
953 addressed memory rtx, if any.
954 (rs6000_split_multireg_move): Fix code formatting.
955 Handle MMA build built-ins with operands in adjacent memory locations.
957 2021-07-14 Peter Bergner <bergner@linux.ibm.com>
959 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later
962 2021-07-14 Jason Merrill <jason@redhat.com>
964 * sel-sched-ir.h (get_all_loop_exits): Use auto_vec.
966 2021-07-14 Jason Merrill <jason@redhat.com>
968 * doc/invoke.texi: -fdelete-dead-exceptions is on by default for
971 2021-07-14 Tamar Christina <tamar.christina@arm.com>
973 * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
974 Remove erroneous line.
976 2021-07-14 Andrew MacLeod <amacleod@redhat.com>
978 * params.opt (param_evrp_mode): Change default.
980 2021-07-14 Tamar Christina <tamar.christina@arm.com>
982 * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
983 (sdot_prod, udot_prod): ...These.
984 * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
985 (aarch64_<sur>dot<vsi2qi>): Rename to...
986 (<sur>dot_prod<vsi2qi>): ...This.
987 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
990 2021-07-14 Tamar Christina <tamar.christina@arm.com>
992 * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
994 2021-07-14 Tamar Christina <tamar.christina@arm.com>
996 * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document.
998 2021-07-14 Tamar Christina <tamar.christina@arm.com>
1000 * config/arm/neon.md (usdot_prod<vsi2qi>): New.
1002 2021-07-14 Tamar Christina <tamar.christina@arm.com>
1004 * config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to...
1005 (usdot_prod<vsi2qi>): ... This.
1006 * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to...
1007 (usdot_prod): ...This.
1008 * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise.
1009 * config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>):
1011 (@<sur>dot_prod<vsi2qi>): ...This.
1012 * config/aarch64/aarch64-sve-builtins-base.cc
1013 (svusdot_impl::expand): Use it.
1015 2021-07-14 Tamar Christina <tamar.christina@arm.com>
1017 * optabs.def (usdot_prod_optab): New.
1018 * doc/md.texi: Document it and clarify other dot prod optabs.
1019 * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign.
1020 * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab.
1021 * optabs.c (expand_widen_pattern_expr): Likewise.
1022 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
1023 * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind.
1024 * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional
1026 (vect_widened_op_tree): Optionally ignore
1028 (vect_recog_dot_prod_pattern): Support usdot_prod_optab.
1030 2021-07-14 H.J. Lu <hjl.tools@gmail.com>
1033 * config/i386/driver-i386.c (host_detect_local_cpu): Check
1034 "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen.
1035 Enable UINTR only for 64-bit codegen.
1036 * config/i386/i386-options.c
1037 (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not
1039 * config/i386/i386.h (ARCH_ARG): New.
1040 (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and
1041 "[arch|tune] 64" for 64-bit codegen.
1043 2021-07-14 Richard Biener <rguenther@suse.de>
1045 PR tree-optimization/101445
1046 * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment
1047 of the IV in the correct direction for negative stride
1050 2021-07-14 Jakub Jelinek <jakub@redhat.com>
1053 * godump.c (godump_str_hash): New type.
1054 (godump_container::pot_dummy_types): Use string_hash instead of
1055 ptr_hash in the hash_set.
1057 2021-07-14 Richard Biener <rguenther@suse.de>
1059 * tree-vect-loop.c (vect_find_reusable_accumulator): Handle
1060 vector types where the old vector type has a multiple of
1061 the new vector type elements.
1062 (vect_create_partial_epilog): New function, split out from...
1063 (vect_create_epilog_for_reduction): ... here.
1064 (vect_transform_cycle_phi): Reduce the re-used accumulator
1065 to the new vector type.
1067 2021-07-14 Alexandre Oliva <oliva@adacore.com>
1069 * tree-ssa-alias.c (attr_fnspec::verify): Fix index in
1070 non-'t'-sized arg check.
1072 2021-07-14 Alexandre Oliva <oliva@adacore.com>
1074 * tree-cfg.c (cleanup_dead_labels_eh): Update
1075 post_landing_pad label upon change of landing pad block's
1077 (cleanup_dead_labels): Check that a removed label is not that
1080 2021-07-13 Jonathan Wright <jonathan.wright@arm.com>
1082 * combine.c (combine_simplify_rtx): Add vec_select -> subreg
1084 * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64):
1085 Add Neon to general purpose register case for zero-extend
1087 * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r
1088 case to prevent some cases opting to go through memory.
1089 * cse.c (fold_rtx): Add vec_select -> subreg simplification.
1090 * rtl.c (rtvec_series_p): Define predicate to determine
1091 whether a vector contains a linear series of integers.
1092 * rtl.h (rtvec_series_p): Define.
1093 * rtlanal.c (vec_series_lowpart_p): Define predicate to
1094 determine if a vector selection is equivalent to the low part
1096 * rtlanal.h (vec_series_lowpart_p): Define.
1097 * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
1098 Add vec_select -> subreg simplification.
1100 2021-07-13 Paul A. Clarke <pc@us.ibm.com>
1102 * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128,
1103 _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros,
1104 _mm_test_mix_ones_zeros): New.
1106 2021-07-13 Roger Sayle <roger@nextmovesoftware.com>
1107 Richard Biener <rguenther@suse.de>
1109 * gimple.c (gimple_could_trap_p_1): Make S argument a
1110 "const gimple*". Preserve constness in call to
1111 gimple_asm_volatile_p.
1112 (gimple_could_trap_p): Make S argument a "const gimple*".
1113 * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p):
1114 Update function prototypes.
1116 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1118 * tree-vectorizer.h (vect_reusable_accumulator): New structure.
1119 (_loop_vec_info::main_loop_edge): New field.
1120 (_loop_vec_info::skip_main_loop_edge): Likewise.
1121 (_loop_vec_info::skip_this_loop_edge): Likewise.
1122 (_loop_vec_info::reusable_accumulators): Likewise.
1123 (_stmt_vec_info::reduc_scalar_results): Likewise.
1124 (_stmt_vec_info::reused_accumulator): Likewise.
1125 (vect_get_main_loop_result): Declare.
1126 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
1127 reduc_scalar_inputs.
1128 (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs.
1129 * tree-vect-loop-manip.c (vect_get_main_loop_result): New function.
1130 (vect_do_peeling): Fill an epilogue loop's main_loop_edge,
1131 skip_main_loop_edge and skip_this_loop_edge fields.
1132 * tree-vect-loop.c (INCLUDE_ALGORITHM): Define.
1133 (vect_emit_reduction_init_stmts): New function.
1134 (get_initial_def_for_reduction): Use it.
1135 (get_initial_defs_for_reduction): Likewise. Change the vinfo
1136 parameter to a loop_vec_info.
1137 (vect_create_epilog_for_reduction): Store the scalar results
1138 in the reduc_info. If an epilogue loop is reusing an accumulator
1139 from the main loop, and if the epilogue loop can also be skipped,
1140 try to place the reduction code in the join block. Record
1141 accumulators that could potentially be reused by epilogue loops.
1142 (vect_transform_cycle_phi): When vectorizing epilogue loops,
1143 try to reuse accumulators from the main loop. Record the initial
1144 value in reduc_info for non-SLP reductions too.
1146 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1148 * tree-vect-loop.c (get_initial_def_for_reduction): Remove
1149 adjustment handling. Take the neutral value as an argument,
1150 in place of the code argument.
1151 (vect_transform_cycle_phi): Update accordingly. Handle the
1152 initial values of cond reductions separately from code reductions.
1153 Choose the adjustment here rather than in
1154 get_initial_def_for_reduction. Sink the splat of vec_initial_def.
1156 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1158 * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with...
1159 (neutral_op_for_reduction): ...this, providing a more general
1161 (vect_create_epilog_for_reduction): Update accordingly.
1162 (vectorizable_reduction): Likewise.
1163 (vect_transform_cycle_phi): Likewise.
1165 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1167 * tree-vect-loop.c (get_initial_def_for_reduction): Take the
1168 reduc_info instead of the original stmt_vec_info.
1169 (vect_transform_cycle_phi): Update accordingly.
1171 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1173 * tree-vect-loop.c (get_initial_defs_for_reduction): Take the
1174 reduc_info as an additional parameter.
1175 (vect_transform_cycle_phi): Update accordingly.
1177 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1179 * tree-vectorizer.h: Include tree-ssa-operands.h.
1180 (vect_phi_initial_value): New function.
1181 * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it.
1182 (get_initial_defs_for_reduction, info_for_reduction): Likewise.
1183 (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise.
1184 (vect_transform_cycle_phi, vectorizable_induction): Likewise.
1186 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1188 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
1189 the phi results to vectype after creating them. Remove later
1190 conversion code that thus becomes redundant.
1192 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1194 * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace
1195 the new_phis vector with a reduc_inputs vector. Combine handling
1196 of reduction chains and ncopies > 1.
1198 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1200 * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate
1201 scalar_results to group_size elements after reducing down from
1202 N*group_size elements. Construct an array_slice of the live-out
1203 stmts and assert that there is one stmt per scalar result.
1205 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1207 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
1208 nested_in_vect_loop and use double_reduc everywhere. Remove dead
1209 assignment to "loop".
1211 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1213 * internal-fn.c (vectorized_internal_fn_supported_p): Handle
1214 vector types first. For scalar types, consider both the preferred
1215 vector mode and the alternative vector modes.
1216 * optabs-query.c (can_vec_mask_load_store_p): Use the same
1217 structure as above, in particular using related_vector_mode
1218 for modes provided by autovectorize_vector_modes.
1220 2021-07-13 Jakub Jelinek <jakub@redhat.com>
1221 Richard Biener <rguenther@suse.de>
1223 PR tree-optimization/101419
1224 * tree-pass.h (PROP_objsz): Define.
1225 (make_pass_early_object_sizes): Declare.
1226 * passes.def (pass_all_early_optimizations): Rename pass_object_sizes
1227 there to pass_early_object_sizes, drop parameter.
1228 (pass_all_optimizations): Move pass_object_sizes right after pass_ccp,
1229 drop parameter, move pass_post_ipa_warn right after that.
1230 * tree-object-size.c (pass_object_sizes::execute): Rename to...
1231 (object_sizes_execute): ... this. Add insert_min_max_p argument.
1232 (pass_data_object_sizes): Move after object_sizes_execute.
1233 (pass_object_sizes): Likewise. In execute method call
1234 object_sizes_execute, drop set_pass_param method and insert_min_max_p
1235 non-static data member and its initializer in the ctor.
1236 (pass_data_early_object_sizes, pass_early_object_sizes,
1237 make_pass_early_object_sizes): New.
1238 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use
1239 (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining.
1241 2021-07-13 Kito Cheng <kito.cheng@sifive.com>
1244 * config/riscv/constraints.md ("S"): Update description and remove
1246 * doc/md.texi (Machine Constraints): Document the 'S' constraints
1249 2021-07-13 Richard Biener <rguenther@suse.de>
1252 2021-07-12 Richard Biener <rguenther@suse.de>
1254 * tree-vect-slp.c (vect_slp_region): Show the number of
1255 SLP graph entries in the optimization message.
1257 2021-07-13 Michael Meissner <meissner@linux.ibm.com>
1259 * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable
1261 * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change
1262 return type to long.
1263 * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return
1266 2021-07-12 Andrew MacLeod <amacleod@redhat.com>
1268 * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call):
1269 Query relation between the 2 operands and use it.
1271 2021-07-12 Sergei Trofimovich <siarheit@google.com>
1273 * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo.
1275 2021-07-12 Uroš Bizjak <ubizjak@gmail.com>
1278 * config/i386/predicates.md (vec_setm_sse41_operand):
1279 Rename from vec_setm_operand.
1280 (vec_setm_avx2_operand): New predicate.
1281 * config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator.
1282 Use vec_setm_sse41_operand as operand 2 predicate.
1283 (vec_set<V_256_512:mode): New expander.
1284 * config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand
1285 as operand 2 predicate.
1287 2021-07-12 Andrew MacLeod <amacleod@redhat.com>
1289 PR tree-optimization/101335
1290 * range-op.cc (operator_cast::lhs_op1_relation): Delete.
1292 2021-07-12 Andrew Pinski <apinski@marvell.com>
1294 * tree-ssa-phiopt.c (match_simplify_replacement): Move
1295 insert of the sequence before the movement of the
1296 statement. Check if to see if the statement is used
1297 outside of the original phi to see if we should move it.
1299 2021-07-12 Richard Biener <rguenther@suse.de>
1301 * dump-context.h (debug_dump_context::debug_dump_context):
1302 Add FILE * parameter defaulted to stderr.
1303 * dumpfile.c (debug_dump_context::debug_dump_context): Adjust.
1304 * tree-vect-slp.c (dot_slp_tree): New functions.
1306 2021-07-12 Richard Biener <rguenther@suse.de>
1308 PR tree-optimization/101373
1309 * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping
1310 references when the BB may not return.
1311 (compute_avail): Pass in the function we're working on and
1312 replace cfun references with it. Externally throwing
1313 const calls also possibly terminate the function.
1314 (pass_pre::execute): Pass down the function we're working on.
1315 * gcse.c (compute_hash_table_work): Externally throwing
1316 const/pure calls also need record_last_mem_set_info.
1317 * postreload-gcse.c (record_opr_changes): Looping or externally
1318 throwing const/pure calls also need record_last_mem_set_info.
1320 2021-07-12 Uroš Bizjak <ubizjak@gmail.com>
1322 * recog.c (memory_address_addr_space_p): Change the type to bool.
1323 Return true/false instead of 1/0.
1324 (offsettable_memref_p): Ditto.
1325 (offsettable_nonstrict_memref_p): Ditto.
1326 (offsettable_address_addr_space_p): Ditto.
1327 Change the type of addressp indirect function to bool.
1328 * recog.h (memory_address_addr_space_p): Change the type to bool.
1329 (strict_memory_address_addr_space_p): Ditto.
1330 (offsettable_memref_p): Ditto.
1331 (offsettable_nonstrict_memref_p): Ditto.
1332 (offsettable_address_addr_space_p): Ditto.
1333 * reload.c (maybe_memory_address_addr_space_p): Ditto.
1334 (strict_memory_address_addr_space_p): Change the type to bool.
1335 Return true/false instead of 1/0.
1336 (maybe_memory_address_addr_space_p): Change the type to bool.
1338 2021-07-12 Richard Biener <rguenther@suse.de>
1340 * tree-vect-slp.c (vect_slp_region): Show the number of
1341 SLP graph entries in the optimization message.
1343 2021-07-12 Richard Biener <rguenther@suse.de>
1345 PR tree-optimization/101394
1346 * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting
1347 copies from abnormals for a full redundancy.
1349 2021-07-12 Richard Biener <rguenther@suse.de>
1351 PR middle-end/101423
1352 * gimple.c (gimple_could_trap_p_1): Internal function calls
1354 * tree-eh.c (tree_could_trap_p): Likewise.
1356 2021-07-12 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
1359 * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with
1361 (vmulq_n_u32): Likewise.
1362 (vmul_n_f32): Gate __a * __b on __FAST_MATH__.
1363 (vmulq_n_f32): Likewise.
1364 (vmul_n_f16): Likewise.
1365 (vmulq_n_f16): Likewise.
1367 2021-07-12 Martin Liska <mliska@suse.cz>
1370 * gcc.c (check_offload_target_name): Call
1371 candidates_list_and_hint only if we have a candidate.
1373 2021-07-12 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
1376 * config/arm/neon.md (vec_init): Move to ...
1377 * config/arm/vec-common.md (vec_init): ... here.
1378 Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE.
1380 2021-07-12 Roger Sayle <roger@nextmovesoftware.com>
1382 PR tree-optimization/101403
1383 * match.pd ((T)bswap(X)>>C): Correctly handle cases where
1384 signedness of the shift is not the same as the signedness of
1387 2021-07-09 Roger Sayle <roger@nextmovesoftware.com>
1388 Uroš Bizjak <ubizjak@gmail.com>
1390 * config/i386/i386.md (*divmodsi4_const): Optimize SImode
1391 divmod of a constant numerator with new define_insn_and_split.
1393 2021-07-09 Iain Sandoe <iain@sandoe.co.uk>
1396 * config/i386/i386-expand.c (ix86_expand_call): If a call is
1397 to a non-local-binding, or local but to a public symbol, then
1398 assume that it might be indirected via the lazy symbol binder.
1399 Mark R10 and R10 as clobbered in that case.
1401 2021-07-09 Eric Botcazou <ebotcazou@adacore.com>
1404 * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in
1405 the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined
1406 and HAVE_LD_BROKEN_PE_DWARF5 is defined.
1408 2021-07-09 Uroš Bizjak <ubizjak@gmail.com>
1410 * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the
1411 log2 range of operands[3] to [1,31].
1412 (*udivmodsi4_pow2_zext_2): Ditto. Correct insn RTX pattern.
1414 2021-07-09 Sergei Trofimovich <siarheit@google.com>
1416 * doc/md.texi: Don't split @smallexample in multiple @groups.
1418 2021-07-09 Sergei Trofimovich <siarheit@google.com>
1420 * doc/md.texi: Add missing 'see' word.
1422 2021-07-09 Andrew Pinski <apinski@marvell.com>
1424 * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments
1425 to take sequence and gimple_match_op. Accept the case where
1426 op is a SSA_NAME and one statement in the sequence.
1427 Also allow constants.
1428 (gimple_simplify_phiopt): Always pass a sequence to resimplify.
1429 Update call to phiopt_early_allow. Discard the sequence if not
1432 2021-07-09 Xi Ruoyao <xry111@mengyan1223.wang>
1437 * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P
1438 instead of ISA_HAS_MSA.
1439 (mips_expand_vec_unpack): Likewise.
1440 (mips_expand_vector_init): Likewise.
1442 2021-07-09 Kewen Lin <linkw@linux.ibm.com>
1444 * config/rs6000/vsx.md (mods_<mode>): Rename to...
1445 (mod<mode>3): ... this.
1446 (modu_<mode>): Rename to...
1447 (umod<mode>3): ... this.
1448 * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI,
1451 2021-07-08 Jeff Law <jeffreyalaw@gmail.com>
1453 * config/h8300/shiftrotate.md (variable shifts): Expose condition
1454 code handling for the test before the loop.
1456 2021-07-08 Martin Jambor <mjambor@suse.cz>
1459 * ipa-sra.c (class isra_call_summary): New member
1460 m_before_any_store, initialize it in the constructor.
1461 (isra_call_summary::dump): Dump the new field.
1462 (ipa_sra_call_summaries::duplicate): Copy it.
1463 (process_scan_results): Set it.
1464 (isra_write_edge_summary): Stream it.
1465 (isra_read_edge_summary): Likewise.
1466 (param_splitting_across_edge): Only override
1467 safe_to_import_accesses if m_before_any_store is set.
1469 2021-07-08 Martin Sebor <msebor@redhat.com>
1472 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
1473 Use Object Size Type 0 instead of 1.
1475 2021-07-08 Richard Sandiford <richard.sandiford@arm.com>
1477 * tree-vect-loop.c (vectorizable_reduction): Remove always-true
1480 2021-07-08 Richard Sandiford <richard.sandiford@arm.com>
1482 * match.pd: Simplify an extend-operate-truncate sequence involving
1485 2021-07-08 Roger Sayle <roger@nextmovesoftware.com>
1486 Richard Biener <rguenther@suse.de>
1488 PR tree-optimization/40210
1489 * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as
1490 (x>>C3)&C2 when possible. Simplify bswap(x)>>C1 as ((T)x)>>C2
1491 when possible. Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255.
1493 2021-07-08 Uroš Bizjak <ubizjak@gmail.com>
1496 * config/i386/i386-expand.c (ix86_expand_sse_unpack):
1498 * config/i386/mmx.md (V_32): New mode iterator.
1499 (mov<V_32:mode>): Use V_32 mode iterator.
1500 (*mov<V_32:mode>_internal): Ditto.
1501 (*push<V_32:mode>2_rex64): Ditto.
1502 (*push<V_32:mode>2): Ditto.
1503 (movmisalign<V_32:mode>): Ditto.
1504 (mmx_<any_shiftrt:insn>v1si3): New insn pattern.
1505 (sse4_1_<any_extend:code>v2qiv2hi2): Ditto.
1506 (vec_unpacks_lo_v4qi): New expander.
1507 (vec_unpacks_hi_v4qi): Ditto.
1508 (vec_unpacku_lo_v4qi): Ditto.
1509 (vec_unpacku_hi_v4qi): Ditto.
1510 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode.
1511 (VALID_INT_MODE_P): Ditto.
1513 2021-07-08 Michael Meissner <meissner@linux.ibm.com>
1516 * config/rs6000/rs6000.md (udivti3): New insn.
1518 (umodti3): New insn.
1521 2021-07-07 Martin Sebor <msebor@redhat.com>
1523 PR tree-optimization/100137
1524 PR tree-optimization/99121
1525 PR tree-optimization/97027
1526 * builtins.c (access_ref::access_ref): Also set offmax.
1527 (access_ref::offset_in_range): Define new function.
1528 (access_ref::add_offset): Set offmax.
1529 (access_ref::inform_access): Handle access_none.
1530 (handle_mem_ref): Clear ostype.
1531 (compute_objsize_r): Handle ASSERT_EXPR.
1532 * builtins.h (struct access_ref): Add offmax member.
1533 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use
1534 compute_objsize() and simplify.
1536 2021-07-07 Peter Bergner <bergner@linux.ibm.com>
1538 * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP
1539 and VSX_BUILTIN_STXVP.
1541 2021-07-07 Martin Sebor <msebor@redhat.com>
1544 * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove
1545 a stray %K from error_at() missed in r12-2088.
1547 2021-07-07 Richard Biener <rguenther@suse.de>
1549 PR tree-optimization/99728
1550 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record
1552 (mem_refs_may_alias_p): Add assert we handled aggregate
1554 (sm_seq_valid_bb): Give up when running into aggregate copies.
1555 (ref_indep_loop_p): Handle aggregate copies as never
1556 being invariant themselves but allow other refs to be
1557 disambiguated against them.
1558 (can_sm_ref_p): Do not try to apply store-motion to aggregate
1561 2021-07-06 Indu Bhagat <indu.bhagat@oracle.com>
1564 * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get
1567 2021-07-06 Martin Sebor <msebor@redhat.com>
1569 * gimple-pretty-print.c (percent_G_format): Remove.
1570 * tree-diagnostic.c (default_tree_printer): Remove calls.
1571 * tree-pretty-print.c (percent_K_format): Remove.
1572 * tree-pretty-print.h (percent_K_format): Remove.
1574 2021-07-06 Martin Sebor <msebor@redhat.com>
1576 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
1577 Remove %K and use error_at.
1578 (aarch64_expand_fcmla_builtin): Same.
1579 (aarch64_expand_builtin_tme): Same.
1580 (aarch64_expand_builtin_memtag): Same.
1581 * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same.
1582 (arm_expand_builtin): Same.
1583 * config/arm/arm.c (bounds_check): Same.
1585 2021-07-06 Martin Sebor <msebor@redhat.com>
1587 * builtins.c (warn_string_no_nul): Remove %G.
1588 (maybe_warn_for_bound): Same.
1589 (warn_for_access): Same.
1590 (check_access): Same.
1591 (check_strncat_sizes): Same.
1592 (expand_builtin_strncat): Same.
1593 (expand_builtin_strncmp): Same.
1594 (expand_builtin): Same.
1595 (expand_builtin_object_size): Same.
1596 (warn_dealloc_offset): Same.
1597 (maybe_emit_free_warning): Same.
1598 * calls.c (maybe_warn_alloc_args_overflow): Same.
1599 (maybe_warn_nonstring_arg): Same.
1600 (maybe_warn_rdwr_sizes): Same.
1601 * expr.c (expand_expr_real_1): Remove %K.
1602 * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G.
1603 (gimple_fold_builtin_strncat): Same.
1604 * gimple-ssa-sprintf.c (format_directive): Same.
1605 (handle_printf_call): Same.
1606 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same.
1607 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
1608 (maybe_diag_access_bounds): Same. Call gimple_location.
1609 (check_bounds_or_overlap): Same.
1610 * trans-mem.c (ipa_tm_scan_irr_block): Remove %K. Simplify.
1611 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G.
1612 * tree-ssa-strlen.c (maybe_warn_overflow): Same.
1613 (maybe_diag_stxncpy_trunc): Same.
1614 (handle_builtin_stxncpy_strncat): Same.
1615 (maybe_warn_pointless_strcmp): Same.
1616 * tree-ssa-uninit.c (maybe_warn_operand): Same.
1618 2021-07-06 Uroš Bizjak <ubizjak@gmail.com>
1621 * config/i386/predicates.md (vec_setm_operand): Enable
1622 register_operand for TARGET_SSE4_1.
1623 * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand
1624 as operand 2 predicate. Call ix86_expand_vector_set_var
1625 for non-constant index operand.
1626 (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate.
1627 Call ix86_expand_vector_set_var for non-constant index operand.
1629 2021-07-06 Jeff Law <jeffreyalaw@gmail.com>
1631 * config/h8300/jumpcall.md (*branch): When possible, generate
1632 the comparison in CCZN mode.
1633 * config/h8300/predicates.md (simple_memory_operand): Reject all
1634 auto-increment addressing modes.
1636 2021-07-06 Iain Sandoe <iain@sandoe.co.uk>
1639 * config/i386/i386.h (struct stringop_algs): Define a CTOR for
1642 2021-07-06 Richard Biener <rguenther@suse.de>
1644 * doc/md.texi (vec_fmaddsub<mode>4): Document.
1645 (vec_fmsubadd<mode>4): Likewise.
1646 * optabs.def (vec_fmaddsub$a4): Add.
1647 (vec_fmsubadd$a4): Likewise.
1648 * internal-fn.def (IFN_VEC_FMADDSUB): Add.
1649 (IFN_VEC_FMSUBADD): Likewise.
1650 * tree-vect-slp-patterns.c (addsub_pattern::recognize):
1651 Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD.
1652 (addsub_pattern::build): Likewise.
1653 * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB
1654 and CFN_VEC_FMSUBADD are not transparent for permutes.
1655 * config/i386/sse.md (vec_fmaddsub<mode>4): New expander.
1656 (vec_fmsubadd<mode>4): Likewise.
1658 2021-07-06 Richard Biener <rguenther@suse.de>
1660 * doc/invoke.texi (fmove-loop-stores): Document.
1661 * common.opt (fmove-loop-stores): New option.
1662 * opts.c (default_options_table): Enable -fmove-loop-stores
1664 * tree-ssa-loop-im.c (pass_lim::execute): Pass
1665 flag_move_loop_stores instead of true to
1666 loop_invariant_motion_in_fun.
1668 2021-07-06 Iain Sandoe <iain@sandoe.co.uk>
1670 * doc/install.texi: Document --with-dsymutil.
1672 2021-07-06 Andrew Pinski <apinski@marvell.com>
1674 PR tree-optimization/101256
1675 * dbgcnt.def (phiopt_edge_range): New counter.
1676 * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
1677 Check to make sure the new name is defined in the same
1678 bb as the conditional before duplicating range info.
1679 Also add debug counter.
1681 2021-07-06 Kewen Lin <linkw@linux.ibm.com>
1683 PR rtl-optimization/100328
1684 * config/i386/i386-options.c (ix86_option_override_internal):
1685 Set param_ira_consider_dup_in_all_alts to 0.
1687 2021-07-06 Kewen Lin <linkw@linux.ibm.com>
1689 PR rtl-optimization/100328
1690 * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new
1692 * ira.c (ira_get_dup_out_num): Adjust as parameter
1693 param_ira_consider_dup_in_all_alts.
1694 * params.opt (ira-consider-dup-in-all-alts): New.
1695 * ira-conflicts.c (process_regs_for_copy): Add one parameter
1696 single_input_op_has_cstr_p.
1697 (get_freq_for_shuffle_copy): New function.
1698 (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p.
1699 * ira-int.h (ira_get_dup_out_num): Add one bool parameter.
1701 2021-07-05 Jeff Law <jeffreyalaw@gmail.com>
1703 * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to
1704 generate condition code aware RTL directly.
1706 2021-07-05 Andrew Pinski <apinski@marvell.com>
1708 PR tree-optimization/101039
1709 * match.pd (A CMP 0 ? A : -A): New patterns.
1710 * tree-ssa-phiopt.c (abs_replacement): Delete function.
1711 (tree_ssa_phiopt_worker): Don't call abs_replacement.
1712 Update comment about abs_replacement.
1714 2021-07-05 Andrew Pinski <apinski@marvell.com>
1716 * tree-ssa-phiopt.c (gimple_simplify_phiopt):
1717 If "A ? B : C" fails to simplify, try "(!A) ? C : B".
1719 2021-07-05 Andrew Pinski <apinski@marvell.com>
1721 * tree-ssa-phiopt.c (match_simplify_replacement):
1722 Add early_p argument. Call gimple_simplify_phiopt
1723 instead of gimple_simplify.
1724 (tree_ssa_phiopt_worker): Update call to
1725 match_simplify_replacement and allow unconditionally.
1726 (phiopt_early_allow): New function.
1727 (gimple_simplify_phiopt): New function.
1729 2021-07-05 Andrew Pinski <apinski@marvell.com>
1731 PR middle-end/101237
1732 * fold-const.c (negate_expr_p): Remove call to element_mode
1733 and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS,
1734 HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS.
1735 (fold_negate_expr_1): Likewise.
1736 (const_unop): Likewise.
1737 (fold_cond_expr_with_comparison): Likewise.
1738 (fold_binary_loc): Likewise.
1739 (fold_ternary_loc): Likewise.
1740 (tree_call_nonnegative_warnv_p): Likewise.
1741 * match.pd (-(A + B) -> (-B) - A): Likewise.
1743 2021-07-05 Iain Sandoe <iain@sandoe.co.uk>
1745 * configure.ac: Handle --with-dsymutil in the same way as we
1746 do for the assembler and linker. (DEFAULT_DSYMUTIL): New.
1747 Extract the type and version for the dsymutil configured or
1748 found by the default searches.
1749 * config.in: Regenerated.
1750 * configure: Regenerated.
1751 * collect2.c (do_dsymutil): Handle locating dsymutil in the
1752 same way as for the assembler and linker.
1753 * config/darwin.h (DSYMUTIL): Delete.
1754 * gcc.c: Report a configured dsymutil correctly.
1755 * exec-tool.in: Allow for dsymutil.
1757 2021-07-05 Uroš Bizjak <ubizjak@gmail.com>
1759 * config/i386/i386-expand.c (ix86_split_mmx_punpck):
1760 Handle V4QI and V2HI modes.
1761 (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1.
1762 Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes.
1763 (expand_vec_perm_pshufb): Rewrite to use switch statemets.
1764 Handle 4-byte dual operands with TARGET_XOP and single operands
1765 with TARGET_SSSE3. Emit mmx_ppermv32 for TARGET_XOP and
1766 mmx_pshufbv4qi3 for TARGET_SSSE3.
1767 (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1.
1768 (expand_vec_perm_interleave2): Allow 4-byte vector modes.
1769 (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3.
1770 (expand_vec_perm_even_odd_1): Handle V4QI mode.
1771 (expand_vec_perm_broadcast_1): Handle V4QI mode.
1772 (ix86_vectorize_vec_perm_const): Handle V4QI mode.
1773 * config/i386/mmx.md (mmx_ppermv32): New insn pattern.
1774 (mmx_pshufbv4qi3): Ditto.
1775 (*mmx_pblendw32): Ditto.
1776 (*mmx_pblendw64): Rename from *mmx_pblendw.
1777 (mmx_punpckhbw_low): New insn_and_split pattern.
1778 (mmx_punpcklbw_low): Ditto.
1780 2021-07-05 Richard Biener <rguenther@suse.de>
1782 * tree-vect-loop-manip.c (vect_loop_versioning): Do not
1783 set LOOP_C_INFINITE on the vectorized loop.
1785 2021-07-05 Richard Biener <rguenther@suse.de>
1787 PR middle-end/101291
1788 * cfgloopmanip.c (loop_version): Set the loop copy of the
1789 versioned loop to the new loop.
1791 2021-07-04 Iain Sandoe <iain@sandoe.co.uk>
1794 * config.gcc: Ensure that Darwin biarch definitions are
1795 added before i386.h.
1796 * config/i386/darwin.h (TARGET_64BIT): Remove.
1797 (PR80556_WORKAROUND): New.
1798 (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND.
1799 (DARWIN_SUBARCH_SPEC): New.
1800 * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT,
1801 TARGET_BI_ARCH, PR80556_WORKAROUND): New.
1802 (REAL_LIBGCC_SPEC): Remove.
1803 * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT,
1804 TARGET_BI_ARCH, PR80556_WORKAROUND): New.
1805 (REAL_LIBGCC_SPEC): Remove.
1807 2021-07-03 H.J. Lu <hjl.tools@gmail.com>
1809 PR middle-end/101294
1810 * expr.c (store_constructor): Don't use vec_duplicate on vector.
1812 2021-07-02 Martin Sebor <msebor@redhat.com>
1816 * diagnostic.c (get_any_inlining_info): New.
1817 (update_effective_level_from_pragmas): Handle inlining context.
1818 (diagnostic_enabled): Same.
1819 (diagnostic_report_diagnostic): Same.
1820 * diagnostic.h (struct diagnostic_info): Add ctor.
1821 (struct diagnostic_context): Add new member.
1822 * tree-diagnostic.c (set_inlining_locations): New.
1823 (tree_diagnostics_defaults): Set new callback pointer.
1825 2021-07-02 Peter Bergner <bergner@linux.ibm.com>
1827 * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
1829 (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins.
1830 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand
1831 lxvp and stxvp built-ins.
1832 (mma_init_builtins): Handle lxvp and stxvp built-ins.
1833 (builtin_function_type): Likewise.
1834 * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document.
1836 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
1838 * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept
1839 additional argument for the code.
1840 * config/h8300/h8300.c (compute_a_shift_cc): Accept additional
1841 argument for the code. Just return if the ZN bits are useful or
1842 not rather than the old style CC_* enums.
1843 * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before
1844 more generic shiftqi patterns.
1845 (shifthi_noscratch, shiftsi_noscratch): Similarly.
1846 (shiftqi_noscratch_set_flags): New pattern.
1847 (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise.
1849 2021-07-02 Andrew MacLeod <amacleod@redhat.com>
1851 PR tree-optimization/101223
1852 * range-op.cc (build_lt): Add -1 for signed values.
1853 (built_gt): Subtract -1 for signed values.
1855 2021-07-02 David Faust <david.faust@oracle.com>
1857 * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT.
1858 (btf_asm_type): Likewise.
1860 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
1862 * config/h8300/h8300-protos.h (output_a_shift): Make first argument
1863 an array of rtx rather than a pointer to rtx. Add code argument.
1864 (compute_a_shift_length): Similarly.
1865 * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the
1866 shift itself isn't an operand. Create dummy operand[0] to carry
1867 a mode and pass a suitable rtx code to compute_a_shift_length.
1868 (get_shift_alg): Adjust operand number of clobber in output templates.
1869 (output_a_shift): Make first argument an array of rtx rather than
1870 a pointer to rtx. Add code argument for the type of shift.
1871 Adjust now that the shift itself is no longer an operand.
1872 (compute_a_shift_length): Similarly.
1873 * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an
1874 iterator rather than nshift_operator.
1875 (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise.
1876 (shiftqi_clobber_flags): Adjust to API changes in output_a_shift
1877 and compute_a_shift_length.
1878 (shiftqi_noscratch_clobber_flags): Likewise.
1879 (shifthi_noscratch_clobber_flags): Likewise.
1880 (shiftsi_noscratch_clobber_flags): Likewise.
1882 2021-07-02 Iain Sandoe <iain@sandoe.co.uk>
1885 * config/darwin.h (DSYMUTIL_SPEC): Do not try to run
1886 dsymutil for BTF/CTF.
1888 2021-07-02 Iain Sandoe <iain@sandoe.co.uk>
1891 * config/darwin.h (CTF_INFO_SECTION_NAME): Update the
1892 segment to include BTF.
1893 (BTF_INFO_SECTION_NAME): New.
1895 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
1897 * config/m32r/m32r-protos.h (call_operand): Adjust return type.
1898 (small_data_operand, memreg_operand, small_insn_p): Likewise.
1899 * config/m32r/m32r.c (call_operand): Adjust return type.
1900 (small_data_operand, memreg_operand): Likewise.
1902 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
1904 * config/frv/frv-protos.h (integer_register_operand): Adjust return
1906 (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise.
1907 (fpr_or_int6_operand, gpr_or_int_operand); Likewise.
1908 (gpr_or_int12_operand, gpr_or_int10_operand); Likewise.
1909 (move_source_operand, move_destination_operand): Likewise.
1910 (condexec_source_operand, condexec_dest_operand): Likewise.
1911 (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise.
1912 (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise.
1913 (fcr_operand, icr_operand, cr_operand, call_operand): Likewise.
1914 (fpr_operand, even_reg_operand, odd_reg_operand): Likewise.
1915 (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise.
1916 (even_fpr_operand, odd_fpr_operand): Likewise.
1917 (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise.
1918 (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise.
1919 (uint4_operand, uint1_operand, int_2word_operand): Likewise
1920 (upper_int16_operand, uint16_operand, symbolic_operand): Likewise.
1921 (relational_operator, float_relational_operator): Likewise.
1922 (ccr_eqne_operator, minmax_operator): Likewise.
1923 (condexec_si_binary_operator, condexec_si_media_operator): Likewise.
1924 (condexec_si_divide_operator, condexec_si_unary_operator): Likewise.
1925 (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise.
1926 (intop_compare_operator, acc_operand, even_acc_operand): Likewise.
1927 (quad_acc_operand, accg_operand): Likewise.
1929 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
1931 * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change
1932 return type to a bool.
1933 (nonimmediate_nonstack_operand): Likewise.
1934 (xstormy16_splittable_below100_operand): Likewise.
1935 * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix
1937 (xstormy16_splittable_below100_operand): Likewise.
1939 2021-07-02 Richard Biener <rguenther@suse.de>
1941 PR tree-optimization/101293
1942 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases
1943 with combined offsets.
1944 (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were
1945 combined with the rest of the offset.
1947 2021-07-02 Eric Botcazou <ebotcazou@adacore.com>
1949 * config/i386/i386.c (asm_preferred_eh_data_format): Always use the
1950 PIC encodings for PE-COFF targets.
1952 2021-07-02 Jakub Jelinek <jakub@redhat.com>
1955 * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant):
1956 Return nullptr for TImode inner mode.
1958 2021-07-02 Richard Biener <rguenther@suse.de>
1960 PR tree-optimization/101280
1961 PR tree-optimization/101173
1962 * gimple-loop-interchange.cc
1963 (tree_loop_interchange::valid_data_dependences): Properly
1964 guard all dependence checks with DDR_REVERSED_P or its
1967 2021-07-02 Hongyu Wang <hongyu.wang@intel.com>
1969 * config/i386/i386-expand.c (ix86_expand_builtin):
1970 Add branch to clear odata when ZF is set for asedecenc_expand
1971 and wideaesdecenc_expand.
1973 2021-07-02 Eugene Rozenfeld <erozen@microsoft.com>
1975 * config/i386/gcc-auto-profile: regenerate
1977 2021-07-02 liuhongt <hongtao.liu@intel.com>
1979 * config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to ..
1980 (trunc<mode><pmov_dst_4_lower>2): this.
1982 2021-07-01 David Malcolm <dmalcolm@redhat.com>
1984 * diagnostic.h (diagnostic_context::m_file_cache): New field.
1985 * input.c (class fcache): Rename to...
1986 (class file_cache_slot): ...this, making most members private and
1987 prefixing fields with "m_".
1988 (file_cache_slot::get_file_path): New accessor.
1989 (file_cache_slot::get_use_count): New accessor.
1990 (file_cache_slot::missing_trailing_newline_p): New accessor.
1991 (file_cache_slot::inc_use_count): New.
1992 (fcache_buffer_size): Move to...
1993 (file_cache_slot::buffer_size): ...here.
1994 (fcache_line_record_size): Move to...
1995 (file_cache_slot::line_record_size): ...here.
1996 (fcache_tab): Delete, in favor of global_dc->m_file_cache.
1997 (fcache_tab_size): Move to file_cache::num_file_slots.
1998 (diagnostic_file_cache_init): Update for move of fcache_tab
1999 to global_dc->m_file_cache.
2000 (diagnostic_file_cache_fini): Likewise.
2001 (lookup_file_in_cache_tab): Convert to...
2002 (file_cache::lookup_file): ...this.
2003 (diagnostics_file_cache_forcibly_evict_file): Update for move of
2004 fcache_tab to global_dc->m_file_cache, moving most of
2005 implementation to...
2006 (file_cache::forcibly_evict_file): ...this new function and...
2007 (file_cache_slot::evict): ...this new function.
2008 (evicted_cache_tab_entry): Convert to...
2009 (file_cache::evicted_cache_tab_entry): ...this.
2010 (add_file_to_cache_tab): Convert to...
2011 (file_cache::add_file): ...this, moving bulk of implementation
2013 (file_cache_slot::create): ..this new function.
2014 (file_cache::file_cache): New.
2015 (file_cache::~file_cache): New.
2016 (lookup_or_add_file_to_cache_tab): Convert to...
2017 (file_cache::lookup_or_add_file): ..this new function.
2018 (fcache::fcache): Rename to...
2019 (file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes
2021 (fcache::~fcache): Rename to...
2022 (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes
2024 (needs_read): Convert to...
2025 (file_cache_slot::needs_read_p): ...this.
2026 (needs_grow): Convert to...
2027 (file_cache_slot::needs_grow_p): ...this.
2028 (maybe_grow): Convert to...
2029 (file_cache_slot::maybe_grow): ...this.
2030 (read_data): Convert to...
2031 (file_cache_slot::read_data): ...this.
2032 (maybe_read_data): Convert to...
2033 (file_cache_slot::maybe_read_data): ...this.
2034 (get_next_line): Convert to...
2035 (file_cache_slot::get_next_line): ...this.
2036 (goto_next_line): Convert to...
2037 (file_cache_slot::goto_next_line): ...this.
2038 (read_line_num): Convert to...
2039 (file_cache_slot::read_line_num): ...this.
2040 (location_get_source_line): Update for moving of globals to
2041 global_dc->m_file_cache.
2042 (location_missing_trailing_newline): Likewise.
2043 * input.h (class file_cache_slot): New forward decl.
2044 (class file_cache): New.
2046 2021-07-01 Michael Meissner <meissner@linux.ibm.com>
2048 * config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE
2049 128-bit floating point conditional move support.
2050 (have_compare_and_set_mask): Add IEEE 128-bit floating point
2052 * config/rs6000/rs6000.md (mov<mode>cc, IEEE128 iterator): New insn.
2053 (mov<mode>cc_p10, IEEE128 iterator): New insn.
2054 (mov<mode>cc_invert_p10, IEEE128 iterator): New insn.
2055 (fpmask<mode>, IEEE128 iterator): New insn.
2056 (xxsel<mode>, IEEE128 iterator): New insn.
2058 2021-07-01 Iain Sandoe <iain@sandoe.co.uk>
2061 * config/darwin.h (CTF_INFO_SECTION_NAME): New.
2063 2021-07-01 H.J. Lu <hjl.tools@gmail.com>
2065 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
2067 * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate):
2069 * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator.
2070 (vec_duplicate<mode>): New expander.
2072 2021-07-01 H.J. Lu <hjl.tools@gmail.com>
2075 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
2077 (ix86_byte_broadcast): New function.
2078 (ix86_convert_const_wide_int_to_broadcast): Likewise.
2079 (ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode
2080 size is 16 bytes or bigger.
2081 (ix86_broadcast_from_integer_constant): New function.
2082 (ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR
2083 to broadcast if mode size is 16 bytes or bigger.
2084 * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New
2086 * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function.
2088 2021-07-01 Uroš Bizjak <ubizjak@gmail.com>
2090 * config/i386/predicates.md (ix86_endbr_immediate_operand):
2091 Return true/false instead of 1/0.
2092 (movq_parallel): Ditto.
2094 2021-07-01 Uroš Bizjak <ubizjak@gmail.com>
2096 * recog.c (general_operand): Return true/false instead of 1/0.
2097 (register_operand): Ditto.
2098 (immediate_operand): Ditto.
2099 (const_int_operand): Ditto.
2100 (const_scalar_int_operand): Ditto.
2101 (const_double_operand): Ditto.
2102 (push_operand): Ditto.
2103 (pop_operand): Ditto.
2104 (memory_operand): Ditto.
2105 (indirect_operand): Ditto.
2107 2021-07-01 Uroš Bizjak <ubizjak@gmail.com>
2109 * genpreds.c (write_predicate_subfunction):
2110 Change the type of written subfunction to bool.
2111 (write_one_predicate_function):
2112 Change the type of written function to bool.
2113 (write_tm_preds_h): Ditto.
2114 * recog.h (*insn_operand_predicate_fn): Change the type to bool.
2115 * recog.c (general_operand): Change the type to bool.
2116 (address_operand): Ditto.
2117 (register_operand): Ditto.
2118 (pmode_register_operand): Ditto.
2119 (scratch_operand): Ditto.
2120 (immediate_operand): Ditto.
2121 (const_int_operand): Ditto.
2122 (const_scalar_int_operand): Ditto.
2123 (const_double_operand): Ditto.
2124 (nonimmediate_operand): Ditto.
2125 (nonmemory_operand): Ditto.
2126 (push_operand): Ditto.
2127 (pop_operand): Ditto.
2128 (memory_operand): Ditto.
2129 (indirect_operand): Ditto.
2130 (ordered_comparison_operator): Ditto.
2131 (comparison_operator): Ditto.
2132 * config/i386/i386-expand.c (ix86_expand_sse_cmp):
2133 Change the type of indirect predicate function to bool.
2134 * config/rs6000/rs6000.c (easy_vector_constant):
2135 Change the type to bool.
2136 * config/mips/mips-protos.h (m16_based_address_p):
2137 Change the type of operand 3 to bool.
2139 2021-07-01 Richard Biener <rguenther@suse.de>
2141 PR tree-optimization/101280
2142 PR tree-optimization/101173
2143 * gimple-loop-interchange.cc
2144 (tree_loop_interchange::valid_data_dependences): Revert
2145 previous change and instead correctly handle DDR_REVERSED_P
2148 2021-07-01 Richard Biener <rguenther@suse.de>
2150 PR tree-optimization/101278
2151 * tree-ssa-dse.c (dse_classify_store): First check for
2152 uses, then ignore stmt for chaining purposes.
2154 2021-07-01 Richard Biener <rguenther@suse.de>
2156 PR tree-optimization/100778
2157 * tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping
2158 vectorized ops ahead of their scalar BB.
2160 2021-07-01 Uroš Bizjak <ubizjak@gmail.com>
2163 * config/i386/i386.md (*nabs<dwi>2_doubleword):
2164 New insn_and_split pattern.
2165 (*nabs<dwi>2_1): Ditto.
2166 * config/i386/i386-features.c
2167 (general_scalar_chain::compute_convert_gain):
2168 Handle (NEG (ABS (...))) RTX. Rewrite src code
2169 scanner as switch statement.
2170 (general_scalar_chain::convert_insn):
2171 Handle (NEG (ABS (...))) RTX.
2172 (general_scalar_to_vector_candidate_p):
2173 Detect (NEG (ABS (...))) RTX. Reorder case statements
2174 for (AND (NOT (...) ...)) fallthrough.
2176 2021-07-01 Richard Biener <rguenther@suse.de>
2178 PR tree-optimization/101178
2179 * tree-vect-slp.c (slpg_vertex::materialize): Remove.
2180 (slpg::perm_in): Add.
2181 (slpg::get_perm_in): Remove.
2182 (slpg::get_perm_materialized): Add.
2183 (vect_optimize_slp): Handle VEC_PERM nodes more optimally
2184 during permute propagation and materialization.
2186 2021-07-01 Jakub Jelinek <jakub@redhat.com>
2189 * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR.
2191 2021-07-01 Jakub Jelinek <jakub@redhat.com>
2194 * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to
2195 is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type,
2196 use boolean_type_node instead of integer_type_node as NE_EXPR type.
2197 (lower_reduction_clauses): Likewise.
2199 2021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com>
2201 * config/gcn/gcn.c: Include dwarf2.h.
2202 (gcn_addr_space_debug): New function.
2203 (TARGET_ADDR_SPACE_DEBUG): New hook.
2205 2021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com>
2207 * common/config/gcn/gcn-common.c
2208 (gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3.
2209 * config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer
2211 (gcn_expand_prologue): Prefer the frame pointer when emitting CFI.
2212 (gcn_frame_pointer_rqd): New function.
2213 (TARGET_FRAME_POINTER_REQUIRED): New hook.
2215 2021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com>
2217 * config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for
2218 prologue register saves.
2219 (gcn_debug_unwind_info): Use UI_DWARF2.
2220 (gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC.
2221 (gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span.
2222 * config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define.
2223 (DWARF_LINK_REGISTER): New define.
2224 (FIRST_PSEUDO_REGISTER): Increment.
2225 (FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER.
2226 (CALL_USED_REGISTERS): Likewise.
2227 (REGISTER_NAMES): Likewise.
2229 2021-06-30 Richard Biener <rguenther@suse.de>
2231 PR tree-optimization/101267
2232 * tree-vect-stmts.c (vect_check_scalar_mask): Adjust
2233 API and use SLP compatible interface of vect_is_simple_use.
2234 Reject not vectorized SLP defs for callers that do not support
2236 (vect_check_store_rhs): Handle masked stores and pass down
2237 the appropriate operator index.
2238 (vectorizable_call): Adjust.
2239 (vectorizable_store): Likewise.
2240 (vectorizable_load): Likewise. Handle SLP pecularity of
2242 (vect_is_simple_use): Remove special-casing of masked stores.
2244 2021-06-30 Tobias Burnus <tobias@codesourcery.com>
2246 * common.opt (foffload): Remove help as Driver only.
2247 * gcc.c (display_help): Add -foffload.
2249 2021-06-30 Tobias Burnus <tobias@codesourcery.com>
2251 * gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC.
2252 (check_offload_target_name): Fix splitting OFFLOAD_TARGETS into
2253 a candidate list; better inform no offload target is configured
2254 and fix hint extraction when passed target is not '\0' at [len].
2255 * common.opt (foffload): Add tailing '.'.
2256 (foffload-options): Likewise; fix flag name in the help string.
2258 2021-06-30 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
2261 * config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32.
2262 (vcage_f32): Gate comparison on __FAST_MATH__.
2263 (vcageq_f32): Likewise.
2264 (vcale_f32): Likewise.
2265 (vcaleq_f32): Likewise.
2266 (vcagt_f32): Likewise.
2267 (vcagtq_f32): Likewise.
2268 (vcalt_f32): Likewise.
2269 (vcaltq_f32): Likewise.
2270 (vcage_f16): Likewise.
2271 (vcageq_f16): Likewise.
2272 (vcale_f16): Likewise.
2273 (vcaleq_f16): Likewise.
2274 (vcagt_f16): Likewise.
2275 (vcagtq_f16): Likewise.
2276 (vcalt_f16): Likewise.
2277 (vcaltq_f16): Likewise.
2279 2021-06-30 Richard Biener <rguenther@suse.de>
2281 PR tree-optimization/101264
2282 * tree-vect-slp.c (vect_optimize_slp): Propagate the
2283 computed perm_in to all "any" permute successors
2284 we cannot de-duplicate immediately.
2286 2021-06-30 liuhongt <hongtao.liu@intel.com>
2289 * config/i386/sse.md
2290 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>):
2292 (avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>):
2294 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>"): Refined.
2295 * config/i386/subst.md (maskz_scalar): New define_subst.
2296 (maskz_scalar_name): New subst_attr.
2297 (maskz_scalar_op5): Ditto.
2298 (round_saeonly_maskz_scalar_op5): Ditto.
2299 (round_saeonly_maskz_scalar_operand5): Ditto.
2301 2021-06-30 David Edelsohn <dje.gcc@gmail.com>
2303 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
2304 Increase code CSECT alignment to at least 32 bytes.
2305 * config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte
2306 alignment designation.
2308 2021-06-29 Sergei Trofimovich <siarheit@google.com>
2310 * doc/generic.texi: Fix s/net yet/not yet/ typo.
2312 2021-06-29 Andrew MacLeod <amacleod@redhat.com>
2314 PR tree-optimization/101254
2315 * range-op.cc (operator_minus::op1_op2_relation_effect): Check for
2316 wrapping/non-wrapping when setting the result range.
2318 2021-06-29 Andrew MacLeod <amacleod@redhat.com>
2320 * value-query.cc (gimple_range_global): Allow phis.
2322 2021-06-29 Andrew MacLeod <amacleod@redhat.com>
2324 * vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt.
2325 (simplify_using_ranges::op_with_boolean_value_range_p): Add a
2326 statement for location context.
2327 (check_for_binary_op_overflow): Ditto.
2328 (simplify_using_ranges::get_vr_for_comparison): Ditto.
2329 (simplify_using_ranges::compare_name_with_value): Ditto.
2330 (simplify_using_ranges::compare_names): Ditto.
2331 (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto.
2332 (simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto.
2333 (simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto.
2334 (simplify_using_ranges::simplify_internal_call_using_ranges): Ditto.
2335 (simplify_using_ranges::two_valued_val_range_p): Ditto.
2336 (simplify_using_ranges::simplify): Ditto.
2337 * vr-values.h: Adjust prototypes.
2339 2021-06-29 Uroš Bizjak <ubizjak@gmail.com>
2342 * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern.
2344 2021-06-29 Julian Brown <julian@codesourcery.com>
2346 * config/gcn/gcn.c (gcn_init_libfuncs): New function.
2347 (TARGET_INIT_LIBFUNCS): Define target hook using above function.
2348 * config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4
2350 (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions.
2351 (MAX_FIXED_MODE_SIZE): Change to 128.
2353 2021-06-29 Julian Brown <julian@codesourcery.com>
2355 * config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant.
2356 (s_mnemonic): Add clrsb.
2357 (gcn_flbit<mode>_int): Add insn pattern for SImode/DImode.
2358 (clrsb<mode>2): Add expander for SImode/DImode.
2360 2021-06-29 Julian Brown <julian@codesourcery.com>
2362 * config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm,
2363 muldi3): Add patterns.
2365 2021-06-29 Julian Brown <julian@codesourcery.com>
2367 * config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander.
2368 (<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns.
2370 2021-06-29 Julian Brown <julian@codesourcery.com>
2372 * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.
2374 2021-06-29 Joseph Myers <joseph@codesourcery.com>
2376 * btfout.c, ctfout.c: Include "memmodel.h".
2378 2021-06-29 Tobias Burnus <tobias@codesourcery.com>
2380 * gcc.c (check_offload_target_name): Cast len argument to
2381 %q.*s to 'int'; avoid -Wstringop-truncation warning.
2383 2021-06-29 Richard Biener <rguenther@suse.de>
2385 * tree-vect-slp.c (vect_optimize_slp): Forward propagate
2386 to "any" permute nodes and relax "any" permute proapgation
2387 during iterative backward propagation.
2389 2021-06-29 Tobias Burnus <tobias@codesourcery.com>
2392 * common.opt (-foffload=): Update description.
2393 (-foffload-options=): New.
2394 * doc/invoke.texi (C Language Options): Document
2395 -foffload and -foffload-options.
2396 * gcc.c (check_offload_target_name): New, split off from
2397 handle_foffload_option.
2398 (check_foffload_target_names): New.
2399 (handle_foffload_option): Handle -foffload=default.
2400 (driver_handle_option): Update for -foffload-options.
2401 * lto-opts.c (lto_write_options): Use -foffload-options
2402 instead of -foffload.
2403 * lto-wrapper.c (merge_and_complain, append_offload_options):
2405 * opts.c (common_handle_option): Likewise.
2407 2021-06-29 Tobias Burnus <tobias@codesourcery.com>
2409 * doc/invoke.texi (C Language Options): Sort options
2410 alphabetically in optlist and also the description itself.
2411 Remove leftover -fallow-single-precision from and add missing
2412 -fgnu-tm to the optlist.
2414 2021-06-29 Richard Biener <rguenther@suse.de>
2416 * tree-vect-slp.c (slpg_vertex::visited): Remove.
2417 (vect_slp_perms_eq): Handle -1 permutes.
2418 (vect_optimize_slp): Rewrite permute propagation.
2420 2021-06-29 Jakub Jelinek <jakub@redhat.com>
2423 * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't
2424 perform the optimization in GENERIC when sanitizing and x has a
2427 2021-06-29 Richard Biener <rguenther@suse.de>
2429 PR tree-optimization/101242
2430 * tree-vect-slp.c (vect_slp_build_vertices): Force-add
2431 PHIs with not represented initial values as leafs.
2433 2021-06-29 Jan-Benedict Glaw <jbglaw@getslash.de>
2435 * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning.
2436 * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove
2438 (pdp11_initial_elimination_offset) Remove unused variable.
2439 (pdp11_cmp_length) Ditto.
2440 (pdp11_insn_cost): Ditto, and fix signedness warning.
2442 2021-06-29 David Edelsohn <dje.gcc@gmail.com>
2444 * btfout.c: Include tm_p.h.
2447 2021-06-28 Indu Bhagat <indu.bhagat@oracle.com>
2449 * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as
2451 (bpf_expand_epilogue): Likewise.
2452 * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0.
2453 Do not define DBX_DEBUGGING_INFO.
2455 2021-06-28 Indu Bhagat <indu.bhagat@oracle.com>
2457 * doc/invoke.texi: Document the CTF and BTF debug info options.
2459 2021-06-28 Indu Bhagat <indu.bhagat@oracle.com>
2460 David Faust <david.faust@oracle.com>
2461 Jose E. Marchesi <jose.marchesi@oracle.com>
2462 Weimin Pan <weimin.pan@oracle.com>
2464 * Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to
2465 GTFILES. Add new object files.
2466 * common.opt: Add CTF and BTF debug info options.
2467 * btfout.c: New file.
2470 * ctfout.c: Likewise.
2471 * dwarf2ctf.c: Likewise.
2472 * dwarf2ctf.h: Likewise.
2473 * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and
2475 * dwarf2out.c (dwarf2out_source_line): Likewise.
2476 (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to
2478 (debug_format_do_cu): New function.
2479 (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for
2481 Include dwarf2ctf.c.
2482 * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug
2484 * flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG.
2485 (CTF_DEBUG): New bitmask.
2486 (BTF_DEBUG): Likewise.
2487 (enum ctf_debug_info_levels): New enum.
2488 * gengtype.c (open_base_files): Handle ctfc.h.
2489 (main): Handle uint32_t type.
2490 * flags.h (btf_debuginfo_p): New definition.
2491 (dwarf_based_debuginfo_p): Likewise.
2492 * opts.c (debug_type_names): Add entries for CTF and BTF.
2493 (btf_debuginfo_p): New function.
2494 (dwarf_based_debuginfo_p): Likewise.
2495 (common_handle_option): Handle -gctfN and -gbtf options.
2496 (set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate.
2497 * toplev.c (process_options): Inform the user and ignore -gctfLEVEL if
2500 2021-06-28 Jose E. Marchesi <jose.marchesi@oracle.com>
2502 * dwarf2out.c (AT_class): Function is no longer static.
2504 (AT_unsigned): Likewise.
2507 (get_AT_string): Likewise.
2508 (get_AT_flag): Likewise.
2509 (get_AT_unsigned): Likewise.
2510 (get_AT_ref): Likewise.
2511 (new_die_raw): Likewise.
2512 (lookup_decl_die): Likewise.
2513 (base_type_die): Likewise.
2514 (add_name_attribute): Likewise.
2515 (add_AT_int): Likewise.
2516 (add_AT_unsigned): Likewise.
2517 (add_AT_loc): Likewise.
2518 (dw_get_die_tag): New function.
2519 (dw_get_die_child): Likewise.
2520 (dw_get_die_sib): Likewise.
2521 (struct dwarf_file_data): Move from here to dwarf2out.h
2522 (struct dw_attr_struct): Likewise.
2523 * dwarf2out.h: Analogous changes.
2525 2021-06-28 Martin Jambor <mjambor@suse.cz>
2528 * ipa-param-manipulation.h (class ipa_param_body_adjustments): New
2529 members m_dead_stmts and m_dead_ssas.
2530 * ipa-param-manipulation.c
2531 (ipa_param_body_adjustments::mark_dead_statements): New function.
2532 (ipa_param_body_adjustments::common_initialization): Call it on
2533 all removed but not split parameters.
2534 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
2536 (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that
2538 * tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset
2539 dead debug statements.
2540 (copy_phis_for_bb): Do not copy dead PHI nodes.
2542 2021-06-28 Martin Jambor <mjambor@suse.cz>
2545 * symtab-clones.h (clone_info): Removed member param_adjustments.
2546 * ipa-param-manipulation.h: Adjust initial comment to reflect how we
2547 deal with pass-through splits now.
2548 (ipa_param_performed_split): Removed.
2549 (ipa_param_adjustments::modify_call): Adjusted parameters.
2550 (class ipa_param_body_adjustments): Adjusted parameters of
2551 register_replacement, modify_gimple_stmt and modify_call_stmt.
2552 (ipa_verify_edge_has_no_modifications): Declare.
2553 (ipa_edge_modifications_finalize): Declare.
2554 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove
2555 performed_splits processing, pas only edge to padjs->modify_call,
2556 check that call arguments were not modified if they should not have
2558 * cgraphclones.c (cgraph_node::create_clone): Do not copy performed
2560 * ipa-param-manipulation.c (struct pass_through_split_map): New type.
2561 (ipa_edge_modification_info): Likewise.
2562 (ipa_edge_modification_sum): Likewise.
2563 (ipa_edge_modifications): New edge summary.
2564 (ipa_verify_edge_has_no_modifications): New function.
2565 (transitive_split_p): Removed.
2566 (transitive_split_map): Likewise.
2567 (init_transitive_splits): Likewise.
2568 (ipa_param_adjustments::modify_call): Adjusted to use the new edge
2569 summary instead of performed_splits.
2570 (ipa_param_body_adjustments::register_replacement): Drop dummy
2571 parameter, set base_index of the created ipa_param_body_replacement.
2572 (phi_arg_will_live_p): New function.
2573 (ipa_param_body_adjustments::common_initialization): Do not create
2574 IPA_SRA dummy decls.
2575 (simple_tree_swap_info): Removed.
2576 (remap_split_decl_to_dummy): Likewise.
2577 (record_argument_state_1): New function.
2578 (record_argument_state): Likewise.
2579 (ipa_param_body_adjustments::modify_call_stmt): New parameter
2580 orig_stmt. Do not work with dummy decls, save necessary info about
2581 changes to ipa_edge_modifications.
2582 (ipa_param_body_adjustments::modify_gimple_stmt): New parameter
2583 orig_stmt, pass it to modify_call_stmt.
2584 (ipa_param_body_adjustments::modify_cfun_body): Adjust call to
2586 (ipa_edge_modifications_finalize): New function.
2587 * tree-inline.c (remap_gimple_stmt): Pass original statement to
2589 (copy_phis_for_bb): Do not copy dead PHI nodes.
2590 (expand_call_inline): Do not remap performed_splits.
2591 (update_clone_info): Likewise.
2592 * toplev.c: Include ipa-param-manipulation.h.
2593 (toplev::finalize): Call ipa_edge_modifications_finalize.
2595 2021-06-28 Andrew Pinski <apinski@marvell.com>
2597 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range
2598 info if we're the only things setting the target PHI.
2599 (value_replacement): Don't duplicate range here.
2600 (minmax_replacement): Likewise.
2602 2021-06-28 Richard Biener <rguenther@suse.de>
2604 PR tree-optimization/101229
2605 * gimple-walk.c (gimple_walk_op): Handle PHIs.
2607 2021-06-28 Martin Liska <mliska@suse.cz>
2609 * config/v850/v850.c (construct_dispose_instruction): Allocate
2611 (construct_prepare_instruction): Likewise.
2613 2021-06-28 Martin Liska <mliska@suse.cz>
2615 * config/v850/v850.c (v850_option_override): Build default
2617 (v850_can_inline_p): New. Allow MASK_PROLOG_FUNCTION to be
2618 ignored for inlining.
2619 (TARGET_CAN_INLINE_P): New.
2621 2021-06-28 Richard Biener <rguenther@suse.de>
2623 PR tree-optimization/101207
2624 * tree-vect-slp.c (vect_optimize_slp): Do BB reduction
2625 permute eliding for load permutations properly.
2627 2021-06-28 Richard Biener <rguenther@suse.de>
2629 PR tree-optimization/101173
2630 * gimple-loop-interchange.cc
2631 (tree_loop_interchange::valid_data_dependences): Disallow outer
2632 loop dependence distance of zero.
2634 2021-06-28 liuhongt <hongtao.liu@intel.com>
2637 * config/i386/sse.md (*avx_cmp<mode>3_lt): New
2638 define_insn_and_split.
2639 (*avx_cmp<mode>3_ltint): Ditto.
2640 (*avx2_pcmp<mode>3_3): Ditto.
2641 (*avx2_pcmp<mode>3_4): Ditto.
2642 (*avx2_pcmp<mode>3_5): Ditto.
2644 2021-06-28 liuhongt <hongtao.liu@intel.com>
2646 * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256,
2647 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256,
2648 IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS,
2649 IX86_BUILTIN_PBLENDVB128): Replace icode with
2651 * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv
2653 * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not):
2654 New pre_reload splitter.
2656 2021-06-27 Andrew Pinski <apinski@marvell.com>
2658 PR middle-end/101230
2659 * fold-const.c (fold_ternary_loc): Check
2660 the return value of invert_tree_comparison.
2662 2021-06-27 David Edelsohn <dje.gcc@gmail.com>
2664 * config.gcc: Add SPDX License Identifier.
2665 (powerpc-ibm-aix789): Default to aix73.h.
2666 (powerpc-ibm-aix7.2.*.*): New stanza.
2667 * config/rs6000/aix72.h: Add SPDX License Identifier.
2668 * config/rs6000/aix73.h: New file.
2670 2021-06-26 Jason Merrill <jason@redhat.com>
2672 * except.c: #include "dwarf2.h" instead of "dwarf2out.h".
2674 2021-06-26 Andrew Pinski <apinski@marvell.com>
2676 * genmatch.c (lower_cond): Copy for_subst_vec
2677 for the simplify also.
2678 (lower): Swap the order for lower_for and lower_cond.
2680 2021-06-26 Andrew Pinski <apinski@marvell.com>
2682 * tree-ssa-phiopt.c (match_simplify_replacement): Reset
2683 flow senatitive info on the moved ssa set.
2685 2021-06-26 Andrew Pinski <apinski@marvell.com>
2687 * fold-const.c (fold_cond_expr_with_comparison):
2688 Exand arg0 into comp_code, arg00, and arg01.
2689 (fold_ternary_loc): Use invert_tree_comparison
2690 instead of fold_invert_truthvalue for the case
2691 where we have A CMP B ? C : A.
2693 2021-06-25 Martin Sebor <msebor@redhat.com>
2695 PR middle-end/101216
2696 * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant.
2698 2021-06-25 Jeff Law <jeffreyalaw@gmail.com>
2700 * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT.
2702 2021-06-25 Richard Biener <rguenther@suse.de>
2704 PR tree-optimization/101202
2705 * tree-vect-slp.c (vect_optimize_slp): Explicitely handle
2708 2021-06-25 Richard Biener <rguenther@suse.de>
2710 * tree-vect-slp-patterns.c (addsub_pattern::build): Copy
2711 STMT_VINFO_REDUC_DEF from the original representative.
2713 2021-06-25 Martin Sebor <msebor@redhat.com>
2715 * builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING,
2716 gimple_no_warning_p and gimple_set_no_warning with
2717 warning_suppressed_p, and suppress_warning.
2719 (maybe_warn_for_bound): Same.
2720 (warn_for_access): Same.
2721 (check_access): Same.
2722 (expand_builtin_strncmp): Same.
2723 (fold_builtin_varargs): Same.
2724 * calls.c (maybe_warn_nonstring_arg): Same.
2725 (maybe_warn_rdwr_sizes): Same.
2726 * cfgexpand.c (expand_call_stmt): Same.
2727 * cgraphunit.c (check_global_declaration): Same.
2728 * fold-const.c (fold_undefer_overflow_warnings): Same.
2729 (fold_truth_not_expr): Same.
2730 (fold_unary_loc): Same.
2731 (fold_checksum_tree): Same.
2732 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same.
2733 (array_bounds_checker::check_mem_ref): Same.
2734 (array_bounds_checker::check_addr_expr): Same.
2735 (array_bounds_checker::check_array_bounds): Same.
2736 * gimple-expr.c (copy_var_decl): Same.
2737 * gimple-fold.c (gimple_fold_builtin_strcpy): Same.
2738 (gimple_fold_builtin_strncat): Same.
2739 (gimple_fold_builtin_stxcpy_chk): Same.
2740 (gimple_fold_builtin_stpcpy): Same.
2741 (gimple_fold_builtin_sprintf): Same.
2742 (fold_stmt_1): Same.
2743 * gimple-ssa-isolate-paths.c (diag_returned_locals): Same.
2744 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
2745 * gimple-ssa-sprintf.c (handle_printf_call): Same.
2746 * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same.
2747 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
2748 * gimple-ssa-warn-restrict.h: Adjust declarations.
2749 (maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING,
2750 gimple_no_warning_p and gimple_set_no_warning with
2751 warning_suppressed_p, and suppress_warning.
2753 (check_bounds_or_overlap): Same.
2754 * gimple.c (gimple_build_call_from_tree): Same.
2755 * gimplify.c (gimplify_return_expr): Same.
2756 (gimplify_cond_expr): Same.
2757 (gimplify_modify_expr_complex_part): Same.
2758 (gimplify_modify_expr): Same.
2759 (gimple_push_cleanup): Same.
2760 (gimplify_expr): Same.
2761 * omp-expand.c (expand_omp_for_generic): Same.
2762 (expand_omp_taskloop_for_outer): Same.
2763 * omp-low.c (lower_rec_input_clauses): Same.
2764 (lower_lastprivate_clauses): Same.
2765 (lower_send_clauses): Same.
2766 (lower_omp_target): Same.
2767 * tree-cfg.c (pass_warn_function_return::execute): Same.
2768 * tree-complex.c (create_one_component_var): Same.
2769 * tree-inline.c (remap_gimple_op_r): Same.
2770 (copy_tree_body_r): Same.
2771 (declare_return_variable): Same.
2772 (expand_call_inline): Same.
2773 * tree-nested.c (lookup_field_for_decl): Same.
2774 * tree-sra.c (create_access_replacement): Same.
2775 (generate_subtree_copies): Same.
2776 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same.
2777 * tree-ssa-forwprop.c (combine_cond_expr_cond): Same.
2778 * tree-ssa-loop-ch.c (ch_base::copy_headers): Same.
2779 * tree-ssa-loop-im.c (execute_sm): Same.
2780 * tree-ssa-phiopt.c (cond_store_replacement): Same.
2781 * tree-ssa-strlen.c (maybe_warn_overflow): Same.
2782 (handle_builtin_strcpy): Same.
2783 (maybe_diag_stxncpy_trunc): Same.
2784 (handle_builtin_stxncpy_strncat): Same.
2785 (handle_builtin_strcat): Same.
2786 * tree-ssa-uninit.c (get_no_uninit_warning): Same.
2787 (set_no_uninit_warning): Same.
2788 (uninit_undefined_value_p): Same.
2789 (warn_uninit): Same.
2790 (maybe_warn_operand): Same.
2791 * tree-vrp.c (compare_values_warnv): Same.
2792 * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same.
2793 (test_for_singularity): Same.
2794 * gimple.h (warning_suppressed_p): New function.
2795 (suppress_warning): Same.
2796 (copy_no_warning): Same.
2797 (gimple_set_block): Call gimple_set_location.
2798 (gimple_set_location): Call copy_warning.
2800 2021-06-25 Martin Sebor <msebor@redhat.com>
2802 * tree.h (warning_suppressed_at, copy_warning,
2803 warning_suppressed_p, suppress_warning): New functions.
2805 2021-06-25 Martin Sebor <msebor@redhat.com>
2807 * Makefile.in (OBJS-libcommon): Add diagnostic-spec.o.
2808 * gengtype.c (open_base_files): Add diagnostic-spec.h.
2809 * diagnostic-spec.c: New file.
2810 * diagnostic-spec.h: New file.
2811 * tree.h (no_warning, all_warnings, suppress_warning_at): New
2813 * warning-control.cc: New file.
2815 2021-06-25 liuhongt <hongtao.liu@intel.com>
2818 * config/i386/i386.c (x86_order_regs_for_local_alloc):
2821 2021-06-24 Andrew MacLeod <amacleod@redhat.com>
2823 PR tree-optimization/101189
2824 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass
2825 LHS range of condition to postfold routine.
2826 (fold_using_range::postfold_gcond_edges): Only process the TRUE or
2827 FALSE edge if the LHS range supports it being taken.
2828 * gimple-range-fold.h (postfold_gcond_edges): Add range parameter.
2830 2021-06-24 Andrew MacLeod <amacleod@redhat.com>
2832 * value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks.
2833 (relation_oracle::find_relation_block): Check correct bitmap.
2834 (relation_oracle::dump): Do not dump NULL blocks.
2836 2021-06-24 Andrew MacLeod <amacleod@redhat.com>
2838 * gimple-range-cache.cc (ranger_cache::propagate_cache): Call
2839 range_on_edge instead of manually calculating.
2841 2021-06-24 Andrew MacLeod <amacleod@redhat.com>
2843 * range-op.cc: Fix comment.
2845 2021-06-24 Uroš Bizjak <ubizjak@gmail.com>
2848 * config/i386/i386-expand.c (ix86_expand_sse_unpack):
2849 Handle V8QI and V4HI modes.
2850 * config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2):
2852 (sse4_1_<any_extend:code>v4qiv4hi2): Ditto.
2853 (mmxpackmode): New mode attribute.
2854 (vec_pack_trunc_<mmxpackmode:mode>): New expander.
2855 (mmxunpackmode): New mode attribute.
2856 (vec_unpacks_lo_<mmxunpackmode:mode>): New expander.
2857 (vec_unpacks_hi_<mmxunpackmode:mode>): Ditto.
2858 (vec_unpacku_lo_<mmxunpackmode:mode>): Ditto.
2859 (vec_unpacku_hi_<mmxunpackmode:mode>): Ditto.
2860 * config/i386/i386.md (extsuffix): Move from ...
2861 * config/i386/sse.md: ... here.
2863 2021-06-24 Eric Botcazou <ebotcazou@adacore.com>
2865 * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here..
2866 (dwarf2out_finish): ...instead of here.
2868 2021-06-24 Eric Botcazou <ebotcazou@adacore.com>
2870 * configure.ac (--gdwarf-5 option): Use objdump instead of readelf.
2871 (working --gdwarf-4/--gdwarf-5 for all sources): Likewise.
2872 (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows.
2873 * configure: Regenerate.
2875 2021-06-24 Richard Biener <rguenther@suse.de>
2877 * config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3,
2878 vec_addsubv8sf3, vec_addsubv4sf3): Merge into ...
2879 (vec_addsub<mode>3): ... using a new addsub_cst mode attribute.
2881 2021-06-24 Richard Biener <rguenther@suse.de>
2883 * config/i386/sse.md (avx_addsubv4df3): Rename to
2885 (avx_addsubv8sf3): Rename to vec_addsubv8sf3.
2886 (sse3_addsubv2df3): Rename to vec_addsubv2df3.
2887 (sse3_addsubv4sf3): Rename to vec_addsubv4sf3.
2888 * config/i386/i386-builtin.def: Adjust.
2889 * internal-fn.def (VEC_ADDSUB): New internal optab fn.
2890 * optabs.def (vec_addsub_optab): New optab.
2891 * tree-vect-slp-patterns.c (class addsub_pattern): New.
2892 (slp_patterns): Add addsub_pattern.
2893 * tree-vect-slp.c (vect_optimize_slp): Disable propagation
2894 across CFN_VEC_ADDSUB.
2895 * tree-vectorizer.h (vect_pattern::vect_pattern): Make
2897 * doc/md.texi (vec_addsub<mode>3): Document.
2899 2021-06-24 Jakub Jelinek <jakub@redhat.com>
2901 PR middle-end/101170
2902 * df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs
2903 where regno + subreg_regno_offset wraps around use 0 as starting
2906 2021-06-24 Jakub Jelinek <jakub@redhat.com>
2908 PR middle-end/101172
2909 * stor-layout.c (finish_bitfield_representative): If nextf has
2910 error_mark_node type, set repr type to error_mark_node too.
2912 2021-06-24 Ilya Leoshkevich <iii@linux.ibm.com>
2914 * config/s390/s390.c (s390_function_profiler): Ignore labelno
2916 * config/s390/s390.h (NO_PROFILE_COUNTERS): Define.
2918 2021-06-24 Richard Biener <rguenther@suse.de>
2920 * tree-vect-slp.c (vect_optimize_slp): Do not propagate
2921 across operations that have different semantics on different
2924 2021-06-24 Jakub Jelinek <jakub@redhat.com>
2926 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP.
2927 * gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses
2928 with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification
2929 of non-decl OMP_CLAUSE_DECL. For OMP_CLAUSE_IN_REDUCTION on
2930 OMP_TARGET user outer_ctx instead of ctx for placeholders and
2931 initializer/combiner gimplification.
2932 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION
2933 on target constructs.
2934 (lower_rec_input_clauses): Likewise.
2935 (lower_omp_target): Likewise.
2936 * omp-expand.c (expand_omp_target): Temporarily ignore nowait clause
2937 on target if in_reduction is present.
2939 2021-06-24 Kewen Lin <linkw@linux.ibm.com>
2941 * tree-predcom.c (class pcom_worker): New class.
2942 (release_chain): Renamed to...
2943 (pcom_worker::release_chain): ...this.
2944 (release_chains): Renamed to...
2945 (pcom_worker::release_chains): ...this.
2946 (aff_combination_dr_offset): Renamed to...
2947 (pcom_worker::aff_combination_dr_offset): ...this.
2948 (determine_offset): Renamed to...
2949 (pcom_worker::determine_offset): ...this.
2950 (class comp_ptrs): New class.
2951 (split_data_refs_to_components): Renamed to...
2952 (pcom_worker::split_data_refs_to_components): ...this,
2953 and update with class comp_ptrs.
2954 (suitable_component_p): Renamed to...
2955 (pcom_worker::suitable_component_p): ...this.
2956 (filter_suitable_components): Renamed to...
2957 (pcom_worker::filter_suitable_components): ...this.
2958 (valid_initializer_p): Renamed to...
2959 (pcom_worker::valid_initializer_p): ...this.
2960 (find_looparound_phi): Renamed to...
2961 (pcom_worker::find_looparound_phi): ...this.
2962 (add_looparound_copies): Renamed to...
2963 (pcom_worker::add_looparound_copies): ...this.
2964 (determine_roots_comp): Renamed to...
2965 (pcom_worker::determine_roots_comp): ...this.
2966 (determine_roots): Renamed to...
2967 (pcom_worker::determine_roots): ...this.
2968 (single_nonlooparound_use): Renamed to...
2969 (pcom_worker::single_nonlooparound_use): ...this.
2970 (remove_stmt): Renamed to...
2971 (pcom_worker::remove_stmt): ...this.
2972 (execute_pred_commoning_chain): Renamed to...
2973 (pcom_worker::execute_pred_commoning_chain): ...this.
2974 (execute_pred_commoning): Renamed to...
2975 (pcom_worker::execute_pred_commoning): ...this.
2976 (struct epcc_data): New member worker.
2977 (execute_pred_commoning_cbck): Call execute_pred_commoning
2978 with pcom_worker pointer.
2979 (find_use_stmt): Renamed to...
2980 (pcom_worker::find_use_stmt): ...this.
2981 (find_associative_operation_root): Renamed to...
2982 (pcom_worker::find_associative_operation_root): ...this.
2983 (find_common_use_stmt): Renamed to...
2984 (pcom_worker::find_common_use_stmt): ...this.
2985 (combinable_refs_p): Renamed to...
2986 (pcom_worker::combinable_refs_p): ...this.
2987 (reassociate_to_the_same_stmt): Renamed to...
2988 (pcom_worker::reassociate_to_the_same_stmt): ...this.
2989 (stmt_combining_refs): Renamed to...
2990 (pcom_worker::stmt_combining_refs): ...this.
2991 (combine_chains): Renamed to...
2992 (pcom_worker::combine_chains): ...this.
2993 (try_combine_chains): Renamed to...
2994 (pcom_worker::try_combine_chains): ...this.
2995 (prepare_initializers_chain): Renamed to...
2996 (pcom_worker::prepare_initializers_chain): ...this.
2997 (prepare_initializers): Renamed to...
2998 (pcom_worker::prepare_initializers): ...this.
2999 (prepare_finalizers_chain): Renamed to...
3000 (pcom_worker::prepare_finalizers_chain): ...this.
3001 (prepare_finalizers): Renamed to...
3002 (pcom_worker::prepare_finalizers): ...this.
3003 (tree_predictive_commoning_loop): Renamed to...
3004 (pcom_worker::tree_predictive_commoning_loop): ...this, adjust
3005 some calls and remove some cleanup code.
3006 (tree_predictive_commoning): Adjusted to use pcom_worker instance.
3007 (static variable looparound_phis): Remove.
3008 (static variable name_expansions): Remove.
3010 2021-06-24 Richard Biener <rguenther@suse.de>
3012 * tree-vect-slp.c (slpg_vertex): New struct.
3013 (vect_slp_build_vertices): Adjust.
3014 (vect_optimize_slp): Likewise. Maintain an outgoing permute
3015 and a materialized one.
3017 2021-06-24 Richard Biener <rguenther@suse.de>
3019 PR tree-optimization/101105
3020 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
3021 Only ignore steps when they are equal or scalar order is preserved.
3023 2021-06-24 liuhongt <hongtao.liu@intel.com>
3026 * config/i386/i386-expand.c (ix86_expand_vec_interleave):
3027 Adjust comments for ix86_expand_vecop_qihi2.
3028 (ix86_expand_vecmul_qihi): Renamed to ..
3029 (ix86_expand_vecop_qihi2): Adjust function prototype to
3030 support shift operation, add static to definition.
3031 (ix86_expand_vec_shift_qihi_constant): Add static to definition.
3032 (ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and
3033 ix86_expand_vec_shift_qihi_constant.
3034 * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted.
3035 (ix86_expand_vec_shift_qihi_constant): Deleted.
3036 * config/i386/sse.md (VI12_256_512_AVX512VL): New mode
3038 (mulv8qi3): Call ix86_expand_vecop_qihi directly, add
3039 condition TARGET_64BIT.
3040 (mul<mode>3): Ditto.
3041 (<insn><mode>3): Ditto.
3042 (vlshr<mode>3): Extend to support avx512 vlshr.
3043 (v<insn><mode>3): New expander for
3045 (v<insn>v8qi3): Ditto.
3046 (vashrv8hi3<mask_name>): Renamed to ..
3047 (vashr<mode>3): And extend to support V16QImode for avx512.
3048 (vashrv16qi3): Deleted.
3049 (vashrv2di3<mask_name>): Extend expander to support avx512
3052 2021-06-23 Dimitar Dimitrov <dimitar@dinux.eu>
3054 * doc/lto.texi (Design Overview): Update that slim objects are
3057 2021-06-23 Aaron Sawdey <acsawdey@linux.ibm.com>
3059 * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out
3060 of OTHER_POWER10_MASKS so it will not be enabled by default.
3062 2021-06-23 Richard Biener <rguenther@suse.de>
3063 Martin Jambor <mjambor@suse.cz>
3065 * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the
3066 param replacement unconditionally. Adjust comment.
3068 2021-06-23 Andrew MacLeod <amacleod@redhat.com>
3070 * Makefile.in (OBJS): Add gimple-range-fold.o
3071 * gimple-range-fold.cc: New.
3072 * gimple-range-fold.h: New.
3073 * gimple-range-gori.cc (gimple_range_calc_op1): Move to here.
3074 (gimple_range_calc_op2): Ditto.
3075 * gimple-range-gori.h: Move prototypes to here.
3076 * gimple-range.cc: Adjust include files.
3077 (fur_source:fur_source): Relocate to gimple-range-fold.cc.
3078 (fur_source::get_operand): Ditto.
3079 (fur_source::get_phi_operand): Ditto.
3080 (fur_source::query_relation): Ditto.
3081 (fur_source::register_relation): Ditto.
3082 (class fur_edge): Ditto.
3083 (fur_edge::fur_edge): Ditto.
3084 (fur_edge::get_operand): Ditto.
3085 (fur_edge::get_phi_operand): Ditto.
3086 (fur_stmt::fur_stmt): Ditto.
3087 (fur_stmt::get_operand): Ditto.
3088 (fur_stmt::get_phi_operand): Ditto.
3089 (fur_stmt::query_relation): Ditto.
3090 (class fur_depend): Relocate to gimple-range-fold.h.
3091 (fur_depend::fur_depend): Relocate to gimple-range-fold.cc.
3092 (fur_depend::register_relation): Ditto.
3093 (fur_depend::register_relation): Ditto.
3094 (class fur_list): Ditto.
3095 (fur_list::fur_list): Ditto.
3096 (fur_list::get_operand): Ditto.
3097 (fur_list::get_phi_operand): Ditto.
3098 (fold_range): Ditto.
3099 (adjust_pointer_diff_expr): Ditto.
3100 (gimple_range_adjustment): Ditto.
3101 (gimple_range_base_of_assignment): Ditto.
3102 (gimple_range_operand1): Ditto.
3103 (gimple_range_operand2): Ditto.
3104 (gimple_range_calc_op1): Relocate to gimple-range-gori.cc.
3105 (gimple_range_calc_op2): Ditto.
3106 (fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc.
3107 (fold_using_range::range_of_range_op): Ditto.
3108 (fold_using_range::range_of_address): Ditto.
3109 (fold_using_range::range_of_phi): Ditto.
3110 (fold_using_range::range_of_call): Ditto.
3111 (fold_using_range::range_of_builtin_ubsan_call): Ditto.
3112 (fold_using_range::range_of_builtin_call): Ditto.
3113 (fold_using_range::range_of_cond_expr): Ditto.
3114 (fold_using_range::range_of_ssa_name_with_loop_info): Ditto.
3115 (fold_using_range::relation_fold_and_or): Ditto.
3116 (fold_using_range::postfold_gcond_edges): Ditto.
3117 * gimple-range.h: Add gimple-range-fold.h to include files. Change
3118 GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H.
3119 (gimple_range_handler): Relocate to gimple-range-fold.h.
3120 (gimple_range_ssa_p): Ditto.
3121 (range_compatible_p): Ditto.
3122 (class fur_source): Ditto.
3123 (class fur_stmt): Ditto.
3124 (class fold_using_range): Ditto.
3125 (gimple_range_calc_op1): Relocate to gimple-range-gori.h
3126 (gimple_range_calc_op2): Ditto.
3128 2021-06-23 Andrew MacLeod <amacleod@redhat.com>
3130 PR tree-optimization/101148
3131 PR tree-optimization/101014
3132 * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
3133 (ranger_cache::~ranger_cache): Adjust.
3134 (ranger_cache::block_range): Check if propagation disallowed.
3135 (ranger_cache::propagate_cache): Disallow propagation if new value
3136 can't be stored properly.
3137 * gimple-range-cache.h (ranger_cache::m_propfail): New member.
3139 2021-06-23 Andrew MacLeod <amacleod@redhat.com>
3141 * gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype.
3142 (sbr_vector::set_bb_range): Return true.
3143 (class sbr_sparse_bitmap): Adjust.
3144 (sbr_sparse_bitmap::set_bb_range): Return value.
3145 (block_range_cache::set_bb_range): Return value.
3146 (ranger_cache::propagate_cache): Use return value to print msg.
3147 * gimple-range-cache.h (class block_range_cache): Adjust.
3149 2021-06-23 Andrew MacLeod <amacleod@redhat.com>
3151 * gimple-range.cc (dump_bb): Use range_on_edge from the cache.
3153 2021-06-23 Jeff Law <jeffreyalaw@gmail.com>
3155 * config/h8300/logical.md (<code><mode>3<ccnz>): Use <cczn>
3156 so this pattern can be used for test/compare removal. Pass
3157 current insn to compute_logical_op_length and output_logical_op.
3158 * config/h8300/h8300.c (compute_logical_op_cc): Remove.
3159 (h8300_and_costs): Add argument to compute_logical_op_length.
3160 (output_logical_op): Add new argument. Use it to determine if the
3161 condition codes are used and adjust the output accordingly.
3162 (compute_logical_op_length): Add new argument and update length
3163 computations when condition codes are used.
3164 * config/h8300/h8300-protos.h (compute_logical_op_length): Update
3166 (output_logical_op): Likewise.
3168 2021-06-23 Uroš Bizjak <ubizjak@gmail.com>
3171 * config/i386/i386-expand.c (expand_vec_perm_pshufb):
3172 Handle 64bit modes for TARGET_XOP. Use indirect gen_* functions.
3173 * config/i386/mmx.md (mmx_ppermv64): New insn pattern.
3174 * config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ...
3175 * config/i386/sse.md (unspec): ... here.
3177 2021-06-23 Martin Liska <mliska@suse.cz>
3180 * optc-save-gen.awk: Put back arm_fp16_format to
3183 2021-06-23 Uroš Bizjak <ubizjak@gmail.com>
3186 * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX.
3189 (clz<mode>2): Update RTX pattern for additions.
3191 2021-06-23 Jakub Jelinek <jakub@redhat.com>
3193 PR middle-end/101167
3194 * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs
3195 and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set.
3197 2021-06-22 Sergei Trofimovich <siarheit@google.com>
3199 * doc/rtl.texi: drop unbalanced parenthesis.
3201 2021-06-22 Richard Biener <rguenther@suse.de>
3203 PR middle-end/101156
3204 * gimplify.c (gimplify_expr): Remove premature incorrect
3207 2021-06-22 Jakub Jelinek <jakub@redhat.com>
3209 PR tree-optimization/101159
3210 * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some
3213 2021-06-22 Jakub Jelinek <jakub@redhat.com>
3215 PR middle-end/101160
3216 * function.c (assign_parms): For decl_result with TYPE_EMPTY_P type
3217 clear crtl->return_rtx instead of keeping it referencing a pseudo.
3219 2021-06-22 Jakub Jelinek <jakub@redhat.com>
3220 Andrew Pinski <apinski@marvell.com>
3222 PR tree-optimization/101162
3223 * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer
3226 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3228 * range-op.cc (range_relational_tests): New.
3229 (range_op_tests): Call range_relational_tests.
3231 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3233 * range-op.cc (operator_cast::lhs_op1_relation): New.
3234 (operator_identity::lhs_op1_relation): Mew.
3236 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3238 * range-op.cc (operator_minus::op1_op2_relation_effect): New.
3240 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3242 * range-op.cc (operator_plus::lhs_op1_relation): New.
3243 (operator_plus::lhs_op2_relation): New.
3245 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3247 * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a
3248 relation_oracle if dominators exist.
3249 (ranger_cache::~ranger_cache): Dispose of oracle.
3250 (ranger_cache::dump_bb): Dump oracle.
3251 * gimple-range.cc (fur_source::fur_source): New.
3252 (fur_source::get_operand): Use mmeber query.
3253 (fur_source::get_phi_operand): Use member_query.
3254 (fur_source::query_relation): New.
3255 (fur_source::register_dependency): Delete.
3256 (fur_source::register_relation): New.
3257 (fur_edge::fur_edge): Adjust.
3258 (fur_edge::get_phi_operand): Fix comment.
3259 (fur_edge::query): Delete.
3260 (fur_stmt::fur_stmt): Adjust.
3261 (fur_stmt::query): Delete.
3262 (fur_depend::fur_depend): Adjust.
3263 (fur_depend::register_relation): New.
3264 (fur_depend::register_relation): New.
3265 (fur_list::fur_list): Adjust.
3266 (fur_list::get_operand): Use member query.
3267 (fold_using_range::range_of_range_op): Process and query relations.
3268 (fold_using_range::range_of_address): Adjust dependency call.
3269 (fold_using_range::range_of_phi): Ditto.
3270 (gimple_ranger::gimple_ranger): New. Use ranger_ache oracle.
3271 (fold_using_range::relation_fold_and_or): New.
3272 (fold_using_range::postfold_gcond_edges): New.
3273 * gimple-range.h (class gimple_ranger): Adjust.
3274 (class fur_source): Adjust members.
3275 (class fur_stmt): Ditto.
3276 (class fold_using_range): Ditto.
3278 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3280 * range-op.cc (range_operator::wi_fold): Apply relation effect.
3281 (range_operator::fold_range): Adjust and apply relation effect.
3282 (*::fold_range): Add relation parameters.
3283 (*::op1_range): Ditto.
3284 (*::op2_range): Ditto.
3285 (range_operator::lhs_op1_relation): New.
3286 (range_operator::lhs_op2_relation): New.
3287 (range_operator::op1_op2_relation): New.
3288 (range_operator::op1_op2_relation_effect): New.
3289 (relop_early_resolve): New.
3290 (operator_equal::op1_op2_relation): New.
3291 (operator_equal::fold_range): Call relop_early_resolve.
3292 (operator_not_equal::op1_op2_relation): New.
3293 (operator_not_equal::fold_range): Call relop_early_resolve.
3294 (operator_lt::op1_op2_relation): New.
3295 (operator_lt::fold_range): Call relop_early_resolve.
3296 (operator_le::op1_op2_relation): New.
3297 (operator_le::fold_range): Call relop_early_resolve.
3298 (operator_gt::op1_op2_relation): New.
3299 (operator_gt::fold_range): Call relop_early_resolve.
3300 (operator_ge::op1_op2_relation): New.
3301 (operator_ge::fold_range): Call relop_early_resolve.
3302 * range-op.h (class range_operator): Adjust parameters and methods.
3304 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3306 * Makefile.in (OBJS): Add value-relation.o.
3307 * gimple-range.h: Adjust include files.
3308 * tree-data-ref.c: Adjust include file order.
3309 * value-query.cc (range_query::get_value_range): Default to no oracle.
3310 (range_query::query_relation): New.
3311 (range_query::query_relation): New.
3312 * value-query.h (class range_query): Adjust.
3313 * value-relation.cc: New.
3314 * value-relation.h: New.
3316 2021-06-22 Richard Biener <rguenther@suse.de>
3318 PR tree-optimization/101151
3319 * tree-ssa-sink.c (statement_sink_location): Expand irreducible
3322 2021-06-22 Jojo R <rjiejie@linux.alibaba.com>
3324 * config/riscv/riscv.c (thead_c906_tune_info): New.
3325 (riscv_tune_info_table): Use new tune.
3327 2021-06-22 Richard Biener <rguenther@suse.de>
3329 PR tree-optimization/101158
3330 * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand
3331 checking after checking for matching operation.
3333 2021-06-22 Richard Biener <rguenther@suse.de>
3335 PR tree-optimization/101159
3336 * tree-vect-patterns.c (vect_recog_popcount_pattern): Add
3337 missing NULL vectype check.
3339 2021-06-22 Richard Biener <rguenther@suse.de>
3341 PR tree-optimization/101154
3342 * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access.
3344 2021-06-22 Jakub Jelinek <jakub@redhat.com>
3347 * config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare.
3348 * config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable.
3349 * config/i386/i386.c (ix86_expand_prologue): Clear it.
3350 * config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx):
3351 Remove "" from match_operand. Emit new insns using emit_move_insn and
3352 set ix86_last_zero_store_uid to INSN_UID of the last store.
3353 Add peephole2s for 1/2/4 stores of const0_rtx following previous
3356 2021-06-22 Martin Liska <mliska@suse.cz>
3358 * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format
3361 2021-06-22 Martin Liska <mliska@suse.cz>
3363 * gcov-io.h: Remove padding entries.
3365 2021-06-22 liuhongt <hongtao.liu@intel.com>
3367 PR tree-optimization/97770
3368 * tree-vect-patterns.c (vect_recog_popcount_pattern):
3370 (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern.
3372 2021-06-22 liuhongt <hongtao.liu@intel.com>
3375 * config/i386/i386-builtin.def (BDESC): Adjust builtin name.
3376 * config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to ..
3377 (expand<mode>_mask): this ..
3378 (*expand<mode>_mask): New pre_reload splitter to transform
3379 v{,p}expand* to vmov* when mask is zero, all ones, or has all
3380 ones in it's lower part, otherwise still generate
3383 2021-06-22 liuhongt <hongtao.liu@intel.com>
3386 * config/i386/i386-expand.c
3387 (ix86_expand_special_args_builtin): Keep constm1_operand only
3388 if it satisfies insn's operand predicate.
3390 2021-06-21 Jason Merrill <jason@redhat.com>
3393 * df-scan.c (df_ref_record): Check that regno < endregno.
3394 * function.c (assign_parms, expand_function_end): Do nothing with a
3395 TYPE_EMPTY_P result.
3397 2021-06-21 Richard Biener <rguenther@suse.de>
3399 PR tree-optimization/101120
3400 * tree-vect-data-refs.c (bump_vector_ptr): Fold the
3402 * tree-vect-slp.c (vect_transform_slp_perm_load): Add
3403 DR chain DCE capability.
3404 * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
3405 * tree-vect-stmts.c (vectorizable_load): Remove unused
3406 loads in the DR chain for SLP.
3408 2021-06-21 Jakub Jelinek <jakub@redhat.com>
3410 PR inline-asm/100785
3411 * gimplify.c (gimplify_asm_expr): Don't diagnose errors if
3412 output or input operands were already error_mark_node.
3413 * cfgexpand.c (expand_asm_stmt): If errors are emitted,
3414 remove all inputs, outputs and clobbers from the asm and
3417 2021-06-21 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
3419 * config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b.
3420 (vceq_s16): Likewise.
3421 (vceq_s32): Likewise.
3422 (vceq_u8): Likewise.
3423 (vceq_u16): Likewise.
3424 (vceq_u32): Likewise.
3425 (vceq_p8): Likewise.
3426 (vceqq_s8): Likewise.
3427 (vceqq_s16): Likewise.
3428 (vceqq_s32): Likewise.
3429 (vceqq_u8): Likewise.
3430 (vceqq_u16): Likewise.
3431 (vceqq_u32): Likewise.
3432 (vceqq_p8): Likewise.
3433 (vceq_f32): Gate __a == __b on __FAST_MATH__.
3434 (vceqq_f32): Likewise.
3435 (vceq_f16): Likewise.
3436 (vceqq_f16): Likewise.
3438 2021-06-21 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
3441 * config/arm/iterators.md (NEON_VACMP): Remove.
3442 * config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE
3444 (neon_vca<cmp_op><mode>_insn): Likewise.
3445 (neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of
3448 2021-06-21 Richard Biener <rguenther@suse.de>
3450 PR tree-optimization/101121
3451 * tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally
3452 when we just lack a stmt with the desired op when doing permutation.
3453 (vect_build_slp_tree): When caching a failed SLP build attempt
3454 assert that at least one lane is marked as not matching.
3456 2021-06-21 liuhongt <hongtao.liu@intel.com>
3459 * config/i386/i386.md: (*anddi_1): Disparage slightly the mask
3460 register alternative.
3461 (*and<mode>_1): Ditto.
3463 (*andn<mode>_1): Ditto.
3464 (*<code><mode>_1): Ditto.
3465 (*<code>qi_1): Ditto.
3466 (*one_cmpl<mode>2_1): Ditto.
3467 (*one_cmplsi2_1_zext): Ditto.
3468 (*one_cmplqi2_1): Ditto.
3469 * config/i386/i386.c (x86_order_regs_for_local_alloc): Change
3470 the order of mask registers to be before general registers.
3472 2021-06-21 Roger Sayle <roger@nextmovesoftware.com>
3475 * config/i386/i386.md: New define_peephole2s to shrink writing
3476 1, 2 or 4 consecutive zeros to memory when optimizing for size.
3478 2021-06-18 Jeff Law <jeffreyalaw@gmail.com>
3480 * config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF.
3481 * config/h8300/logical.md (<code><mode>3 logcial expander): Generate
3482 more efficient code when the source can be trivially simplified.
3484 2021-06-18 Andrew MacLeod <amacleod@redhat.com>
3486 * gimple-range-cache.cc (ranger_cache::range_of_def): Calculate
3487 a range if global is not available.
3488 (ranger_cache::entry_range): Fallback to range_of_def.
3489 * gimple-range-cache.h (range_of_def): Adjust prototype.
3491 2021-06-18 Andrew MacLeod <amacleod@redhat.com>
3493 PR tree-optimization/101014
3494 * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor
3496 (ranger_cache::~ranger_cache): Ditto.
3497 (ranger_cache::enable_new_values): Delete.
3498 (ranger_cache::push_poor_value): Delete.
3499 (ranger_cache::range_of_def): Remove poor value processing.
3500 (ranger_cache::entry_range): Ditto.
3501 (ranger_cache::fill_block_cache): Ditto.
3502 * gimple-range-cache.h (class ranger_cache): Remove poor value members.
3503 * gimple-range.cc (gimple_ranger::range_of_expr): Remove call.
3504 * gimple-range.h (class gimple_ranger): Adjust.
3506 2021-06-18 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3509 * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function
3510 derived from arm_canon_arch.
3511 (arm_canon_arch_option): Call it.
3512 (arm_canon_arch_multilib_option): New function.
3513 * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup.
3514 * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype.
3515 (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro.
3516 (MULTILIB_ARCH_CANONICAL_SPECS): New macro.
3517 (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS.
3518 * config/arm/arm.opt (mlibarch): New option.
3519 * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use
3520 of march on RHS with mlibarch.
3522 2021-06-18 Marcel Vollweiler <marcel@codesourcery.com>
3524 * config.in: Regenerate.
3525 * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
3527 * configure: Regenerate.
3528 * configure.ac: Fix for global_load assembler functions.
3530 2021-06-18 Richard Biener <rguenther@suse.de>
3532 PR tree-optimization/101112
3533 * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition
3534 to lookup a pattern stmt def.
3536 2021-06-18 Jakub Jelinek <jakub@redhat.com>
3538 PR middle-end/101062
3539 * stor-layout.c (finish_bitfield_layout): Don't add bitfield
3540 representatives in QUAL_UNION_TYPE.
3542 2021-06-18 Andrew Pinski <apinski@marvell.com>
3544 * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
3545 Add counting of how many times it is done.
3546 (factor_out_conditional_conversion): Likewise.
3547 (match_simplify_replacement): Likewise.
3548 (value_replacement): Likewise.
3549 (spaceship_replacement): Likewise.
3550 (cond_store_replacement): Likewise.
3551 (cond_if_else_store_replacement_1): Likewise.
3552 (hoist_adjacent_loads): Likewise.
3554 2021-06-18 Andrew Pinski <apinski@marvell.com>
3556 * tree-cfg.c (verify_gimple_assign_unary): Reject point and offset
3557 types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR.
3558 (verify_gimple_assign_binary): Reject point and offset types on
3559 MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR,
3560 FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR,
3561 FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR.
3563 2021-06-18 Michael Meissner <meissner@linux.ibm.com>
3565 * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA
3566 3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions.
3567 * config/rs6000/rs6000.md (s<minmax><mode>3, IEEE128 iterator):
3570 2021-06-17 Aaron Sawdey <acsawdey@linux.ibm.com>
3572 * config/rs6000/genfusion.pl (gen_logical_addsubf): Add
3573 earlyclobber to alts 0/1.
3574 (gen_addadd): Add earlyclobber to alts 0/1.
3575 * config/rs6000/fusion.md: Regenerate file.
3577 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3579 * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec.
3581 2021-06-17 Andrew MacLeod <amacleod@redhat.com>
3583 * gimple-range-cache.cc: Comment cleanups.
3584 * gimple-range-gori.cc: Comment cleanups.
3585 * gimple-range.cc: Comment/spacing cleanups
3586 * value-range.h: Comment cleanups.
3588 2021-06-17 H.J. Lu <hjl.tools@gmail.com>
3591 * calls.c (expand_call): Replace PUSH_ARGS with
3592 targetm.calls.push_argument (0).
3593 (emit_library_call_value_1): Likewise.
3594 * defaults.h (PUSH_ARGS): Removed.
3595 (PUSH_ARGS_REVERSED): Replace PUSH_ARGS with
3596 targetm.calls.push_argument (0).
3597 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
3598 (emit_push_insn): Pass the number bytes to push to
3599 targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0.
3600 * hooks.c (hook_bool_uint_true): New.
3601 * hooks.h (hook_bool_uint_true): Likewise.
3602 * rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with
3603 targetm.calls.push_argument (0).
3604 * target.def (push_argument): Add a targetm.calls hook.
3605 * targhooks.c (default_push_argument): New.
3606 * targhooks.h (default_push_argument): Likewise.
3607 * config/bpf/bpf.h (PUSH_ARGS): Removed.
3608 * config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New.
3609 * config/cr16/cr16.h (PUSH_ARGS): Removed.
3610 * config/i386/i386.c (ix86_push_argument): New.
3611 (TARGET_PUSH_ARGUMENT): Likewise.
3612 * config/i386/i386.h (PUSH_ARGS): Removed.
3613 * config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New.
3614 * config/m32c/m32c.h (PUSH_ARGS): Removed.
3615 * config/nios2/nios2.h (PUSH_ARGS): Likewise.
3616 * config/pru/pru.h (PUSH_ARGS): Likewise.
3617 * doc/tm.texi.in: Remove PUSH_ARGS documentation. Add
3618 TARGET_PUSH_ARGUMENT hook.
3619 * doc/tm.texi: Regenerated.
3621 2021-06-17 Uroš Bizjak <ubizjak@gmail.com>
3624 * config/i386/i386-expand.c (expand_vector_set_var):
3625 Handle V2FS mode remapping. Pass TARGET_MMX_WITH_SSE to
3626 ix86_expand_vector_init_duplicate.
3627 (ix86_expand_vector_init_duplicate): Emit insv_1 for
3628 QImode for !TARGET_PARTIAL_REG_STALL.
3629 * config/i386/predicates.md (vec_setm_mmx_operand): New predicate.
3630 * config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand
3631 as operand 2 predicate. Call ix86_expand_vector_set_var
3632 for non-constant index operand.
3633 (vec_setv2si): Ditto.
3634 (vec_setv4hi): Ditto.
3635 (vec_setv8qi): ditto.
3637 2021-06-17 Aldy Hernandez <aldyh@redhat.com>
3639 PR tree-optimization/100790
3640 * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz
3643 2021-06-17 Martin Liska <mliska@suse.cz>
3645 * doc/invoke.texi: Use consistently -O1 instead of -O.
3647 2021-06-17 Martin Liska <mliska@suse.cz>
3649 * gcov-io.h: Update documentation entry about string format.
3651 2021-06-17 Marius Hillenbrand <mhillen@linux.ibm.com>
3654 * config/s390/vecintrin.h (vec_doublee): Fix to use
3655 __builtin_s390_vflls.
3656 (vec_floate): Fix to use __builtin_s390_vflrd.
3658 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3660 * dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>.
3661 * dominance.h (get_dominated_to_depth): Likewise.
3662 (get_all_dominated_blocks): Likewise.
3663 * cfgcleanup.c (delete_unreachable_blocks): Adjust.
3664 * gcse.c (hoist_code): Likewise.
3665 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
3666 * tree-parloops.c (oacc_entry_exit_ok): Likewise.
3667 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3668 * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise.
3670 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3672 * dominance.c (get_dominated_by_region): Return auto_vec<basic_block>.
3673 * dominance.h (get_dominated_by_region): Likewise.
3674 * tree-cfg.c (gimple_duplicate_sese_region): Adjust.
3675 (gimple_duplicate_sese_tail): Likewise.
3676 (move_sese_region_to_fn): Likewise.
3678 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3680 * dominance.c (get_dominated_by): Return auto_vec<basic_block>.
3681 * dominance.h (get_dominated_by): Likewise.
3682 * auto-profile.c (afdo_find_equiv_class): Adjust.
3683 * cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise.
3684 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
3685 * tree-cfg.c (test_linear_chain): Likewise.
3686 (test_diamond): Likewise.
3688 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3690 * cfgloop.h (get_loop_hot_path): Return auto_vec<basic_block>.
3691 * cfgloopanal.c (get_loop_hot_path): Likewise.
3692 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
3694 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3696 * cgraph.c (cgraph_node::collect_callers): Return
3697 auto_vec<cgraph_edge *>.
3698 * cgraph.h (cgraph_node::collect_callers): Likewise.
3699 * ipa-cp.c (create_specialized_node): Adjust.
3700 (decide_about_value): Likewise.
3701 (decide_whether_version_node): Likewise.
3702 * ipa-sra.c (process_isra_node_results): Likewise.
3704 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3706 * vec.h (vl_ptr>::using_auto_storage): Handle null m_vec.
3707 (auto_vec<T, 0>::auto_vec): Define move constructor, and delete copy
3709 (auto_vec<T, 0>::operator=): Define move assignment and delete copy
3712 2021-06-17 Aldy Hernandez <aldyh@redhat.com>
3714 * gimple-range.cc (debug_seed_ranger): New.
3716 (debug_ranger): New.
3718 2021-06-17 Richard Biener <rguenther@suse.de>
3720 PR tree-optimization/54400
3721 * tree-vectorizer.h (enum slp_instance_kind): Add
3722 slp_inst_kind_bb_reduc.
3723 (reduction_fn_for_scalar_code): Declare.
3724 * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
3725 Check SLP_INSTANCE_KIND instead of looking at the
3727 (vect_slp_analyze_instance_alignment): Likewise.
3728 * tree-vect-loop.c (reduction_fn_for_scalar_code): Export.
3729 * tree-vect-slp.c (vect_slp_linearize_chain): Split out
3730 chain linearization from vect_build_slp_tree_2 and generalize
3731 for the use of BB reduction vectorization.
3732 (vect_build_slp_tree_2): Adjust accordingly.
3733 (vect_optimize_slp): Elide permutes at the root of BB reduction
3735 (vectorizable_bb_reduc_epilogue): New function.
3736 (vect_slp_prune_covered_roots): Likewise.
3737 (vect_slp_analyze_operations): Use them.
3738 (vect_slp_check_for_constructors): Recognize associatable
3739 chains for BB reduction vectorization.
3740 (vectorize_slp_instance_root_stmt): Generate code for the
3741 BB reduction epilogue.
3743 2021-06-17 Andrew MacLeod <amacleod@redhat.com>
3745 * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with
3747 (gori_compute::may_recompute_p): New.
3748 (gori_compute::outgoing_edge_range_p): Perform recomputations.
3749 * gimple-range-gori.h (class gori_compute): Add prototype.
3751 2021-06-17 Andrew MacLeod <amacleod@redhat.com>
3753 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always return
3754 true when a range can be calculated.
3755 * gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p.
3757 2021-06-16 Martin Sebor <msebor@redhat.com>
3759 * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete):
3760 Correct documented defaults.
3762 2021-06-16 Andrew MacLeod <amacleod@redhat.com>
3764 * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize
3765 m_new_value_p directly.
3767 2021-06-16 Uroš Bizjak <ubizjak@gmail.com>
3770 * config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv):
3771 Handle 64bit modes for TARGET_SSE4_1.
3772 (expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3.
3773 (expand_vec_perm_even_odd_pack): Handle V4HI mode.
3774 (expand_vec_perm_even_odd_1) <case E_V4HImode>: Expand via
3775 expand_vec_perm_pshufb2 for TARGET_SSSE3 and via
3776 expand_vec_perm_even_odd_pack for TARGET_SSE4_1.
3777 * config/i386/mmx.md (mmx_packusdw): New insn pattern.
3779 2021-06-16 Jonathan Wright <jonathan.wright@arm.com>
3781 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>):
3782 Change to an expander that emits the correct instruction
3783 depending on endianness.
3784 (aarch64_<sur><addsub>hn<mode>_insn_le): Define.
3785 (aarch64_<sur><addsub>hn<mode>_insn_be): Define.
3787 2021-06-16 Jonathan Wright <jonathan.wright@arm.com>
3789 * config/aarch64/aarch64-simd-builtins.def: Split generator
3790 for aarch64_<su>qmovn builtins into scalar and vector
3792 * config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le):
3794 (aarch64_<su>qmovn<mode>_insn_be): Define.
3795 (aarch64_<su>qmovn<mode>): Split into scalar and vector
3796 variants. Change vector variant to an expander that emits the
3797 correct instruction depending on endianness.
3799 2021-06-16 Jonathan Wright <jonathan.wright@arm.com>
3801 * config/aarch64/aarch64-simd-builtins.def: Split generator
3802 for aarch64_sqmovun builtins into scalar and vector variants.
3803 * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>):
3804 Split into scalar and vector variants. Change vector variant
3805 to an expander that emits the correct instruction depending
3807 (aarch64_sqmovun<mode>_insn_le): Define.
3808 (aarch64_sqmovun<mode>_insn_be): Define.
3810 2021-06-16 Jonathan Wright <jonathan.wright@arm.com>
3812 * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le):
3813 Define - modeling zero-high-half semantics.
3814 (aarch64_xtn<mode>): Change to an expander that emits the
3815 appropriate instruction depending on endianness.
3816 (aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half
3818 (aarch64_xtn2<mode>_le): Rename to...
3819 (aarch64_xtn2<mode>_insn_le): This.
3820 (aarch64_xtn2<mode>_be): Rename to...
3821 (aarch64_xtn2<mode>_insn_be): This.
3822 (vec_pack_trunc_<mode>): Emit truncation instruction instead
3824 * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode
3827 2021-06-16 Martin Jambor <mjambor@suse.cz>
3829 PR tree-optimization/100453
3830 * tree-sra.c (create_access): Disqualify any const candidates
3831 which are written to.
3832 (sra_modify_expr): Do not store sub-replacements back to a const base.
3833 (handle_unscalarized_data_in_subtree): Likewise.
3834 (sra_modify_assign): Likewise. Earlier, use TREE_READONLy test
3835 instead of constant_decl_p.
3837 2021-06-16 Jakub Jelinek <jakub@redhat.com>
3839 PR middle-end/101062
3840 * stor-layout.c (finish_bitfield_representative): For fields in unions
3841 assume nextf is always NULL.
3842 (finish_bitfield_layout): Compute bit field representatives also in
3843 unions, but handle it as if each bitfield was the only field in the
3846 2021-06-16 Richard Biener <rguenther@suse.de>
3848 PR tree-optimization/101088
3849 * tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for
3850 supported refs on edges. Do not assert same ref but
3851 different kind stores are unsuported but mark them so.
3852 (hoist_memory_references): Only look for supported refs
3855 2021-06-16 Roger Sayle <roger@nextmovesoftware.com>
3857 PR rtl-optimization/46235
3858 * config/i386/i386.md: New define_split for bt followed by cmov.
3859 (*bt<mode>_setcqi): New define_insn_and_split for bt followed by setc.
3860 (*bt<mode>_setncqi): New define_insn_and_split for bt then setnc.
3861 (*bt<mode>_setnc<mode>): New define_insn_and_split for bt followed
3862 by setnc with zero extension.
3864 2021-06-16 Richard Biener <rguenther@suse.de>
3866 PR tree-optimization/101083
3867 * tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get
3868 vectype as argument.
3869 (vect_build_slp_tree_2): Adjust.
3871 2021-06-15 Martin Sebor <msebor@redhat.com>
3873 PR middle-end/100876
3874 * builtins.c: (gimple_call_return_array): Account for size_t
3875 mangling as either unsigned int or unsigned long
3877 2021-06-15 Jeff Law <jeffreyalaw@gmail.com>
3879 * compare-elim.c (try_eliminate_compare): Run DCE to clean things
3880 up before eliminating comparisons.
3882 2021-06-15 Aldy Hernandez <aldyh@redhat.com>
3884 * range-op.cc (operator_bitwise_or::wi_fold): Make sure
3885 nonzero|X is nonzero.
3886 (range_op_bitwise_and_tests): Add tests for above.
3888 2021-06-15 Carl Love <cel@us.ibm.com>
3891 * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the
3893 (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2
3896 2021-06-15 Tobias Burnus <tobias@codesourcery.com>
3899 * gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET.
3900 (struct gimplify_omp_ctx): Extend defaultmap array by one.
3901 (new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET].
3902 (omp_notice_variable): Update type classification for Fortran.
3903 (gimplify_scan_omp_clauses): Update calls for new argument; handle
3904 GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY.
3905 * langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument.
3906 * langhooks.c (lhd_omp_scalar_p): Likewise.
3907 (LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
3908 (LANG_HOOKS_DECLS): Add them.
3909 * langhooks.h (struct lang_hooks_for_decls): Add new hooks, update
3910 omp_scalar_p pointer type to include the new bool argument.
3912 2021-06-15 David Malcolm <dmalcolm@redhat.com>
3915 (Special Functions for Debugging the Analyzer): Add
3916 __analyzer_dump_capacity.
3918 2021-06-15 Jakub Jelinek <jakub@redhat.com>
3921 * expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR,
3922 case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode.
3924 2021-06-15 Richard Biener <rguenther@suse.de>
3926 * cfgloopanal.c (mark_irreducible_loops): Use a dominance
3927 check to identify loop latches.
3928 * cfgloop.c (verify_loop_structure): Likewise.
3929 * loop-init.c (apply_loop_flags): Allow marked irreducible
3930 regions even with multiple latches.
3931 * predict.c (rebuild_frequencies): Simplify.
3933 2021-06-15 Richard Biener <rguenther@suse.de>
3935 * tree-ssa-threadupdate.c
3936 (jump_thread_path_registry::mark_threaded_blocks): Assert we
3937 have marked irreducible regions.
3939 2021-06-14 Martin Sebor <msebor@redhat.com>
3942 * builtins.c (gimple_call_return_array): Check for attribute fn spec.
3943 Handle calls to placement new.
3944 (ndecl_dealloc_argno): Avoid placement delete.
3946 2021-06-14 Peter Bergner <bergner@linux.ibm.com>
3949 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use
3950 create_tmp_reg_or_ssa_name().
3952 2021-06-14 Andrew MacLeod <amacleod@redhat.com>
3954 * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
3955 (ranger_cache::enable_new_values): Set to specified value and
3956 return the old value.
3957 (ranger_cache::disable_new_values): Delete.
3958 (ranger_cache::fill_block_cache): Disable non 1st order derived
3960 * gimple-range-cache.h (ranger_cache): Adjust prototypes.
3961 * gimple-range.cc (gimple_ranger::range_of_expr): Adjust.
3963 2021-06-14 Uroš Bizjak <ubizjak@gmail.com>
3966 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
3967 Return true early when testing with V2HImode.
3968 * config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1.
3970 2021-06-14 Christophe Lyon <christophe.lyon@linaro.org>
3972 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): New pattern.
3973 (mve_vec_unpack<US>_hi_<mode>): New pattern.
3974 (@mve_vec_pack_trunc_lo_<mode>): New pattern.
3975 (mve_vmovntq_<supf><mode>): Prefix with '@'.
3976 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move to
3978 (vec_unpack<US>_lo_<mode>): Likewise.
3979 (vec_pack_trunc_<mode>): Rename to
3980 neon_quad_vec_pack_trunc_<mode>.
3981 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): New
3983 (vec_unpack<US>_lo_<mode>): New.
3984 (vec_pack_trunc_<mode>): New.
3986 2021-06-14 Richard Biener <rguenther@suse.de>
3988 PR tree-optimization/100934
3989 * tree-ssa-dom.c (pass_dominator::execute): Properly
3990 mark irreducible regions.
3992 2021-06-14 Martin Liska <mliska@suse.cz>
3994 * doc/invoke.texi: Put r{...} on the same line as @item.
3996 2021-06-14 Martin Liska <mliska@suse.cz>
3998 * doc/invoke.texi: Add missing newline.
4000 2021-06-14 Martin Liska <mliska@suse.cz>
4002 * doc/invoke.texi: Remove '+' charasters.
4004 2021-06-14 Claudiu Zissulescu <claziss@synopsys.com>
4006 * config.gcc (arc): Add support for with_cpu option.
4007 * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu.
4009 2021-06-14 Richard Biener <rguenther@suse.de>
4011 PR tree-optimization/101031
4012 * tree-ssa-strlen.c (maybe_invalidate): Increment max_size
4013 instead of size when accounting for a possibly string
4016 2021-06-14 Martin Liska <mliska@suse.cz>
4018 * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[].
4020 2021-06-14 Aldy Hernandez <aldyh@redhat.com>
4022 * value-query.cc (gimple_range_global): Call get_range_global
4023 if called after inlining.
4025 2021-06-13 Uroš Bizjak <ubizjak@gmail.com>
4028 * config/i386/i386-expand.c (expand_vec_perm_pshufb):
4029 Emit constant permutation insn directly from here.
4031 2021-06-13 Trevor Saunders <tbsaunde@tbsaunde.org>
4033 * attribs.c (find_attribute_namespace): Iterate over vec<> with
4035 * auto-profile.c (afdo_find_equiv_class): Likewise.
4036 * gcc.c (do_specs_vec): Likewise.
4037 (do_spec_1): Likewise.
4038 (driver::set_up_specs): Likewise.
4039 * gimple-loop-jam.c (any_access_function_variant_p): Likewise.
4040 * gimple-ssa-store-merging.c (compatible_load_p): Likewise.
4041 (imm_store_chain_info::try_coalesce_bswap): Likewise.
4042 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
4043 (get_location_for_stmts): Likewise.
4044 * graphite-poly.c (print_iteration_domains): Likewise.
4045 (free_poly_bb): Likewise.
4046 (remove_gbbs_in_scop): Likewise.
4047 (free_scop): Likewise.
4048 (dump_gbb_cases): Likewise.
4049 (dump_gbb_conditions): Likewise.
4050 (print_pdrs): Likewise.
4051 (print_scop): Likewise.
4052 * ifcvt.c (cond_move_process_if_block): Likewise.
4053 * lower-subreg.c (decompose_multiword_subregs): Likewise.
4054 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
4055 * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
4056 * sel-sched-dump.c (dump_insn_vector): Likewise.
4057 * store-motion.c (store_ops_ok): Likewise.
4058 (store_killed_in_insn): Likewise.
4059 * timevar.c (timer::named_items::print): Likewise.
4060 * tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise.
4061 (cleanup_tree_cfg_noloop): Likewise.
4062 * tree-data-ref.c (dump_data_references): Likewise.
4063 (print_dir_vectors): Likewise.
4064 (print_dist_vectors): Likewise.
4065 (dump_data_dependence_relations): Likewise.
4066 (dump_dist_dir_vectors): Likewise.
4067 (dump_ddrs): Likewise.
4068 (create_runtime_alias_checks): Likewise.
4069 (free_subscripts): Likewise.
4070 (save_dist_v): Likewise.
4071 (save_dir_v): Likewise.
4072 (invariant_access_functions): Likewise.
4073 (same_access_functions): Likewise.
4074 (access_functions_are_affine_or_constant_p): Likewise.
4075 (find_data_references_in_stmt): Likewise.
4076 (graphite_find_data_references_in_stmt): Likewise.
4077 (free_dependence_relations): Likewise.
4078 (free_data_refs): Likewise.
4079 * tree-inline.c (copy_debug_stmts): Likewise.
4080 * tree-into-ssa.c (dump_currdefs): Likewise.
4081 (rewrite_update_phi_arguments): Likewise.
4082 * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
4083 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
4085 (vect_slp_analyze_node_dependences): Likewise.
4086 (vect_slp_analyze_instance_dependence): Likewise.
4087 (vect_record_base_alignments): Likewise.
4088 (vect_get_peeling_costs_all_drs): Likewise.
4089 (vect_peeling_supportable): Likewise.
4090 * tree-vectorizer.c (vec_info::~vec_info): Likewise.
4091 (vec_info::free_stmt_vec_infos): Likewise.
4093 2021-06-13 Jeff Law <jeffreyalaw@gmail.com>
4095 * config/h8300/logical.md (<code>qi3_1<cczn>): New pattern.
4096 (andqi3_1<cczn>): Removed.
4097 (<ors>qi3_1): Do not split for IOR/XOR a single bit.
4098 (H8/SX bit logicals): Split out from other patterns.
4099 * config/h8300/multiply.md (mulqihi3_const<cczn>): Renamed from
4100 mulqihi3_const_clobber_flags.
4101 (mulqihi3<cczn>, mulhisi3_const<cczn>, mulhisi3<cczn>): Similarly
4103 2021-06-13 H.J. Lu <hjl.tools@gmail.com>
4106 * config/i386/i386.c (ix86_expand_prologue): Set red_zone_used
4107 to true if red zone is used.
4108 (ix86_output_indirect_jmp): Replace ix86_red_zone_size with
4110 * config/i386/i386.h (machine_function): Add red_zone_used.
4111 (ix86_red_zone_size): Removed.
4112 (ix86_red_zone_used): New.
4113 * config/i386/i386.md (peephole2 patterns): Replace
4114 ix86_red_zone_size with ix86_red_zone_used.
4116 2021-06-12 Jason Merrill <jason@redhat.com>
4118 * doc/extend.texi (unused variable attribute): Applies to
4119 structure fields as well.
4121 2021-06-12 Eugene Rozenfeld <erozen@microsoft.com>
4123 * auto-profile.c (read_profile): fix a typo in an error string
4125 2021-06-11 Thomas Schwinge <thomas@codesourcery.com>
4127 * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
4129 * tree-pretty-print.c (dump_omp_clauses): Update.
4130 (dump_generic_node) <OMP_CLAUSE>: Use it.
4132 2021-06-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4135 * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0,
4136 int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for
4137 the polymorphic variants matching code.
4138 (__arm_vld1q_z): Likewise.
4139 (__arm_vld2q): Likewise.
4140 (__arm_vld4q): Likewise.
4141 (__arm_vldrbq_gather_offset): Likewise.
4142 (__arm_vldrbq_gather_offset_z): Likewise.
4144 2021-06-11 Roger Sayle <roger@nextmovesoftware.com>
4146 PR tree-optimization/96392
4147 * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype.
4149 2021-06-11 Roger Sayle <roger@nextmovesoftware.com>
4151 PR tree-optimization/96392
4152 * fold-const.c (fold_real_zero_addition_p): Take both arguments
4153 of the addition or subtraction, not just the zero. Use this
4154 other argument in tests for signaling NaNs and signed zeros.
4155 (tree_expr_maybe_real_minus_zero_p): New predicate.
4156 * fold-const.h (fold_real_zero_addition_p): Update prototype.
4157 (tree_expr_maybe_real_minus_zero_p): New function prototype.
4158 * match.pd: Update calls to fold_real_zero_addition_p.
4159 Replace HONOR_NANS with tree_expr_maybe_nan_p.
4160 Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p.
4161 Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p.
4162 * tree-ssa-reassoc.c (eliminate_using_constants): Update
4163 call to fold_real_zero_addition_p.
4165 2021-06-11 Richard Biener <rguenther@suse.de>
4167 PR tree-optimization/101025
4168 * tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process
4169 all refs that require dependence checking.
4171 2021-06-11 Richard Biener <rguenther@suse.de>
4173 PR tree-optimization/101028
4174 * tree-vect-slp.c (vect_build_slp_tree_2): When SLP
4175 reassoc discovery fails fatally, mark appropriate lanes
4178 2021-06-11 Richard Biener <rguenther@suse.de>
4180 PR tree-optimization/101026
4181 * tree-vect-slp.c (vect_build_slp_tree_2): Make sure we
4182 have a representative for the associated chain nodes.
4184 2021-06-11 Jakub Jelinek <jakub@redhat.com>
4186 PR rtl-optimization/101008
4187 * simplify-rtx.c (relational_result): New function.
4188 (simplify_logical_relational_operation,
4189 simplify_relational_operation): Use it.
4191 2021-06-11 Jakub Jelinek <jakub@redhat.com>
4194 * config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2.
4196 2021-06-11 Uroš Bizjak <ubizjak@gmail.com>
4199 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Return
4200 false if the permutation can be implemented with constant
4201 permutation instruction in wider mode.
4202 (canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb.
4203 Handle V8QImode and V4HImode.
4205 2021-06-11 Martin Liska <mliska@suse.cz>
4207 PR gcov-profile/100788
4208 * common.opt: Add new option.
4209 * coverage.c (coverage_begin_function): Emit warning instead on
4210 the internal compiler error.
4211 * doc/invoke.texi: Document the option.
4212 * toplev.c (process_options): Enable it by default.
4214 2021-06-11 Richard Biener <rguenther@suse.de>
4216 PR middle-end/101009
4217 * tree-data-ref.c (build_classic_dist_vector_1): Make sure
4218 to set *init_b to true when we encounter a constant equal
4220 (compute_affine_dependence): Also dump the actual DR_REF.
4222 2021-06-10 Aldy Hernandez <aldyh@redhat.com>
4224 PR tree-optimization/100984
4225 * gimple-ssa-evrp.c (ssa_equiv_stack): Use auto_vec for
4227 (ssa_equiv_stack::~ssa_equiv_stack): Remove.
4229 2021-06-11 Kewen Lin <linkw@linux.ibm.com>
4231 * config/rs6000/rs6000.md
4232 (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New
4233 define_insn_and_split.
4235 2021-06-11 Richard Biener <rguenther@suse.de>
4237 * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort
4238 to sort operands of the associative chain.
4240 2021-06-11 Richard Biener <rguenther@suse.de>
4242 * system.h (gcc_stablesort_r): Declare.
4243 * sort.cc (gcc_sort_r): Support stable sort.
4244 (gcc_stablesort_r): Define.
4245 * vec.h (vec<>::stablesort): Add.
4247 2021-06-10 Uroš Bizjak <ubizjak@gmail.com>
4250 * config/i386/i386-expand.c (ix86_split_mmx_punpck):
4251 Handle V2SF mode. Emit SHUFPS to fixup unpack-high for V2SF mode.
4252 (expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1.
4253 (expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3.
4254 (expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1.
4255 (expand_vec_perm_interleave2): Handle 64bit modes.
4256 (expand_vec_perm_even_odd_pack): Handle V8QI mode.
4257 (expand_vec_perm_even_odd_1): Ditto.
4258 (ix86_vectorize_vec_perm_const): Ditto.
4259 * config/i386/i386.md (UNSPEC_PSHUFB): Move from ...
4260 * config/i386/sse.md: ... here.
4261 * config/i386/mmx.md (*vec_interleave_lowv2sf):
4262 New insn_and_split pattern.
4263 (*vec_interleave_highv2sf): Ditto.
4264 (mmx_pshufbv8qi3): New insn pattern.
4265 (*mmx_pblendw): Ditto.
4267 2021-06-10 Peter Bergner <bergner@linux.ibm.com>
4269 * config/rs6000/rs6000-builtin.def (build_pair): New built-in.
4270 (build_acc): Likewise.
4271 * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble
4272 source operands in little-endian mode.
4273 (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR.
4274 (mma_init_builtins): Likewise.
4275 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness
4276 ordering for the MMA assemble and build source operands.
4277 * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair):
4279 (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove
4282 2021-06-10 Jeff Law <jeffreyalaw@gmail.com>
4284 * config/h8300/h8300.c (select_cc_mode): Handle MEM. Use
4286 * config/h8300/extensions.md: Replace _clobber_flags patterns
4289 2021-06-10 Robin Dapp <rdapp@linux.ibm.com>
4291 * config/s390/vector.md (vcond_mask_<mode><mode>): Change to
4292 (vcond_mask_<mode><tointvec>): this.
4294 2021-06-10 Andrew Stubbs <ams@codesourcery.com>
4295 Thomas Schwinge <thomas@codesourcery.com>
4297 * omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into...
4298 (BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these.
4299 * gimple.h (enum gf_mask): Split
4300 'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into
4301 'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and
4302 'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'.
4303 (is_gimple_omp_oacc): Update.
4304 * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
4305 * gimplify.c (gimplify_omp_target_update): Likewise.
4306 * omp-expand.c (expand_omp_target, build_omp_regions_1)
4307 (omp_make_gimple_edges): Likewise.
4308 * omp-low.c (check_omp_nesting_restrictions, lower_omp_target):
4311 2021-06-10 Aldy Hernandez <aldyh@redhat.com>
4313 * value-query.cc (value_query::value_on_edge): Rename name to
4315 (range_query::range_on_edge): Same.
4316 (range_query::value_of_expr): Same.
4317 (range_query::value_on_edge): Same.
4318 * value-query.h (class value_query): Same.
4319 (class range_query): Same.
4321 2021-06-10 Richard Biener <rguenther@suse.de>
4323 PR tree-optimization/101003
4324 * tree-vect-slp.c (vect_build_slp_tree_2): Appropriately
4325 use the pattern stmt defs when linearizing a chain.
4327 2021-06-10 Jakub Jelinek <jakub@redhat.com>
4330 * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use
4331 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
4333 2021-06-10 Clement Chigot <clement.chigot@atos.net>
4335 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive.
4336 * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
4338 2021-06-09 Andrew Pinski <apinski@marvell.com>
4340 PR tree-optimization/100925
4341 * match.pd (a ? CST1 : CST2): Limit transformations
4342 that would produce a negative to integeral types only.
4343 Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also.
4345 2021-06-09 Jeff Law <jeffreyalaw@gmail.com>
4348 2021-06-09 Jeff Law <jeffreyalaw@gmail.com>
4350 * doc/tm.texi: Correctly update.
4352 2021-06-09 Jeff Law <jeffreyalaw@gmail.com>
4354 * doc/tm.texi: Correctly update.
4356 2021-06-09 H.J. Lu <hjl.tools@gmail.com>
4359 * doc/tm.texi.in (Trampolines): Add a missing blank line.
4361 2021-06-09 Paul Eggert <eggert@cs.ucla.edu>
4364 * doc/invoke.texi (Code Gen Options); Document that -fno-trampolines
4365 and -ftrampolines work only with Ada.
4366 * doc/tm.texi.in (Trampolines): Likewise.
4367 * doc/tm.texi: Regenerated.
4369 2021-06-09 Carl Love <cel@us.ibm.com>
4371 * config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq):
4372 Add define for new builtins.
4373 * config/rs6000/altivec.md(altivec_vreveti2): Add define_expand.
4374 * config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL): Add
4375 overloaded builtin definitions.
4376 (VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D,
4377 VSIGNEXTSD2Q): Add builtin expansions.
4378 (SIGNEXT): Add P10 overload definition.
4379 * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL,
4380 P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions.
4381 * config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn.
4382 (vsignextend_v2di_v1ti, vsignextend_qi_<mode>, vsignextend_hi_<mode>,
4383 vsignextend_si_v2di)[VIlong]: Add define_expand.
4384 Make define_insn vsx_sign_extend_si_v2di visible.
4385 * doc/extend.texi: Add documentation for the vec_signexti,
4386 vec_signextll builtins and vec_signextq.
4388 2021-06-09 Carl Love <cel@us.ibm.com>
4390 * config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf,
4391 __floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw,
4392 __floattikf_sw, __floatuntikf_sw respectively.
4393 * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
4394 fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add
4395 define_insn for mode IEEE 128.
4397 2021-06-09 Carl Love <cel@us.ibm.com>
4399 * config/rs6000/altivec.md (altivec_vslq, altivec_vsrq):
4400 Rename to altivec_vslq_<mode>, altivec_vsrq_<mode>, mode VEC_TI.
4401 * config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md.
4402 (vashlv1ti3): Change to vashl<mode>3, mode VEC_TI.
4403 (vlshrv1ti3): Change to vlshr<mode>3, mode VEC_TI.
4404 * config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update
4405 uses of VSX_TI to VEC_TI.
4407 2021-06-09 Carl Love <cel@us.ibm.com>
4409 * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns.
4411 2021-06-09 Carl Love <cel@us.ibm.com>
4413 * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new
4415 * config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD,
4416 UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs.
4417 (altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud,
4418 altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq,
4419 altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm,
4420 altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq,
4421 altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New
4423 (vec_widen_umult_even_v2di, vec_widen_smult_even_v2di,
4424 vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi,
4425 altivec_vrlqnm): New define_expands.
4426 * config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P,
4427 VCMPGTUT_P): Add macro expansions.
4428 (BU_P10V_AV_P): Add builtin predicate definition.
4429 (VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI,
4430 CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P,
4431 VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ,
4432 VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI,
4433 MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions.
4434 (VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions.
4435 * config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT,
4436 P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI,
4437 P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST,
4438 P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI,
4439 P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI,
4440 P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD,
4441 P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD,
4442 P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS,
4443 P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI,
4444 P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ,
4445 P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ,
4446 P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P,
4447 P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P,
4448 P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET,
4449 P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P,
4450 P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI,
4451 P10V_BUILTIN_MODU_V1TI):
4452 New overloaded definitions.
4453 (rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT,
4454 P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI,
4455 P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT,
4456 P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI,
4457 P10V_BUILTIN_CMPLE_U1TI]: New case statements.
4458 (rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]:
4460 (altivec_init_builtins): New E_V1TImode case statement.
4461 (builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD,
4462 P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI,
4463 P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI,
4464 P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements.
4465 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode,
4466 E_V1TImode]: New case statements.
4467 * config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum
4468 value RS6000_BTI_bool_V1TI.
4469 * config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti,
4470 vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti,
4471 vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p,
4472 vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3,
4473 vlshrv1ti3, vashrv1ti3): New define_expands.
4474 * config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ,
4475 UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ,
4476 UNSPEC_VSX_MODUQ): New unspecs.
4477 (mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti,
4478 vsx_diveu_v1ti, vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New
4480 (vcmpnet): New define_expand.
4481 * doc/extend.texi: Add documentation for the new builtins vec_rl,
4482 vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo,
4483 vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt,
4484 vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt,
4485 vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt,
4486 vec_any_ge, vec_any_le.
4488 2021-06-09 Carl Love <cel@us.ibm.com>
4490 * config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix
4491 bug in argument generation.
4493 2021-06-09 Christophe Lyon <christophe.lyon@linaro.org>
4495 * config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S.
4497 * config/arm/mve.md (mve_vclzq_<supf><mode>): Add '@' prefix,
4498 remove <supf> iterator.
4499 (mve_vclzq_u<mode>): New.
4500 * config/arm/neon.md (clz<mode>2): Rename to neon_vclz<mode>.
4501 (neon_vclz<mode): Move to ...
4502 * config/arm/unspecs.md (VCLZQ_U, VCLZQ_S): Remove.
4503 * config/arm/vec-common.md: ... here. Add support for MVE.
4505 2021-06-09 Christophe Lyon <christophe.lyon@linaro.org>
4507 * config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'.
4508 (@mve_vrhaddq_<supf><mode): Likewise.
4509 * config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise.
4510 * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
4511 (avg<mode>3_ceil", uavg<mode>3_ceil): New patterns.
4513 2021-06-09 imba-tjd <109224573@qq.com>
4515 * doc/invoke.texi: Fix typo.
4517 2021-06-09 Roger Sayle <roger@nextmovesoftware.com>
4520 * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]:
4521 Support evaluation of fmod/fmodf/fmodl at compile-time.
4523 2021-06-09 Richard Biener <rguenther@suse.de>
4525 PR tree-optimization/100981
4526 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
4527 gimple_get_lhs to also handle calls.
4528 * tree-vect-slp-patterns.c (complex_pattern::build): Transfer
4531 2021-06-09 Richard Biener <rguenther@suse.de>
4533 PR tree-optimization/97832
4534 * tree-vectorizer.h (_slp_tree::failed): New.
4535 * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
4537 (_slp_tree::~_slp_tree): Free failed.
4538 (vect_build_slp_tree): Retain failed nodes and record
4539 matches in them, copying that back out when running
4540 into a cached fail. Dump start and end of discovery.
4542 (vect_build_slp_tree_2): Handle associatable chains
4543 together doing more aggressive operand swapping.
4545 2021-06-09 H.J. Lu <hjl.tools@gmail.com>
4548 * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and
4550 * doc/install.texi: Require glibc 2.1 and binutils 2.12 for
4551 Linux and GNU targets.
4553 2021-06-09 Richard Biener <rguenther@suse.de>
4555 * tree-vect-stmts.c (vect_is_simple_use): Always get dt
4558 2021-06-09 Claudiu Zissulescu <claziss@synopsys.com>
4560 * config/arc/arc.md (loop_end): Change it to
4561 define_insn_and_split.
4563 2021-06-09 Claudiu Zissulescu <claziss@synopsys.com>
4565 * config/arc/arc.md (maddhisi4): Use VMAC2H instruction.
4566 (machi): New pattern.
4567 (umaddhisi4): Use VMAC2HU instruction.
4568 (umachi): New pattern.
4570 2021-06-09 Claudiu Zissulescu <claziss@synopsys.com>
4572 * config/arc/arc-protos.h (arc_split_move_p): New prototype.
4573 * config/arc/arc.c (arc_split_move_p): New function.
4574 (arc_split_move): Clean up.
4575 * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p.
4576 (movdf_insn): Likewise.
4577 * config/arc/simdext.md (mov<VWH>_insn): Likewise.
4579 2021-06-09 Uroš Bizjak <ubizjak@gmail.com>
4582 * config/i386/i386.c (print_operand_address_as): Rename "no_rip"
4583 argument to "raw". Do not emit segment overrides when "raw" is true.
4585 2021-06-09 Martin Liska <mliska@suse.cz>
4587 * doc/gcov.texi: Create a proper JSON files.
4588 * doc/invoke.texi: Remove dots in order to make it a valid
4591 2021-06-09 Xionghu Luo <luoxhu@linux.ibm.com>
4593 * config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New.
4594 (insn_is_load_p): Use pattern_is_rotate64.
4595 (insn_is_swap_p): Likewise.
4596 (quad_aligned_load_p): Likewise.
4597 (const_load_sequence_p): Likewise.
4598 (replace_swapped_aligned_load): Likewise.
4599 (recombine_lvx_pattern): Likewise.
4600 (recombine_stvx_pattern): Likewise.
4602 2021-06-09 Andrew MacLeod <amacleod@redhat.com>
4604 * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a
4605 fur_stmt source record.
4606 * gimple-range.cc (fur_source::get_operand): Generic range query.
4607 (fur_source::get_phi_operand): New.
4608 (fur_source::register_dependency): New.
4609 (fur_source::query): New.
4610 (class fur_edge): New. Edge source for operands.
4611 (fur_edge::fur_edge): New.
4612 (fur_edge::get_operand): New.
4613 (fur_edge::get_phi_operand): New.
4614 (fur_edge::query): New.
4615 (fur_stmt::fur_stmt): New.
4616 (fur_stmt::get_operand): New.
4617 (fur_stmt::get_phi_operand): New.
4618 (fur_stmt::query): New.
4619 (class fur_depend): New. Statement source and process dependencies.
4620 (fur_depend::fur_depend): New.
4621 (fur_depend::register_dependency): New.
4622 (class fur_list): New. List source for operands.
4623 (fur_list::fur_list): New.
4624 (fur_list::get_operand): New.
4625 (fur_list::get_phi_operand): New.
4626 (fold_range): New. Instantiate appropriate fur_source class and fold.
4627 (fold_using_range::range_of_range_op): Use new API.
4628 (fold_using_range::range_of_address): Ditto.
4629 (fold_using_range::range_of_phi): Ditto.
4630 (imple_ranger::fold_range_internal): Use fur_depend class.
4631 (fold_using_range::range_of_ssa_name_with_loop_info): Use new API.
4632 * gimple-range.h (class fur_source): Now a base class.
4633 (class fur_stmt): New.
4634 (fold_range): New prototypes.
4635 (fur_source::fur_source): Delete.
4637 2021-06-08 Andrew Pinski <apinski@marvell.com>
4639 PR tree-optimization/25290
4640 * tree-ssa-phiopt.c (xor_replacement): Delete.
4641 (tree_ssa_phiopt_worker): Delete use of xor_replacement.
4642 (match_simplify_replacement): Allow one cheap preparation
4643 statement that can be moved to before the if.
4645 2021-06-08 Pat Haugen <pthaugen@linux.ibm.com>
4647 * config/rs6000/power10.md (power10-fused-load, power10-fused-store,
4648 power10-fused_alu, power10-fused-vec, power10-fused-branch): New.
4650 2021-06-08 Jeff Law <jeffreyalaw@gmail.com>
4652 * config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split.
4653 Create length attribute on define_insn_and_split. Only split for cases which we
4655 (andqi3_1<cczn>): Renamed from andqi3_1_clobber_flags. Only handle AND here and
4656 fix length computation.
4657 (b<code><mode>msx): Combine QImode and HImode H8/SX patterns using iterator.
4659 2021-06-08 Richard Biener <rguenther@suse.de>
4661 PR tree-optimization/100923
4662 * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to
4663 the operand vector to be valueized.
4664 (valueize_refs): Likewise.
4665 (valueize_shared_reference_ops_from_ref): Adjust.
4666 (valueize_shared_reference_ops_from_call): Likewise.
4667 (vn_reference_lookup_3): Likewise.
4668 (vn_reference_lookup_pieces): Likewise. Re-valueize
4669 with honoring availability when we are about to create
4670 the ao_ref and valueized before.
4671 (vn_reference_lookup): Likewise.
4672 (vn_reference_insert_pieces): Adjust.
4674 2021-06-08 Richard Biener <rguenther@suse.de>
4676 * tree-vectorizer.h (_slp_instance::root_stmt): Change to...
4677 (_slp_instance::root_stmts): ... a vector.
4678 (SLP_INSTANCE_ROOT_STMT): Rename to ...
4679 (SLP_INSTANCE_ROOT_STMTS): ... this.
4680 (slp_root::root): Change to...
4681 (slp_root::roots): ... a vector.
4682 (slp_root::slp_root): Adjust.
4683 * tree-vect-slp.c (_slp_instance::location): Adjust.
4684 (vect_free_slp_instance): Release the root stmt vector.
4685 (vect_build_slp_instance): Adjust.
4686 (vect_analyze_slp): Likewise.
4687 (_bb_vec_info::~_bb_vec_info): Likewise.
4688 (vect_slp_analyze_operations): Likewise.
4689 (vect_bb_vectorization_profitable_p): Likewise. Adjust
4690 costs for the root stmt.
4691 (vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs
4693 (vect_slp_analyze_bb_1): Simplify by marking all root stmts
4695 (vectorize_slp_instance_root_stmt): Adjust.
4696 (vect_schedule_slp): Likewise.
4698 2021-06-08 Aldy Hernandez <aldyh@redhat.com>
4700 * gimple-ssa-evrp.c (class ssa_equiv_stack): New.
4701 (ssa_equiv_stack::ssa_equiv_stack): New.
4702 (ssa_equiv_stack::~ssa_equiv_stack): New.
4703 (ssa_equiv_stack::enter): New.
4704 (ssa_equiv_stack::leave): New.
4705 (ssa_equiv_stack::push_replacement): New.
4706 (ssa_equiv_stack::get_replacement): New.
4707 (is_pointer_ssa): New.
4708 (class pointer_equiv_analyzer): New.
4709 (pointer_equiv_analyzer::pointer_equiv_analyzer): New.
4710 (pointer_equiv_analyzer::~pointer_equiv_analyzer): New.
4711 (pointer_equiv_analyzer::set_global_equiv): New.
4712 (pointer_equiv_analyzer::set_cond_equiv): New.
4713 (pointer_equiv_analyzer::get_equiv): New.
4714 (pointer_equiv_analyzer::enter): New.
4715 (pointer_equiv_analyzer::leave): New.
4716 (pointer_equiv_analyzer::get_equiv_expr): New.
4717 (pta_valueize): New.
4718 (pointer_equiv_analyzer::visit_stmt): New.
4719 (pointer_equiv_analyzer::visit_edge): New.
4720 (hybrid_folder::value_of_expr): Call PTA.
4721 (hybrid_folder::value_on_edge): Same.
4722 (hybrid_folder::pre_fold_bb): New.
4723 (hybrid_folder::post_fold_bb): New.
4724 (hybrid_folder::pre_fold_stmt): New.
4725 (rvrp_folder::pre_fold_bb): New.
4726 (rvrp_folder::post_fold_bb): New.
4727 (rvrp_folder::pre_fold_stmt): New.
4728 (rvrp_folder::value_of_expr): Call PTA.
4729 (rvrp_folder::value_on_edge): Same.
4731 2021-06-08 Jakub Jelinek <jakub@redhat.com>
4734 * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't
4735 check TREE_CODE if OMP_CLAUSE_DECL is NULL.
4737 2021-06-08 Richard Biener <rguenther@suse.de>
4739 PR middle-end/100951
4740 * tree-vect-generic.c (expand_vector_piecewise): Build a
4741 VECTOR_CST if all elements are constant.
4742 (expand_vector_condition): Likewise.
4743 (lower_vec_perm): Likewise.
4744 (expand_vector_conversion): Likewise.
4746 2021-06-08 Martin Liska <mliska@suse.cz>
4748 * doc/invoke.texi: Document new param evrp-sparse-threshold.
4750 2021-06-08 Martin Liska <mliska@suse.cz>
4752 * genautomata.c (create_automata): Fix typo.
4754 2021-06-08 Kewen Lin <linkw@linux.ibm.com>
4756 PR tree-optimization/100794
4757 * tree-predcom.c (tree_predictive_commoning_loop): Add parameter
4758 allow_unroll_p and only allow unrolling when it's true.
4759 (tree_predictive_commoning): Add parameter allow_unroll_p and
4761 (run_tree_predictive_commoning): Likewise.
4762 (pass_predcom::gate): Check flag_tree_loop_vectorize and
4763 global_options_set.x_flag_predictive_commoning.
4764 (pass_predcom::execute): Adjust for allow_unroll_p.
4766 2021-06-08 Kewen Lin <linkw@linux.ibm.com>
4768 * tree-predcom.c (execute_pred_commoning): Remove update_ssa call.
4769 (tree_predictive_commoning_loop): Factor some cleanup stuffs into
4770 lambda function cleanup, remove scev_reset call, and adjust return
4772 (tree_predictive_commoning): Adjust for different changed values,
4773 only set flag TODO_update_ssa_only_virtuals if changed.
4774 (pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals
4775 from todo_flags_finish.
4777 2021-06-07 Andrew MacLeod <amacleod@redhat.com>
4779 * gimple-range-cache.cc (class sbr_sparse_bitmap): New.
4780 (sbr_sparse_bitmap::sbr_sparse_bitmap): New.
4781 (sbr_sparse_bitmap::bitmap_set_quad): New.
4782 (sbr_sparse_bitmap::bitmap_get_quad): New.
4783 (sbr_sparse_bitmap::set_bb_range): New.
4784 (sbr_sparse_bitmap::get_bb_range): New.
4785 (sbr_sparse_bitmap::bb_range_p): New.
4786 (block_range_cache::block_range_cache): initialize bitmap obstack.
4787 (block_range_cache::~block_range_cache): Destruct obstack.
4788 (block_range_cache::set_bb_range): Decide when to utilze the
4789 sparse on entry cache.
4790 * gimple-range-cache.h (block_range_cache): Add bitmap obstack.
4791 * params.opt (-param=evrp-sparse-threshold): New.
4793 2021-06-07 Andrew MacLeod <amacleod@redhat.com>
4795 * bitmap.c (bitmap_set_aligned_chunk): New.
4796 (bitmap_get_aligned_chunk): New.
4797 (test_aligned_chunk): New.
4798 (bitmap_c_tests): Call test_aligned_chunk.
4799 * bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New.
4801 2021-06-07 Uroš Bizjak <ubizjak@gmail.com>
4804 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
4806 (ix86_expand_vector_init_one_nonzero): Ditto.
4807 (ix86_expand_vector_init_one_var): Ditto.
4808 (ix86_expand_vector_init_general): Ditto.
4809 * config/i386/mmx.md (vec_initv4qiqi): New expander.
4811 2021-06-07 Jeff Law <jeffreyalaw@gmail.com>
4813 * config/h8300/movepush.md: Change most _clobber_flags
4814 patterns to instead use <cczn> subst.
4815 (movsi_cczn): New pattern with usable CC cases split out.
4816 (movsi_h8sx_cczn): Likewise.
4818 2021-06-07 Martin Liska <mliska@suse.cz>
4820 * common/common-target.def: Split long lines and replace them
4822 * target.def: Likewise.
4823 * doc/tm.texi: Re-generated.
4825 2021-06-07 Jakub Jelinek <jakub@redhat.com>
4828 * fold-const.c (fold_read_from_vector): Return NULL if trying to
4829 read from a CONSTRUCTOR with vector type elements.
4831 2021-06-07 Jakub Jelinek <jakub@redhat.com>
4833 PR middle-end/100898
4834 * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy
4835 should copy any arguments. Don't call gimple_call_num_args
4836 on id->call_stmt or call_stmt more than once.
4838 2021-06-07 liuhongt <hongtao.liu@intel.com>
4841 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine
4843 (<insn>v4siv4di2): Delete constraints for define_expand.
4845 2021-06-07 liuhongt <hongtao.liu@intel.com>
4848 * config/i386/i386-expand.c (ix86_expand_builtin): Remove
4849 assignment of cfun->machine->has_explicit_vzeroupper.
4850 * config/i386/i386-features.c
4851 (ix86_add_reg_usage_to_vzerouppers): Delete.
4852 (ix86_add_reg_usage_to_vzeroupper): Ditto.
4853 (rest_of_handle_insert_vzeroupper): Remove
4854 ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end
4856 (gate): Remove cfun->machine->has_explicit_vzeroupper.
4857 * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper):
4859 * config/i386/i386.c (ix86_insn_callee_abi): New function.
4860 (ix86_initialize_callee_abi): Ditto.
4861 (ix86_expand_avx_vzeroupper): Ditto.
4862 (ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper
4864 (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi.
4865 (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper
4867 * config/i386/i386.h (struct GTY(()) machine_function): Delete
4868 has_explicit_vzeroupper.
4869 * config/i386/i386.md (enum unspec): New member
4871 (ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New
4872 define_constants for insn callee abi index.
4873 * config/i386/predicates.md (vzeroupper_pattern): Adjust.
4874 * config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted.
4875 (avx_vzeroupper): Call ix86_expand_avx_vzeroupper.
4876 (*avx_vzeroupper): Rename to ..
4877 (avx_vzeroupper_callee_abi): .. this, and adjust pattern as
4878 call_insn which has a special vzeroupper ABI.
4879 (*avx_vzeroupper_1): Deleted.
4881 2021-06-07 liuhongt <hongtao.liu@intel.com>
4884 * df-scan.c (df_get_call_refs): When call_insn is a fake call,
4885 it won't use stack pointer reg.
4886 * final.c (leaf_function_p): When call_insn is a fake call, it
4887 won't affect caller as a leaf function.
4888 * reg-stack.c (callee_clobbers_any_stack_reg): New.
4889 (subst_stack_regs): When call_insn doesn't clobber any stack
4890 reg, don't clear the arguments.
4891 * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is
4893 * shrink-wrap.c (requires_stack_frame_p): No need for stack
4894 frame for a fake call.
4895 * rtl.h (FAKE_CALL_P): New macro.
4897 2021-06-06 Eric Botcazou <ebotcazou@adacore.com>
4899 * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename
4901 (sparc_order_regs_for_local_alloc): ...this.
4902 (sparc_leaf_reg_remap): Declare.
4903 * config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust.
4904 (LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap.
4905 * config/sparc/sparc.c (leaf_reg_remap): Delete.
4906 (order_regs_for_local_alloc): Rename to...
4907 (sparc_order_regs_for_local_alloc): ...this.
4908 (sparc_leaf_reg_remap): New function.
4909 (sparc_conditional_register_usage): Do not modify leaf_reg_remap.
4911 2021-06-06 David Edelsohn <dje.gcc@gmail.com>
4913 * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common):
4914 Use assemble_name to output BSS section name.
4916 2021-06-06 Uroš Bizjak <ubizjak@gmail.com>
4918 * config/i386/constraints.md (Bs):
4919 Remove boolean operators from match_test RTX.
4922 (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX.
4925 2021-06-06 Martin Liska <mliska@suse.cz>
4927 * doc/extend.texi: Add missing @headitem.
4928 * doc/invoke.texi: Likewise.
4929 * doc/objc.texi: Likewise.
4931 2021-06-06 Martin Liska <mliska@suse.cz>
4933 * genhooks.c (emit_findices): Remove unused function.
4934 (emit_documentation): Do not call emit_findices
4935 and do not search for @Fcode directives.
4937 2021-06-06 Martin Liska <mliska@suse.cz>
4939 * doc/invoke.texi: Remove extra character.
4941 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
4943 * config/sh/sh.md (doloop_end_split): Fix empty split condition.
4945 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
4947 * config/sparc/sparc.md (*snedi<W:mode>_zero_vis3,
4948 *neg_snedi<W:mode>_zero_subxc, *plus_snedi<W:mode>_zero,
4949 *plus_plus_snedi<W:mode>_zero, *minus_snedi<W:mode>_zero,
4950 *minus_minus_snedi<W:mode>_zero): Fix empty split condition.
4952 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
4954 * config/or1k/or1k.md (*movdi): Fix empty split condition.
4956 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
4958 * config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty
4961 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
4963 * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec,
4964 *zero_extendsidi2): Fix empty split condition.
4966 2021-06-05 Jeff Law <jeffreyalaw@gmail.com>
4968 * config/h8300/addsub.md: Fix split condition in define_insn_and_split
4970 * config/h8300/bitfield.md: Likewise.
4971 * config/h8300/combiner.md: Likewise.
4972 * config/h8300/divmod.md: Likewise.
4973 * config/h8300/extensions.md: Likewise.
4974 * config/h8300/jumpcall.md: Likewise.
4975 * config/h8300/movepush.md: Likewise.
4976 * config/h8300/multiply.md: Likewise.
4977 * config/h8300/other.md: Likewise.
4978 * config/h8300/shiftrotate.md: Likewise.
4979 * config/h8300/logical.md: Likewise. Fix split pattern to use
4980 code iterator that somehow slipped through.
4982 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
4984 PR middle-end/100905
4985 * tree-nested.c (convert_nonlocal_omp_clauses,
4986 convert_local_omp_clauses): Handle OMP_CLAUSE_BIND.
4988 2021-06-04 Martin Sebor <msebor@redhat.com>
4990 PR middle-end/100732
4991 * gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls
4992 with either source or destination argument of invalid type.
4993 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking
4994 calls with arguments of invalid type.
4996 2021-06-04 Martin Sebor <msebor@redhat.com>
4998 * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected
5000 (attr_access::vla_bounds): Also handle VLA bounds.
5002 2021-06-04 Uroš Bizjak <ubizjak@gmail.com>
5004 * config/i386/predicates.md (GOT_memory_operand):
5005 Implement using match_code RTXes.
5006 (GOT32_symbol_operand): Ditto.
5008 2021-06-04 Uroš Bizjak <ubizjak@gmail.com>
5011 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
5013 (ix86_expand_vector_init_general): Ditto.
5014 Use SImode instead of word_mode for logic operations
5015 when GET_MODE_SIZE (mode) < UNITS_PER_WORD.
5016 (expand_vec_perm_even_odd_1): Assert that V2HI mode should be
5017 implemented by expand_vec_perm_1.
5018 (expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes
5019 should be implemented using standard shuffle patterns.
5020 (ix86_vectorize_vec_perm_const): Handle V2HImode. Add V4HI and
5021 V2HI modes to modes, implementable with shuffle for one operand.
5022 * config/i386/mmx.md (*punpckwd): New insn_and_split pattern.
5023 (*pshufw_1): New insn pattern.
5024 (*vec_dupv2hi): Ditto.
5025 (vec_initv2hihi): New expander.
5027 2021-06-04 Kewen Lin <linkw@linux.ibm.com>
5029 * config/arm/vfp.md (no_literal_pool_df_immediate,
5030 no_literal_pool_sf_immediate): Fix empty split condition.
5032 2021-06-04 Kewen Lin <linkw@linux.ibm.com>
5034 * config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext,
5035 *tls_dynamic_gnu2_combine_32): Fix empty split condition.
5036 * config/i386/sse.md (*<sse2_avx2>_pmovmskb_lt,
5037 *<sse2_avx2>_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt,
5038 *<sse4_1_avx2>_pblendvb_lt): Likewise.
5040 2021-06-04 Jakub Jelinek <jakub@redhat.com>
5043 * config/i386/i386-expand.c (ix86_expand_vector_init): Handle
5044 concatenation from half-sized modes with TImode elements.
5046 2021-06-04 Claudiu Zissulescu <claziss@synopsys.com>
5048 * config/arc/arc.c (arc_override_options): Disable millicode
5049 thunks when RF16 is on.
5051 2021-06-04 Haochen Gui <guihaoc@gcc.gnu.org>
5053 * config/rs6000/rs6000.h (PROMOTE_MODE): Remove.
5055 2021-06-04 Haochen Gui <guihaoc@gcc.gnu.org>
5057 * config/rs6000/rs6000-call.c (rs6000_promote_function_mode):
5058 Replace PROMOTE_MODE marco with its content.
5060 2021-06-03 Kewen Lin <linkw@linux.ibm.com>
5062 * config/cris/cris.md (*addi_reload): Fix empty split condition.
5064 2021-06-03 Jim Wilson <jimw@sifive.com>
5066 * config.gcc (riscv*-*-*): If --with-riscv-attribute not used,
5067 turn it on for all riscv targets.
5069 2021-06-03 Uroš Bizjak <ubizjak@gmail.com>
5072 * config/i386/i386-expand.c (ix86_expand_vector_set):
5073 Handle V2HI and V4QI modes.
5074 (ix86_expand_vector_extract): Ditto.
5075 * config/i386/mmx.md (*pinsrw): New insn pattern.
5078 (*pextrw_zext): Ditto.
5080 (*pextrb_zext): Ditto.
5081 (vec_setv2hi): New expander.
5082 (vec_extractv2hihi): Ditto.
5083 (vec_setv4qi): Ditto.
5084 (vec_extractv4qiqi): Ditto.
5085 (vec_setv8qi): Enable only for TARGET_SSE4_1.
5086 (vec_extractv8qiqi): Ditto.
5088 2021-06-03 Aaron Sawdey <acsawdey@linux.ibm.com>
5090 * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input
5091 order to subf instruction.
5092 * config/rs6000/fusion.md: Regenerate.
5094 2021-06-03 Aldy Hernandez <aldyh@redhat.com>
5096 * calls.c (get_size_range): Use range_of_expr instead of
5097 determine_value_range.
5098 * tree-affine.c (expr_to_aff_combination): Same.
5099 * tree-data-ref.c (split_constant_offset): Same.
5100 * tree-vrp.c (determine_value_range_1): Remove.
5101 (determine_value_range): Remove.
5102 * tree-vrp.h (determine_value_range): Remove.
5104 2021-06-03 Aldy Hernandez <aldyh@redhat.com>
5106 * function-tests.c (test_ranges): Call gimple_range_tests.
5107 * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt
5109 * gimple-range.cc (fur_source::get_operand): Do not call
5110 get_tree_range or gimple_range_global.
5112 (get_tree_range): Move to value-query.cc.
5113 Call get_arith_expr_range.
5114 (gimple_ranger::range_of_expr): Add argument to get_tree_range.
5115 Include gimple-range-tests.cc.
5116 * gimple-range.h (fold_range): Add argument.
5117 (get_tree_range): Remove.
5118 * selftest.h (gimple_range_tests): New.
5119 * value-query.cc (global_range_query::range_of_expr): Add
5121 (range_query::get_tree_range): Move from gimple-range.cc.
5122 * value-query.h (class range_query): Add get_tree_range and
5123 get_arith_expr_range. Make fur_source a friend.
5124 * vr-values.c (vr_values::range_of_expr): Pass stmt to
5126 * gimple-range-tests.cc: New file.
5128 2021-06-03 Aldy Hernandez <aldyh@redhat.com>
5130 * gimple-range.cc (gimple_ranger::export_global_ranges): Call
5131 update_global_range.
5132 * value-query.cc (update_global_range): New.
5133 * value-query.h (update_global_range): New.
5135 2021-06-03 David Malcolm <dmalcolm@redhat.com>
5137 * diagnostic-show-locus.c (diagnostic_show_locus): Don't reject
5138 printing the same location twice if there are fix-it hints,
5139 multiple locations, or a label.
5141 2021-06-03 Andre Vieira <andre.simoesdiasvieira@arm.com>
5143 * tree-vect-loop.c (vect_transform_loop): Use main loop's various'
5144 thresholds to narrow the upper bound on epilogue iterations.
5146 2021-06-03 Christophe Lyon <christophe.lyon@linaro.org>
5148 * config/arm/mve.md (mve_vabsq_f<mode>): Use 'abs' instead of unspec.
5149 (mve_vabsq_s<mode>): Likewise.
5150 * config/arm/neon.md (abs<mode>2): Rename to neon_abs<mode>2.
5151 * config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete.
5152 * config/arm/vec-common.md (neg<mode>2): Rename to
5153 <absneg_str><mode>2.
5155 2021-06-03 Claudiu Zissulescu <claziss@synopsys.com>
5157 * common/config/arc/arc-common.c (arc_option_optimization_table):
5159 * config/arc/arc.c (arc_unalign_branch_p): Remove unused function.
5160 * config/arc/arc.h (TARGET_MIXED_CODE): Remove macro.
5161 (INDEX_REG_CLASS): Only refer to GENERAL_REGS.
5162 * config/arc/arc.md (abssi2_mixed): Remove pattern.
5163 * config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete.
5164 (malign-call): Likewise.
5165 (mmixed-code): Likewise.
5166 * doc/invoke.texi (ARC): Update doc.
5168 2021-06-03 Martin Liska <mliska@suse.cz>
5170 * common.opt: Use proper Enum values.
5171 * opts.c (COVERAGE_SANITIZER_OPT): Remove.
5172 (parse_sanitizer_options): Handle only sanitizer_opts.
5173 (common_handle_option): Just assign value.
5175 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
5178 * tree-inline.c (inline_forbidden_p): Remove test on return type.
5180 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
5182 * dwarf2out.c (loc_list_from_tree_1) <FUNCTION_DECL>: Also generate
5183 DW_OP_GNU_variable_value referencing an existing DIE at file scope.
5184 (type_byte_size): Inline into...
5185 (add_byte_size_attribute): ...this and call add_scalar_info.
5187 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
5189 * dwarf2out.c (mem_loc_descriptor) <UDIV>: Fix typo.
5190 (typed_binop_from_tree): New function.
5191 (loc_list_from_tree_1) <EXACT_DIV_EXPR>: For an unsigned type,
5192 turn a divide by a power of 2 into a shift.
5193 <CEIL_DIV_EXPR>: For an unsigned type, use a signed divide if the
5194 size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a
5195 typed divide by calling typed_binop_from_tree.
5197 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
5199 * dwarf2out.c (scompare_loc_descriptor): Fix head comment.
5200 (is_handled_procedure_type): Likewise.
5201 (struct loc_descr_context): Add strict_signedness field.
5202 (resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type,
5203 DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret.
5204 (resolve_args_picking): Minor tweak.
5205 (function_to_dwarf_procedure): Initialize strict_signedness field.
5206 (type_byte_size): Likewise.
5207 (field_byte_offset): Likewise.
5208 (gen_descr_array_type_die): Likewise.
5209 (gen_variant_part): Likewise.
5210 (loc_list_from_tree_1) <CALL_EXPR>: Tidy up and set strict_signedness
5211 to true when a context is present before evaluating the arguments.
5212 <COND_EXPR>: Do not generate a useless comparison with zero.
5213 When dereferencing an address, if strict_signedness is true and the
5214 type is small and signed, use DW_OP_deref_type to do the dereference
5215 and then DW_OP_convert to convert back to the generic type.
5217 2021-06-03 Jakub Jelinek <jakub@redhat.com>
5220 * tree-inline.c (copy_tree_body_r): Handle iterators on
5221 OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND.
5223 2021-06-03 Kewen Lin <linkw@linux.ibm.com>
5225 * config/arc/arc.md (*bbit_di): Remove.
5227 2021-06-02 Christoph Muellner <cmuellner@gcc.gnu.org>
5229 PR rtl-optimization/100264
5230 * ree.c (get_sub_rtx): Ignore SET expressions without register
5231 destinations and remove assertion, as it is not valid anymore
5232 with this new behaviour.
5233 (merge_def_and_ext): Eliminate destination check for register
5234 as such SET expressions can't occur anymore.
5235 (combine_reaching_defs): Likewise.
5237 2021-06-02 Jakub Jelinek <jakub@redhat.com>
5240 * config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid
5241 -Wtype-limits warnings.
5242 (DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition
5243 in operands to avoid -Wsign-compare warnings.
5245 2021-06-02 Pat Haugen <pthaugen@linux.ibm.com>
5247 * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use
5250 2021-06-02 Vineet Gupta <vgupta@synopsys.com>
5252 * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux.
5254 2021-06-02 Ilya Leoshkevich <iii@linux.ibm.com>
5256 * config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single
5258 * config/s390/subst.md(cconly_subst): Use a single constraint
5261 2021-06-02 Martin Liska <mliska@suse.cz>
5263 * ipa-icf.h: Use auto_vec for memory_access_types.
5265 2021-06-02 Jeff Law <jeffreyalaw@gmail.com>
5267 * config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused
5268 argument from prototype.
5269 (output_logical_op): Add rtx_code argument.
5270 (compute_logical_op_length): Likewise.
5271 * config/h8300/h8300.c (h8300_and_costs): Pass additional argument
5272 to compute_a_shift_length.
5273 (output_logical_op); New argument with the rtx code rather than
5274 extracting it from an operand. Handle QImode too.
5275 (compute_logical_op_length): Similary.
5276 (compute_a_shift_length): Drop unused argument.
5277 * config/h8300/h8300.md (logicals): New code iterator.
5278 * config/h8300/logical.md (<code><mode>3 expander): Combine
5279 the "and" expander with the "ior"/"xor" expander.
5280 (bclr<mode>msx): Combine the QI/HI mode patterns.
5281 (<logical><mode>3 insns): Use code iterator rather than match_operator.
5282 Handle QImode as well. Update call to output_logical_op and
5283 compute_logical_op_length to pass in rtx_code
5284 Fix split condition on all define_insn_and_split patterns.
5285 (one_cmpl<mode>2<cczn>): Use <cczn> to support both clobbering
5286 the flags and setting ZN via existing define_subst.
5287 * config/h8300/shiftrotate.md: Drop unused argument from
5288 calls to compute_a_shift_length.
5289 Signed-off-by: Jeff Law <jeffreyalaw@gmail.com>
5291 2021-06-01 Andrew Pinski <apinski@marvell.com>
5293 PR tree-optimization/25290
5294 * tree-ssa-phiopt.c (match_simplify_replacement):
5296 (tree_ssa_phiopt_worker): Use match_simplify_replacement.
5297 (two_value_replacement): Change the comment about
5298 conditional_replacement.
5299 (conditional_replacement): Delete.
5301 2021-06-01 Andrew Pinski <apinski@marvell.com>
5303 PR tree-optimization/95481
5304 * tree-tailcall.c (find_tail_calls): Handle empty typed
5307 2021-06-01 Andrew Pinski <apinski@marvell.com>
5309 * gimplify.c (zero_sized_field_decl): Delete
5310 (zero_sized_type): Delete
5311 (gimplify_init_ctor_eval): Use is_empty_type instead
5312 of zero_sized_field_decl.
5313 (gimplify_modify_expr): Use is_empty_type instead of
5316 2021-06-01 Jason Merrill <jason@redhat.com>
5319 * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment.
5321 2021-06-01 Jason Merrill <jason@redhat.com>
5324 * diagnostic.h (warning_enabled_at): Declare.
5325 * diagnostic.c (diagnostic_enabled): Factor out from...
5326 (diagnostic_report_diagnostic): ...here.
5327 (warning_enabled_at): New.
5329 2021-06-01 Aldy Hernandez <aldyh@redhat.com>
5331 * gimple-ssa-evrp.c: Enable exporting of global ranges.
5333 2021-06-01 Martin Liska <mliska@suse.cz>
5336 * doc/invoke.texi: Mention that -fgcse-after-reload
5337 is enabled with -O3.
5339 2021-06-01 liuhongt <hongtao.liu@intel.com>
5341 PR tree-optimization/98365
5342 * tree-if-conv.c (strip_nop_cond_scalar_reduction): New function.
5343 (is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction.
5344 (convert_scalar_cond_reduction): Ditto.
5345 (predicate_scalar_phi): Ditto.
5347 2021-06-01 Andrew MacLeod <amacleod@redhat.com>
5349 PR tree-optimization/100781
5350 * gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new
5351 value calculation by default.
5352 (ranger_cache::enable_new_values): New.
5353 (ranger_cache::disable_new_values): New.
5354 (ranger_cache::push_poor_value): Check if new values are allowed.
5355 * gimple-range-cache.h (class ranger_cache): New member/methods.
5356 * gimple-range.cc (gimple_ranger::range_of_expr): Check for debug
5357 statement, and disable/renable new value calculation.
5359 2021-06-01 Andrew MacLeod <amacleod@redhat.com>
5361 * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete.
5362 (ranger_cache::range_of_def): New.
5363 (ranger_cache::entry_range): New.
5364 (ranger_cache::exit_range): New.
5365 (ranger_cache::range_of_expr): Adjust.
5366 (ranger_cache::range_on_edge): Adjust.
5367 (ranger_cache::propagate_cache): Call exit_range directly.
5368 * gimple-range-cache.h (class ranger_cache): Adjust.
5370 2021-06-01 Andrew MacLeod <amacleod@redhat.com>
5372 * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for
5373 gori_compute being a member rather than base class.
5374 dervied call to member call.
5375 (ranger_cache::dump): No longer dump gori_map.
5376 (ranger_cache::dump_bb): New.
5377 (ranger_cache::get_non_stale_global_range): Adjust for gori_compute
5378 being a member rather than base class.
5379 (ranger_cache::set_global_range): Ditto.
5380 (ranger_cache::ssa_range_in_bb): Ditto.
5381 (ranger_cache::range_of_expr): New.
5382 (ranger_cache::range_on_edge): New.
5383 (ranger_cache::block_range): Adjust for gori_computes. Debug changes.
5384 (ranger_cache::propagate_cache): Adjust debugging output.
5385 (ranger_cache::fill_block_cache): Adjust for gori_computes. Debug
5387 * gimple-range-cache.h (class ranger_cache): Make gori_compute a
5388 member, and inherit from range_query instead.
5389 (ranger_cache::dump_bb): New. split from dump.
5390 * gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete.
5391 (gori_compute::expr_range_at_stmt): Delete.
5392 (gori_compute::compute_name_range_op): Delete.
5393 (gori_compute::compute_operand_range_switch): Add fur_source.
5394 (gori_compute::compute_operand_range): Add fur_source param, inline
5395 old compute_name_range_op and optimize_logical_operands.
5396 (struct tf_range): Delete.
5397 (gori_compute::logical_combine): Adjust
5398 (gori_compute::optimize_logical_operands): Delete.
5399 (gori_compute::compute_logical_operands_in_chain): Delete.
5400 (gori_compute::compute_logical_operands): Adjust.
5401 (gori_compute::compute_operand1_range): Adjust to fur_source.
5402 (gori_compute::compute_operand2_range): Ditto.
5403 (gori_compute::compute_operand1_and_operand2_range): Ditto.
5404 (gori_compute::outgoing_edge_range_p): Add range_query parameter,
5405 and adjust to fur_source.
5406 * gimple-range-gori.h (class gori_compute): Simplify and adjust to
5407 range_query and fur_source.
5408 * gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge
5409 from the ranger_cache..
5410 (gimple_ranger::fold_range_internal): Adjust to base class change of
5412 (gimple_ranger::dump_bb): Adjust dump.
5413 * gimple-range.h (gimple_ranger):export gori computes object.
5415 2021-06-01 Andrew MacLeod <amacleod@redhat.com>
5417 PR tree-optimization/100774
5418 * gimple-range-cache.cc (ranger_cache::get_non_stale_global_range):
5419 Constant values are also not stale.
5420 (ranger_cache::set_global_range): Range invariant values should also
5421 have the correct timestamp.
5423 2021-05-31 Martin Liska <mliska@suse.cz>
5425 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
5426 Unpack FUNCTION_DECL_DECL_TYPE.
5427 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
5428 Stream FUNCTION_DECL_DECL_TYPE instead of
5429 DECL_IS_OPERATOR_NEW_P.
5430 * tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE
5432 (DECL_IS_OPERATOR_NEW_P): Likewise.
5433 (DECL_IS_OPERATOR_DELETE_P): Likewise.
5434 (DECL_LAMBDA_FUNCTION_P): Likewise.
5436 2021-05-31 Richard Biener <rguenther@suse.de>
5439 * internal-fn.c (expand_SHUFFLEVECTOR): Define.
5440 * internal-fn.def (SHUFFLEVECTOR): New.
5441 * internal-fn.h (expand_SHUFFLEVECTOR): Declare.
5442 * doc/extend.texi: Document __builtin_shufflevector.
5444 2021-05-31 Peter Bergner <bergner@linux.ibm.com>
5447 * config/rs6000/predicates.md(mma_assemble_input_operand): Allow
5448 indexed form addresses.
5450 2021-05-29 Jeff Law <jlaw@tachyum.com>
5452 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused
5453 parameter. Call callers fixed.
5455 (output_plussi): Add FALLTHRU markers.
5456 (h8300_shift_needs_scratch_p): Add gcc_unreachable marker.
5458 2021-05-29 Jakub Jelinek <jakub@redhat.com>
5461 * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd
5462 combined with parallel, make sure to add shared clause to
5463 parallel for explicit linear clause.
5465 2021-05-29 Aldy Hernandez <aldyh@redhat.com>
5467 PR tree-optimization/100787
5468 * gimple-ssa-evrp.c: Disable exporting of global ranges.
5470 2021-05-28 Jason Merrill <jason@redhat.com>
5472 * tree-iterator.h (struct tree_stmt_iterator): Add operator++,
5473 operator--, operator*, operator==, and operator!=.
5474 (class tsi_range): New.
5476 2021-05-28 Richard Biener <rguenther@suse.de>
5478 PR tree-optimization/100778
5479 * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly
5480 trapping ops in different BBs.
5482 2021-05-28 Richard Biener <rguenther@suse.de>
5485 * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack
5486 copy fntype from original call.
5488 2021-05-28 Martin Liska <mliska@suse.cz>
5490 PR gcov-profile/100751
5491 * doc/gcov.texi: Revert partially a hunk that was wrong.
5493 2021-05-28 Cooper Qu <cooper.qu@linux.alibaba.com>
5495 * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi):
5497 (HAVE_sync_compare_and_swaphi): Likewise.
5498 (HAVE_sync_compare_and_swapsi): Likewise.
5500 2021-05-28 Jakub Jelinek <jakub@redhat.com>
5503 * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define.
5505 2021-05-28 Tobias Burnus <tobias@codesourcery.com>
5507 * gimplify.c (gimplify_omp_affinity): New.
5508 (gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards.
5509 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY.
5510 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY.
5511 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause.
5512 (walk_tree_1): Handle OMP_CLAUSE_AFFINITY.
5514 2021-05-28 Joern Rennecke <joern.rennecke@riscy-ip.com>
5515 Richard Biener <rguenther@suse.de>
5517 * match.pd <popcount & / + pattern matching>:
5518 When generating popcount directly fails, try doing it in two halves.
5520 2021-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
5522 * Makefile.in (generated_files): Add gimple-match.c and
5525 2021-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
5527 * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP.
5529 2021-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
5531 * gensupport.c (alter_constraints): Add MATCH_SCRATCH case.
5533 2021-05-28 Kewen Lin <linkw@linux.ibm.com>
5535 PR tree-optimization/99398
5536 * tree-ssa-forwprop.c (simplify_permutation): Optimize some cases
5537 where the fed operands are CTOR/CST and propagated through
5538 VIEW_CONVERT_EXPR. Call vec_perm_indices::new_shrunk_vector.
5539 * vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New
5541 * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New
5544 2021-05-27 Uroš Bizjak <ubizjak@gmail.com>
5546 * config/i386/mmx.md (addv2sf3): Do not call
5547 ix86_fixup_binary_operands_no_copy.
5550 (<smaxmin:code>v2sf3): Ditto.
5551 (<plusminus:insn><MMXMODEI:mode>3): Ditto.
5552 (<plusminus:insn><VI_32:mode>3): Remove expander.
5553 (<plusminus:insn><VI_32:mode>3): Rename from
5554 "*<plusminus:insn><VI_32:mode>3".
5555 (mulv4hi): Do not call ix86_fixup_binary_operands_no_copy.
5556 (mulv2hi3): Remove expander.
5557 (mulv2hi3): Rename from *mulv2hi3.
5558 (<s>mulv2hi3_highpart): Remove expander.
5559 (<s>mulv2hi3_highpart): Rename from *<s>mulv2hi3_highpart.
5560 (<smaxmin:code><MMXMODE14:mode>3): Rename from
5561 "*mmx_<smaxmin:code><MMXMODE14:mode>3".
5562 (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Remove expander.
5563 (SMAXMIN_MMXMODEI): Remove mode iterator.
5564 (<smaxmin:code>v4hi3): New expander.
5565 (<smaxmin:code>v4qi3): Rename from *<smaxmin:code>v4qi3.
5566 (<smaxmin:code>v2hi3): Rename from *<smaxmin:code>v2hi3.
5567 (<smaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
5568 (SMAXMIN_VI_32): Remove mode iterator.
5569 (<umaxmin:code><MMXMODE24:mode>3): Rename from
5570 "*mmx_<umaxmin:code><MMXMODE24:mode>3".
5571 (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Remove expander.
5572 (UMAXMIN_MMXMODEI): Remove mode iterator.
5573 (<umaxmin:code>v8qi3): New expander.
5574 (<umaxmin:code>v4qi3): Rename from *<umaxmin:code>v4qi3.
5575 (<umaxmin:code>v2hi3): Rename from *<umaxmin:code>v2hi3.
5576 (<umaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
5577 (UMAXMIN_VI_32): Remove mode iterator.
5578 (<any_shift:insn>v2hi3): Remove expander.
5579 (<any_shift:insn>v2hi3): Rename from *<any_shift:insn>v2hi3.
5580 (<any_logic:code><MMXMODEI:mode>3): Do not call
5581 ix86_fixup_binary_operands_no_copy.
5582 (<any_logic:code><VI_32:mode>3): Remove expander.
5583 (<any_logic:code><VI_32:mode>3): Rename from
5584 "*<any_logic:code><VI_32:mode>3".
5585 (uavg<mode>3_ceil): Do not call ix86_fixup_binary_operands_no_copy.
5586 * config/i386/sse.md (div<VF2:mode>3): Do not call
5587 ix86_fixup_binary_operands_no_copy.
5588 (div<VF1:mode>3): Ditto.
5589 (<maxmin:code><VI8_AVX2_AVX512F:mode>3): Ditto.
5590 (smulhrsv4hi3): Ditto.
5591 (smulhrsv2hi3): Ditto.
5593 2021-05-27 Martin Sebor <msebor@redhat.com>
5595 * ggc.h (gt_ggc_mx): Add overloads for all integers.
5597 * hash-map.h (class hash_map): Add pch_nx_helper overloads for all
5599 (hash_map::operator==): New function.
5601 2021-05-27 Uroš Bizjak <ubizjak@gmail.com>
5604 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
5605 For TARGET_XOP bypass SSE comparisons for all supported vector modes.
5606 * config/i386/mmx.md (*xop_maskcmp<MMXMODEI:mode>3): New insn pattern.
5607 (*xop_maskcmp<VI_32:mode>3): Ditto.
5608 (*xop_maskcmp_uns<MMXMODEI:mode>3): Ditto.
5609 (*xop_maskcmp_uns<VI_32:mode>3): Ditto.
5611 2021-05-27 Richard Earnshaw <rearnsha@arm.com>
5614 * config/arm/arm.c (arm_configure_build_target): Remove parameter
5615 opts_set, directly check opts parameters for being non-null.
5616 (arm_option_restore): Update call to arm_configure_build_target.
5617 (arm_option_override): Likewise.
5618 (arm_can_inline_p): Likewise.
5619 (arm_valid_target_attribute_tree): Likewise.
5620 * config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
5621 * config/arm/arm-protos.h (arm_configure_build_target): Adjust
5624 2021-05-27 Aldy Hernandez <aldyh@redhat.com>
5626 * vr-values.c (simplify_conversion_using_ranges): Use
5627 get_range_query instead of get_global_range_query.
5629 2021-05-27 Aldy Hernandez <aldyh@redhat.com>
5631 * gimple-range.cc (get_range_global): Move to value-query.cc.
5632 (gimple_range_global): Same.
5633 (get_global_range_query): Same.
5634 (global_range_query::range_of_expr): Same.
5635 * gimple-range.h (class global_range_query): Move to
5637 (gimple_range_global): Same.
5638 * tree-ssanames.c (get_range_info): Move to value-query.cc.
5639 (get_ptr_nonnull): Same.
5640 * tree-ssanames.h (get_range_info): Remove.
5641 (get_ptr_nonnull): Remove.
5642 * value-query.cc (get_ssa_name_range_info): Move from
5644 (get_ssa_name_ptr_info_nonnull): Same.
5645 (get_range_global): Move from gimple-range.cc.
5646 (gimple_range_global): Same.
5647 (get_global_range_query): Same.
5648 (global_range_query::range_of_expr): Same.
5649 * value-query.h (class global_range_query): Move from
5651 (gimple_range_global): Same.
5653 2021-05-27 Uroš Bizjak <ubizjak@gmail.com>
5656 * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern.
5657 (uavgv2hi3_ceil): Ditto.
5659 2021-05-26 Eric Botcazou <ebotcazou@adacore.com>
5662 * doc/extend.texi (scalar_storage_order): Rephrase slightly.
5664 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
5666 * tree-ssanames.c (get_range_info): Merge both copies of
5667 get_range_info into one that works with irange.
5668 * tree-ssanames.h (get_range_info): Remove version that works on
5671 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
5673 * builtins.c (check_nul_terminated_array): Convert to get_range_query.
5674 (expand_builtin_strnlen): Same.
5675 (determine_block_size): Same.
5676 * fold-const.c (expr_not_equal_to): Same.
5677 * gimple-fold.c (size_must_be_zero_p): Same.
5678 * gimple-match-head.c: Include gimple-range.h.
5679 * gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query.
5680 * gimple-ssa-warn-restrict.c
5681 (builtin_memref::extend_offset_range): Same.
5682 * graphite-sese-to-poly.c (add_param_constraints): Same.
5683 * internal-fn.c (get_min_precision): Same.
5684 * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same.
5685 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
5687 * tree-data-ref.c (split_constant_offset): Same.
5688 (dr_step_indicator): Same.
5689 * tree-dfa.c (get_ref_base_and_extent): Same.
5690 * tree-scalar-evolution.c (iv_can_overflow_p): Same.
5691 * tree-ssa-loop-niter.c (refine_value_range_using_guard): Same.
5692 (determine_value_range): Same.
5693 (record_nonwrapping_iv): Same.
5694 (infer_loop_bounds_from_signedness): Same.
5695 (scev_var_range_cant_overflow): Same.
5696 * tree-ssa-phiopt.c (two_value_replacement): Same.
5697 * tree-ssa-pre.c (insert_into_preds_of_block): Same.
5698 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same.
5699 * tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same.
5701 (dump_strlen_info): Same.
5702 (set_strlen_range): Same.
5703 (maybe_diag_stxncpy_trunc): Same.
5704 (get_len_or_size): Same.
5705 (handle_integral_assign): Same.
5706 * tree-ssa-structalias.c (find_what_p_points_to): Same.
5707 * tree-ssa-uninit.c (find_var_cmp_const): Same.
5708 * tree-switch-conversion.c (bit_test_cluster::emit): Same.
5709 * tree-vect-patterns.c (vect_get_range_info): Same.
5710 (vect_recog_divmod_pattern): Same.
5711 * tree-vrp.c (intersect_range_with_nonzero_bits): Same.
5712 (register_edge_assert_for_2): Same.
5713 (determine_value_range_1): Same.
5714 * tree.c (get_range_pos_neg): Same.
5715 * vr-values.c (vr_values::get_lattice_entry): Same.
5716 (vr_values::update_value_range): Same.
5717 (simplify_conversion_using_ranges): Same.
5719 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
5721 * gimple-ssa-warn-alloca.c (alloca_call_type): Use
5722 get_range_query instead of query argument.
5723 (pass_walloca::execute): Enable and disable global ranger.
5725 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
5727 * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call
5729 (rvrp_folder::~rvrp_folder): Call disable_ranger.
5730 (hybrid_folder::hybrid_folder): Call enable_ranger.
5731 (hybrid_folder::~hybrid_folder): Call disable_ranger.
5733 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
5735 * function.c (allocate_struct_function): Set cfun->x_range_query.
5736 * function.h (struct function): Declare x_range_query.
5737 (get_range_query): New.
5738 (get_global_range_query): New.
5739 * gimple-range-cache.cc (ssa_global_cache::ssa_global_cache):
5740 Remove call to safe_grow_cleared.
5741 * gimple-range.cc (get_range_global): New.
5742 (gimple_range_global): Move from gimple-range.h.
5743 (get_global_range_query): New.
5744 (global_range_query::range_of_expr): New.
5745 (enable_ranger): New.
5746 (disable_ranger): New.
5747 * gimple-range.h (gimple_range_global): Move to gimple-range.cc.
5748 (class global_range_query): New.
5749 (enable_ranger): New.
5750 (disable_ranger): New.
5751 * gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename
5752 dump_all_value_ranges to dump.
5753 * tree-vrp.c (vrp_prop::finalize): Same.
5754 * value-query.cc (range_query::dump): New.
5755 * value-query.h (range_query::dump): New.
5756 * vr-values.c (vr_values::dump_all_value_ranges): Rename to...
5757 (vr_values::dump): ...this.
5758 * vr-values.h (class vr_values): Rename dump_all_value_ranges to
5759 dump and make virtual.
5761 2021-05-26 Uroš Bizjak <ubizjak@gmail.com>
5763 * config/i386/i386.c (ix86_autovectorize_vector_modes):
5764 Add V4QImode and V16QImode for TARGET_SSE2.
5765 * doc/sourcebuild.texi (Vector-specific attributes):
5766 Add vect64 and vect32 description.
5768 2021-05-26 Bernd Edlinger <bernd.edlinger@hotmail.de>
5770 * gimple-range-gori.cc (range_def_chain::register_dependency):
5771 Resize m_def_chain when needed.
5773 2021-05-26 Christophe Lyon <christophe.lyon@linaro.org>
5775 * config/arm/mve.md (mve_vaddvq_<supf><mode>): Prefix with '@'.
5776 * config/arm/neon.md (reduc_plus_scal_<mode>): Move to ..
5777 * config/arm/vec-common.md: .. here. Add support for MVE.
5779 2021-05-26 Jakub Jelinek <jakub@redhat.com>
5781 * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove
5783 * config/microblaze/microblaze.c (microblaze_legitimize_address,
5785 microblaze_option_override, print_operand): Likewise.
5786 * config/microblaze/microblaze.md (call_internal_plt,
5787 call_value_intern_plt, call_value_intern): Likewise.
5788 * config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise.
5789 * config/iq2000/iq2000.md (call_internal1, call_value_internal1,
5790 call_value_multiple_internal1): Likewise.
5791 * config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise.
5793 2021-05-26 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5795 * config/arc/arc.c (arc_address_cost, arc_print_operand_address,
5796 arc_ccfsm_advance, symbolic_reference_mentioned_p,
5797 arc_raw_symbolic_reference_mentioned_p): Remove register
5800 2021-05-26 Jakub Jelinek <jakub@redhat.com>
5803 * omp-low.c: Include omp-offload.h.
5804 (create_omp_child_function): If current_function_decl has
5805 "omp declare target" attribute and is_gimple_omp_offloaded,
5806 remove that attribute from the copy of attribute list and
5807 add "omp target entrypoint" attribute instead.
5808 (lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.*
5809 variables for offloading if in omp_maybe_offloaded_ctx.
5810 * omp-offload.c (pass_omp_target_link::execute): Nullify second
5811 argument to GOMP_target_data_ext in offloaded code.
5813 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
5815 * config/csky/csky.c (csky_can_change_mode_class): Delete.
5816 For csky, HF/SF mode use the low bits of VREGS.
5818 2021-05-26 Eric Botcazou <ebotcazou@adacore.com>
5820 * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a
5821 DECL which is a reference for OMP.
5823 2021-05-26 Martin Liska <mliska@suse.cz>
5825 PR gcov-profile/100751
5826 * doc/gcov.texi: Document that __gcov_dump can be called just
5827 once and that __gcov_reset resets run-time counters.
5829 2021-05-26 Martin Liska <mliska@suse.cz>
5831 * doc/install.texi: Port relevant part from install-old.texi
5832 and re-generate list of CPUs and systems.
5834 2021-05-26 Martin Liska <mliska@suse.cz>
5836 * Makefile.in: Remove it.
5837 * doc/include/fdl.texi: Update next/previous chapters.
5838 * doc/install.texi: Likewise.
5839 * doc/install-old.texi: Removed.
5841 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
5843 * config/csky/csky.c (ck810_legitimate_index_p): Support
5844 "base + index" with DF mode.
5845 * config/csky/constraints.md ("Y"): New constraint for memory operands
5846 without index register.
5847 * config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m"
5848 when mov between memory and general registers, and lower their priority.
5849 * config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise.
5851 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
5853 * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete.
5855 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
5857 * config/csky/csky.md (untyped_call): Emit clobber for return
5858 registers to mark them used.
5860 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
5862 * config/csky/csky.md (cskyv2_sextend_ldbs): New.
5864 2021-05-26 Andrew Pinski <apinski@marvell.com>
5866 * match.pd (x < 0 ? ~y : y): New patterns.
5868 2021-05-26 Andrew Pinski <apinski@marvell.com>
5870 * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0,
5871 A?POW2:0 and A?0:POW2.
5873 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5875 * gimple-range-gori.cc (class logical_stmt_cache): Delete
5876 (logical_stmt_cache::logical_stmt_cache ): Delete.
5877 (logical_stmt_cache::~logical_stmt_cache): Delete.
5878 (logical_stmt_cache::cache_entry::dump): Delete.
5879 (logical_stmt_cache::get_range): Delete.
5880 (logical_stmt_cache::cached_name ): Delete.
5881 (logical_stmt_cache::same_cached_name): Delete.
5882 (logical_stmt_cache::cacheable_p): Delete.
5883 (logical_stmt_cache::slot_diagnostics ): Delete.
5884 (logical_stmt_cache::dump): Delete.
5885 (gori_compute_cache::gori_compute_cache): Delete.
5886 (gori_compute_cache::~gori_compute_cache): Delete.
5887 (gori_compute_cache::compute_operand_range): Delete.
5888 (gori_compute_cache::cache_stmt): Delete.
5889 * gimple-range-gori.h (gori_compute::compute_operand_range): Remove
5891 (class gori_compute_cache): Delete.
5893 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5895 * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori
5897 (fold_using_range::range_of_address): Adjust.
5898 (fold_using_range::range_of_phi): Adjust.
5899 * gimple-range.h (class fur_source): Adjust.
5900 (fur_source::fur_source): Adjust.
5902 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5904 * gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename
5905 from expr_range_in_bb and adjust.
5906 (gori_compute::compute_name_range_op): Adjust.
5907 (gori_compute::optimize_logical_operands): Adjust.
5908 (gori_compute::compute_logical_operands_in_chain): Adjust.
5909 (gori_compute::compute_operand1_range): Adjust.
5910 (gori_compute::compute_operand2_range): Adjust.
5911 (ori_compute_cache::cache_stmt): Adjust.
5912 * gimple-range-gori.h (gori_compute): Rename prototype.
5914 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5916 * gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be
5917 checked only after range_of_stmt, not range_on_entry.
5918 (gimple_ranger::range_on_entry): Check for non-null in any
5919 predecessor block, if it is not already non-null.
5920 (gimple_ranger::range_on_exit): DOnt check for non-null after
5921 range on entry call.
5922 (gimple_ranger::dump_bb): New. Split from dump.
5923 (gimple_ranger::dump): Adjust.
5924 * gimple-range.h (class gimple_ranger): Adjust.
5926 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5928 * gimple-range-cache.cc (struct range_timestamp): Delete.
5929 (class temporal_cache): Adjust.
5930 (temporal_cache::get_timestamp): Delete.
5931 (temporal_cache::set_dependency): Delete.
5932 (temporal_cache::temporal_value): Adjust.
5933 (temporal_cache::current_p): Take dependencies as params.
5934 (temporal_cache::set_timestamp): Adjust.
5935 (temporal_cache::set_always_current): Adjust.
5936 (ranger_cache::get_non_stale_global_range): Adjust.
5937 (ranger_cache::register_dependency): Delete.
5938 * gimple-range-cache.h (class range_cache): Adjust.
5940 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5942 * gimple-range-gori.cc (range_def_chain::range_def_chain): init
5944 (range_def_chain::~range_def_chain): Dispose of obstack rather than
5945 each individual bitmap.
5946 (range_def_chain::set_import): New.
5947 (range_def_chain::get_imports): New.
5948 (range_def_chain::chain_import_p): New.
5949 (range_def_chain::register_dependency): Rename from build_def_chain
5951 (range_def_chain::def_chain_in_bitmap_p): New.
5952 (range_def_chain::add_def_chain_to_bitmap): New.
5953 (range_def_chain::has_def_chain): Just check first depenedence.
5954 (range_def_chain::get_def_chain): Process imports, use generic
5955 register_dependency routine.
5956 (range_def_chain::dump): New.
5957 (gori_map::gori_map): Allocate import list.
5958 (gori_map::~gori_map): Release imports.
5959 (gori_map::exports): Check for past allocated block size.
5960 (gori_map::imports): New.
5961 (gori_map::def_chain_in_export_p): Delete.
5962 (gori_map::is_import_p): New.
5963 (gori_map::maybe_add_gori): Handle imports.
5964 (gori_map::dump): Adjust output, add imports.
5965 (gori_compute::has_edge_range_p): Remove def_chain_in_export call.
5966 (gori_export_iterator::gori_export_iterator): New.
5967 (gori_export_iterator::next): New.
5968 (gori_export_iterator::get_name): New.
5969 * gimple-range-gori.h (range_def_chain): Add imports and direct
5970 dependecies via struct rdc.
5971 (range_def_chain::depend1): New.
5972 (range_def_chain::depend2): New.
5973 (class gori_map): Adjust.
5974 (FOR_EACH_GORI_IMPORT_NAME): New.
5975 (FOR_EACH_GORI_EXPORT_NAME): New.
5976 (class gori_export_iterator): New.
5978 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5980 * gimple-range-cache.cc (ranger_cache::ranger_cache): Move initial
5981 export cache filling to here.
5982 * gimple-range-gori.cc (gori_compute::gori_compute) : From Here.
5984 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5986 * gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h.
5987 (gori_map): Move to gimple-range-gori.h.
5988 (gori_compute::gori_compute): Adjust.
5989 (gori_compute::~gori_compute): Delete.
5990 (gori_compute::compute_operand_range_switch): Adjust.
5991 (gori_compute::compute_operand_range): Adjust.
5992 (gori_compute::compute_logical_operands): Adjust.
5993 (gori_compute::has_edge_range_p ): Adjust.
5994 (gori_compute::set_range_invariant): Delete.
5995 (gori_compute::dump): Adjust.
5996 (gori_compute::outgoing_edge_range_p): Adjust.
5997 * gimple-range-gori.h (class range_def_chain): Relocate here.
5998 (class gori_map): Relocate here.
5999 (class gori_compute): Inherit from gori_map, and adjust.
6001 2021-05-25 Aldy Hernandez <aldyh@redhat.com>
6003 * value-range.cc (range_tests_legacy): Use
6004 build_nonstandard_integer_type instead of int and short.
6006 2021-05-25 Eric Botcazou <ebotcazou@adacore.com>
6008 * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL
6009 when really creating an initialization statement for it.
6011 2021-05-25 Eric Botcazou <ebotcazou@adacore.com>
6013 * tree-inline.c (setup_one_parameter): Fix thinko in new condition.
6015 2021-05-25 Kito Cheng <kito.cheng@sifive.com>
6017 * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax.
6019 2021-05-25 Martin Liska <mliska@suse.cz>
6021 PR tree-optimization/92860
6023 * optc-save-gen.awk: Remove exceptions.
6025 2021-05-25 Martin Liska <mliska@suse.cz>
6027 * asan.h (sanitize_coverage_p): New function.
6028 * doc/extend.texi: Document it.
6029 * fold-const.c (fold_range_test): Use sanitize_flags_p
6030 instead of flag_sanitize_coverage.
6031 (fold_truth_andor): Likewise.
6032 * sancov.c: Likewise.
6033 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
6034 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle
6035 -fsanitize-coverage when inlining.
6037 2021-05-25 Cooper Qu <cooper.qu@linux.alibaba.com>
6039 * config/csky/csky-modes.def : Fix copyright.
6041 2021-05-25 Cooper Qu <cooper.qu@linux.alibaba.com>
6043 * config/csky/csky-modes.def : Amend copyright.
6044 * config/csky/csky_insn_fpuv2.md : Likewise.
6045 * config/csky/csky_insn_fpuv3.md : Likewise.
6047 2021-05-25 Richard Biener <rguenther@suse.de>
6049 PR middle-end/100727
6050 * calls.c (initialize_argument_information): Explicitely test
6052 * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR.
6054 2021-05-25 Geng Qi <gengqi@linux.alibaba.com>
6056 * config/csky/csky.h (FRAME_POINTER_REGNUM): Use
6057 HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of
6058 the signle definition. The signle definition may not work well
6059 at simplify_subreg_regno().
6060 (HARD_FRAME_POINTER_REGNUM): New.
6061 (ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM.
6062 * config/csky/csky.c (get_csky_live_regs, csky_can_eliminate,
6063 csky_initial_elimination_offset, csky_expand_prologue,
6064 csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM.
6066 2021-05-25 Geng Qi <gengqi@linux.alibaba.com>
6068 * config/csky/csky.c (csky_option_override):
6069 Init csky_arch_isa_features[] in advance, so TARGET_DSP
6070 and TARGET_DIV can be set well.
6072 2021-05-25 Geng Qi <gengqi@linux.alibaba.com>
6074 * config/csky/constraints.md ("l", "h"): Delete.
6075 * config/csky/csky.h (reg_class, REG_CLASS_NAMES,
6076 REG_CLASS_CONTENTS): Delete LO_REGS and HI_REGS.
6077 * config/csky/csky.c (regno_reg_classm,
6078 csky_secondary_reload, csky_register_move_cost):
6079 Use HILO_REGS instead of LO_REGS and HI_REGS.
6081 2021-05-25 Geng Qi <gengqi@linux.alibaba.com>
6083 * config/csky/constraints.md ("W"): New constriant for mem operand
6084 with base reg, index register.
6085 ("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to
6086 "csky_valid_mem_constraint_operand" to deal with both "Q" and "W"
6088 ("Dv"): New constraint for const double value that can be used at
6090 * config/csky/csky-modes.def (HFmode): New mode.
6091 * config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename
6092 to "csky_valid_mem_constraint_operand" and support new constraint
6094 (csky_get_movedouble_length): New.
6095 (fpuv3_output_move): New.
6096 (fpuv3_const_double): New.
6097 * config/csky/csky.c (csky_option_override): New arch CK860 with fpv3.
6098 (decompose_csky_address): Refine.
6099 (csky_print_operand): New "CONST_DOUBLE" operand.
6100 (csky_output_move): Support fpv3 instructions.
6101 (csky_get_movedouble_length): New.
6102 (fpuv3_output_move): New.
6103 (fpuv3_const_double): New.
6104 (csky_emit_compare): Cover float comparsion.
6105 (csky_emit_compare_float): Refine.
6106 (csky_vaild_fpuv2_mem_operand): Rename to
6107 "csky_valid_mem_constraint_operand" and support new constraint "W".
6108 (ck860_rtx_costs): New.
6109 (csky_rtx_costs): Add the cost calculation of CK860.
6110 (regno_reg_class): New vregs for fpuv3.
6111 (csky_dbx_regno): Likewise.
6112 (csky_cpu_cpp_builtins): New builtin macro for fpuv3.
6113 (csky_conditional_register_usage): Suporrot fpuv3.
6114 (csky_dwarf_register_span): Suporrot fpuv3.
6115 (csky_init_builtins, csky_mangle_type): Support "__fp16" type.
6116 (ck810_legitimate_index_p): Support fp16.
6117 * config/csky/csky.h (TARGET_TLS): ADD CK860.
6118 (CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3.
6119 (TARGET_SINGLE_FPU): Support fpuv3.
6120 (TARGET_SUPPORT_FPV3): New.
6121 (FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers.
6122 (FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES,
6123 REG_CLASS_CONTENTS): Support fpuv3.
6124 * config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine.
6125 (csky_movsf_fpv2): Likewise.
6126 (ck801_movsf): Likewise.
6127 (csky_movsf): Likewise.
6129 (csky_movdf_fpv2): Likewise.
6130 (ck801_movdf): Likewise.
6131 (csky_movdf): Likewise.
6132 (movsicc): Refine. Use "comparison_operatior" instead of
6133 "ordered_comparison_operatior".
6134 (addsicc): Likewise.
6135 (CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant.
6136 (call_value_internal_vh): New.
6137 * config/csky/csky_cores.def (CK860): New arch and cpu.
6142 * config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns
6143 into emit-patterns and match-patterns, remain the emit-patterns here,
6144 and move the match-patterns to csky_insn_fpuv2.md or
6146 * config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions.
6147 * config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3
6149 * config/csky/csky_isa.def (fcr): New.
6154 (CK860): New definition for ck860.
6155 * config/csky/csky_tables.opt (ck860): New processors ck860,
6156 ck860f. And new arch ck860.
6161 * config/csky/predicates.md (csky_float_comparsion_operator): Delete
6162 "geu", "gtu", "leu", "ltu", which will never appear at float comparison.
6163 * config/csky/t-csky-elf: Support 860.
6164 * config/csky/t-csky-linux: Likewise.
6165 * doc/md.texi: Add "Q" and "W" constraints for C-SKY.
6167 2021-05-24 Aaron Sawdey <acsawdey@linux.ibm.com>
6169 * config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to
6170 add generation of logical-add and add-logical fusion pairs.
6171 * config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask
6173 * config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on
6174 logical-add and add-logical fusion by default.
6175 * config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and
6176 -mpower10-fusion-add-logical options.
6177 * config/rs6000/fusion.md: Regenerate file.
6179 2021-05-24 Aldy Hernandez <aldyh@redhat.com>
6181 * value-range.cc (irange::legacy_equal_p): Check type when
6182 comparing VR_VARYING types.
6183 (range_tests_legacy): Test comparing VARYING ranges of different
6186 2021-05-24 Wilco Dijkstra <wdijkstr@arm.com>
6188 * config/aarch64/aarch64.c (neoversen1_tunings):
6189 Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
6191 2021-05-24 Wilco Dijkstra <wdijkstr@arm.com>
6193 * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for
6194 extern weak symbols. Limit symbol offsets for non-GOT symbols with
6197 2021-05-24 Christophe Lyon <christophe.lyon@linaro.org>
6199 * config/arm/neon.md (vec_load_lanesxi<mode>)
6200 (vec_store_lanexoi<mode>): Move ...
6201 * config/arm/vec-common.md: here.
6203 2021-05-24 Christophe Lyon <christophe.lyon@linaro.org>
6205 * config/arm/neon.md (vec_load_lanesoi<mode>)
6206 (vec_store_lanesoi<mode>): Move ...
6207 * config/arm/vec-common.md: here.
6209 2021-05-24 liuhongt <hongtao.liu@intel.com>
6212 * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing
6213 stmt with GIMPLE_NOP when lhs doesn't exist.
6215 2021-05-23 Uroš Bizjak <ubizjak@gmail.com>
6218 * config/i386/mmx.md (*push<VI_32:mode>2_rex64):
6219 New instruction pattern.
6220 (*push<VI_32:mode>2): Ditto.
6221 (push splitter for SSE registers): New splitter.
6223 2021-05-23 Andrew Pinski <apinski@marvell.com>
6225 * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types.
6227 2021-05-22 Aaron Sawdey <acsawdey@linux.ibm.com>
6229 * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types.
6230 * config/rs6000/fusion.md: Regenerate file.
6232 2021-05-21 Aaron Sawdey <acsawdey@linux.ibm.com>
6234 * config/rs6000/genfusion.pl (gen_addadd): New function.
6235 * config/rs6000/fusion.md: Regenerate file.
6236 * config/rs6000/rs6000-cpus.def: Add
6237 OPTION_MASK_P10_FUSION_2ADD to masks.
6238 * config/rs6000/rs6000.c (rs6000_option_override_internal):
6239 Handle default value of OPTION_MASK_P10_FUSION_2ADD.
6240 * config/rs6000/rs6000.opt: Add -mpower10-fusion-2add.
6242 2021-05-21 Jakub Jelinek <jakub@redhat.com>
6245 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define.
6246 * gimplify.c (enum gimplify_omp_var_data): Fix up
6247 GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT.
6248 (omp_lastprivate_for_combined_outer_constructs): If combined target
6249 has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to
6250 GOVD_MAP | GOVD_SEEN.
6251 (gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for
6252 firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT.
6253 (gimplify_adjust_omp_clauses): For firstprivate clauses with
6254 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and
6255 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and
6256 let it be replaced by implicit map clause.
6258 2021-05-21 Jakub Jelinek <jakub@redhat.com>
6261 * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New
6263 (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it.
6264 (gimplify_omp_for): Likewise.
6266 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6269 * omp-low.c (oacc_privatization_candidate_p): Reject 'static',
6270 'external' in blocks.
6272 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6275 * flag-types.h (enum openacc_privatization): New.
6276 * params.opt (-param=openacc-privatization): New.
6277 * doc/invoke.texi (openacc-privatization): Document it.
6278 * omp-general.h (get_openacc_privatization_dump_flags): New
6280 * omp-low.c (oacc_privatization_candidate_p): Add diagnostics.
6281 * omp-offload.c (execute_oacc_device_lower)
6282 <IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics.
6283 * target.def (goacc.adjust_private_decl): Add 'location_t'
6285 * doc/tm.texi: Regenerate.
6286 * config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust.
6287 * config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise.
6288 * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl):
6289 Likewise. Preserve it for...
6290 (nvptx_goacc_expand_var_decl): ... use here.
6292 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6294 * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__'
6297 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6300 * omp-low.c (oacc_privatization_candidate_p): New function.
6301 (oacc_privatization_scan_clause_chain)
6302 (oacc_privatization_scan_decl_chain): Use it. Also
6303 'gcc_checking_assert' that we're not seeing duplicates.
6305 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6308 * omp-offload.c (execute_oacc_device_lower): Skip processing if no
6311 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6314 * omp-offload.c (execute_oacc_device_lower): Explain.
6316 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6319 * omp-offload.c (execute_oacc_device_lower)
6320 <IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1'
6322 * internal-fn.c (expand_UNIQUE): Don't expect
6323 'IFN_UNIQUE_OACC_PRIVATE'.
6325 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6328 * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses.
6330 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6333 * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl)
6334 (nvptx_goacc_expand_var_decl): Tighten.
6336 2021-05-21 Julian Brown <julian@codesourcery.com>
6337 Chung-Lin Tang <cltang@codesourcery.com>
6338 Thomas Schwinge <thomas@codesourcery.com>
6341 * doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL)
6342 (TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks.
6343 * doc/tm.texi: Regenerate.
6344 * expr.c (expand_expr_real_1): Expand decls using the
6345 expand_var_decl OpenACC hook if defined.
6346 * internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE.
6347 * internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE.
6348 * omp-low.c (omp_context): Add oacc_privatization_candidates
6350 (lower_oacc_reductions): Add PRIVATE_MARKER parameter. Insert
6352 (lower_oacc_head_tail): Add PRIVATE_MARKER parameter. Modify
6353 private marker's gimple call arguments, and pass it to
6354 lower_oacc_reductions.
6355 (oacc_privatization_scan_clause_chain)
6356 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
6358 (lower_omp_for, lower_omp_target, lower_omp_1): Use these.
6359 * omp-offload.c (convert.h): Include.
6360 (oacc_loop_xform_head_tail): Treat private-variable markers like
6361 fork/join when transforming head/tail sequences.
6362 (struct var_decl_rewrite_info): Add struct.
6363 (oacc_rewrite_var_decl, is_sync_builtin_call): New functions.
6364 (execute_oacc_device_lower): Support rewriting gang-private
6365 variables using target hook, and fix up addr_expr and var_decl
6367 * target.def (adjust_private_decl, expand_var_decl): New hooks.
6368 * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl):
6370 (gcn_goacc_adjust_private_decl): ...this.
6371 * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl):
6373 (gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter.
6374 * config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename
6375 definition using gcn_goacc_adjust_gangprivate_decl...
6376 (TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using
6377 gcn_goacc_adjust_private_decl.
6378 * config/nvptx/nvptx.c (tree-pretty-print.h): Include.
6379 (gang_private_shared_size): New global variable.
6380 (gang_private_shared_align): Likewise.
6381 (gang_private_shared_sym): Likewise.
6382 (gang_private_shared_hmap): Likewise.
6383 (nvptx_option_override): Initialize these.
6384 (nvptx_file_end): Output gang_private_shared_sym.
6385 (nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl):
6387 (nvptx_set_current_function): Clear gang_private_shared_hmap.
6388 (TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook.
6389 (TARGET_GOACC_EXPAND_VAR_DECL): Likewise.
6391 2021-05-21 H.J. Lu <hjl.tools@gmail.com>
6393 * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed.
6395 2021-05-21 Richard Biener <rguenther@suse.de>
6396 H.J. Lu <hjl.tools@gmail.com>
6399 * expr.c (expand_constructor): Elide expand_constructor if
6400 move by pieces is preferred.
6402 2021-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6404 * config/aarch64/aarch64-builtins.c (aarch64_call_properties):
6405 Take a flag and mode value as arguments.
6406 (aarch64_modifies_global_state_p): Likewise.
6407 (aarch64_reads_global_state_p): Likewise.
6408 (aarch64_could_trap_p): Likewise.
6409 (aarch64_get_attributes): Likewise.
6410 (aarch64_init_simd_builtins): Adjust callsite of above.
6411 (aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get
6412 function attributes to apply to builtins.
6413 (aarch64_init_crc32_builtins): Likewise.
6414 (aarch64_init_builtin_rsqrt): Likewise.
6416 2021-05-21 Aaron Sawdey <acsawdey@linux.ibm.com>
6418 * config/rs6000/rs6000.md (define_attr "type"): Add types for fusion.
6419 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types.
6420 (gen_2logical): Use new fusion types.
6421 * config/rs6000/fusion.md: Regenerate.
6423 2021-05-21 Uroš Bizjak <ubizjak@gmail.com>
6426 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
6427 Handle V4QI and V2HI modes.
6428 (ix86_expand_sse_movcc): Ditto.
6429 * config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3):
6430 New instruction pattern.
6431 (*eq<VI_32:mode>3): Ditto.
6432 (*gt<VI_32:mode>3): Ditto.
6433 (*xop_pcmov_<VI_32:mode>): Ditto.
6434 (mmx_pblendvb32): Ditto.
6435 (mmx_pblendvb64): Rename from mmx_pblendvb.
6436 (vec_cmp<VI_32:mode><VI_32:mode>): New expander.
6437 (vec_cmpu<VI_32:mode><VI_32:mode>): Ditto.
6438 (vcond<VI_32:mode><VI_32:mode>): Ditto.
6439 (vcondu<VI_32:mode><VI_32:mode>): Ditto.
6440 (vcond_mask_<VI_32:mode><VI_32:mode>): Ditto.
6442 2021-05-21 Jakub Jelinek <jakub@redhat.com>
6444 PR tree-optimization/94589
6445 * tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and
6446 rhs2, treat x <= 4 equivalently to x < 5 etc. In cmp1 and cmp2 (if
6447 not the same as cmp3) treat <= the same as < and >= the same as >.
6448 Don't require that cond2_phi_edge is true edge, instead take
6449 false/true edges into account based on cmp1/cmp2 comparison kinds.
6451 2021-05-21 Uroš Bizjak <ubizjak@gmail.com>
6454 * config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator.
6455 (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Macroize expander
6456 from <smaxmin:code>v4hi3> and <smaxmin:code><MMXMODE14:mode>3
6457 using SMAXMIN_MMXMODEI mode iterator.
6458 (*<smaxmin:code>v4qi3): New insn pattern.
6459 (*<smaxmin:code>v2hi3): Ditto.
6460 (SMAXMIN_VI_32): New mode iterator.
6461 (<smaxmin:code><SMAXMIN_VI_32>mode3): New expander.
6462 (UMAXMIN_MMXMODEI): New mode iterator.
6463 (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Macroize expander
6464 from <umaxmin:code>v8qi3> and <umaxmin:code><MMXMODE24:mode>3
6465 using UMAXMIN_MMXMODEI mode iterator.
6466 (*<umaxmin:code>v4qi3): New insn pattern.
6467 (*<umaxmin:code>v2hi3): Ditto.
6468 (UMAXMIN_VI_32): New mode iterator.
6469 (<umaxmin:code><UMAXMIN_VI_32>mode3): New expander.
6470 (abs<VI_32:mode>2): New insn pattern.
6471 (ssse3_abs<MMXMODEI:mode>2, abs<MMXMODEI:mode>2): Move from ...
6472 * config/i386/sse.md: ... here.
6474 2021-05-20 Clement Chigot <clement.chigot@atos.net>
6475 David Edelsohn <dje.gcc@gmail.com>
6477 * collect2.c (scan_prog_file): Issue non-fatal warning for
6480 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
6482 * doc/invoke.texi (-Wno-c++11-extensions)
6483 (-Wno-c++14-extensions, -Wno-c++17-extensions)
6484 (-Wno-c++20-extensions, -Wno-c++23-extensions): Document
6487 2021-05-20 Indu Bhagat <indu.bhagat@oracle.com>
6489 * config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p.
6490 * config/darwin.c (darwin_override_options): Likewise.
6491 * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
6492 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
6493 (DWARF2_FRAME_REG_OUT): Likewise.
6494 * config/mips/mips.c (mips_output_filename): Likewise.
6495 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name):
6497 (rs6000_dbx_register_number): Likewise.
6498 * dbxout.c: Include flags.h.
6499 * dwarf2cfi.c (cfi_label_required_p): Likewise.
6500 (dwarf2out_do_frame): Likewise.
6501 * except.c: Include flags.h.
6502 * final.c (dwarf2_debug_info_emitted_p): Likewise.
6503 (final_scan_insn_1): Likewise.
6504 * flags.h (dwarf_debuginfo_p): New function declaration.
6505 * opts.c (dwarf_debuginfo_p): New function definition.
6506 * targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p.
6507 * toplev.c (process_options): Likewise.
6509 2021-05-20 Indu Bhagat <indu.bhagat@oracle.com>
6511 * common.opt: Change type to support bitmasks.
6512 * flag-types.h (enum debug_info_type): Rename enumerator constants.
6513 (NO_DEBUG): New bitmask.
6514 (DBX_DEBUG): Likewise.
6515 (DWARF2_DEBUG): Likewise.
6516 (XCOFF_DEBUG): Likewise.
6517 (VMS_DEBUG): Likewise.
6518 (VMS_AND_DWARF2_DEBUG): Likewise.
6519 * flags.h (debug_set_to_format): New function declaration.
6520 (debug_set_count): Likewise.
6521 (debug_set_names): Likewise.
6522 * opts.c (debug_type_masks): Array of bitmasks for debug formats.
6523 (debug_set_to_format): New function definition.
6524 (debug_set_count): Likewise.
6525 (debug_set_names): Likewise.
6526 (set_debug_level): Update access to debug_type_names.
6527 * toplev.c: Likewise.
6529 2021-05-20 Martin Sebor <msebor@redhat.com>
6531 PR middle-end/100684
6532 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda.
6534 2021-05-20 Uroš Bizjak <ubizjak@gmail.com>
6537 * config/i386/i386.md (isa): Remove x64_bmi.
6538 (enabled): Remove x64_bmi.
6539 * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
6540 Remove general register alternative.
6541 (*andnot<VI_32:mode>3): Ditto.
6542 (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
6543 (*<any_logic:code><VI_32:mode>3): Ditto.
6545 2021-05-20 Kewen Lin <linkw@linux.ibm.com>
6547 * config/arm/arm.c: Include head files tree-vectorizer.h and
6550 2021-05-20 Uroš Bizjak <ubizjak@gmail.com>
6553 * config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes.
6554 (*<plusminus:insn><VI_32:mode>3): Use Yw instad of <Yv_Yw> constrint.
6555 (<s>mulv4hi3_highpart): New expander.
6556 (*<s>mulv2hi3_highpart): New insn pattern.
6557 (<s>mulv2hi3_higpart): New expander.
6558 (*<any_shift:insn>v2hi3): New insn pattern.
6559 (<any_shift:insn>v2hi3): New expander.
6560 * config/i386/sse.md (smulhrsv2hi3): New expander.
6561 (*smulhrsv2hi3): New insn pattern.
6563 2021-05-20 Kewen Lin <linkw@linux.ibm.com>
6565 * doc/invoke.texi (vect-inner-loop-cost-factor): Document new
6567 * params.opt (vect-inner-loop-cost-factor): New.
6568 * targhooks.c (default_add_stmt_cost): Replace hardcoded factor
6569 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file
6570 tree-vectorizer.h and its required ones.
6571 * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace
6572 hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR.
6573 * config/arm/arm.c (arm_add_stmt_cost): Likewise.
6574 * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
6575 * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
6576 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
6578 (_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor.
6579 * tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor.
6580 (LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro.
6582 2021-05-20 Christophe Lyon <christophe.lyon@linaro.org>
6583 Torbjörn Svensson <torbjorn.svensson@st.com>
6586 * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__.
6588 2021-05-20 Jakub Jelinek <jakub@redhat.com>
6591 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LINEAR>: For
6592 explicit linear clause when combined with target, make it map(tofrom:)
6593 instead of no clause or firstprivate.
6595 2021-05-20 Jakub Jelinek <jakub@redhat.com>
6597 PR tree-optimization/94589
6598 * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence
6599 of integral conversions.
6601 2021-05-19 Andrew MacLeod <amacleod@redhat.com>
6603 * gimple-range.cc (fur_source::get_operand): New.
6604 (gimple_range_fold): Delete.
6605 (fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt.
6606 (fold_using_range::range_of_range_op): Move from gimple_ranger.
6607 (fold_using_range::range_of_address): Ditto.
6608 (fold_using_range::range_of_phi): Ditto.
6609 (fold_using_range::range_of_call): Ditto.
6610 (fold_using_range::range_of_builtin_ubsan_call): Move from
6611 range_of_builtin_ubsan_call.
6612 (fold_using_range::range_of_builtin_call): Move from
6613 range_of_builtin_call.
6614 (gimple_ranger::range_of_builtin_call): Delete.
6615 (fold_using_range::range_of_cond_expr): Move from gimple_ranger.
6616 (gimple_ranger::fold_range_internal): New.
6617 (gimple_ranger::range_of_stmt): Use new fold_using_range API.
6618 (fold_using_range::range_of_ssa_name_with_loop_info): Move from
6619 gimple_ranger. Improve ranges of SSA_NAMES when possible.
6620 * gimple-range.h (gimple_ranger): Remove various range_of routines.
6621 (class fur_source): New.
6622 (class fold_using_range): New.
6623 (fur_source::fur_source): New.
6625 * vr-values.c (vr_values::extract_range_basic): Use fold_using_range
6626 instead of range_of_builtin_call.
6628 2021-05-19 Jonathan Wakely <jwakely@redhat.com>
6630 * doc/cpp.texi (Common Predefined Macros): Update documentation
6631 for the __GXX_EXPERIMENTAL_CXX0X__ macro.
6633 2021-05-19 Alex Coplan <alex.coplan@arm.com>
6636 * config/arm/arm.md (nonsecure_call_internal): Always ensure
6637 callee's address is in a register.
6639 2021-05-19 Geng Qi <gengqi@linux.alibaba.com>
6641 * common/config/riscv/riscv-common.c
6642 (riscv_subset_list::parsing_subset_version): Properly parse the letter
6644 (riscv_subset_list::parse_std_ext,
6645 riscv_subset_list::parse_multiletter_ext): To handle errors generated
6646 in riscv_subset_list::parsing_subset_version.
6648 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
6650 * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q"
6651 type attribute in patterns generating XTN(2).
6653 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
6655 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_<mode>):
6656 Remove as duplicate of...
6657 (aarch64_xtn<mode>): This.
6658 (aarch64_xtn2<mode>_le): Move position in file.
6659 (aarch64_xtn2<mode>_be): Move position in file.
6660 (aarch64_xtn2<mode>): Move position in file.
6661 (vec_pack_trunc_<mode>): Define as an expander.
6663 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
6665 * config/aarch64/aarch64-simd-builtins.def: Split builtin
6666 generation for aarch64_<sur>q<r>shr<u>n_n<mode> pattern into
6667 separate scalar and vector generators.
6668 * config/aarch64/aarch64-simd.md
6669 (aarch64_<sur>q<r>shr<u>n_n<mode>): Define as an expander and
6671 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): This and...
6672 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): This.
6673 * config/aarch64/iterators.md: Define SD_HSDI iterator.
6675 2021-05-19 Jonathn Wright <jonathan.wright@arm.com>
6677 * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead
6679 * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2.
6681 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
6683 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n2_n<mode>):
6684 Implement as an expand emitting a big/little endian
6685 instruction pattern.
6686 (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Define.
6687 (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Define.
6689 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
6691 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>):
6692 Implement as an expand emitting a big/little endian
6693 instruction pattern.
6694 (aarch64_<sur><addsub>hn2<mode>_insn_le): Define.
6695 (aarch64_<sur><addsub>hn2<mode>_insn_be): Define.
6696 * config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and
6697 UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator.
6699 2021-05-19 Richard Biener <rguenther@suse.de>
6701 PR middle-end/100672
6702 * fold-const.c (fold_negate_expr_1): Use element_precision.
6703 (negate_expr_p): Likewise.
6705 2021-05-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
6707 * config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator.
6708 (pred_load): New int attribute.
6709 * config/aarch64/aarch64-sve.md
6710 (aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Use
6711 SVE_PRED_LOAD enum iterator and corresponding pred_load attribute.
6712 * config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to
6713 code_for_aarch64_load.
6715 2021-05-19 Richard Biener <rguenther@suse.de>
6717 * cfgexpand.c (discover_nonconstant_array_refs_r): Make
6718 sure TARGET_MEM_REF bases are expanded as memory.
6719 * tree-ssa-operands.c (operands_scanner::get_tmr_operands):
6720 Do not mark TARGET_MEM_REF bases addressable.
6721 * tree-ssa.c (non_rewritable_mem_ref_base): Handle
6722 TARGET_MEM_REF bases as never rewritable.
6723 * gimple-walk.c (walk_stmt_load_store_addr_ops): Do not
6724 walk TARGET_MEM_REF bases as address-takens.
6725 * tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF.
6727 2021-05-19 Richard Biener <rguenther@suse.de>
6729 * builtins.c (get_object_alignment_1): Strip outer
6731 * tree-dfa.c (get_ref_base_and_extent): Handle outer
6732 WITH_SIZE_EXPR for size processing and process the
6734 * tree-ssa-alias.c (ao_ref_base_alias_set): Strip
6735 outer WITH_SIZE_EXPR.
6736 (ao_ref_base_alias_ptr_type): Likewise.
6737 (refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref
6738 and handle that accordingly, stripping it for the
6740 * tree.c (get_base_address): Handle WITH_SIZE_EXPR by
6741 looking through it instead of returning NULL.
6743 2021-05-19 Jakub Jelinek <jakub@redhat.com>
6745 PR middle-end/100576
6746 * builtins.c (check_read_access): Convert bound to size_type_node if
6749 2021-05-19 Richard Biener <rguenther@suse.de>
6751 * tree-cfg.c (verify_types_in_gimple_min_lval): Inline...
6752 (verify_types_in_gimple_reference): ... here. Sanitize.
6753 (verify_gimple_call): Verify references in LHS and arguments.
6754 (verify_gimple_assign_single): Reject WITH_SIZE_EXPR.
6756 2021-05-19 Uroš Bizjak <ubizjak@gmail.com>
6758 * config/i386/i386.h (VALID_INT_MODE_P):
6759 Add V8QI, V4HI and V2SI modes for TARGET_64BIT.
6760 * config/i386/i386.md (isa): Add x64_bmi.
6761 (enabled): Handle x64_bmi.
6762 * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
6763 Add alternative using 64bit general registers.
6764 (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
6766 2021-05-19 Jakub Jelinek <jakub@redhat.com>
6769 * tree.h (OMP_MASTER_COMBINED): Define.
6770 * gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate
6771 handling for outer combined/composite constructs to a loop.
6772 Handle lastprivate on combined target.
6773 (gimplify_expr): Formatting fix.
6775 2021-05-19 Xionghu Luo <luoxhu@linux.ibm.com>
6777 * passes.def: Add sink_code pass before store_merging.
6778 * tree-ssa-sink.c (pass_sink_code:clone): New.
6780 2021-05-18 Bill Schmidt <wschmidt@linux.ibm.com>
6782 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to
6783 rs6000_special_adjust_field_align_p.
6784 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
6785 * config/rs6000/rs6000-call.c (rs6000_function_arg_boundary):
6787 (rs6000_function_arg): Likewise.
6788 * config/rs6000/rs6000-protos.h
6789 (rs6000_special_adjust_field_align_p): Remove prototype.
6790 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
6792 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to
6793 rs6000_special_adjust_field_align_p.
6795 2021-05-18 Uroš Bizjak <ubizjak@gmail.com>
6798 * config/i386/i386.h (VALID_SSE2_REG_MODE):
6799 Add V4QI and V2HI modes.
6800 (VALID_INT_MODE_P): Ditto.
6801 * config/i386/mmx.md (VI_32): New mode iterator.
6802 (mmxvecsize): Handle V4QI and V2HI.
6804 (mov<VI_32:mode>): New expander.
6805 (*mov<mode>_internal): New insn pattern.
6806 (movmisalign<VI_32:mode>): New expander.
6807 (neg<VI_32:mode>): New expander.
6808 (<plusminus:insn><VI_32:mode>3): New expander.
6809 (*<plusminus:insn><VI_32:mode>3): New insn pattern.
6810 (mulv2hi3): New expander.
6811 (*mulv2hi3): New insn pattern.
6812 (one_cmpl<VI_32:mode>2): New expander.
6813 (*andnot<VI_32:mode>3): New insn pattern.
6814 (<any_logic:code><VI_32:mode>3): New expander.
6815 (*<any_logic:code><VI_32:mode>3): New insn pattern.
6817 2021-05-18 Uroš Bizjak <ubizjak@gmail.com>
6819 * config/i386/sse.md (<any_extend:insn>v4qiv4di2):
6820 Fix a mode mismatch with operand 1.
6822 2021-05-18 Uroš Bizjak <ubizjak@gmail.com>
6825 * config/i386/i386-expand.c (split_double_mode): Return
6826 temporary register when simplify_gen_subreg fails with
6827 the high half od the paradoxical subreg.
6829 2021-05-18 Richard Biener <rguenther@suse.de>
6831 * cfgexpand.c (expand_one_var): Pass in forced_stack_var
6832 and honor it when expanding.
6833 (expand_used_vars_for_block): Pass through forced_stack_var.
6834 (expand_used_vars): Likewise.
6835 (discover_nonconstant_array_refs_r): Set bits in
6836 forced_stack_vars instead of marking vars TREE_ADDRESSABLE.
6837 (avoid_type_punning_on_regs): Likewise.
6838 (discover_nonconstant_array_refs): Likewise.
6839 (pass_expand::execute): Create and pass down forced_stack_var
6840 bitmap. For parameters and returns temporarily set
6841 TREE_ADDRESSABLE when expand_function_start.
6843 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
6845 * doc/sourcebuild.texi: Document 'dg-note'.
6847 2021-05-18 Tobias Burnus <tobias@codesourcery.com>
6850 * configure: Regenerate.
6851 * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@).
6853 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
6855 * gimple.h (is_gimple_omp_oacc): Tighten.
6856 * omp-low.c (check_omp_nesting_restrictions): Adjust.
6858 2021-05-18 Richard Biener <rguenther@suse.de>
6860 * tree-ssa-operands.c (mark_address_taken): Simplify.
6862 2021-05-18 Martin Liska <mliska@suse.cz>
6864 * config/gcn/mkoffload.c (STR): Redefine.
6865 * config/i386/intelmic-mkoffload.c (STR): Likewise.
6866 * config/nvptx/mkoffload.c (STR): Likewise.
6868 2021-05-18 Martin Liska <mliska@suse.cz>
6870 * common/config/aarch64/aarch64-common.c (aarch64_parse_extension):
6871 Use startswith function instead of strncmp.
6872 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
6873 * common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise.
6874 * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise.
6875 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise.
6876 * config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise.
6877 * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
6878 * config/arm/arm.c (arm_file_start): Likewise.
6879 (arm_valid_target_attribute_rec): Likewise.
6880 (thumb1_md_asm_adjust): Likewise.
6881 * config/arm/driver-arm.c (host_detect_local_cpu): Likewise.
6882 * config/avr/avr.c (STR_PREFIX_P): Likewise.
6883 (avr_set_current_function): Likewise.
6884 (avr_handle_addr_attribute): Likewise.
6885 (avr_asm_output_aligned_decl_common): Likewise.
6886 (avr_asm_named_section): Likewise.
6887 (avr_section_type_flags): Likewise.
6888 (avr_asm_select_section): Likewise.
6889 * config/c6x/c6x.c (c6x_in_small_data_p): Likewise.
6890 (c6x_section_type_flags): Likewise.
6891 * config/darwin-c.c (darwin_cfstring_ref_p): Likewise.
6892 (darwin_objc_declare_unresolved_class_reference): Likewise.
6893 (darwin_objc_declare_class_definition): Likewise.
6894 * config/darwin.c (indirect_data): Likewise.
6895 (darwin_encode_section_info): Likewise.
6896 (darwin_objc2_section): Likewise.
6897 (darwin_objc1_section): Likewise.
6898 (machopic_select_section): Likewise.
6899 (darwin_globalize_label): Likewise.
6900 (darwin_label_is_anonymous_local_objc_name): Likewise.
6901 (darwin_asm_named_section): Likewise.
6902 (darwin_asm_output_dwarf_offset): Likewise.
6903 * config/frv/frv.c (frv_string_begins_with): Likewise.
6904 (frv_in_small_data_p): Likewise.
6905 * config/gcn/mkoffload.c (STR): Likewise.
6907 * config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise.
6908 * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
6909 * config/i386/i386.c (x86_64_elf_section_type_flags): Likewise.
6910 (ix86_md_asm_adjust): Likewise.
6911 * config/i386/intelmic-mkoffload.c (STR): Likewise.
6912 * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
6913 (i386_pe_file_end): Likewise.
6914 * config/ia64/ia64.c (ia64_in_small_data_p): Likewise.
6915 (ia64_section_type_flags): Likewise.
6916 * config/mips/driver-native.c (host_detect_local_cpu): Likewise.
6917 * config/mips/mips.c (mips_handle_interrupt_attr): Likewise.
6918 (mips16_stub_function_p): Likewise.
6919 (mips_function_rodata_section): Likewise.
6920 * config/msp430/msp430.c (msp430_mcu_name): Likewise.
6921 (msp430_function_section): Likewise.
6922 (msp430_section_type_flags): Likewise.
6923 (msp430_expand_helper): Likewise.
6924 * config/nios2/nios2.c (nios2_small_section_name_p): Likewise.
6925 (nios2_valid_target_attribute_rec): Likewise.
6926 * config/nvptx/mkoffload.c (process): Likewise.
6928 * config/pa/som.h: Likewise.
6929 * config/pdp11/pdp11.c (pdp11_output_ident): Likewise.
6930 * config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise.
6931 * config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise.
6932 (rs6000_inner_target_options): Likewise.
6933 * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise.
6934 * config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise.
6935 * config/vax/vax.c (vax_output_int_move): Likewise.
6936 * config/vms/vms-ld.c (startswith): Likewise.
6937 (process_args): Likewise.
6939 * config/vms/vms.c: Likewise.
6941 2021-05-18 Jakub Jelinek <jakub@redhat.com>
6943 PR rtl-optimization/100590
6944 * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if
6945 they are NONJUMP_INSN_P.
6947 2021-05-18 Jakub Jelinek <jakub@redhat.com>
6950 * function.c (push_dummy_function): Set DECL_ARTIFICIAL and
6951 DECL_ASSEMBLER_NAME on the fn_decl.
6953 2021-05-18 Jakub Jelinek <jakub@redhat.com>
6955 PR tree-optimization/94589
6956 * tree-ssa-phiopt.c (spaceship_replacement): Pattern match
6957 phi result used in (res & ~1) == 0 comparison as res >= 0 as
6958 res == 2 would be UB with -ffinite-math-only.
6960 2021-05-18 Martin Liska <mliska@suse.cz>
6962 * Makefile.in: genversion.o should depend on DATESTAMP.
6964 2021-05-18 Claudiu Zissulescu <claziss@synopsys.com>
6966 * config/arc/simdext.md (negv2si2): Remove round bracket.
6968 2021-05-18 Andreas Krebbel <krebbel@linux.ibm.com>
6970 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
6971 _Bool as macro expanding to _Bool.
6973 2021-05-18 Andreas Krebbel <krebbel@linux.ibm.com>
6976 * tree.c (build_reference_type_for_mode)
6977 (build_pointer_type_for_mode): Pick pointer mode if MODE argument
6979 (build_reference_type, build_pointer_type): Invoke
6980 build_*_type_for_mode with VOIDmode.
6982 2021-05-17 Andrew MacLeod <amacleod@redhat.com>
6984 PR tree-optimization/100512
6985 * gimple-range-cache.cc (ranger_cache::set_global_range): Mark const
6986 and non-zero pointer ranges as invariant.
6987 * gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer
6988 processing from here.
6990 2021-05-17 Tom de Vries <tdevries@suse.de>
6993 * config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare
6994 * config/nvptx/nvptx.c (nvptx_output_barrier)
6995 (nvptx_output_atomic_insn): New function.
6996 (nvptx_print_operand): Add support for 'B'.
6997 * config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic
7000 2021-05-17 Aldy Hernandez <aldyh@redhat.com>
7002 PR tree-optimization/100349
7003 * vr-values.c (bounds_of_var_in_loop): Bail if scev returns
7006 2021-05-17 Tamar Christina <tamar.christina@arm.com>
7008 * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New.
7009 (host_detect_local_cpu): Use it.
7011 2021-05-17 Martin Liska <mliska@suse.cz>
7013 * doc/invoke.texi: Add 2 missing dots.
7015 2021-05-17 Marius Hillenbrand <mhillen@linux.ibm.com>
7018 * configure.ac: Replace pattern substitution with call to sed.
7019 * configure: Regenerate.
7021 2021-05-17 Richard Biener <rguenther@suse.de>
7023 PR middle-end/100582
7024 * tree.c (array_at_struct_end_p): Get to the base of the
7025 reference before looking for the underlying decl.
7027 2021-05-17 Joern Rennecke <joern.rennecke@embecosm.com>
7029 * genoutput.c (validate_insn_alternatives) Make "wrong number of
7030 alternatives" message more specific, and remove assumption on where
7033 2021-05-17 Christophe Lyon <christophe.lyon@linaro.org>
7035 * config/arm/iterators.md (V16): New iterator.
7036 (VH_cvtto): New iterator.
7037 (v_cmp_result): Added V4HF and V8HF support.
7038 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>): Use VDQWH.
7039 (vcond<mode><mode>): Likewise.
7040 (vcond_mask_<mode><v_cmp_result>): Likewise.
7041 (vcond<VH_cvtto><mode>): New expander.
7043 2021-05-17 Christophe Lyon <christophe.lyon@linaro.org>
7045 * config/arm/arm-protos.h (arm_expand_vector_compare): Update
7047 * config/arm/arm.c (arm_expand_vector_compare): Add support for
7049 (arm_expand_vcond): Likewise.
7050 * config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S,
7051 VCMPEQQ_N_S, VCMPNEQ_N_S.
7052 (VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove.
7053 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Add '@' prefix.
7054 (@mve_vcmp<mve_cmp_op>q_f<mode>): Likewise.
7055 (@mve_vcmp<mve_cmp_op>q_n_f<mode>): Likewise.
7056 (@mve_vpselq_<supf><mode>): Likewise.
7057 (@mve_vpselq_f<mode>"): Likewise.
7058 * config/arm/neon.md (vec_cmp<mode><v_cmp_result): Enable for MVE
7059 and move to vec-common.md.
7060 (vec_cmpu<mode><mode>): Likewise.
7061 (vcond<mode><mode>): Likewise.
7062 (vcond<V_cvtto><mode>): Likewise.
7063 (vcondu<mode><v_cmp_result>): Likewise.
7064 (vcond_mask_<mode><v_cmp_result>): Likewise.
7065 * config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S)
7066 (VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U)
7067 (VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S)
7068 (VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U)
7069 (VCMPHIQ_N_U, VCMPHIQ_U): Remove.
7070 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result): Moved
7072 (vec_cmpu<mode><mode>): Likewise.
7073 (vcond<mode><mode>): Likewise.
7074 (vcond<V_cvtto><mode>): Likewise.
7075 (vcondu<mode><v_cmp_result>): Likewise.
7076 (vcond_mask_<mode><v_cmp_result>): Likewise. Added unsafe math
7079 2021-05-17 liuhongt <hongtao.liu@intel.com>
7082 * config/i386/i386.c (ix86_gimple_fold_builtin): Use
7083 gsi_insert_seq_before instead.
7085 2021-05-17 Christophe Lyon <christophe.lyon@linaro.org>
7087 * doc/sourcebuild.texi (arm_qbit_ok): Rename into...
7088 (arm_sat_ok): ...this.
7090 2021-05-17 Martin Liska <mliska@suse.cz>
7092 * lto-wrapper.c (merge_flto_options): Factor out a new function.
7093 (merge_and_complain): Use it.
7094 (run_gcc): Merge also linker command line -flto=foo argument
7097 2021-05-16 Christophe Lyon <christophe.lyon@linaro.org>
7099 * config/arm/arm.h (CPP_SPEC): Remove error message about
7100 -mlittle-endian/-mbig-endian conflict.
7102 2021-05-15 Bill Schmidt <wschmidt@linux.ibm.com>
7104 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
7105 __ROP_PROTECT__ if -mrop-protect is selected.
7107 2021-05-15 Bill Schmidt <wschmidt@linux.ibm.com>
7109 * config/rs6000/rs6000-internal.h (rs6000_stack): Add
7110 rop_hash_save_offset and rop_hash_size.
7111 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute
7112 rop_hash_size and rop_hash_save_offset.
7113 (debug_stack_info): Dump rop_hash_save_offset and rop_hash_size.
7114 (rs6000_emit_prologue): Emit hashst[p] in prologue.
7115 (rs6000_emit_epilogue): Emit hashchk[p] in epilogue.
7116 * config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and
7118 (hashst): New define_insn.
7119 (hashchk): Likewise.
7121 2021-05-15 Bill Schmidt <wschmidt@linux.ibm.com>
7123 * config/rs6000/rs6000.c (rs6000_option_override_internal):
7124 Disable shrink wrap when inserting ROP-protect instructions.
7125 * config/rs6000/rs6000.opt (mrop-protect): New option.
7126 (mprivileged): Likewise.
7127 * doc/invoke.texi: Document mrop-protect and mprivileged.
7129 2021-05-15 Hans-Peter Nilsson <hp@axis.com>
7131 * reorg.c (fill_slots_from_thread): Reinstate code typoed out in
7134 2021-05-15 Martin Jambor <mjambor@suse.cz>
7137 2021-05-13 Martin Jambor <mjambor@suse.cz>
7139 PR tree-optimization/100453
7140 * tree-sra.c (sra_modify_assign): All const base accesses do not
7141 need refreshing, not just those from decl_pool.
7142 (sra_modify_assign): Do not refresh into a const base decl.
7144 2021-05-15 Jakub Jelinek <jakub@redhat.com>
7146 PR rtl-optimization/100342
7147 * regcprop.c (copy_value): When copying a source reg in a wider
7148 mode than it has recorded for the value, adjust recorded destination
7149 mode too or punt if !REG_CAN_CHANGE_MODE_P.
7151 2021-05-14 Jason Merrill <jason@redhat.com>
7153 * intl.h: Add comments.
7155 2021-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7157 * config/aarch64/aarch64-simd.md
7158 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Split into...
7159 (aarch64_sqdmlsl2_lane<mode>_internal): ... This...
7160 (aarch64_sqdmlal2_lane<mode>_internal): ... And this.
7161 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Split into ...
7162 (aarch64_sqdmlsl2_laneq<mode>_internal): ... This...
7163 (aarch64_sqdmlal2_laneq<mode>_internal): ... And this.
7164 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Split into...
7165 (aarch64_sqdmlsl2_n<mode>_internal): ... This...
7166 (aarch64_sqdmlal2_n<mode>_internal): ... And this.
7168 2021-05-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7171 * config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's
7172 boolean logic equivalent.
7173 (vtst_s16): Likewise.
7174 (vtst_s32): Likewise.
7175 (vtst_u8): Likewise.
7176 (vtst_u16): Likewise.
7177 (vtst_u32): Likewise.
7178 (vtst_p8): Likewise.
7179 (vtst_p16): Likewise.
7180 (vtstq_s8): Likewise.
7181 (vtstq_s16): Likewise.
7182 (vtstq_s32): Likewise.
7183 (vtstq_u8): Likewise.
7184 (vtstq_u16): Likewise.
7185 (vtstq_u32): Likewise.
7186 (vtstq_p8): Likewise.
7187 (vtstq_p16): Likewise.
7188 * config/arm/arm_neon_builtins.def: Remove entry for vtst.
7189 * config/arm/neon.md (neon_vtst<mode>): Remove pattern.
7191 2021-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7193 * config/aarch64/aarch64-simd.md (aarch64_sqdmlal2<mode>): Merge into...
7194 (aarch64_sqdml<SBINQOPS:as>l2<mode>): ... This.
7195 (aarch64_sqdmlsl2<mode>): Delete.
7196 (aarch64_sqdmlal2_lane<mode>): Merge this...
7197 (aarch64_sqdmlsl2_lane<mode>): ... And this...
7198 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>): ... Into this.
7199 (aarch64_sqdmlal2_laneq<mode>): Merge this...
7200 (aarch64_sqdmlsl2_laneq<mode>): ... And this...
7201 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>): ... Into this.
7202 (aarch64_sqdmlal2_n<mode>): Merge this...
7203 (aarch64_sqdmlsl2_n<mode>): ... And this...
7204 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>): ... Into this.
7206 2021-05-13 Martin Sebor <msebor@redhat.com>
7208 PR middle-end/100574
7209 * builtins.c (access_ref::get_ref): Improve detection of PHIs with
7212 2021-05-13 Martin Sebor <msebor@redhat.com>
7214 PR tree-optimization/93100
7216 * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that
7217 don't modify referenced objects.
7219 2021-05-13 Martin Jambor <mjambor@suse.cz>
7221 PR tree-optimization/100453
7222 * tree-sra.c (sra_modify_assign): All const base accesses do not
7223 need refreshing, not just those from decl_pool.
7224 (sra_modify_assign): Do not refresh into a const base decl.
7226 2021-05-13 Martin Liska <mliska@suse.cz>
7228 * tree-ssa-dom.c: Remove m_simplifier.
7230 2021-05-13 Richard Earnshaw <rearnsha@arm.com>
7233 * config/arm/arm.c (arm_canonicalize_comparison): Correctly
7234 canonicalize DImode inequality comparisons against the
7235 maximum integral value.
7237 2021-05-13 Jakub Jelinek <jakub@redhat.com>
7239 PR tree-optimization/98856
7240 * config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument.
7241 Expect V2DI and V4DI arithmetic right shifts to be emulated.
7242 (ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost
7244 * config/i386/i386-expand.c (expand_vec_perm_2perm_interleave,
7245 expand_vec_perm_2perm_pblendv): New functions.
7246 (ix86_expand_vec_perm_const_1): Use them.
7247 * config/i386/sse.md (ashr<mode>3<mask_name>): Rename to ...
7248 (<mask_codefor>ashr<mode>3<mask_name>): ... this.
7249 (ashr<mode>3): New define_expand with VI248_AVX512BW iterator.
7250 (ashrv4di3): New define_expand.
7251 (ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP
7252 and !TARGET_AVX512VL expansion.
7254 2021-05-13 Uroš Bizjak <ubizjak@gmail.com>
7257 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode
7258 sizes < 16 to a register when constructing vpcmov pattern.
7259 * config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode.
7261 2021-05-13 Martin Liska <mliska@suse.cz>
7263 * gcov-io.c (gcov_write_block): Remove.
7264 (gcov_write_words): Likewise.
7265 (gcov_read_words): Re-implement using gcov_read_bytes.
7266 (gcov_allocate): Remove.
7267 (GCOV_BLOCK_SIZE): Likewise.
7268 (struct gcov_var): Remove most of the fields.
7269 (gcov_position): Implement with ftell.
7270 (gcov_rewrite): Remove setting of start and offset fields.
7271 (from_file): Re-format.
7272 (gcov_open): Remove setbuf call. It should not be needed.
7273 (gcov_close): Remove internal buffer handling.
7274 (gcov_magic): Use __builtin_bswap32.
7275 (gcov_write_counter): Use directly gcov_write_unsigned.
7276 (gcov_write_string): Use direct fwrite and do not round
7278 (gcov_seek): Use directly fseek.
7279 (gcov_write_tag): Use gcov_write_unsigned directly.
7280 (gcov_write_length): Likewise.
7281 (gcov_write_tag_length): Likewise.
7282 (gcov_read_bytes): Use directly fread.
7283 (gcov_read_unsigned): Use gcov_read_words.
7284 (gcov_read_counter): Likewise.
7285 (gcov_read_string): Use gcov_read_bytes.
7286 * gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect
7287 that size is not in bytes, but words (4B).
7288 (GCOV_TAG_FUNCTION_LENGTH): Likewise.
7289 (GCOV_TAG_ARCS_LENGTH): Likewise.
7290 (GCOV_TAG_ARCS_NUM): Likewise.
7291 (GCOV_TAG_COUNTER_LENGTH): Likewise.
7292 (GCOV_TAG_COUNTER_NUM): Likewise.
7293 (GCOV_TAG_SUMMARY_LENGTH): Likewise.
7295 2021-05-13 liuhongt <hongtao.liu@intel.com>
7298 * config/i386/sse.md (ssedoublevecmode): Add attribute for
7299 V64QI/V32HI/V16SI/V4DI.
7300 (ssehalfvecmode): Add attribute for V2DI/V2DF.
7301 (*vec_concatv4si_0): Extend to VI124_128.
7302 (*vec_concat<mode>_0): New pre-reload splitter.
7303 * config/i386/predicates.md (movq_parallel): New predicate.
7305 2021-05-13 Alexandre Oliva <oliva@adacore.com>
7307 * targhooks.c (default_zero_call_used_regs): Retry using
7308 successfully-zeroed registers as sources.
7310 2021-05-12 Tobias Burnus <tobias@codesourcery.com>
7312 * omp-low.c (finish_taskreg_scan): Use the proper detach decl.
7314 2021-05-12 Aldy Hernandez <aldyh@redhat.com>
7317 * gimple-range.cc (range_of_builtin_call): Skip out on
7318 processing __builtin_clz when varying.
7320 2021-05-12 Tom de Vries <tdevries@suse.de>
7323 * config/nvptx/nvptx-opts.h (enum ptx_version): New enum.
7324 * config/nvptx/nvptx.c (nvptx_file_start): Print .version according
7325 to ptx_version_option.
7326 * config/nvptx/nvptx.h (TARGET_PTX_6_3): Define.
7327 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
7328 (define_insn "nvptx_vote_ballot"): Use sync variant for
7330 * config/nvptx/nvptx.opt (ptx_version): Add enum.
7332 * doc/invoke.texi (Nvidia PTX Options): Add mptx item.
7334 2021-05-12 Richard Biener <rguenther@suse.de>
7336 PR tree-optimization/100566
7337 * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
7338 allow_back for all edge queries.
7340 2021-05-12 liuhongt <hongtao.liu@intel.com>
7343 * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add
7344 splitters for pblendvb of NOT mask register.
7346 2021-05-12 Richard Biener <rguenther@suse.de>
7348 PR tree-optimization/100519
7349 * tree-ssa-reassoc.c (can_associate_p): Split into...
7350 (can_associate_op_p): ... this
7351 (can_associate_type_p): ... and this.
7352 (is_reassociable_op): Call can_associate_op_p.
7353 (break_up_subtract_bb): Call the appropriate predicates.
7354 (reassociate_bb): Likewise.
7356 2021-05-12 Martin Liska <mliska@suse.cz>
7358 * lto-wrapper.c (merge_and_complain): Merge -flto=arg options.
7359 (run_gcc): Use -flto argument detection for merged
7362 2021-05-12 Martin Liska <mliska@suse.cz>
7364 * lto-wrapper.c (print_lto_docs_link): New function.
7365 (run_gcc): Print warning about missing job server detection
7366 after we know NR of partitions. Do the same for -flto{,=1}.
7367 * opts.c (get_option_html_page): Support -flto option.
7369 2021-05-12 Martin Liska <mliska@suse.cz>
7371 * lto-wrapper.c (get_options_from_collect_gcc_options): Change
7373 (append_option): Remove.
7374 (find_option): Rework to use the vector type.
7375 (remove_option): Remove.
7376 (merge_and_complain): Use vectors for cl_decoded_option data
7378 (append_compiler_options): Likewise.
7379 (append_diag_options): Likewise.
7380 (append_linker_options): Likewise.
7381 (append_offload_options): Likewise.
7382 (compile_offload_image): Likewise.
7383 (compile_images_for_offload_targets): Likewise.
7384 (find_and_merge_options): Likewise.
7385 (run_gcc): Likewise.
7387 2021-05-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
7390 * dwarf2out.c (dwarf2out_finish): Set
7391 have_multiple_function_sections with multi-range text_section.
7393 2021-05-12 Martin Liska <mliska@suse.cz>
7396 * Makefile.in: Remove version.h from linker command line.
7398 2021-05-12 Richard Biener <rguenther@suse.de>
7400 PR middle-end/100547
7401 * rtl.h (rtvec_alloc): Make argument size_t.
7402 * rtl.c (rtvec_alloc): Verify the count is less than INT_MAX.
7404 2021-05-12 Jakub Jelinek <jakub@redhat.com>
7406 PR middle-end/100508
7407 * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector
7408 type, don't reuse DECL_RTL if it has different mode, instead force
7409 creation of a new DEBUG_EXPR.
7411 2021-05-12 Jakub Jelinek <jakub@redhat.com>
7412 Marc Glisse <marc.glisse@inria.fr>
7414 PR tree-optimization/94589
7415 * match.pd ((X & Y) == X -> (X & ~Y) == 0,
7416 (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications.
7418 2021-05-12 Uroš Bizjak <ubizjak@gmail.com>
7421 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode.
7422 * config/i386/mmx.md (MMXMODE124): New mode iterator.
7424 (mmxintvecmode): New mode attribute.
7425 (mmxintvecmodelower): Ditto.
7426 (*mmx_maskcmpv2sf3_comm): New insn pattern.
7427 (*mmx_maskcmpv2sf3): Ditto.
7428 (vec_cmpv2sfv2si): New expander.
7429 (vcond<V2FI:mode>v2si): Ditto.
7430 (mmx_vlendvps): New insn pattern.
7431 (vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode.
7432 (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
7433 (vcond_mask_<mode><mmxintvecmodelower>): Ditto.
7435 2021-05-11 Martin Sebor <msebor@redhat.com>
7438 * expr.c (expand_expr_real_1): Replace unreachable code with an assert.
7440 2021-05-11 Richard Biener <rguenther@suse.de>
7442 * gimple-fold.c (gimple_fold_call): Do not call
7443 maybe_fold_reference on call arguments or the static chain.
7444 (fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM
7447 2021-05-11 Martin Liska <mliska@suse.cz>
7449 * builtins.def (DEF_HSAIL_BUILTIN): Remove.
7450 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
7451 (DEF_HSAIL_SAT_BUILTIN): Likewise.
7452 (DEF_HSAIL_INTR_BUILTIN): Likewise.
7453 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
7454 * doc/frontends.texi: Remove BRIG.
7455 * doc/install.texi: Likewise.
7456 * doc/invoke.texi: Likewise.
7457 * doc/standards.texi: Likewise.
7458 * brig-builtins.def: Removed.
7459 * brig/ChangeLog: Removed.
7460 * brig/Make-lang.in: Removed.
7461 * brig/brig-builtins.h: Removed.
7462 * brig/brig-c.h: Removed.
7463 * brig/brig-lang.c: Removed.
7464 * brig/brigfrontend/brig-arg-block-handler.cc: Removed.
7465 * brig/brigfrontend/brig-atomic-inst-handler.cc: Removed.
7466 * brig/brigfrontend/brig-basic-inst-handler.cc: Removed.
7467 * brig/brigfrontend/brig-branch-inst-handler.cc: Removed.
7468 * brig/brigfrontend/brig-cmp-inst-handler.cc: Removed.
7469 * brig/brigfrontend/brig-code-entry-handler.cc: Removed.
7470 * brig/brigfrontend/brig-code-entry-handler.h: Removed.
7471 * brig/brigfrontend/brig-comment-handler.cc: Removed.
7472 * brig/brigfrontend/brig-control-handler.cc: Removed.
7473 * brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed.
7474 * brig/brigfrontend/brig-cvt-inst-handler.cc: Removed.
7475 * brig/brigfrontend/brig-fbarrier-handler.cc: Removed.
7476 * brig/brigfrontend/brig-function-handler.cc: Removed.
7477 * brig/brigfrontend/brig-function.cc: Removed.
7478 * brig/brigfrontend/brig-function.h: Removed.
7479 * brig/brigfrontend/brig-inst-mod-handler.cc: Removed.
7480 * brig/brigfrontend/brig-label-handler.cc: Removed.
7481 * brig/brigfrontend/brig-lane-inst-handler.cc: Removed.
7482 * brig/brigfrontend/brig-machine.c: Removed.
7483 * brig/brigfrontend/brig-machine.h: Removed.
7484 * brig/brigfrontend/brig-mem-inst-handler.cc: Removed.
7485 * brig/brigfrontend/brig-module-handler.cc: Removed.
7486 * brig/brigfrontend/brig-queue-inst-handler.cc: Removed.
7487 * brig/brigfrontend/brig-seg-inst-handler.cc: Removed.
7488 * brig/brigfrontend/brig-signal-inst-handler.cc: Removed.
7489 * brig/brigfrontend/brig-to-generic.cc: Removed.
7490 * brig/brigfrontend/brig-to-generic.h: Removed.
7491 * brig/brigfrontend/brig-util.cc: Removed.
7492 * brig/brigfrontend/brig-util.h: Removed.
7493 * brig/brigfrontend/brig-variable-handler.cc: Removed.
7494 * brig/brigfrontend/hsa-brig-format.h: Removed.
7495 * brig/brigfrontend/phsa.h: Removed.
7496 * brig/brigspec.c: Removed.
7497 * brig/config-lang.in: Removed.
7498 * brig/gccbrig.texi: Removed.
7499 * brig/lang-specs.h: Removed.
7500 * brig/lang.opt: Removed.
7502 2021-05-11 Richard Biener <rguenther@suse.de>
7505 * ipa-param-manipulation.c
7506 (ipa_param_body_adjustments::modify_call_stmt): Avoid
7507 altering SSA_NAME_DEF_STMT by adjusting the calls LHS
7508 via gimple_call_lhs_ptr.
7510 2021-05-11 Alex Coplan <alex.coplan@arm.com>
7513 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear):
7514 Avoid emitting CFA adjusts on the sp if we have the fp.
7516 2021-05-11 Richard Sandiford <richard.sandiford@arm.com>
7518 * config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete.
7519 (VMULD): New iterator.
7520 (VCOND): Handle V4HF and V8HF.
7521 (VCONQ): Fix entry for V2SF.
7522 * config/aarch64/aarch64-simd.md (mul_lane<mode>3): Use VMULD
7523 instead of VMUL. Use a 64-bit vector mode for the indexed operand.
7524 (*aarch64_mul3_elt_<vswap_width_name><mode>): Merge with...
7525 (mul_laneq<mode>3): ...this define_insn. Use VMUL instead of VDQSF.
7526 Use a 128-bit vector mode for the indexed operand. Use stype for
7527 the scheduling type.
7529 2021-05-11 Richard Biener <rguenther@suse.de>
7531 * gimple-fold.c (maybe_fold_reference): Only return
7532 is_gimple_min_invariant values.
7534 2021-05-11 Richard Biener <rguenther@suse.de>
7536 PR middle-end/100509
7537 * gimple-fold.c (fold_gimple_assign): Only call
7538 get_symbol_constant_value on register type symbols.
7540 2021-05-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7541 Joe Ramsay <joe.ramsay@arm.com>
7544 * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments.
7545 (__arm_vcmpneq): Remove duplicate definition.
7546 (__arm_vstrwq_scatter_offset_p): Likewise.
7547 (__arm_vmaxq_x): Likewise.
7548 (__arm_vmlsdavaq): Likewise.
7549 (__arm_vmlsdavaxq): Likewise.
7550 (__arm_vmlsdavq_p): Likewise.
7551 (__arm_vmlsdavxq_p): Likewise.
7552 (__arm_vrmlaldavhaq): Likewise.
7553 (__arm_vstrbq_p): Likewise.
7554 (__arm_vstrbq_scatter_offset): Likewise.
7555 (__arm_vstrbq_scatter_offset_p): Likewise.
7556 (__arm_vstrdq_scatter_offset): Likewise.
7557 (__arm_vstrdq_scatter_offset_p): Likewise.
7558 (__arm_vstrdq_scatter_shifted_offset): Likewise.
7559 (__arm_vstrdq_scatter_shifted_offset_p): Likewise.
7561 2021-05-11 Jakub Jelinek <jakub@redhat.com>
7563 PR middle-end/100471
7564 * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data
7565 is 0, bypass the reduction loop including
7566 GOMP_taskgroup_reduction_unregister call.
7568 2021-05-11 Kewen Lin <linkw@linux.ibm.com>
7570 * config/rs6000/rs6000.c (struct rs6000_cost_data): New member
7572 (rs6000_density_test): Early return if costing_for_scalar is true.
7573 (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data.
7575 2021-05-11 Kewen Lin <linkw@linux.ibm.com>
7577 * doc/tm.texi: Regenerated.
7578 * target.def (init_cost): Add new parameter costing_for_scalar.
7579 * targhooks.c (default_init_cost): Adjust for new parameter.
7580 * targhooks.h (default_init_cost): Likewise.
7581 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise.
7582 (vect_compute_single_scalar_iteration_cost): Likewise.
7583 (vect_analyze_loop_2): Likewise.
7584 * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise.
7585 (vect_bb_vectorization_profitable_p): Likewise.
7586 * tree-vectorizer.h (init_cost): Likewise.
7587 * config/aarch64/aarch64.c (aarch64_init_cost): Likewise.
7588 * config/i386/i386.c (ix86_init_cost): Likewise.
7589 * config/rs6000/rs6000.c (rs6000_init_cost): Likewise.
7591 2021-05-11 Kewen Lin <linkw@linux.ibm.com>
7593 * config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to
7594 vect_nonmem and moved into...
7595 (struct rs6000_cost_data): ...here.
7596 (rs6000_init_cost): Use vect_nonmem of cost_data instead.
7597 (rs6000_add_stmt_cost): Likewise.
7598 (rs6000_finish_cost): Likewise.
7600 2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
7602 * range-op.cc (get_bool_state): Adjust head comment.
7603 (operator_not_equal::op1_range): Fix comment.
7604 (operator_bitwise_xor::op1_range): Remove call to gcc_unreachable.
7606 2021-05-10 Martin Sebor <msebor@redhat.com>
7608 PR middle-end/100425
7609 PR middle-end/100510
7610 * gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename...
7611 (pass_walloca::xlimit_certain_p): ...to this.
7612 (pass_walloca::gate): Execute for any kind of handled warning.
7613 (pass_walloca::execute): Avoid issuing "maybe" and "unbounded"
7614 warnings when xlimit_certain_p is set.
7616 2021-05-10 Pat Haugen <pthaugen@linux.ibm.com>
7618 * config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class):
7619 Return ALTIVEC_REGS if that is best_class.
7620 (rs6000_compute_pressure_classes): Add ALTIVEC_REGS.
7622 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
7624 * config/arm/arm.h (CPP_SPEC): Remove error message about
7627 2021-05-10 Martin Jambor <mjambor@suse.cz>
7629 * ipa-prop.h (IPA_NODE_REF): Removed.
7630 (IPA_NODE_REF_GET_CREATE): Likewise.
7631 (IPA_EDGE_REF): Likewise.
7632 (IPA_EDGE_REF_GET_CREATE): Likewise.
7633 (IS_VALID_JUMP_FUNC_INDEX): Likewise.
7634 * ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct
7635 use of ipa_node_params_sum.
7636 (ipcp_versionable_function_p): Likewise.
7637 (push_node_to_stack): Likewise.
7638 (pop_node_from_stack): Likewise.
7639 (set_single_call_flag): Replaced two IPA_NODE_REF with one single
7640 direct use of ipa_node_params_sum.
7641 (initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of
7642 ipa_node_params_sum.
7643 (ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of
7645 (ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct
7646 use of ipa_node_params_sum.
7647 (self_recursively_generated_p): Likewise.
7648 (propagate_scalar_across_jump_function): Likewise.
7649 (propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a
7650 direct use of ipa_edge_args_sum, moved the lookup after the early
7651 exit. Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum.
7652 (propagate_bits_across_jump_function): Replaced IPA_NODE_REF with
7653 direct uses of ipa_node_params_sum.
7654 (propagate_vr_across_jump_function): Likewise.
7655 (propagate_aggregate_lattice): Likewise.
7656 (propagate_aggs_across_jump_function): Likewise.
7657 (propagate_constants_across_call): Likewise, also replaced
7658 IPA_EDGE_REF with a direct use of ipa_edge_args_sum.
7659 (good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use
7660 of ipa_node_params_sum.
7661 (estimate_local_effects): Likewise.
7662 (add_all_node_vals_to_toposort): Likewise.
7663 (propagate_constants_topo): Likewise.
7664 (ipcp_propagate_stage): Likewise.
7665 (ipcp_discover_new_direct_edges): Likewise.
7666 (calls_same_node_or_its_all_contexts_clone_p): Likewise.
7667 (cgraph_edge_brings_value_p): Likewise (in both overloaded functions).
7668 (get_info_about_necessary_edges): Likewise.
7669 (want_remove_some_param_p): Likewise.
7670 (create_specialized_node): Likewise.
7671 (self_recursive_pass_through_p): Likewise.
7672 (self_recursive_agg_pass_through_p): Likewise.
7673 (find_more_scalar_values_for_callers_subset): Likewise and also
7674 replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one
7675 case replacing two of those with a single query.
7676 (find_more_contexts_for_caller_subset): Likewise for the
7677 ipa_polymorphic_call_context overload.
7678 (intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct
7679 use of ipa_edge_args_sum. Replaced IPA_NODE_REF with direct uses of
7680 ipa_node_params_sum.
7681 (find_aggregate_values_for_callers_subset): Likewise, also reusing
7682 results of ipa_edge_args_sum->get.
7683 (cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with
7684 direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a
7685 direct use of ipa_edge_args_sum.
7686 (cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node
7687 summary query after the early exit and reused the result later.
7688 (decide_about_value): Replaced IPA_NODE_REF with a direct use of
7689 ipa_node_params_sum.
7690 (decide_whether_version_node): Likewise. Removed re-querying for
7691 summaries after cloning.
7692 (spread_undeadness): Replaced IPA_NODE_REF with a direct use of
7693 ipa_node_params_sum.
7694 (has_undead_caller_from_outside_scc_p): Likewise, reusing results of
7696 (identify_dead_nodes): Likewise.
7697 (ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of
7698 ipa_node_params_sum.
7699 (ipcp_store_vr_results): Likewise.
7700 * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
7701 (ipa_fn_summary_t::duplicate): Likewise.
7702 (analyze_function_body): Likewise.
7703 (estimate_calls_size_and_time): Likewise.
7704 (ipa_cached_call_context::duplicate_from): Likewise.
7705 (ipa_call_context::equal_to): Likewise.
7706 (remap_edge_params): Likewise.
7707 (ipa_merge_fn_summary_after_inlining): Likewise.
7708 (inline_read_section): Likewise.
7709 * ipa-icf.c (sem_function::param_used_p): Likewise.
7710 * ipa-modref.c (compute_parm_map): Likewise.
7711 (compute_parm_map): Replaced IPA_EDGE_REF with a direct use of
7713 (get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of
7714 ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
7716 * ipa-profile.c (check_argument_count): Likewise.
7717 * ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE
7718 with a direct use of ipa_node_params_sum.
7719 (ipa_initialize_node_params): Likewise.
7720 (ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a
7721 direct use of ipa_edge_args_sum and reused the query result.
7722 (ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a
7723 direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a
7724 direct use of ipa_edge_args_sum.
7725 (ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of
7726 ipa_node_params_sum and reused the result of the query.
7727 (ipa_analyze_node): Likewise.
7728 (ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use
7729 of ipa_node_params_sum.
7730 (update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with
7731 direct uses of ipa_edge_args_sum.
7732 (update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with
7733 direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a
7734 direct use of ipa_edge_args_sum. Removed superficial re-querying the
7736 (propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of
7737 ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
7739 (ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a
7740 direct use of ipa_edge_args_sum.
7741 (ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct
7742 use of ipa_node_params_sum.
7743 (ipa_print_node_params): Likewise.
7744 (ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with
7745 direct uses of ipa_edge_args_sum.
7746 (ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of
7748 (ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of
7749 ipa_node_params_sum.
7750 (ipa_prop_write_jump_functions): Likewise. Move variable node to the
7751 scopes where it is used.
7753 2021-05-10 Uroš Bizjak <ubizjak@gmail.com>
7755 * config/i386/i386-expand.c (ix86_expand_sse_movcc)
7756 <case E_V2SImode>: Force op_true to register.
7758 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
7760 * config/arm/iterators.md (MVE_FP_COMPARISONS): New.
7761 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_f<mode>)
7762 (mve_vcmp<mve_cmp_op>q_n_f<mode>): New, merge all vcmp_*f*
7764 (mve_vcmpeqq_f<mode>, mve_vcmpeqq_n_f<mode>, mve_vcmpgeq_f<mode>)
7765 (mve_vcmpgeq_n_f<mode>, mve_vcmpgtq_f<mode>)
7766 (mve_vcmpgtq_n_f<mode>, mve_vcmpleq_f<mode>)
7767 (mve_vcmpleq_n_f<mode>, mve_vcmpltq_f<mode>)
7768 (mve_vcmpltq_n_f<mode>, mve_vcmpneq_f<mode>)
7769 (mve_vcmpneq_n_f<mode>): Remove.
7770 * config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F)
7771 (VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F)
7772 (VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove.
7774 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
7776 * config/arm/iterators.md (MVE_COMPARISONS): New.
7778 (mve_cmp_type): New.
7779 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all
7781 (mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>)
7782 (mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>)
7783 (mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>)
7784 (mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>)
7785 (mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
7786 (mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
7787 (mve_vcmpneq_n_<mode>): Remove.
7789 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
7791 * config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix.
7792 * config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix.
7793 * config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern
7796 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
7798 * config/arm/arm_mve_builtins.def (vcmpneq_u): Remove.
7799 (vcmpneq_n_u): Likewise.
7800 (vcmpeqq_u,): Likewise.
7801 (vcmpeqq_n_u): Likewise.
7802 * config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U,
7803 VCMPEQQ_N_U and VCMPNEQ_N_U.
7804 * config/arm/mve.md (mve_vcmpneq): Remove <supf> iteration.
7805 (mve_vcmpeqq_n): Likewise.
7806 (mve_vcmpeqq): Likewise.
7807 (mve_vcmpneq_n): Likewise.
7809 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
7811 * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call
7812 the 's' version of the builtin.
7814 2021-05-10 Richard Biener <rguenther@suse.de>
7816 PR tree-optimization/100492
7817 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
7818 Find nothing when the loop contains an irreducible region.
7820 2021-05-10 Richard Biener <rguenther@suse.de>
7822 PR middle-end/100464
7824 * gimple-fold.c (canonicalize_constructor_val): Do not set
7827 2021-05-10 Richard Biener <rguenther@suse.de>
7829 PR tree-optimization/100434
7830 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
7832 (dse_optimize_stmt): Handle call LHS by dropping the
7833 LHS or the whole call if it doesn't have other
7835 (pass_dse::execute): Adjust.
7837 2021-05-10 Martin Liska <mliska@suse.cz>
7839 * Makefile.in: Add missing genversion rule.
7841 2021-05-10 Alex Coplan <alex.coplan@arm.com>
7844 * config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use
7845 vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores.
7847 2021-05-10 Martin Liska <mliska@suse.cz>
7849 * builtins.c (is_builtin_name): Use startswith
7850 function instead of strncmp.
7851 * collect2.c (main): Likewise.
7852 (has_lto_section): Likewise.
7853 (scan_libraries): Likewise.
7854 * coverage.c (coverage_checksum_string): Likewise.
7855 (coverage_init): Likewise.
7856 * dwarf2out.c (is_cxx): Likewise.
7857 (gen_compile_unit_die): Likewise.
7858 * gcc-ar.c (main): Likewise.
7859 * gcc.c (init_spec): Likewise.
7860 (read_specs): Likewise.
7861 (execute): Likewise.
7862 (check_live_switch): Likewise.
7863 * genattrtab.c (write_attr_case): Likewise.
7864 (IS_ATTR_GROUP): Likewise.
7865 * gencfn-macros.c (main): Likewise.
7866 * gengtype.c (type_for_name): Likewise.
7867 (gen_rtx_next): Likewise.
7868 (get_file_langdir): Likewise.
7869 (write_local): Likewise.
7870 * genmatch.c (get_operator): Likewise.
7871 (get_operand_type): Likewise.
7872 (expr::gen_transform): Likewise.
7873 * genoutput.c (validate_optab_operands): Likewise.
7874 * incpath.c (add_sysroot_to_chain): Likewise.
7875 * langhooks.c (lang_GNU_C): Likewise.
7876 (lang_GNU_CXX): Likewise.
7877 (lang_GNU_Fortran): Likewise.
7878 (lang_GNU_OBJC): Likewise.
7879 * lto-wrapper.c (run_gcc): Likewise.
7880 * omp-general.c (omp_max_simt_vf): Likewise.
7881 * omp-low.c (omp_runtime_api_call): Likewise.
7882 * opts-common.c (parse_options_from_collect_gcc_options): Likewise.
7883 * read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise.
7884 * real.c (real_from_string): Likewise.
7885 * selftest.c (assert_str_startswith): Likewise.
7886 * timevar.c (timer::validate_phases): Likewise.
7887 * tree.c (get_file_function_name): Likewise.
7888 * ubsan.c (ubsan_use_new_style_p): Likewise.
7889 * varasm.c (default_function_rodata_section): Likewise.
7890 (incorporeal_function_p): Likewise.
7891 (default_section_type_flags): Likewise.
7892 * system.h (startswith): Define startswith.
7894 2021-05-10 Martin Liska <mliska@suse.cz>
7896 * bitmap.h (class auto_bitmap): Remove
7897 __cplusplus >= 201103.
7898 * config/aarch64/aarch64.c: Likewise.
7899 * gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info):
7901 * sbitmap.h: Likewise.
7903 2021-05-10 Martin Liska <mliska@suse.cz>
7905 * Makefile.in: Rename gcov-iov to genversion and depend
7906 on version.h (instead of gcov-iov.h).
7907 * gcov-io.h: Include version.h instread of gcov-iov.h.
7908 * gengtype-state.c (read_state_version): Likewise.
7909 * gcov-iov.c: Moved to...
7910 * genversion.c: ...here.
7911 * lto-streamer.h (LTO_major_version): Define it with
7913 * version.c: Removed.
7914 * version.h: Removed.
7916 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7918 * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define.
7919 * config/arc/simdext.md (VCT): Add predicates for iterator
7923 (vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate.
7924 (<voptab>v2si3): New patterns.
7926 (reduc_plus_scal_v4hi): Likewise.
7927 (reduc_plus_scal_v2si): Likewise.
7928 (vec_duplicatev2si): Likewise.
7929 (vec_duplicatev4hi): Likewise.
7931 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7933 * config/arc/simdext.md: Format and cleanup file.
7935 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7937 * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access
7938 only when munaligned-access option is on.
7939 (movmisalign<mode>): Likewise.
7941 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7943 * common/config/arc/arc-common.c (arc_handle_option): Remove dot
7945 * config/arc/arc.c (arc_reorg): Remove underscore from string.
7947 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7949 * config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
7950 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
7951 * config/arc/arc.md (clrsbsi2): Cleanup pattern.
7955 (clzsi2): Use fls instruction when available.
7956 (arc_clzsi2): Likewise.
7958 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7960 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27.
7962 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7964 * doc/extend.texi (__builtin_arc_sr): Swap arguments.
7966 2021-05-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
7968 PR middle-end/100467
7969 * toplev.c (compile_file): Call insn_locations_init before
7970 targetm.asm_out.code_end.
7972 2021-05-07 Andrew Stubbs <ams@codesourcery.com>
7975 2021-05-07 Andrew Stubbs <ams@codesourcery.com>
7977 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
7979 2021-05-07 Jakub Jelinek <jakub@redhat.com>
7980 Andrew Stubbs <amd@codesourcery.com>
7983 * builtins.c (try_store_by_multiple_pieces): Use force_operand for
7984 emit_move_insn operands.
7986 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
7988 * cfgexpand.c (expand_gimple_basic_block): Do not inherit a current
7989 location for the outgoing edges of an empty block.
7990 * dwarf2out.c (add_subscript_info): Retrieve the bounds and index
7991 type by means of the get_array_descr_info langhook, if it is set and
7992 returns true. Remove obsolete code dealing with unnamed subtypes.
7994 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
7996 * gimple-range-cache.cc (ssa_block_ranges): Virtualize.
7997 (sbr_vector): Renamed from ssa_block_cache.
7998 (sbr_vector::sbr_vector): Allocate from obstack abd initialize.
7999 (ssa_block_ranges::~ssa_block_ranges): Remove.
8000 (sbr_vector::set_bb_range): Use varying and undefined cached values.
8001 (ssa_block_ranges::set_bb_varying): Remove.
8002 (sbr_vector::get_bb_range): Adjust assert.
8003 (sbr_vector::bb_range_p): Adjust assert.
8004 (~block_range_cache): No freeing loop required.
8005 (block_range_cache::get_block_ranges): Remove.
8006 (block_range_cache::set_bb_range): Inline get_block_ranges.
8007 (block_range_cache::set_bb_varying): Remove.
8008 * gimple-range-cache.h (set_bb_varying): Remove prototype.
8009 * value-range.h (irange_allocator::get_memory): New.
8011 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
8013 * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search
8014 dominator tree is available and requested.
8015 (ranger_cache::ssa_range_in_bb): Don't search dom tree here.
8016 (ranger_cache::fill_block_cache): Don't search dom tree here either.
8017 * gimple-range-cache.h (non_null_deref_p): Add dom_search param.
8019 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
8021 * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with
8022 only PHI nodes better.
8024 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
8026 * gimple-range-edge.h (gimple_outgoing_range): Rename from
8028 (gcond_edge_range): Export prototype.
8029 * gimple-range-edge.cc (gcond_edge_range): New.
8030 (gimple_outgoing_range::edge_range_p): Use gcond_edge_range.
8031 * gimple-range-gori.h (gori_compute): Use gimple_outgoing_range.
8033 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
8035 * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute
8036 default range into a temp and allocate only what is needed.
8038 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
8040 * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED.
8042 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
8044 * gimple-range.h (gimple_range_global): Pick up parameter initial
8045 values, and use-before defined locals are UNDEFINED.
8047 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
8049 * doc/extend.texi (scalar_storage_order): Mention effect on pointer
8051 * tree.h (reverse_storage_order_for_component_p): Return false if
8052 the type is a pointer.
8054 2021-05-07 Andrew Stubbs <ams@codesourcery.com>
8056 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
8058 2021-05-07 Uroš Bizjak <ubizjak@gmail.com>
8061 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
8062 Handle V8QI, V4HI and V2SI modes.
8063 * config/i386/mmx.md (mmx_pblendvb): New insn pattern.
8064 * config/i386/sse.md (unspec): Move UNSPEC_BLENDV ...
8065 * config/i386/i386.md (unspec): ... here.
8067 2021-05-07 Tobias Burnus <tobias@codesourcery.com>
8068 Tom de Vries <tdevries@suse.de>
8070 * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if
8071 a truth_value_p reduction variable is nonintegral.
8073 2021-05-07 Uroš Bizjak <ubizjak@gmail.com>
8076 * config/i386/i386-expand.c (ix86_use_mask_cmp_p):
8077 Return false for mode sizes < 16.
8079 2021-05-07 Jakub Jelinek <jakub@redhat.com>
8082 * config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn.
8084 2021-05-06 Martin Jambor <mjambor@suse.cz>
8086 * ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even
8087 when there is no function summary.
8088 (ipa_sra_summarize_function): produce edge summaries even when
8091 2021-05-06 Tom Tromey <tom@tromey.com>
8093 * godump.c (string_hash_eq): Remove.
8094 (go_finish): Use htab_eq_string.
8096 2021-05-06 Tom Tromey <tom@tromey.com>
8098 * gengtype-state.c (read_state): Use htab_eq_string.
8099 (string_eq): Remove.
8101 2021-05-06 Tom Tromey <tom@tromey.com>
8103 * gensupport.c (htab_eq_string): Remove.
8105 2021-05-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
8108 * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer.
8109 * dwarf2out.h (dw_fde_node::ignored_debug): New data item.
8110 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy
8111 set_ignored_loc callbacks.
8112 * debug.c (do_nothing_debug_hooks): Likewise.
8113 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8114 * dwarf2out.c (text_section_used, cold_text_section_used): Remove.
8115 (in_text_section_p, last_text_label, last_cold_label,
8116 switch_text_ranges, switch_cold_ranges): New data items.
8117 (dwarf2out_note_section_used): Remove.
8118 (dwarf2out_begin_prologue): Set fde->ignored_debug and
8120 (mark_ignored_debug_section): New helper function.
8121 (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call
8122 mark_ignored_debug_section.
8123 (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc.
8124 (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc.
8125 (size_of_aranges): Adjust formula for multi-part text ranges size.
8126 (output_aranges): Output multi-part text ranges.
8127 (dwarf2out_set_ignored_loc): New callback function.
8128 (dwarf2out_finish): Output multi-part text ranges.
8129 (dwarf2out_c_finalize): Clear new data items.
8130 * final.c (final_start_function_1): Call set_ignored_loc callback.
8131 (final_scan_insn_1): Likewise.
8132 * ggc-page.c (gt_ggc_mx): New helper function.
8133 * stringpool.c (gt_pch_nx): Likewise.
8135 2021-05-06 Richard Biener <rguenther@suse.de>
8137 * timevar.def (TV_TREE_INSERT_PHI_NODES): Remove.
8138 (TV_TREE_SSA_REWRITE_BLOCKS): Likewise.
8139 (TV_TREE_INTO_SSA): New.
8140 * tree-into-ssa.c (insert_phi_nodes): Do not account separately.
8141 (rewrite_blocks): Likewise.
8142 (pass_data_build_ssa): Account to TV_TREE_INTO_SSA.
8144 2021-05-06 Jakub Jelinek <jakub@redhat.com>
8146 * tree-ssa-phiopt.c (value_replacement, minmax_replacement,
8147 abs_replacement, xor_replacement,
8148 cond_removal_in_popcount_clz_ctz_pattern,
8149 replace_phi_edge_with_variable): Change type of phi argument from
8152 2021-05-06 Richard Biener <rguenther@suse.de>
8154 * tree-ssa-loop-split.c (split_loop): Delay updating SSA form.
8155 Output an opt-info message.
8156 (do_split_loop_on_cond): Likewise.
8157 (tree_ssa_split_loops): Update SSA form here.
8159 2021-05-06 Richard Biener <rguenther@suse.de>
8161 * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE
8162 return variable removal.
8164 2021-05-06 Marius Hillenbrand <mhillen@linux.ibm.com>
8166 * config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros.
8167 (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
8168 (s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate
8170 * config/s390/s390.c (s390_const_operand_ok): Remove unused
8173 2021-05-06 Jakub Jelinek <jakub@redhat.com>
8175 PR tree-optimization/94589
8176 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
8177 spaceship_replacement.
8178 (cond_only_block_p, spaceship_replacement): New functions.
8180 2021-05-06 Richard Biener <rguenther@suse.de>
8183 * tree-emutls.c (gen_emutls_addr): Pass in whether we're
8184 dealing with a debug use and only query existing addresses
8186 (lower_emutls_1): Avoid splitting out addresses for debug
8187 stmts, reset the debug stmt when we fail to find existing
8189 (lower_emutls_phi_arg): Set wi.stmt.
8191 2021-05-06 Christoph Muellner <cmuellner@gcc.gnu.org>
8194 * config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper.
8195 * config/riscv/riscv.md (cbranch<mode>4): Generate helpers.
8196 (stack_protect_test): Use cbranch helper.
8198 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
8201 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
8202 always return the establisher frame for __builtin_frame_address (0).
8204 2021-05-05 Ivan Sorokin <vanyacpp@gmail.com>
8207 * config/i386/i386-builtins.c (ix86_cpu_model_type_node): New.
8208 (ix86_cpu_model_var): Likewise.
8209 (ix86_cpu_features2_type_node): Likewise.
8210 (ix86_cpu_features2_var): Likewise.
8211 (fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with
8214 2021-05-05 Martin Sebor <msebor@redhat.com>
8216 * passes.def (pass_warn_printf): Run after SSA.
8218 2021-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8220 * config/arm/neon.md (neon_vtst_combine<mode>): New pattern.
8221 * config/arm/predicates.md (minus_one_operand): New predicate.
8223 2021-05-05 Jeff Law <jlaw@tachyum.com>
8225 * config/avr/avr.md: Remove references to CC_STATUS_INIT.
8227 2021-05-05 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
8229 PR rtl-optimization/100263
8230 * postreload.c (move2add_valid_value_p): Ensure register can
8233 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
8235 PR rtl-optimization/100411
8236 * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue
8237 and beginning of function markers.
8239 2021-05-05 Jeff Law <jlaw@tachyum.com>
8241 * config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove.
8242 * config/cr16/cr16.c (notice_update_cc): Remove.
8243 * config/cr16/cr16-protos.h (notice_update_cc): Remove.
8245 2021-05-05 Uroš Bizjak <ubizjak@gmail.com>
8248 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
8249 Handle V8QI, V4HI and V2SI modes.
8250 * config/i386/i386.c (ix86_build_const_vector): Handle V2SImode.
8251 (ix86_build_signbit_mask): Ditto.
8252 * config/i386/mmx.md (MMXMODE14): New mode iterator.
8253 (<smaxmin:code><MMXMODE14:mode>3): New expander.
8254 (*mmx_<smaxmin:code><MMXMODE14:mode>3): New insn pattern.
8255 (<umaxmin:code><MMXMODE24:mode>3): New expander.
8256 (*mmx_<umaxmin:code><MMXMODE24:mode>3): New insn pattern.
8257 (vec_cmp<MMXMODEI:mode><MMXMODEI:mode>): New expander.
8258 (vec_cmpu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
8259 (vcond<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
8260 (vcondu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
8261 (vcond_mask_<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
8263 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
8265 * dwarf2out.c (loc_list_from_tree_1) <DECL>: During early DWARF, do
8266 not expand the VALUE_EXPR of variables put in the non-local frame.
8267 * gimplify.c (gimplify_type_sizes) <RECORD_TYPE>: If the type is not
8268 to be ignored for debug info, ensure its variable offsets are not.
8270 2021-05-05 Richard Biener <rguenther@suse.de>
8272 PR tree-optimization/79333
8273 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
8274 Fold stmt following SSA edges.
8276 2021-05-05 Richard Biener <rguenther@suse.de>
8278 PR middle-end/100394
8279 * calls.c (expand_call): Preserve possibly throwing calls.
8280 * cfgexpand.c (expand_call_stmt): When a call can throw signal
8281 RTL expansion there are side-effects.
8282 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify,
8283 mark all possibly throwing stmts necessary unless we can elide
8285 * tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless
8286 -fdelete-dead-exceptions.
8287 * tree.h (DECL_PURE_P): Add note about exceptions.
8289 2021-05-05 Alexandre Oliva <oliva@adacore.com>
8291 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it
8294 2021-05-04 David Edelsohn <dje.gcc@gmail.com>
8296 * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
8297 get_fnname_from_decl for name of thunk.
8298 * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name
8299 and ASM_OUTPUT_LABEL.
8300 (rs6000_xcoff_declare_function_name): Use assemble_name and
8302 (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL.
8303 (rs6000_xcoff_encode_section_info): Don't add mapping class
8304 for aliases. Always add [DS] mapping class to primary
8306 (rs6000_asm_weaken_decl): Don't explicitly add [DS].
8308 2021-05-04 Martin Sebor <msebor@redhat.com>
8310 PR middle-end/100307
8311 * builtins.c (compute_objsize_r): Clear base0 for pointers.
8313 2021-05-04 Jeff Law <jlaw@tachyum.com>
8315 * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.
8317 2021-05-04 Segher Boessenkool <segher@kernel.crashing.org>
8319 * caller-save.c: Remove CC0.
8320 * cfgcleanup.c: Remove CC0.
8321 * cfgrtl.c: Remove CC0.
8322 * combine.c: Remove CC0.
8323 * compare-elim.c: Remove CC0.
8324 * conditions.h: Remove CC0.
8325 * config/h8300/h8300.h: Remove CC0.
8326 * config/h8300/h8300-protos.h: Remove CC0.
8327 * config/h8300/peepholes.md: Remove CC0.
8328 * config/i386/x86-tune-sched.c: Remove CC0.
8329 * config/m68k/m68k.c: Remove CC0.
8330 * config/rl78/rl78.c: Remove CC0.
8331 * config/sparc/sparc.c: Remove CC0.
8332 * config/xtensa/xtensa.c: Remove CC0.
8333 (gen_conditional_move): Use pc_rtx instead of cc0_rtx in a piece of
8334 RTL where that is used as a placeholder only.
8335 * cprop.c: Remove CC0.
8336 * cse.c: Remove CC0.
8337 * cselib.c: Remove CC0.
8338 * df-problems.c: Remove CC0.
8339 * df-scan.c: Remove CC0.
8340 * doc/md.texi: Remove CC0. Adjust an example.
8341 * doc/rtl.texi: Remove CC0. Adjust an example.
8342 * doc/tm.texi: Regenerate.
8343 * doc/tm.texi.in: Remove CC0.
8344 * emit-rtl.c: Remove CC0.
8345 * final.c: Remove CC0.
8346 * fwprop.c: Remove CC0.
8347 * gcse-common.c: Remove CC0.
8348 * gcse.c: Remove CC0.
8349 * genattrtab.c: Remove CC0.
8350 * genconfig.c: Remove CC0.
8351 * genemit.c: Remove CC0.
8352 * genextract.c: Remove CC0.
8353 * gengenrtl.c: Remove CC0.
8354 * genrecog.c: Remove CC0.
8355 * haifa-sched.c: Remove CC0.
8356 * ifcvt.c: Remove CC0.
8357 * ira-costs.c: Remove CC0.
8358 * ira.c: Remove CC0.
8359 * jump.c: Remove CC0.
8360 * loop-invariant.c: Remove CC0.
8361 * lra-constraints.c: Remove CC0.
8362 * lra-eliminations.c: Remove CC0.
8363 * optabs.c: Remove CC0.
8364 * postreload-gcse.c: Remove CC0.
8365 * postreload.c: Remove CC0.
8366 * print-rtl.c: Remove CC0.
8367 * read-rtl-function.c: Remove CC0.
8368 * reg-notes.def: Remove CC0.
8369 * reg-stack.c: Remove CC0.
8370 * reginfo.c: Remove CC0.
8371 * regrename.c: Remove CC0.
8372 * reload.c: Remove CC0.
8373 * reload1.c: Remove CC0.
8374 * reorg.c: Remove CC0.
8375 * resource.c: Remove CC0.
8376 * rtl.c: Remove CC0.
8377 * rtl.def: Remove CC0.
8378 * rtl.h: Remove CC0.
8379 * rtlanal.c: Remove CC0.
8380 * sched-deps.c: Remove CC0.
8381 * sched-rgn.c: Remove CC0.
8382 * shrink-wrap.c: Remove CC0.
8383 * simplify-rtx.c: Remove CC0.
8384 * system.h: Remove CC0. Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT,
8385 CC_STATUS_MDEP, and CC_STATUS.
8386 * target.def: Remove CC0.
8387 * valtrack.c: Remove CC0.
8388 * var-tracking.c: Remove CC0.
8390 2021-05-04 Richard Biener <rguenther@suse.de>
8392 PR tree-optimization/100414
8393 * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
8395 (tree_ssa_phiopt_worker): But unconditionally here.
8397 2021-05-04 Tobias Burnus <tobias@codesourcery.com>
8399 * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
8400 && and || with floating-point and complex arguments.
8402 2021-05-04 Eric Botcazou <ebotcazou@adacore.com>
8404 * tree-inline.c (insert_debug_decl_map): Delete.
8405 (copy_debug_stmt): Minor tweak.
8406 (setup_one_parameter): Do not use a variable if the value is either
8407 a read-only DECL or a non-addressable local variable in the caller.
8408 In this case, insert the debug-only variable in the map manually.
8409 (expand_call_inline): Do not generate a CLOBBER for these values.
8410 * tree-inline.h (debug_map): Minor tweak.
8412 2021-05-04 Eric Botcazou <ebotcazou@adacore.com>
8414 * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy.
8415 * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up.
8417 2021-05-04 Richard Biener <rguenther@suse.de>
8419 PR tree-optimization/100329
8420 * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
8422 (insert_stmt_after): Assert we're not running into asm goto.
8424 2021-05-04 Richard Biener <rguenther@suse.de>
8426 PR tree-optimization/100398
8427 * tree-ssa-dse.c (pass_dse::execute): Preserve control
8430 2021-05-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8432 * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype.
8434 2021-05-04 Alexandre Oliva <oliva@adacore.com>
8436 * builtins.c (try_store_by_multiple_pieces): New.
8437 (expand_builtin_memset_args): Use it. If target_char_cast
8438 fails, proceed as for non-constant val. Pass len's ctz to...
8439 * expr.c (clear_storage_hints): ... this. Try store by
8440 multiple pieces after setmem.
8441 (clear_storage): Adjust.
8442 * expr.h (clear_storage_hints): Likewise.
8443 (try_store_by_multiple_pieces): Declare.
8444 * passes.def: Replace the last copy_prop with ccp.
8446 2021-05-03 Tom de Vries <tdevries@suse.de>
8449 * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined
8452 2021-05-03 Richard Biener <rguenther@suse.de>
8454 * tree-ssa-dse.c (dse_classify_store): Track two PHI defs.
8456 2021-05-03 Richard Biener <rguenther@suse.de>
8458 * tree-ssa-dse.c: Do not include domwalk.h but cfganal.h.
8459 (dse_dom_walker): Remove.
8460 (dse_dom_walker::dse_optimize_stmt): Rename...
8461 (dse_optimize_stmt): ... to this, pass in live_bytes sbitmap.
8462 (dse_dom_walker::before_dom_children): Inline ...
8463 (pass_dse::execute): ... here. Perform a reverse program
8466 2021-05-03 H.J. Lu <hjl.tools@gmail.com>
8469 * configure: Regenerated.
8471 2021-05-03 Ilya Leoshkevich <iii@linux.ibm.com>
8474 * config/s390/s390.c (s390_hard_fp_reg_p): New function.
8475 (s390_md_asm_adjust): Handle hard registers.
8477 2021-05-03 Jakub Jelinek <jakub@redhat.com>
8479 PR tree-optimization/100382
8480 * tree-ssa-dse.c: Include tree-eh.h.
8481 (dse_dom_walker::before_dom_children): Don't remove stmts if
8482 stmt_unremovable_because_of_non_call_eh_p is true.
8484 2021-05-02 David Edelsohn <dje.gcc@gmail.com>
8486 * varasm.c (compute_reloc_for_var): Split out from...
8487 (get_variable_section): Use it.
8488 * output.h (compute_reloc_for_var): Declare.
8489 * config/rs6000/rs6000-protos.h
8490 (rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to
8492 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix):
8493 Don't append storage mapping class to symbol.
8494 (rs6000_xcoff_asm_named_section): Add BS and UL mapping classes.
8495 Don't convert TLS BSS to common.
8496 (rs6000_xcoff_unique_section): Don't fall back to select_secton.
8497 (rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is
8499 (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage
8501 (rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int.
8502 If align is 0 from TLS class, use the same rules as varasm.c
8503 If not common, switch to BSS section manually.
8504 If common, emit appropriate comm or lcomm directive.
8505 (rs6000_xcoff_encode_section_info): Add logic to append all
8506 storage mapping classes.
8507 (rs6000_asm_weaken_decl): Adjust for qualname symbols.
8508 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
8509 rs6000_xcoff_asm_output_aligned_decl_common.
8510 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
8511 rs6000_xcoff_asm_output_aligned_decl_common.
8512 (ASM_OUTPUT_TLS_COMMON): Use
8513 rs6000_xcoff_asm_output_aligned_decl_common.
8515 2021-05-02 Jakub Jelinek <jakub@redhat.com>
8518 * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0
8519 as first argument of pseudo_node_t constructors.
8521 2021-05-02 Jakub Jelinek <jakub@redhat.com>
8524 * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def.
8526 2021-05-01 Aldy Hernandez <aldyh@redhat.com>
8528 * value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove.
8529 (gt_pch_nx (int_range<1> *&)): New.
8530 (gt_ggc_mx (int_range<1> *&)): New.
8531 * value-range.h (class irange): Add GTY support for
8534 2021-05-01 Geng Qi <gengqi@linux.alibaba.com>
8536 * doc/options.texi (Negative): Change either or to both and.
8538 2021-04-30 Jonathan Wright <jonathan.wright@arm.com>
8540 * config/aarch64/aarch64-simd-builtins.def: Add
8541 float_ml[as][q]_laneq builtin generator macros.
8542 * config/aarch64/aarch64-simd.md (mul_laneq<mode>3): Define.
8543 (aarch64_float_mla_laneq<mode>): Define.
8544 (aarch64_float_mls_laneq<mode>): Define.
8545 * config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin
8546 instead of GCC vector extensions.
8547 (vmlaq_laneq_f32): Likewise.
8548 (vmls_laneq_f32): Likewise.
8549 (vmlsq_laneq_f32): Likewise.
8551 2021-04-30 Jonathan Wright <jonathan.wright@arm.com>
8553 * config/aarch64/aarch64-simd-builtins.def: Add
8554 float_ml[as]_lane builtin generator macros.
8555 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt<mode>):
8557 (mul_lane<mode>3): This, and re-order arguments.
8558 (aarch64_float_mla_lane<mode>): Define.
8559 (aarch64_float_mls_lane<mode>): Define.
8560 * config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin
8561 instead of GCC vector extensions.
8562 (vmlaq_lane_f32): Likewise.
8563 (vmls_lane_f32): Likewise.
8564 (vmlsq_lane_f32): Likewise.
8566 2021-04-30 Jonathan Wright <jonathan.wright@arm.com>
8568 * config/aarch64/aarch64-simd-builtins.def: Add float_ml[as]
8569 builtin generator macros.
8570 * config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>):
8572 (aarch64_float_mls<mode>): Define.
8573 * config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin
8574 instead of relying on GCC vector extensions.
8575 (vmla_f64): Likewise.
8576 (vmlaq_f32): Likewise.
8577 (vmlaq_f64): Likewise.
8578 (vmls_f32): Likewise.
8579 (vmls_f64): Likewise.
8580 (vmlsq_f32): Likewise.
8581 (vmlsq_f64): Likewise.
8582 * config/aarch64/iterators.md: Define VDQF_DF mode iterator.
8584 2021-04-30 Jonathan Wright <jonathan.wright@arm.com>
8586 * config/aarch64/aarch64-simd-builtins.def: Add
8587 float_ml[as]_n_builtin generator macros.
8588 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup<mode>):
8590 (mul_n<mode>3): This, and re-order arguments.
8591 (aarch64_float_mla_n<mode>): Define.
8592 (aarch64_float_mls_n<mode>): Define.
8593 * config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin
8594 instead of inline asm.
8595 (vmlaq_n_f32): Likewise.
8596 (vmls_n_f32): Likewise.
8597 (vmlsq_n_f32): Likewise.
8599 2021-04-30 Jonathan Wright <joanthan.wright@arm.com>
8601 * config/aarch64/aarch64-simd-builtins.def: Add pmull[2]
8602 builtin generator macros.
8603 * config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define.
8604 (aarch64_pmull_hiv16qi_insn): Define.
8605 (aarch64_pmull_hiv16qi): Define.
8606 * config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin
8607 instead of inline asm.
8608 (vmull_p8): Likewise.
8610 2021-04-30 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
8612 * config/avr/avr.md: Adjust peepholes to match and
8613 generate parallels with clobber of REG_CC.
8614 (mov<mode>_insn): Rename to mov<mode>_insn_split.
8615 (*mov<mode>_insn): Rename to mov<mode>_insn.
8617 2021-04-30 David Edelsohn <dje.gcc@gmail.com>
8619 * varasm.c (use_blocks_for_decl_p): Don't use section anchors
8620 for VAR_DECLs if -fdata-sections enabled.
8622 2021-04-30 Michael Meissner <meissner@linux.ibm.com>
8625 * config/rs6000/rs6000.c
8626 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
8627 (rs6000_libgcc_floating_mode_supported_p): New target hook.
8629 2021-04-30 Aldy Hernandez <aldyh@redhat.com>
8631 * tree-ssa-threadbackward.c (class thread_jumps): Split out code
8633 (class back_threader_registry): ...to here...
8634 (class back_threader_profitability): ...and here...
8635 (thread_jumps::thread_through_all_blocks): Remove argument.
8636 (back_threader_registry::back_threader_registry): New.
8637 (back_threader_registry::~back_threader_registry): New.
8638 (back_threader_registry::thread_through_all_blocks): New.
8639 (thread_jumps::profitable_jump_thread_path): Move from here...
8640 (back_threader_profitability::profitable_path_p): ...to here.
8641 (thread_jumps::find_taken_edge): New.
8642 (thread_jumps::convert_and_register_current_path): Move...
8643 (back_threader_registry::register_path): ...to here.
8644 (thread_jumps::register_jump_thread_path_if_profitable): Move...
8645 (thread_jumps::maybe_register_path): ...to here.
8646 (thread_jumps::handle_phi): Call find_taken_edge and
8647 maybe_register_path.
8648 (thread_jumps::handle_assignment): Same.
8649 (thread_jumps::fsm_find_control_statement_thread_paths): Remove
8650 tree argument to handle_phi and handle_assignment.
8651 (thread_jumps::find_jump_threads_backwards): Set m_name. Remove
8652 set of m_speed_p and m_max_threaded_paths.
8653 (pass_thread_jumps::execute): Remove second argument from
8654 find_jump_threads_backwards.
8655 (pass_early_thread_jumps::execute): Same.
8657 2021-04-30 Aldy Hernandez <aldyh@redhat.com>
8659 * tree-ssa-dom.c (class dom_jump_threader_simplifier): New.
8660 (class dom_opt_dom_walker): Initialize some class variables.
8661 (pass_dominator::execute): Pass evrp_range_analyzer and
8662 dom_jump_threader_simplifier to dom_opt_dom_walker.
8663 Adjust for some functions moving into classes.
8664 (simplify_stmt_for_jump_threading): Adjust and move to...
8665 (jump_threader_simplifier::simplify): ...here.
8666 (dom_opt_dom_walker::before_dom_children): Adjust for
8667 m_evrp_range_analyzer.
8668 (dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack.
8669 (test_for_singularity): Place in dom_opt_dom_walker class.
8670 (dom_opt_dom_walker::optimize_stmt): The argument
8671 evrp_range_analyzer is now a class field.
8672 * tree-ssa-threadbackward.c (class thread_jumps): Add m_registry.
8673 (thread_jumps::thread_through_all_blocks): New.
8674 (thread_jumps::convert_and_register_current_path): Use m_registry.
8675 (pass_thread_jumps::execute): Adjust for thread_through_all_blocks
8676 being in the threader class.
8677 (pass_early_thread_jumps::execute): Same.
8678 * tree-ssa-threadedge.c (threadedge_initialize_values): Move...
8679 (jump_threader::jump_threader): ...here.
8680 (threadedge_finalize_values): Move...
8681 (jump_threader::~jump_threader): ...here.
8682 (jump_threader::remove_jump_threads_including): New.
8683 (jump_threader::thread_through_all_blocks): New.
8684 (record_temporary_equivalences_from_phis): Move...
8685 (jump_threader::record_temporary_equivalences_from_phis): ...here.
8686 (record_temporary_equivalences_from_stmts_at_dest): Move...
8687 (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
8689 (simplify_control_stmt_condition_1): Move to jump_threader class.
8690 (simplify_control_stmt_condition): Move...
8691 (jump_threader::simplify_control_stmt_condition): ...here.
8692 (thread_around_empty_blocks): Move...
8693 (jump_threader::thread_around_empty_blocks): ...here.
8694 (thread_through_normal_block): Move...
8695 (jump_threader::thread_through_normal_block): ...here.
8696 (thread_across_edge): Move...
8697 (jump_threader::thread_across_edge): ...here.
8698 (thread_outgoing_edges): Move...
8699 (jump_threader::thread_outgoing_edges): ...here.
8700 * tree-ssa-threadedge.h: Move externally facing functings...
8701 (class jump_threader): ...here...
8702 (class jump_threader_simplifier): ...and here.
8703 * tree-ssa-threadupdate.c (struct redirection_data): Remove comment.
8704 (jump_thread_path_allocator::jump_thread_path_allocator): New.
8705 (jump_thread_path_allocator::~jump_thread_path_allocator): New.
8706 (jump_thread_path_allocator::allocate_thread_edge): New.
8707 (jump_thread_path_allocator::allocate_thread_path): New.
8708 (jump_thread_path_registry::jump_thread_path_registry): New.
8709 (jump_thread_path_registry::~jump_thread_path_registry): New.
8710 (jump_thread_path_registry::allocate_thread_edge): New.
8711 (jump_thread_path_registry::allocate_thread_path): New.
8712 (dump_jump_thread_path): Make extern.
8713 (debug (const vec<jump_thread_edge *> &path)): New.
8714 (struct removed_edges): Move to tree-ssa-threadupdate.h.
8715 (struct thread_stats_d): Remove.
8716 (remove_ctrl_stmt_and_useless_edges): Make static.
8717 (lookup_redirection_data): Move...
8718 (jump_thread_path_registry::lookup_redirection_data): ...here.
8719 (ssa_redirect_edges): Make static.
8720 (thread_block_1): Move...
8721 (jump_thread_path_registry::thread_block_1): ...here.
8722 (thread_block): Move...
8723 (jump_thread_path_registry::thread_block): ...here.
8724 (thread_through_loop_header): Move...
8725 (jump_thread_path_registry::thread_through_loop_header): ...here.
8726 (mark_threaded_blocks): Move...
8727 (jump_thread_path_registry::mark_threaded_blocks): ...here.
8728 (debug_path): Move...
8729 (jump_thread_path_registry::debug_path): ...here.
8730 (debug_all_paths): Move...
8731 (jump_thread_path_registry::dump): ..here.
8732 (rewire_first_differing_edge): Move...
8733 (jump_thread_path_registry::rewire_first_differing_edge): ...here.
8734 (adjust_paths_after_duplication): Move...
8735 (jump_thread_path_registry::adjust_paths_after_duplication): ...here.
8736 (duplicate_thread_path): Move...
8737 (jump_thread_path_registry::duplicate_thread_path): ..here.
8738 (remove_jump_threads_including): Move...
8739 (jump_thread_path_registry::remove_jump_threads_including): ...here.
8740 (thread_through_all_blocks): Move to...
8741 (jump_thread_path_registry::thread_through_all_blocks): ...here.
8742 (delete_jump_thread_path): Remove.
8743 (register_jump_thread): Move...
8744 (jump_thread_path_registry::register_jump_thread): ...here.
8745 * tree-ssa-threadupdate.h: Move externally facing functions...
8746 (class jump_thread_path_allocator): ...here...
8747 (class jump_thread_path_registry): ...and here.
8748 (thread_through_all_blocks): Remove.
8749 (struct removed_edges): New.
8750 (register_jump_thread): Remove.
8751 (remove_jump_threads_including): Remove.
8752 (delete_jump_thread_path): Remove.
8753 (remove_ctrl_stmt_and_useless_edges): Remove.
8754 (free_dom_edge_info): New prototype.
8755 * tree-vrp.c: Remove x_vr_values hack.
8756 (class vrp_jump_threader_simplifier): New.
8757 (vrp_jump_threader_simplifier::simplify): New.
8758 (vrp_jump_threader::vrp_jump_threader): Adjust method signature.
8759 Remove m_dummy_cond.
8760 Instantiate m_simplifier and m_threader.
8761 (vrp_jump_threader::thread_through_all_blocks): New.
8762 (vrp_jump_threader::simplify_stmt): Remove.
8763 (vrp_jump_threader::after_dom_children): Do not set m_dummy_cond.
8764 Remove x_vr_values hack.
8765 (execute_vrp): Adjust for thread_through_all_blocks being in a
8768 2021-04-30 Christophe Lyon <christophe.lyon@linaro.org>
8770 * genflags.c (gen_insn): Print failed expansion string.
8772 2021-04-30 H.J. Lu <hjl.tools@gmail.com>
8774 * expr.c (alignment_for_piecewise_move): Call mode_for_size
8775 without limit to MAX_FIXED_MODE_SIZE.
8777 2021-04-30 H.J. Lu <hjl.tools@gmail.com>
8780 * builtins.c (builtin_memset_gen_str): Don't use return from
8781 simplify_gen_subreg.
8783 2021-04-30 Uroš Bizjak <ubizjak@gmail.com>
8786 * config/i386/i386.md (*add<mode>3_carry_0r): New insn pattern.
8787 (*addsi3_carry_zext_0r): Ditto.
8788 (*sub<mode>3_carry_0): Ditto.
8789 (*subsi3_carry_zext_0r): Ditto.
8790 * config/i386/predicates.md (ix86_carry_flag_unset_operator):
8792 * config/i386/i386.c (ix86_rtx_costs) <case PLUS, case MINUS>:
8793 Also consider ix86_carry_flag_unset_operator to calculate
8794 the cost of adc/sbb insn.
8796 2021-04-30 Roman Zhuykov <zhroma@ispras.ru>
8798 PR rtl-optimization/100225
8799 PR rtl-optimization/84878
8800 * modulo-sched.c (sms_schedule): Use note_stores to skip loops
8801 where we have an instruction which touches (writes) any hard
8802 register from df->regular_block_artificial_uses set.
8803 Allow not-single-set instruction only right before basic block
8806 2021-04-30 Geng Qi <gengqi@linux.alibaba.com>
8808 * config/riscv/riscv.opt (march=,mabi=): Negative itself.
8810 2021-04-30 LevyHsu <admin@levyhsu.com>
8812 * config/riscv/riscv.c (riscv_min_arithmetic_precision): New.
8813 * config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New.
8814 * config/riscv/riscv.md (addv<mode>4, uaddv<mode>4): New.
8815 (subv<mode>4, usubv<mode>4, mulv<mode>4, umulv<mode>4): New.
8817 2021-04-29 Alexandre Oliva <oliva@adacore.com>
8819 * config.gcc: Merged x86 and x86_64 cpu_type-setting cases.
8821 2021-04-29 Alexandre Oliva <oliva@adacore.com>
8823 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to...
8824 (ASM_OUTPUT_MAX_SKIP_ALIGN): ... this. Enclose in do/while(0).
8825 * config/i386/i386.c: Adjust.
8826 * config/i386/i386.md: Adjust.
8827 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop.
8828 * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8829 * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8830 * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8831 * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8832 * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8833 * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8834 * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8835 * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8836 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8837 (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
8839 2021-04-29 Uroš Bizjak <ubizjak@gmail.com>
8841 * config/i386/i386-expand.c (ix86_expand_int_compare):
8842 Swap operands of GTU and LEU comparison to emit carry flag comparison.
8843 * config/i386/i386.md (*add<mode>3_carry_0): Change insn
8844 predicate to allow more combine opportunities with memory operands.
8845 (*sub<mode>3_carry_0): Ditto.
8847 2021-04-29 Richard Sandiford <richard.sandiford@arm.com>
8849 PR rtl-optimization/100303
8850 * rtl-ssa/accesses.cc (function_info::make_use_available): Take a
8851 boolean that indicates whether the use will only be used in
8852 debug instructions. Treat it in the same way that existing
8853 cross-EBB debug references would be handled if so.
8854 (function_info::make_uses_available): Likewise.
8855 * rtl-ssa/functions.h (function_info::make_uses_available): Update
8856 prototype accordingly.
8857 (function_info::make_uses_available): Likewise.
8858 * fwprop.c (try_fwprop_subst): Update call accordingly.
8860 2021-04-29 Jeff Law <jlaw@tachyum.com>
8862 * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside
8865 2021-04-29 Uroš Bizjak <ubizjak@gmail.com>
8866 Richard Biener <rguenther@suse.de>
8869 * config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD)
8870 (IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256)
8871 (IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD)
8872 (IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256)
8873 (IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS
8874 to PURE_ARGS category.
8875 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
8876 Handle PURE_ARGS category.
8877 * config/i386/i386-expand.c (ix86_expand_builtin): Ditto.
8879 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
8881 * configure.ac: Check for the presence of sys/locking.h header and
8882 for whether _LK_LOCK is supported by _locking.
8883 * configure: Regenerate.
8884 * config.in: Likewise.
8885 * gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK.
8886 * gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING.
8887 * system.h: Include <sys/locking.h> if HAVE_SYS_LOCKING_H.
8889 2021-04-29 Uroš Bizjak <ubizjak@gmail.com>
8891 * config/i386/predicates.md (fcmov_comparison_operator):
8892 Do not check for trivial FP comparison operator.
8893 <case GEU, case LTU>: Allow CCGZmode.
8894 <case GTU, case LEU>: Do not allow CCCmode.
8895 (ix86_comparison_operator) <case GTU, case LEU>: Allow only CCmode.
8896 (ix86_carry_flag_operator): Match only LTU and UNLT code.
8897 Do not check for trivial FP comparison operator. Allow CCGZmode.
8899 2021-04-29 Tom de Vries <tdevries@suse.de>
8901 * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of
8902 fd->loop.step by either step or orig_step.
8904 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
8906 * config/sparc/sparc.c (gen_load_pcrel_sym): Delete.
8907 (load_got_register): Do the PIC dance here.
8908 (sparc_legitimize_tls_address): Simplify.
8909 (sparc_emit_probe_stack_range): Likewise.
8910 (sparc32_initialize_trampoline): Likewise.
8911 (sparc64_initialize_trampoline): Likewise.
8912 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Add @ marker.
8913 (probe_stack_range<P:mode>): Likewise.
8914 (flush<P:mode>): Likewise.
8915 (tgd_hi22<P:mode>): Likewise.
8916 (tgd_lo10<P:mode>): Likewise.
8917 (tgd_add<P:mode>): Likewise.
8918 (tgd_call<P:mode>): Likewise.
8919 (tldm_hi22<P:mode>): Likewise.
8920 (tldm_lo10<P:mode>): Likewise.
8921 (tldm_add<P:mode>): Likewise.
8922 (tldm_call<P:mode>): Likewise.
8923 (tldo_hix22<P:mode>): Likewise.
8924 (tldo_lox10<P:mode>): Likewise.
8925 (tldo_add<P:mode>): Likewise.
8926 (tie_hi22<P:mode>): Likewise.
8927 (tie_lo10<P:mode>): Likewise.
8928 (tie_add<P:mode>): Likewise.
8929 (tle_hix22<P:mode>): Likewise.
8930 (tle_lox10<P:mode>): Likewise.
8931 (stack_protect_setsi): Rename to...
8932 (stack_protect_set32): ...this.
8933 (stack_protect_setdi): Rename to...
8934 (stack_protect_set64): ...this.
8935 (stack_protect_set): Adjust calls to above.
8936 (stack_protect_testsi): Rename to...
8937 (stack_protect_test32): ...this.
8938 (stack_protect_testdi): Rename to...
8939 (stack_protect_test64): ...this.
8940 (stack_protect_test): Adjust calls to above.
8942 2021-04-29 H.J. Lu <hjl.tools@gmail.com>
8945 * builtins.c (builtin_memcpy_read_str): Add a dummy argument.
8946 (builtin_strncpy_read_str): Likewise.
8947 (builtin_memset_read_str): Add an argument for the previous RTL
8948 information and generate the new RTL from the previous RTL info.
8949 (builtin_memset_gen_str): Likewise.
8950 * builtins.h (builtin_strncpy_read_str): Update the prototype.
8951 (builtin_memset_read_str): Likewise.
8952 * expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p()
8953 returns true, round up size and alignment to the widest integer
8954 mode for maximum size.
8955 (pieces_addr::adjust): Add a pointer to by_pieces_prev argument
8956 and pass it to m_constfn.
8957 (op_by_pieces_d): Add m_push and m_overlap_op_by_pieces.
8958 (op_by_pieces_d::op_by_pieces_d): Add a bool argument to
8959 initialize m_push. Initialize m_overlap_op_by_pieces with
8960 targetm.overlap_op_by_pieces_p ().
8961 (op_by_pieces_d::run): Pass the previous RTL information to
8962 pieces_addr::adjust and generate overlapping operations if
8963 m_overlap_op_by_pieces is true.
8965 (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d
8967 (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d
8969 (can_store_by_pieces): Use by_pieces_constfn on constfun.
8970 (store_by_pieces): Use by_pieces_constfn on constfun. Updated
8971 for op_by_pieces_d change.
8972 (clear_by_pieces_1): Add a dummy argument.
8973 (clear_by_pieces): Updated for op_by_pieces_d change.
8974 (compare_by_pieces_d::compare_by_pieces_d): Likewise.
8975 (string_cst_read_str): Add a dummy argument.
8976 * expr.h (by_pieces_constfn): Add a dummy argument.
8977 (by_pieces_prev): New.
8978 * target.def (overlap_op_by_pieces_p): New target hook.
8979 * config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New.
8980 * doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P.
8981 * doc/tm.texi: Regenerated.
8983 2021-04-29 Richard Biener <rguenther@suse.de>
8985 PR tree-optimization/100253
8986 * tree-vect-stmts.c (vectorizable_load): Do not assume
8987 element alignment when DR_MISALIGNMENT is -1.
8988 (vectorizable_store): Likewise.
8990 2021-04-29 Jakub Jelinek <jakub@redhat.com>
8993 * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
8994 absu_hwi instead of abs_hwi.
8996 2021-04-29 Richard Biener <rguenther@suse.de>
8999 * tree-ssa-structalias.c (add_graph_edge): Avoid direct
9000 forwarding when indirect forwarding through ESCAPED
9003 2021-04-29 Tom de Vries <tdevries@suse.de>
9006 * internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC)
9007 (expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED)
9008 (expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY)
9009 (expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to.
9011 2021-04-29 Richard Biener <rguenther@suse.de>
9013 PR tree-optimization/99912
9014 * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New.
9015 (dse_dom_walker::todo): Likewise.
9016 (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the
9018 (dse_dom_walker::before_dom_children): Remove trivially
9019 dead SSA defs and schedule CFG cleanup if we removed all
9021 (pass_dse::execute): Get TODO as computed by the DOM walker
9022 and return it. Wipe dominator info earlier.
9024 2021-04-29 Richard Biener <rguenther@suse.de>
9027 * ipa-prop.c (ipcp_modif_dom_walker::before_dom_children):
9028 Track blocks to cleanup EH in new m_need_eh_cleanup.
9029 (ipcp_modif_dom_walker::cleanup_eh): New.
9030 (ipcp_transform_function): Release dominator info before
9033 2021-04-29 Martin Sebor <msebor@redhat.com>
9035 PR middle-end/100250
9036 * attribs.c (attr_access::array_as_string): Avoid dereferencing
9037 a pointer when it's null.
9039 2021-04-29 Martin Sebor <msebor@redhat.com>
9041 * Makefile.in (OBJS): Add ipa-free-lang-data.o.
9042 * ipa-free-lang-data.cc: New file.
9043 * tree.c: Move pass free_lang_data to file above.
9044 (build_array_type_1): Declare extern.
9045 * tree.h (build_array_type_1): Declare.
9047 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9049 * config/aarch64/aarch64-simd-builtins.def: Modify comment to
9050 make consistent with updated RTL pattern.
9051 * config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>):
9052 Implement using ss_truncate and us_truncate rather than
9054 * config/aarch64/iterators.md: Remove redundant unspecs and
9055 iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively.
9057 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9059 * config/aarch64/arm_acle.h (__attribute__): Make intrinsic
9060 attributes consistent with those defined in arm_neon.h.
9062 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9064 * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic
9065 attributes consistent with those defined in arm_neon.h.
9067 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9069 * config/aarch64/aarch64-simd-builtins.def: Add
9070 float_trunc_rodd builtin generator macros.
9071 * config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df):
9073 (aarch64_float_trunc_rodd_lo_v2sf): Define.
9074 (aarch64_float_trunc_rodd_hi_v4sf_le): Define.
9075 (aarch64_float_trunc_rodd_hi_v4sf_be): Define.
9076 (aarch64_float_trunc_rodd_hi_v4sf): Define.
9077 * config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin
9078 instead of inline asm.
9079 (vcvtx_high_f32_f64): Likewise.
9080 (vcvtxd_f32_f64): Likewise.
9081 * config/aarch64/iterators.md: Add FCVTXN unspec.
9083 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9085 * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin
9087 * config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>):
9089 * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin
9090 instead of inline asm.
9091 (vqtbx1_u8): Likewise.
9092 (vqtbx1_p8): Likewise.
9093 (vqtbx1q_s8): Likewise.
9094 (vqtbx1q_u8): Likewise.
9095 (vqtbx1q_p8): Likewise.
9096 (vtbx2_s8): Likewise.
9097 (vtbx2_u8): Likewise.
9098 (vtbx2_p8): Likewise.
9100 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9102 * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin
9104 * config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin
9105 instead of inline asm.
9106 (vqtbl1_s8): Likewise.
9107 (vqtbl1_u8): Likewise.
9108 (vqtbl1q_p8): Likewise.
9109 (vqtbl1q_s8): Likewise.
9110 (vqtbl1q_u8): Likewise.
9111 (vtbl1_s8): Likewise.
9112 (vtbl1_u8): Likewise.
9113 (vtbl1_p8): Likewise.
9114 (vtbl2_s8): Likewise.
9115 (vtbl2_u8): Likewise.
9116 (vtbl2_p8): Likewise.
9118 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9120 * config/aarch64/aarch64-simd-builtins.def: Add polynomial
9121 ssri_n buitin generator macro.
9122 * config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin
9123 instead of inline asm.
9124 (vsri_n_p16): Likewise.
9125 (vsri_n_p64): Likewise.
9126 (vsriq_n_p8): Likewise.
9127 (vsriq_n_p16): Likewise.
9128 (vsriq_n_p64): Likewise.
9130 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9132 * config/aarch64/aarch64-simd-builtins.def: Use VALLP mode
9133 iterator for polynomial ssli_n builtin generator macro.
9134 * config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin
9135 instead of inline asm.
9136 (vsli_n_p16): Likewise.
9137 (vsliq_n_p8): Likewise.
9138 (vsliq_n_p16): Likewise.
9139 * config/aarch64/iterators.md: Define VALLP mode iterator.
9141 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9143 * config/aarch64/aarch64-simd-builtins.def: Use VDQV_L
9144 iterator to generate [su]adalp RTL builtins.
9145 * config/aarch64/aarch64-simd.md: Use VDQV_L iterator in
9146 [su]adalp RTL pattern.
9147 * config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin
9148 instead of inline asm.
9149 (vpadal_u32): Likewise.
9151 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9153 * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp
9154 builtin generator macros.
9155 * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>):
9157 * config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin
9158 instead of inline asm.
9159 (vpaddl_s16): Likewise.
9160 (vpaddl_s32): Likewise.
9161 (vpaddl_u8): Likewise.
9162 (vpaddl_u16): Likewise.
9163 (vpaddl_u32): Likewise.
9164 (vpaddlq_s8): Likewise.
9165 (vpaddlq_s16): Likewise.
9166 (vpaddlq_s32): Likewise.
9167 (vpaddlq_u8): Likewise.
9168 (vpaddlq_u16): Likewise.
9169 (vpaddlq_u32): Liwewise.
9170 * config/aarch64/iterators.md: Define [SU]ADDLP unspecs with
9171 appropriate attributes.
9173 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9175 * config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator
9176 for aarch64_addp<mode> builtin macro generator.
9177 * config/aarch64/aarch64-simd.md: Use VDQ_I iterator in
9178 aarch64_addp<mode> RTL pattern.
9179 * config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin
9180 instead of inline asm.
9181 (vpaddq_s16): Likewise.
9182 (vpaddq_s32): Likewise.
9183 (vpaddq_s64): Likewise.
9184 (vpaddq_u8): Likewise.
9185 (vpaddq_u16): Likewise.
9186 (vpaddq_u32): Likewise.
9187 (vpaddq_u64): Likewise.
9189 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9191 * config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n
9192 builtin generator macros.
9193 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_n<mode>):
9195 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin
9196 instead of inline asm.
9197 (vqdmulh_n_s32): Likewise.
9198 (vqdmulhq_n_s16): Likewise.
9199 (vqdmulhq_n_s32): Likewise.
9200 (vqrdmulh_n_s16): Likewise.
9201 (vqrdmulh_n_s32): Likewise.
9202 (vqrdmulhq_n_s16): Likewise.
9203 (vqrdmulhq_n_s32): Likewise.
9205 2021-04-28 Tobias Burnus <tobias@codesourcery.com>
9207 * doc/install.texi (--enable-offload-defaulted): Document.
9209 2021-04-28 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
9211 * config/avr/avr-dimode.md: Turn existing patterns into
9212 define_insn_and_split style patterns where the splitter
9213 adds a clobber of the condition code register. Drop "cc"
9214 attribute. Add new patterns to match output of
9216 * config/avr/avr-fixed.md: Likewise.
9217 * config/avr/avr.c (cc_reg_rtx): New.
9218 (avr_parallel_insn_from_insns): Adjust insn count
9219 for removal of set of cc0.
9220 (avr_is_casesi_sequence): Likewise.
9221 (avr_casei_sequence_check_operands): Likewise.
9222 (avr_optimize_casesi): Likewise. Also insert
9223 new insns after jump_insn.
9224 (avr_pass_casesi::avr_rest_of_handle_casesi): Adjust
9225 for removal of set of cc0.
9226 (avr_init_expanders): Initialize cc_reg_rtx.
9227 (avr_regno_reg_class): Handle REG_CC.
9228 (cond_string): Remove usage of CC_OVERFLOW_UNUSABLE.
9229 (avr_notice_update_cc): Remove function.
9230 (ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE.
9231 (compare_condition): Adjust for PARALLEL with
9233 (out_shift_with_cnt): Likewise.
9234 (ashlhi3_out): Likewise.
9235 (ashrhi3_out): Likewise.
9236 (lshrhi3_out): Likewise.
9237 (avr_class_max_nregs): Return single reg for REG_CC.
9238 (avr_compare_pattern): Check for REG_CC instead
9240 (avr_reorg_remove_redundant_compare): Likewise.
9241 (avr_reorg):Adjust for PARALLEL with REG_CC clobber.
9242 (avr_hard_regno_nregs): Return single reg for REG_CC.
9243 (avr_hard_regno_mode_ok): Allow only CCmode for REG_CC.
9244 (avr_md_asm_adjust): Clobber REG_CC.
9245 (TARGET_HARD_REGNO_NREGS): Define.
9246 (TARGET_CLASS_MAX_NREGS): Define.
9247 (TARGET_MD_ASM_ADJUST): Define.
9248 * config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust
9250 (enum reg_class): Add CC_REG class.
9251 (NOTICE_UPDATE_CC): Remove.
9252 (CC_OVERFLOW_UNUSABLE): Remove.
9253 (CC_NO_CARRY): Remove.
9254 * config/avr/avr.md: Turn existing patterns into
9255 define_insn_and_split style patterns where the splitter
9256 adds a clobber of the condition code register. Drop "cc"
9257 attribute. Add new patterns to match output of
9259 (sez): Remove unused pattern.
9261 2021-04-28 Richard Earnshaw <rearnsha@arm.com>
9264 * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be
9267 2021-04-28 Richard Sandiford <richard.sandiford@arm.com>
9270 * config/aarch64/constraints.md (Utq): Require the address to
9271 be valid for both the element mode and for V2DImode.
9273 2021-04-28 Jakub Jelinek <jakub@redhat.com>
9274 Tobias Burnus <tobias@codesourcery.com>
9276 * configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted.
9277 * gcc.c (process_command): New variable.
9278 (driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED,
9279 set it if -foffload is defaulted.
9280 * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
9281 (compile_offload_image): If OFFLOAD_DEFAULTED and
9282 OFFLOAD_TARGET_DEFAULT is in the environment, don't fail
9283 if corresponding mkoffload can't be found.
9284 (compile_images_for_offload_targets): Likewise. Free and clear
9285 offload_names if no valid offload is found.
9286 * config.in: Regenerate.
9287 * configure: Regenerate.
9289 2021-04-28 Richard Biener <rguenther@suse.de>
9291 PR tree-optimization/100292
9292 * tree-vect-generic.c (expand_vector_condition): Do not fold
9295 2021-04-27 David Edelsohn <dje.gcc@gmail.com>
9297 * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New.
9298 * config/rs6000/aix64.opt (m64): New.
9301 2021-04-27 Maciej W. Rozycki <macro@orcam.me.uk>
9303 * config/vax/vax.c (print_operand_address, vax_address_cost_1)
9304 (index_term_p): Handle ASHIFT too.
9306 2021-04-27 Maciej W. Rozycki <macro@orcam.me.uk>
9308 * config/vax/builtins.md (jbb<ccss>i<mode>): Remove operand #3.
9309 (sync_lock_test_and_set<mode>): Adjust accordingly.
9310 (sync_lock_release<mode>): Likewise.
9312 2021-04-27 Maciej W. Rozycki <macro@orcam.me.uk>
9314 * config/vax/vax-protos.h (adjacent_operands_p): Remove
9316 * config/vax/vax.c (adjacent_operands_p): Remove.
9318 2021-04-27 Maciej W. Rozycki <macro@linux-mips.org>
9320 * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall
9321 through to the non-conditional execution case if getting the
9322 condition for conditional execution has failed.
9324 2021-04-27 Richard Sandiford <richard.sandiford@arm.com>
9326 PR middle-end/100284
9327 * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test.
9328 * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather
9329 than asserting on it.
9331 2021-04-27 David Edelsohn <dje.gcc@gmail.com>
9333 * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect
9336 2021-04-27 David Edelsohn <dje.gcc@gmail.com>
9339 * calls.c (precompute_register_parameters): Additionally test
9340 targetm.precompute_tls_p to pre-compute argument.
9341 * config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define.
9342 * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New.
9343 * target.def (precompute_tls_p): New.
9344 * doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation.
9345 * doc/tm.texi: Regenerated.
9347 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9350 * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL
9351 back to HOST_WIDE_INT.
9353 2021-04-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
9356 * simplify-rtx.c (simplify_context::simplify_subreg): Check the
9357 memory alignment for the outer mode.
9359 2021-04-27 H.J. Lu <hjl.tools@gmail.com>
9362 * expr.c (op_by_pieces_d::get_usable_mode): New member function.
9363 (op_by_pieces_d::run): Cange a while loop to a do-while loop.
9365 2021-04-27 Alex Coplan <alex.coplan@arm.com>
9368 * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen
9369 with negative immediates: ensure we expand cbranchsi4_scratch
9370 correctly and ensure we satisfy its constraints.
9371 * config/arm/sync.md
9372 (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't
9373 attempt to tie two output operands together with constraints;
9374 collapse two alternatives.
9375 (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise.
9376 * config/arm/thumb1.md (cbranchsi4_neg_late): New.
9378 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9381 * config/aarch64/predicates.md (aarch64_sub_immediate,
9382 aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL.
9383 * config/aarch64/aarch64.md (casesi, rotl<mode>3): Likewise.
9384 * config/aarch64/aarch64.c (aarch64_print_operand,
9385 aarch64_split_atomic_op, aarch64_expand_subvti): Likewise.
9387 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9389 PR tree-optimization/100239
9390 * tree-vect-generic.c (lower_vec_perm): Don't accept constant
9391 permutations with all indices from the first zero element as vec_shl.
9393 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9395 PR rtl-optimization/100254
9396 * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
9397 last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.
9399 2021-04-27 Richard Biener <rguenther@suse.de>
9401 PR tree-optimization/99912
9402 * passes.def: Add comment about new TODO_remove_unused_locals.
9403 * tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals
9406 2021-04-27 Richard Biener <rguenther@suse.de>
9408 PR tree-optimization/99912
9409 * passes.def (pass_all_optimizations): Add pass_dse before
9410 the first pass_dce, move the first pass_dse before the
9411 pass_dce following pass_pre.
9413 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9415 PR tree-optimization/95527
9416 * generic-match-head.c: Include tm.h.
9417 * gimple-match-head.c: Include tm.h.
9418 * match.pd (CLZ == INTEGER_CST): Don't use
9419 #ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO
9420 if clz == CFN_CLZ. Add missing val declaration.
9421 (CTZ cmp CST): New simplifications.
9423 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9425 PR tree-optimization/96696
9426 * expr.c (expand_expr_divmod): New function.
9427 (expand_expr_real_2) <case TRUNC_DIV_EXPR>: Use it for truncations and
9428 divisions. Formatting fixes.
9429 <case MULT_EXPR>: Optimize x / y * y as x - x % y if the latter is
9432 2021-04-27 Martin Jambor <mjambor@suse.cz>
9435 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
9436 If removing a call statement LHS SSA name, release it.
9438 2021-04-27 Richard Earnshaw <rearnsha@arm.com>
9441 * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM
9442 is valid before including it in the mask.
9444 2021-04-27 Richard Sandiford <richard.sandiford@arm.com>
9447 * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle
9450 2021-04-27 Richard Biener <rguenther@suse.de>
9452 PR tree-optimization/100051
9453 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add
9454 disambiguator based on access size vs. decl size.
9456 2021-04-27 Richard Biener <rguenther@suse.de>
9458 PR tree-optimization/100278
9459 * tree-ssa-pre.c (compute_avail): Give up when we cannot
9460 adjust TBAA beacuse of mismatching bases.
9462 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9465 * config/i386/i386.md (*<insn><mode>3_mask, *<insn><mode>3_mask_1):
9466 For any_rotate define_insn_split and following splitters, use
9467 SWI iterator instead of SWI48.
9469 2021-04-27 Richard Biener <rguenther@suse.de>
9471 PR tree-optimization/99776
9472 * match.pd (bit_field_ref (ctor)): Relax element extract
9473 type compatibility checks.
9475 2021-04-27 Cui,Lili <lili.cui@intel.com>
9477 * common/config/i386/i386-common.c (processor_names):
9478 Sync processor_names with processor_type.
9479 * config/i386/i386-options.c (processor_cost_table):
9480 Sync processor_cost_table with processor_type.
9482 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
9484 * value-range.cc (irange::irange_set_1bit_anti_range): Add assert.
9485 (irange::set): Call irange_set_1bit_anti_range for handling all
9486 1-bit ranges. Fall through on ~[MIN,MAX].
9488 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
9490 * value-range.cc (irange::legacy_num_pairs): Remove.
9491 (irange::invert): Change gcc_assert to gcc_checking_assert.
9492 * value-range.h (irange::num_pairs): Adjust for a cached
9493 num_pairs(). Also, rename all gcc_assert's to
9494 gcc_checking_assert's.
9496 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
9498 * value-range.cc (irange::operator=): Set m_kind.
9499 (irange::copy_to_legacy): Handle varying and undefined sources
9500 as a legacy copy since they can be easily copied.
9501 (irange::irange_set): Set m_kind.
9502 (irange::irange_set_anti_range): Same.
9503 (irange::set): Rename normalize_min_max to normalize_kind.
9504 (irange::verify_range): Adjust for multi-ranges having the
9506 (irange::irange_union): Set m_kind.
9507 (irange::irange_intersect): Same.
9508 (irange::invert): Same.
9509 * value-range.h (irange::kind): Always return m_kind.
9510 (irange::varying_p): Rename to...
9511 (irange::varying_comptaible_p): ...this.
9512 (irange::undefined_p): Only look at m_kind.
9513 (irange::irange): Always set VR_UNDEFINED if applicable.
9514 (irange::set_undefined): Always set VR_UNDEFINED.
9515 (irange::set_varying): Always set m_kind to VR_VARYING.
9516 (irange::normalize_min_max): Rename to...
9517 (irange::normalize_kind): ...this.
9519 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
9521 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
9522 Adjust for constant_p including varying_p.
9523 * tree-vrp.c (vrp_prop::finalize): Same.
9524 (determine_value_range): Same.
9525 * vr-values.c (vr_values::range_of_expr): Same.
9526 * value-range.cc (irange::symbolic_p): Do not check varying_p.
9527 (irange::constant_p): Same.
9529 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
9531 * value-range.cc (irange::legacy_lower_bound): Replace
9532 !undefined_p check with num_ranges > 0.
9533 (irange::legacy_upper_bound): Same.
9534 * value-range.h (irange::type): Same.
9535 (irange::lower_bound): Same.
9536 (irange::upper_bound): Same.
9538 2021-04-26 Richard Biener <rguenther@suse.de>
9540 PR tree-optimization/99956
9541 * gimple-loop-interchange.cc (compute_access_stride):
9542 Try instantiating the access in a shallower loop nest
9543 if instantiating failed.
9544 (compute_access_strides): Pass adjustable loop_nest
9545 to compute_access_stride.
9547 2021-04-26 Christophe Lyon <christophe.lyon@linaro.org>
9549 * doc/sourcebuild.texi (arm_cmse_hw): Document.
9551 2021-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9553 * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF.
9555 2021-04-26 Thomas Schwinge <thomas@codesourcery.com>
9556 Nathan Sidwell <nathan@codesourcery.com>
9557 Tom de Vries <vries@codesourcery.com>
9558 Julian Brown <julian@codesourcery.com>
9559 Kwok Cheung Yeung <kcy@codesourcery.com>
9561 * omp-offload.c (oacc_validate_dims): Implement
9562 '-Wopenacc-parallelism'.
9563 * doc/invoke.texi (-Wopenacc-parallelism): Document.
9565 2021-04-26 Richard Biener <rguenther@suse.de>
9567 * tree-cfg.h (gimplify_build1): Remove.
9568 (gimplify_build2): Likewise.
9569 (gimplify_build3): Likewise.
9570 * tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c.
9571 (gimplify_build2): Likewise.
9572 (gimplify_build3): Likewise.
9573 * tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c.
9575 (gimplify_build2): Likewise.
9576 (gimplify_build3): Likewise.
9577 (tree_vec_extract): Use resimplify with following SSA edges.
9578 (expand_vector_parallel): Avoid passing NULL size/bitpos
9579 to tree_vec_extract.
9580 * expr.c (store_constructor): Deal with zero-element CTORs.
9581 * match.pd (bit_field_ref <vector CTOR>): Make sure to
9582 produce vector constants when possible.
9584 2021-04-26 Richard Biener <rguenther@suse.de>
9586 * tree-complex.c: Include gimple-fold.h.
9587 (expand_complex_addition): Use gimple_build.
9588 (expand_complex_multiplication_components): Likewise.
9589 (expand_complex_multiplication): Likewise.
9590 (expand_complex_div_straight): Likewise.
9591 (expand_complex_div_wide): Likewise.
9592 (expand_complex_division): Likewise.
9593 (expand_complex_conjugate): Likewise.
9594 (expand_complex_comparison): Likewise.
9596 2021-04-26 Richard Biener <rguenther@suse.de>
9598 * tree-ssa-phiopt.c (two_value_replacement): Remove use
9599 of legacy gimplify_buildN API.
9601 2021-04-26 Richard Biener <rguenther@suse.de>
9603 PR tree-optimization/99473
9604 * tree-ssa-phiopt.c (cond_store_replacement): Handle all
9607 2021-04-26 Richard Biener <rguenther@suse.de>
9609 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin):
9610 Use replace_call_with_value.
9612 2021-04-26 Richard Biener <rguenther@suse.de>
9614 * tree-ssa-propagate.h (valid_gimple_rhs_p): Remove.
9615 (update_gimple_call): Likewise.
9616 (update_call_from_tree): Likewise.
9617 * tree-ssa-propagate.c (valid_gimple_rhs_p): Remove.
9618 (valid_gimple_call_p): Likewise.
9619 (move_ssa_defining_stmt_for_defs): Likewise.
9620 (finish_update_gimple_call): Likewise.
9621 (update_gimple_call): Likewise.
9622 (update_call_from_tree): Likewise.
9623 (propagate_tree_value_into_stmt): Use replace_call_with_value.
9624 * gimple-fold.h (update_gimple_call): Declare.
9625 * gimple-fold.c (valid_gimple_rhs_p): Move here from
9626 tree-ssa-propagate.c.
9627 (update_gimple_call): Likewise.
9628 (valid_gimple_call_p): Likewise.
9629 (finish_update_gimple_call): Likewise, and simplify.
9630 (gimplify_and_update_call_from_tree): Implement
9631 update_call_from_tree functionality, avoid excessive
9632 push/pop_gimplify_context.
9633 (gimple_fold_builtin): Use only gimplify_and_update_call_from_tree.
9634 (gimple_fold_call): Likewise.
9635 * gimple-ssa-sprintf.c (try_substitute_return_value): Likewise.
9636 * tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise.
9637 (pass_fold_builtins::execute): Likewise.
9638 (optimize_stack_restore): Use replace_call_with_value.
9639 * tree-cfg.c (fold_loop_internal_call): Likewise.
9640 * tree-ssa-dce.c (maybe_optimize_arith_overflow): Use
9641 only gimplify_and_update_call_from_tree.
9642 * tree-ssa-strlen.c (handle_builtin_strlen): Likewise.
9643 (handle_builtin_strchr): Likewise.
9644 * tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h.
9646 2021-04-26 Jakub Jelinek <jakub@redhat.com>
9649 * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
9650 vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
9653 2021-04-25 liuhongt <hongtao.liu@intel.com>
9656 * config/i386/i386-builtin.def (BDESC): Change the icode of
9657 the following builtins to CODE_FOR_nothing.
9658 * config/i386/i386.c (ix86_gimple_fold_builtin): Fold
9659 IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128,
9660 IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ,
9661 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
9662 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
9663 IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128,
9664 IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ,
9665 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
9666 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256.
9667 * config/i386/sse.md (avx2_eq<mode>3): Deleted.
9668 (sse2_eq<mode>3): Ditto.
9669 (sse4_1_eqv2di3): Ditto.
9670 (sse2_gt<mode>3): Rename to ..
9671 (*sse2_gt<mode>3): .. this.
9673 2021-04-24 Iain Sandoe <iain@sandoe.co.uk>
9676 2021-04-24 Iain Sandoe <iain@sandoe.co.uk>
9679 * config/darwin.c (darwin_binds_local_p): Assume that any
9680 public symbol might be interposed for PIC code. Update function
9681 header comment to reflect current Darwin capability.
9683 2021-04-24 Iain Sandoe <iain@sandoe.co.uk>
9686 * config/darwin.c (darwin_binds_local_p): Assume that any
9687 public symbol might be interposed for PIC code. Update function
9688 header comment to reflect current Darwin capability.
9690 2021-04-24 Richard Sandiford <richard.sandiford@arm.com>
9692 * doc/sourcebuild.texi: Document no-opts and any-opts target
9695 2021-04-23 YiFei Zhu <zhuyifei1999@gmail.com>
9697 * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm.
9699 2021-04-23 YiFei Zhu <zhuyifei1999@gmail.com>
9701 * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.
9703 2021-04-23 Uroš Bizjak <ubizjak@gmail.com>
9706 * config/i386/i386-options.c (ix86_option_override_internal):
9707 Error out when -m96bit-long-double is used with 64bit targets.
9708 * config/i386/i386.md (*pushxf_rounded): Remove pattern.
9710 2021-04-23 Martin Liska <mliska@suse.cz>
9712 * lto-wrapper.c: Remove FIXME about usage of
9713 hardware_concurrency. The function is not on par with
9716 2021-04-23 Uroš Bizjak <ubizjak@gmail.com>
9719 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
9720 Copy operand 3 to operand 4. Use sse_reg_operand
9721 as operand 3 predicate.
9722 (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
9723 (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
9724 (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
9725 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
9726 Copy operand 1 to operand 0.
9727 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
9728 (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
9729 (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.
9731 2021-04-23 Alex Coplan <alex.coplan@arm.com>
9733 PR rtl-optimization/100230
9734 * early-remat.c (early_remat::sort_candidates): Use delete[]
9735 instead of delete for array allocated with new[].
9737 2021-04-23 Richard Biener <rguenther@suse.de>
9739 * genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing.
9740 (capture_info::capture_info): Likewise.
9741 (capture_info::walk_match): Likewise.
9742 (expr::gen_transform): Likewise.
9743 (dt_simplify::gen_1): Likewise.
9744 * gimple-match-head.c (maybe_resimplify_conditional_op):
9745 Remove VEC_COND_EXPR special-casing.
9746 (gimple_simplify): Likewise.
9747 * gimple.c (gimple_could_trap_p_1): Adjust.
9748 * tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR
9749 to participate in PRE.
9751 2021-04-23 Richard Biener <rguenther@suse.de>
9753 * cfganal.c (connect_infinite_loops_to_exit): First call
9754 add_noreturn_fake_exit_edges.
9755 * ipa-sra.c (process_scan_results): Do not call the now redundant
9756 add_noreturn_fake_exit_edges.
9757 * predict.c (tree_estimate_probability): Likewise.
9758 (rebuild_frequencies): Likewise.
9759 * store-motion.c (one_store_motion_pass): Likewise.
9761 2021-04-23 Richard Biener <rguenther@suse.de>
9763 PR tree-optimization/100222
9764 * predict.c (pass_profile::execute): Remove redundant call to
9765 mark_irreducible_loops.
9766 (report_predictor_hitrates): Likewise.
9768 2021-04-23 Richard Biener <rguenther@suse.de>
9770 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
9771 valid_gimple_rhs_p by instead gimplifying to one.
9773 2021-04-23 Richard Biener <rguenther@suse.de>
9775 PR tree-optimization/99971
9776 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
9777 Always use TBAA for loads.
9779 2021-04-23 liuhongt <hongtao.liu@intel.com>
9782 * config/i386/i386-options.c (ix86_option_override_internal):
9783 Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags
9784 when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled
9785 by target attribute.
9787 2021-04-23 David Edelsohn <dje.gcc@gmail.com>
9789 * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to
9791 * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same.
9793 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
9795 * config.gcc (powerpc-ibm-aix6.*): Remove.
9796 * config/rs6000/aix61.h: Delete.
9798 2021-04-22 Martin Liska <mliska@suse.cz>
9802 * builtins.c (expand_builtin): Fix typos and missing comments.
9803 * dwarf2out.c (gen_subprogram_die): Likewise.
9804 (gen_struct_or_union_type_die): Likewise.
9806 2021-04-22 Uroš Bizjak <ubizjak@gmail.com>
9809 * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse):
9810 Remove the sign with FE_DOWNWARD, where x - x = -0.0.
9812 2021-04-21 Iain Sandoe <iain@sandoe.co.uk>
9814 * config/i386/darwin.h (TARGET_64BIT): Remove definition
9815 based on TARGET_ISA_64BIT.
9816 (TARGET_64BIT_P): Remove definition based on
9817 TARGET_ISA_64BIT_P().
9819 2021-04-21 Martin Liska <mliska@suse.cz>
9822 2021-04-21 Martin Liska <mliska@suse.cz>
9824 * lto-wrapper.c (cpuset_popcount): Remove.
9825 (init_num_threads): Remove and use hardware_concurrency.
9827 2021-04-21 Martin Liska <mliska@suse.cz>
9830 * main.c (main): Call toplev::finalize in CHECKING_P mode.
9831 * ipa-modref.c (ipa_modref_c_finalize): summaries are NULL
9832 when incremental LTO linking happens.
9834 2021-04-21 Martin Liska <mliska@suse.cz>
9836 * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the
9837 makeserver cannot be detected, then use -flto=N fallback.
9839 2021-04-21 Richard Sandiford <richard.sandiford@arm.com>
9841 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling,
9842 default to yes for aarch64-linux-gnu.
9843 * configure: Regenerate.
9845 2021-04-21 Martin Liska <mliska@suse.cz>
9847 * lto-wrapper.c (cpuset_popcount): Remove.
9848 (init_num_threads): Remove and use hardware_concurrency.
9850 2021-04-21 Martin Liska <mliska@suse.cz>
9852 * config/i386/i386.c: Remove superfluous || TARGET_MACHO
9853 which remains to be '(... || 0)' and clang complains about it.
9854 * dwarf2out.c (AT_vms_delta): Declare conditionally.
9855 (add_AT_vms_delta): Likewise.
9856 * tree.c (fld_simplified_type): Use rather more common pattern
9857 for disabling of something (#if 0).
9858 (get_tree_code_name): Likewise.
9859 (verify_type_variant): Likewise.
9861 2021-04-21 Martin Liska <mliska@suse.cz>
9863 * config/i386/i386-expand.c (decide_alignment): Use newly named
9865 * config/i386/i386.c (ix86_decompose_address): Likewise.
9866 (ix86_address_cost): Likewise.
9867 (ix86_lea_outperforms): Likewise.
9868 (ix86_avoid_lea_for_addr): Likewise.
9869 (ix86_add_stmt_cost): Likewise.
9870 * config/i386/i386.h (TARGET_*): Remove.
9871 (TARGET_CPU_P): New macro.
9872 * config/i386/i386.md: Use newly named macro TARGET_CPU_P.
9873 * config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise.
9874 (swap_top_of_ready_list): Likewise.
9875 (ix86_atom_sched_reorder): Likewise.
9876 * config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise.
9877 * config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise.
9879 2021-04-21 Martin Liska <mliska@suse.cz>
9881 * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P):
9883 (SET_TARGET_NO_SAHF): Likewise.
9884 (TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise.
9885 (SET_TARGET_PREFETCH_SSE): Likewise.
9886 (TARGET_EXPLICIT_NO_TUNE_P): Likewise.
9887 (SET_TARGET_NO_TUNE): Likewise.
9888 (TARGET_EXPLICIT_NO_80387_P): Likewise.
9889 (SET_TARGET_NO_80387): Likewise.
9891 * config/i386/i386.h (TARGET_*): Remove.
9892 * opth-gen.awk: Generate new used macros.
9894 2021-04-21 Martin Liska <mliska@suse.cz>
9896 * config/i386/i386.h (PTA_*): Remove.
9897 (enum pta_flag): New.
9898 (DEF_PTA): Generate PTA_* values from i386-isa.def.
9899 * config/i386/i386-isa.def: New file.
9901 2021-04-21 Alex Coplan <alex.coplan@arm.com>
9904 * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New.
9905 (rest_of_insert_bti): Avoid inserting duplicate bti j insns for
9908 2021-04-21 H.J. Lu <hjl.tools@gmail.com>
9910 * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and
9912 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET):
9914 (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise.
9915 (ix86_handle_option): Handle -mmwait.
9916 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
9917 Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on
9918 __builtin_ia32_monitor and __builtin_ia32_mwait.
9919 * config/i386/i386-options.c (isa2_opts): Add -mmwait.
9920 (ix86_valid_target_attribute_inner_p): Likewise.
9921 (ix86_option_override_internal): Enable mwait/monitor
9922 instructions for -msse3.
9923 * config/i386/i386.h (TARGET_MWAIT): New.
9924 (TARGET_MWAIT_P): Likewise.
9925 * config/i386/i386.opt: Add -mmwait.
9926 * config/i386/mwaitintrin.h: New file.
9927 * config/i386/pmmintrin.h: Include <mwaitintrin.h>.
9928 * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with
9930 (@sse3_monitor_<mode>): Likewise.
9931 * config/i386/x86gprintrin.h: Include <mwaitintrin.h>.
9932 * doc/extend.texi: Document mwait target attribute.
9933 * doc/invoke.texi: Document -mmwait.
9935 2021-04-21 Martin Liska <mliska@suse.cz>
9937 * config/i386/i386-options.c (DEF_ENUM): Remove it.
9938 * config/i386/i386-opts.h (DEF_ENUM): Likewise.
9939 * config/i386/stringop.def (DEF_ENUM): Likewise.
9941 2021-04-21 Martin Liska <mliska@suse.cz>
9943 * tree-cfg.c (gimple_verify_flow_info): Use qD instead
9944 of print_generic_expr.
9946 2021-04-21 Jakub Jelinek <jakub@redhat.com>
9948 PR rtl-optimization/100148
9949 * cprop.c (constprop_register): Use next_nondebug_insn instead of
9952 2021-04-21 Martin Liska <mliska@suse.cz>
9955 * cgraphunit.c (cgraph_node::analyze): Remove duplicate
9956 free_dominance_info calls.
9958 2021-04-21 Richard Biener <rguenther@suse.de>
9960 * gimple-fold.c (maybe_fold_reference): Remove is_lhs
9961 parameter (and assume it to be false).
9962 (fold_gimple_assign): Adjust, remove all callers of
9963 maybe_fold_reference calling it with is_lhs true.
9964 (gimple_fold_call): Likewise.
9965 (fold_stmt_1): Likewise.
9967 2021-04-21 Richard Biener <rguenther@suse.de>
9969 * fold-const.c (pedantic_non_lvalue_loc): Remove.
9970 (fold_binary_loc): Adjust.
9971 (fold_ternary_loc): Likewise.
9973 2021-04-21 Richard Sandiford <richard.sandiford@arm.com>
9975 PR middle-end/100130
9976 * varasm.c (get_block_for_decl): Make sure that any use of the
9977 retain attribute matches the section's retain flag.
9978 (switch_to_section): Check for retain mismatches even when
9979 changing sections, but do not warn if the given decl is the
9980 section's named.decl.
9981 (output_object_block): Pass the first decl in the block (if any)
9982 to switch_to_section.
9984 2021-04-20 H.J. Lu <hjl.tools@gmail.com>
9986 * config/i386/i386-c.c (ix86_target_macros_internal): Define
9987 __CRC32__ for -mcrc32.
9988 * config/i386/i386-options.c (ix86_option_override_internal):
9989 Enable crc32 instruction for -msse4.2.
9990 * config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2
9992 (sse4_2_crc32di): Likewise.
9993 * config/i386/ia32intrin.h: Use crc32 target option for CRC32
9996 2021-04-20 Segher Boessenkool <segher@kernel.crashing.org>
9999 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
10002 2021-04-20 Martin Liska <mliska@suse.cz>
10004 * doc/invoke.texi: Fix typo.
10005 * params.opt: Likewise.
10007 2021-04-20 Martin Liska <mliska@suse.cz>
10009 * doc/invoke.texi: Document new param.
10011 2021-04-19 Andrew MacLeod <amacleod@redhat.com>
10013 PR tree-optimization/100081
10014 * gimple-range-cache.h (ranger_cache): Inherit from gori_compute
10015 rather than gori_compute_cache.
10016 * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file.
10017 (range_def_chain::m_logical_depth): New member.
10018 (range_def_chain::range_def_chain): Initialize m_logical_depth.
10019 (range_def_chain::get_def_chain): Don't build defchains through more
10020 than LOGICAL_LIMIT logical expressions.
10021 * params.opt (param_ranger_logical_depth): New.
10023 2021-04-19 Richard Earnshaw <rearnsha@arm.com>
10026 * config/arm/arm.c (arm_configure_build_target): Do not strip
10027 extended FPU/SIMD feature bits from the target ISA when -mfpu
10028 is specified (partial revert of r11-8168).
10030 2021-04-19 Thomas Schwinge <thomas@codesourcery.com>
10032 * params.opt (-param=openacc-kernels=): Add.
10033 * omp-oacc-kernels-decompose.cc
10034 (pass_omp_oacc_kernels_decompose::gate): Use it.
10035 * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move...
10036 (--param): ... here, 'openacc-kernels'.
10038 2021-04-19 Martin Liska <mliska@suse.cz>
10041 * gengtype.c (finish_root_table): Align function arguments
10042 in between declaration and definition.
10044 2021-04-19 Eric Botcazou <ebotcazou@adacore.com>
10046 * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
10047 frames larger than the SEH maximum frame size.
10049 2021-04-18 Segher Boessenkool <segher@kernel.crashing.org>
10051 PR rtl-optimization/99927
10052 * combine.c (distribute_notes) [REG_UNUSED]: If the register already
10053 is dead, just drop it.
10055 2021-04-17 Iain Buclaw <ibuclaw@gdcproject.org>
10058 * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
10059 * doc/tm.texi: Regenerate.
10060 * doc/tm.texi.in (D language and ABI): Add @hook for
10061 TARGET_D_TEMPLATES_ALWAYS_COMDAT.
10063 2021-04-17 Iain Buclaw <ibuclaw@gdcproject.org>
10065 * config/darwin-d.c (darwin_d_handle_target_object_format): New
10067 (darwin_d_register_target_info): New function.
10068 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10069 * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New
10071 (dragonfly_d_register_target_info): New function.
10072 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10073 * config/freebsd-d.c (freebsd_d_handle_target_object_format): New
10075 (freebsd_d_register_target_info): New function.
10076 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10077 * config/glibc-d.c (glibc_d_handle_target_object_format): New
10079 (glibc_d_register_target_info): New function.
10080 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10081 * config/i386/i386-d.c (ix86_d_handle_target_object_format): New
10083 (ix86_d_register_target_info): Add ix86_d_handle_target_object_format
10084 as handler for objectFormat key.
10085 * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New
10087 (winnt_d_register_target_info): New function.
10088 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10089 * config/netbsd-d.c (netbsd_d_handle_target_object_format): New
10091 (netbsd_d_register_target_info): New function.
10092 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10093 * config/openbsd-d.c (openbsd_d_handle_target_object_format): New
10095 (openbsd_d_register_target_info): New function.
10096 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10097 * config/pa/pa-d.c (pa_d_handle_target_object_format): New function.
10098 (pa_d_register_target_info): Add pa_d_handle_target_object_format as
10099 handler for objectFormat key.
10100 * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New
10102 (rs6000_d_register_target_info): Add
10103 rs6000_d_handle_target_object_format as handler for objectFormat key.
10104 * config/sol2-d.c (solaris_d_handle_target_object_format): New
10106 (solaris_d_register_target_info): New function.
10107 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10109 2021-04-16 Jakub Jelinek <jakub@redhat.com>
10112 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
10113 abi_break argument from bool * to unsigned *, store there the pre-GCC 9
10115 (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers.
10116 (aarch64_function_arg_regno_p): Likewise. Only emit -Wpsabi note if
10117 the old and new alignment after applying MIN/MAX to it is different.
10119 2021-04-16 Tamar Christina <tamar.christina@arm.com>
10122 * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
10123 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
10125 * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
10127 2021-04-16 Bill Schmidt <wschmidt@linux.ibm.com>
10129 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
10130 this section and its subsections.
10132 2021-04-16 Jakub Jelinek <jakub@redhat.com>
10135 * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New
10136 define_insn patterns.
10138 2021-04-16 Richard Sandiford <richard.sandiford@arm.com>
10140 PR rtl-optimization/98689
10141 * reg-notes.def (UNTYPED_CALL): New note.
10142 * combine.c (distribute_notes): Handle it.
10143 * emit-rtl.c (try_split): Likewise.
10144 * rtlanal.c (rtx_properties::try_to_add_insn): Likewise. Assume
10145 that calls with the note implicitly set all return value registers.
10146 * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL
10149 2021-04-16 Richard Sandiford <richard.sandiford@arm.com>
10151 PR rtl-optimization/99596
10152 * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global
10153 register accesses for const calls. Assume that pure functions
10154 can only read from global registers. Ignore cases in which
10155 the stack pointer has been marked global.
10157 2021-04-16 Jakub Jelinek <jakub@redhat.com>
10160 * tree-vect-loop.c (vect_transform_loop): Don't remove just
10161 dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
10162 them by their last argument.
10164 2021-04-15 Martin Liska <mliska@suse.cz>
10166 * doc/invoke.texi: Other params don't use it, remove it.
10168 2021-04-15 Richard Biener <rguenther@suse.de>
10170 * gimple-builder.h: Add deprecation note.
10172 2021-04-15 Richard Sandiford <richard.sandiford@arm.com>
10175 * attribs.h (restrict_type_identity_attributes_to): Declare.
10176 * attribs.c (restrict_type_identity_attributes_to): New function.
10178 2021-04-15 Richard Sandiford <richard.sandiford@arm.com>
10181 * attribs.h (affects_type_identity_attributes): Declare.
10182 * attribs.c (remove_attributes_matching): New function.
10183 (affects_type_identity_attributes): Likewise.
10185 2021-04-15 Jakub Jelinek <jakub@redhat.com>
10188 * config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3):
10189 Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with
10190 ZERO_EXTEND, SIGN_EXTEND or AND.
10192 2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
10194 PR rtl-optimization/99929
10195 * rtl.h (same_vector_encodings_p): New function.
10196 * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
10197 * cselib.c (rtx_equal_for_cselib_1): Likewise.
10198 * jump.c (rtx_renumbered_equal_p): Likewise.
10199 * lra-constraints.c (operands_match_p): Likewise.
10200 * reload.c (operands_match_p): Likewise.
10201 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.
10203 2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
10205 * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print
10206 more information about variable-length CONST_VECTORs.
10208 2021-04-14 Vladimir N. Makarov <vmakarov@redhat.com>
10210 PR rtl-optimization/100066
10211 * lra-constraints.c (split_reg): Check paradoxical_subreg_p for
10212 ordered modes when choosing splitting mode for hard reg.
10214 2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
10217 * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
10219 (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
10221 2021-04-14 Andreas Krebbel <krebbel@linux.ibm.com>
10223 * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros
10224 for mask operand types.
10225 (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
10226 (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate
10228 (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the
10230 * config/s390/s390.c (s390_const_operand_ok): Check the new
10231 operand types and generate a list of valid values.
10233 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
10235 * doc/tm.texi: Regenerate.
10236 * doc/tm.texi.in (D language and ABI): Add @hook for
10237 TARGET_D_REGISTER_OS_TARGET_INFO.
10239 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
10241 * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New
10243 (aarch64_d_register_target_info): New function.
10244 * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info):
10246 * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO):
10248 * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function.
10249 (arm_d_register_target_info): New function.
10250 * config/arm/arm-protos.h (arm_d_register_target_info): Declare.
10251 * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10252 * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function.
10253 (ix86_d_register_target_info): New function.
10254 * config/i386/i386-protos.h (ix86_d_register_target_info): Declare.
10255 * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10256 * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function.
10257 (mips_d_register_target_info): New function.
10258 * config/mips/mips-protos.h (mips_d_register_target_info): Declare.
10259 * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10260 * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function.
10261 (pa_d_register_target_info): New function.
10262 * config/pa/pa-protos.h (pa_d_register_target_info): Declare.
10263 * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10264 * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New
10266 (riscv_d_register_target_info): New function.
10267 * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare.
10268 * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10269 * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New
10271 (rs6000_d_register_target_info): New function.
10272 * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info):
10274 * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10275 * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function.
10276 (s390_d_register_target_info): New function.
10277 * config/s390/s390-protos.h (s390_d_register_target_info): Declare.
10278 * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10279 * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New
10281 (sparc_d_register_target_info): New function.
10282 * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare.
10283 * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
10284 * doc/tm.texi: Regenerate.
10285 * doc/tm.texi.in (D language and ABI): Add @hook for
10286 TARGET_D_REGISTER_CPU_TARGET_INFO.
10288 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
10290 * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function.
10291 * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare.
10292 * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define.
10293 * doc/tm.texi: Regenerate.
10294 * doc/tm.texi.in (D language and ABI): Add @hook for
10295 TARGET_D_HAS_STDCALL_CONVENTION.
10297 2021-04-14 Richard Biener <rguenther@suse.de>
10299 * tree-cfg.c (verify_gimple_assign_ternary): Verify that
10300 VEC_COND_EXPRs have a gimple_val condition.
10301 * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR
10302 can no longer have a GENERIC condition.
10304 2021-04-14 Richard Earnshaw <rearnsha@arm.com>
10307 * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits
10308 from the isa_delta when -mfpu has been used.
10309 (arm_options_perform_arch_sanity_checks): It's the architecture that
10310 lacks an FPU not the processor.
10312 2021-04-13 Richard Biener <rguenther@suse.de>
10314 PR tree-optimization/100053
10315 * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
10316 not use optimistic dominance queries for backedges to validate
10318 (dominated_by_p_w_unex): Add parameter to ignore executable
10319 state on backedges.
10320 (rpo_elim::eliminate_avail): Adjust.
10322 2021-04-13 Jakub Jelinek <jakub@redhat.com>
10325 * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr,
10326 *aarch64_bfxilsi_extrdi): New define_insn patterns.
10328 2021-04-13 Jakub Jelinek <jakub@redhat.com>
10331 * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P
10332 outermode, return NULL if the result doesn't encode back to the
10333 original byte sequence.
10334 (simplify_gen_subreg): Don't create SUBREGs from constants to
10335 MODE_COMPOSITE_P outermode.
10337 2021-04-12 Jakub Jelinek <jakub@redhat.com>
10339 PR rtl-optimization/99905
10340 * combine.c (expand_compound_operation): If pos + len > modewidth,
10341 perform the right shift by pos in inner_mode and then convert to mode,
10342 instead of trying to simplify a shift of rtx with inner_mode by pos
10343 as if it was a shift in mode.
10345 2021-04-12 Jakub Jelinek <jakub@redhat.com>
10348 * combine.c (simplify_and_const_int_1): Don't optimize varop
10349 away if it has side-effects.
10351 2021-04-12 Martin Liska <mliska@suse.cz>
10353 * doc/extend.texi: Escape @smallexample content.
10355 2021-04-12 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
10357 * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add
10358 alternative in order to load a DFP zero.
10360 2021-04-12 Martin Liska <mliska@suse.cz>
10362 * doc/extend.texi: Be more precise in documentation
10363 of symver attribute.
10365 2021-04-12 Martin Liska <mliska@suse.cz>
10368 * gimplify.c (gimplify_expr): Right now, we unpoison all
10369 variables before a goto <dest>. We should not do it if we are
10372 2021-04-12 Cui,Lili <lili.cui@intel.com>
10374 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle
10376 * common/config/i386/i386-common.c (processor_names): Add
10378 (processor_alias_table): Add rocketlake.
10379 * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add
10380 INTEL_COREI7_ROCKETLAKE.
10381 * config.gcc: Add -march=rocketlake.
10382 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
10384 * config/i386/i386-options.c (m_ROCKETLAKE) : Define.
10385 (processor_cost_table): Add rocketlake cost.
10386 * config/i386/i386.h (ix86_size_cost) : Define
10388 (processor_type) : Add PROCESSOR_ROCKETLAKE.
10389 (PTA_ROCKETLAKE): Ditto.
10390 * doc/extend.texi: Add rocketlake.
10391 * doc/invoke.texi: Add rocketlake.
10393 2021-04-12 Cui,Lili <lili.cui@intel.com>
10395 * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list.
10396 * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE.
10397 * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model.
10398 * doc/invoke.texi: Change alderlake ISA list.
10400 2021-04-11 Hafiz Abid Qadeer <abidh@codesourcery.com>
10402 PR middle-end/98088
10403 * omp-expand.c (expand_oacc_collapse_init): Update condition in
10406 2021-04-10 H.J. Lu <hjl.tools@gmail.com>
10409 * config/i386/serializeintrin.h (_serialize): Defined as macro.
10411 2021-04-10 Jakub Jelinek <jakub@redhat.com>
10414 * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
10415 just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
10417 2021-04-10 Jakub Jelinek <jakub@redhat.com>
10419 PR middle-end/99989
10420 * gimple-ssa-warn-alloca.c
10421 (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to
10422 0 with integer precision unconditionally.
10424 2021-04-10 Jakub Jelinek <jakub@redhat.com>
10426 PR rtl-optimization/98601
10427 * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
10428 not just for BLKmode, but also for VOIDmode. For STRICT_ALIGNMENT
10429 unaligned_mems handle VOIDmode like BLKmode.
10431 2021-04-10 Jan Hubicka <hubicka@ucw.cz>
10434 * tree.c (free_lang_data_in_decl): Do not release body of
10435 declare_variant_alt.
10437 2021-04-09 Richard Sandiford <richard.sandiford@arm.com>
10439 * config/aarch64/aarch64.c (aarch64_option_restore): If the
10440 architecture was specified explicitly and the tuning wasn't,
10441 tune for the architecture rather than the configured default CPU.
10443 2021-04-09 Richard Sandiford <richard.sandiford@arm.com>
10445 * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
10446 as the temporary register.
10448 2021-04-09 Martin Liska <mliska@suse.cz>
10450 * doc/extend.texi: Move non-target attributes on the top level.
10452 2021-04-09 Martin Liska <mliska@suse.cz>
10454 * doc/invoke.texi: Document minimum and maximum value of the
10455 argument for both supported compression algorithms.
10457 2021-04-08 David Edelsohn <dje.gcc@gmail.com>
10459 * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select
10460 TLS BSS before TLS data.
10461 * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm.
10463 2021-04-08 Richard Sandiford <richard.sandiford@arm.com>
10465 * doc/sourcebuild.texi (stdint_types_mbig_endian): Document.
10467 2021-04-08 Richard Sandiford <richard.sandiford@arm.com>
10469 * match.pd: Extend vec_cond folds to handle shifts.
10471 2021-04-08 Maciej W. Rozycki <macro@orcam.me.uk>
10473 * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's
10476 2021-04-08 Alex Coplan <alex.coplan@arm.com>
10479 * config/arm/iterators.md (MVE_vecs): New.
10480 (V_elem): Also handle V2DF.
10481 * config/arm/mve.md (*mve_mov<mode>): Rename to ...
10482 (*mve_vdup<mode>): ... this. Remove second alternative since
10483 vec_duplicate of const_int is not canonical RTL, and we don't
10484 want to match symbol_refs.
10485 (*mve_vec_duplicate<mode>): Delete (pattern is redundant).
10487 2021-04-08 Xionghu Luo <luoxhu@linux.ibm.com>
10489 * fold-const.c (fold_single_bit_test): Fix typo.
10490 * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single
10493 2021-04-07 Richard Sandiford <richard.sandiford@arm.com>
10495 PR tree-optimization/97513
10496 * tree-vect-slp.c (vect_add_slp_permutation): New function,
10498 (vectorizable_slp_permutation): ...here. Detect cases in which
10499 all VEC_PERM_EXPRs are guaranteed to have the same stepped
10500 permute vector and only generate one permute vector for that case.
10501 Extend that case to handle variable-length vectors.
10503 2021-04-07 Richard Sandiford <richard.sandiford@arm.com>
10505 PR tree-optimization/99873
10506 * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function.
10507 (vect_build_slp_instance): Don't split store groups that could
10508 use IFN_STORE_LANES.
10510 2021-04-07 Jakub Jelinek <jakub@redhat.com>
10513 * varasm.c (output_constant_pool_contents): Don't strip name encoding
10514 from XSTR (desc->sym, 0) or from label before passing those to
10517 2021-04-07 Richard Biener <rguenther@suse.de>
10519 PR tree-optimization/99954
10520 * tree-loop-distribution.c: Include tree-affine.h.
10521 (generate_memcpy_builtin): Try using tree-affine to prove
10523 (loop_distribution::classify_builtin_ldst): Always classify
10526 2021-04-07 Richard Biener <rguenther@suse.de>
10528 PR tree-optimization/99947
10529 * tree-vect-loop.c (vectorizable_induction): Pre-allocate
10530 steps vector to avoid pushing elements from the reallocated
10533 2021-04-07 Richard Biener <rguenther@suse.de>
10535 * tree-ssa-sccvn.h (print_vn_reference_ops): Declare.
10536 * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand
10538 * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new
10540 (debug_vn_reference_ops): New.
10542 2021-04-07 Bin Cheng <bin.cheng@linux.alibaba.com>
10544 PR tree-optimization/98736
10545 * tree-loop-distribution.c
10546 * (loop_distribution::bb_top_order_init):
10547 Compute RPO with programing order preserved by calling function
10548 rev_post_order_and_mark_dfs_back_seme.
10550 2021-04-06 Vladimir N. Makarov <vmakarov@redhat.com>
10553 * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
10554 * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
10556 (process_bb_lives): Don't update biggest mode of hard reg for
10557 implicit in multi-register group. Use the new functions for
10558 updating dead_set and unused_set by register notes.
10560 2021-04-06 Xianmiao Qu <xianmiao_qu@c-sky.com>
10562 * config/csky/csky_pipeline_ck802.md : Use insn reservation name
10565 2021-04-06 H.J. Lu <hjl.tools@gmail.com>
10567 * config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
10568 (skylake_memset): Likewise.
10569 (skylake_cost): Change CLEAR_RATIO to 17.
10570 * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
10571 Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
10572 m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.
10574 2021-04-06 Richard Biener <rguenther@suse.de>
10576 PR tree-optimization/99880
10577 * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
10578 set vectorized defs of relevant PHIs.
10580 2021-04-06 Richard Biener <rguenther@suse.de>
10582 PR tree-optimization/99924
10583 * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
10584 nodes w/o scalar stmts as visited.
10586 2021-04-06 Alex Coplan <alex.coplan@arm.com>
10589 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
10590 PCS for [su]fix_optab.
10592 2021-04-03 Iain Sandoe <iain@sandoe.co.uk>
10594 * config/darwin.c (machopic_legitimize_pic_address): Check
10595 that the current pic register is one of the hard reg set
10596 before setting liveness.
10598 2021-04-03 Iain Sandoe <iain@sandoe.co.uk>
10600 * config/darwin.c (machopic_legitimize_pic_address): Fix
10601 whitespace, remove unused code.
10603 2021-04-03 Jakub Jelinek <jakub@redhat.com>
10605 PR tree-optimization/99882
10606 * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
10609 2021-04-03 Jakub Jelinek <jakub@redhat.com>
10611 PR rtl-optimization/99863
10612 * dse.c (replace_read): Drop regs_live argument. Instead of
10613 regs_live, use store_insn->fixed_regs_live if non-NULL,
10614 otherwise punt if insns sequence clobbers or sets any hard
10617 2021-04-03 Jakub Jelinek <jakub@redhat.com>
10620 * targhooks.h (default_print_patchable_function_entry_1): Declare.
10621 * targhooks.c (default_print_patchable_function_entry_1): New function,
10622 copied from default_print_patchable_function_entry with an added flags
10624 (default_print_patchable_function_entry): Rewritten into a small
10625 wrapper around default_print_patchable_function_entry_1.
10626 * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
10628 (rs6000_print_patchable_function_entry): New function.
10630 2021-04-02 Eric Botcazou <ebotcazou@adacore.com>
10632 * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
10634 2021-04-01 Jason Merrill <jason@redhat.com>
10637 * common.opt: Document v15 and v16.
10639 2021-04-01 Richard Biener <rguenther@suse.de>
10641 PR tree-optimization/99863
10642 * gimplify.c (gimplify_init_constructor): Recompute vector
10645 2021-04-01 Jakub Jelinek <jakub@redhat.com>
10647 * doc/extend.texi (symver attribute): Fix up syntax errors
10650 2021-04-01 Jakub Jelinek <jakub@redhat.com>
10652 PR tree-optimization/96573
10653 * gimple-ssa-store-merging.c (init_symbolic_number): Handle
10654 also pointer types.
10656 2021-04-01 Richard Biener <rguenther@suse.de>
10658 PR tree-optimization/99856
10659 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
10660 precision to vector element precision.
10662 2021-04-01 Martin Jambor <mjambor@suse.cz>
10664 PR tree-optimization/97009
10665 * tree-sra.c (access_or_its_child_written): New function.
10666 (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
10669 2021-03-31 Jan Hubicka <hubicka@ucw.cz>
10672 * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
10674 2021-03-31 Pat Haugen <pthaugen@linux.ibm.com>
10677 * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
10678 xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
10679 xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
10680 * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
10681 mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
10682 mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
10684 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
10685 * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
10686 (define_attr "prefixed"): Update initializer.
10688 2021-03-31 Jakub Jelinek <jakub@redhat.com>
10691 * dwarf2out.c (debug_ranges_dwo_section): New variable.
10692 (DW_RANGES_IDX_SKELETON): Define.
10693 (struct dw_ranges): Add begin_entry and end_entry members.
10694 (DEBUG_DWO_RNGLISTS_SECTION): Define.
10695 (add_ranges_num): Adjust r initializer for addition of *_entry
10697 (add_ranges_by_labels): For -gsplit-dwarf and force_direct,
10698 set idx to DW_RANGES_IDX_SKELETON.
10699 (use_distinct_base_address_for_range): New function.
10700 (index_rnglists): Don't set r->idx if it is equal to
10701 DW_RANGES_IDX_SKELETON. Initialize r->begin_entry and
10702 r->end_entry for -gsplit-dwarf if those will be needed by
10704 (output_rnglists): Add DWO argument. If true, switch to
10705 debug_ranges_dwo_section rather than debug_ranges_section.
10706 Adjust l1/l2 label indexes. Only output the offset table when
10707 dwo is true and don't include in there the skeleton range
10708 entry if present. For -gsplit-dwarf, skip ranges that belong
10709 to the other rnglists section. Change return type from void
10710 to bool and return true if there are any range entries for
10711 the other section. For dwarf_split_debug_info use
10712 DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
10713 entries instead of DW_RLE_start_end, DW_RLE_start_length and
10714 DW_RLE_base_address. Use use_distinct_base_address_for_range.
10715 (init_sections_and_labels): Initialize debug_ranges_dwo_section
10716 if -gsplit-dwarf and DWARF >= 5. Adjust ranges_section_label
10717 and range_base_label indexes.
10718 (dwarf2out_finish): Call index_rnglists earlier before finalizing
10719 .debug_addr. Never emit DW_AT_rnglists_base attribute. For
10720 -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
10721 with different dwo arguments.
10722 (dwarf2out_c_finalize): Clear debug_ranges_dwo_section.
10724 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
10726 PR tree-optimization/98268
10727 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
10728 recompute_tree_invariant_for_addr_expr after successfully
10729 folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
10731 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
10733 PR tree-optimization/99726
10734 * tree-data-ref.c (create_intersect_range_checks_index): Bail
10735 out if there is more than one access function SCEV for the loop
10738 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
10740 PR rtl-optimization/97141
10741 PR rtl-optimization/98726
10742 * emit-rtl.c (valid_for_const_vector_p): Return true for
10744 * rtx-vector-builder.h (rtx_vector_builder::step): Return a
10745 poly_wide_int instead of a wide_int.
10746 (rtx_vector_builder::apply_set): Take a poly_wide_int instead
10748 * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
10749 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
10750 false for CONST_VECTORs that cannot be forced to memory.
10751 * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
10752 is too complex to force to memory, build it up from individual
10755 2021-03-31 Jan Hubicka <jh@suse.cz>
10758 * cgraph.c (cgraph_node::release_body): Fix overactive check.
10760 2021-03-31 Christophe Lyon <christophe.lyon@linaro.org>
10763 * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
10766 2021-03-31 H.J. Lu <hjl.tools@gmail.com>
10768 * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
10769 For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
10771 (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
10772 "rep movsb/stosb" only for known sizes.
10773 * config/i386/i386-options.c (processor_cost_table): Use Ice
10774 Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
10775 Rapids and Alder Lake.
10776 * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
10777 * config/i386/x86-tune-costs.h (icelake_memcpy): New.
10778 (icelake_memset): Likewise.
10779 (icelake_cost): Likewise.
10780 * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
10783 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
10786 * config/aarch64/aarch64.c
10787 (aarch64_vectorize_preferred_vector_alignment): Query the size
10788 of the provided SVE vector; do not assume that all SVE vectors
10789 have the same size.
10791 2021-03-31 Jan Hubicka <jh@suse.cz>
10794 * cgraph.c (cgraph_node::release_body): Remove all callers and
10796 * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
10797 * cgraphunit.c (cgraph_node::expand): And here.
10799 2021-03-31 Martin Liska <mliska@suse.cz>
10801 * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
10802 and one negated condition.
10804 2021-03-31 Jakub Jelinek <jakub@redhat.com>
10805 Richard Sandiford <richard.sandiford@arm.com>
10808 * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
10809 constraints on operands[2] and similarly 0 and rk constraints
10810 on operands[1] corresponding to that.
10812 2021-03-31 Jakub Jelinek <jakub@redhat.com>
10815 * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
10816 linker doesn't support DWARF sections new in DWARF5.
10817 * config/i386/i386-options.c (ix86_option_override_internal): Default
10818 to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
10820 * config.in: Regenerated.
10821 * configure: Regenerated.
10823 2021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10826 * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
10827 available issue_info before using it.
10829 2021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10832 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
10835 2021-03-30 Xionghu Luo <luoxhu@linux.ibm.com>
10838 * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
10839 (altivec_lvsl_reg_<mode>): ... this.
10840 (altivec_lvsr_reg): Change to ...
10841 (altivec_lvsr_reg_<mode>): ... this.
10842 * config/rs6000/predicates.md (vec_set_index_operand): New.
10843 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10844 Enable 32bit variable vec_insert for all TARGET_VSX.
10845 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
10846 Enable 32bit variable vec_insert for p9 and above.
10847 (rs6000_expand_vector_set_var_p8): Rename to ...
10848 (rs6000_expand_vector_set_var_p7): ... this.
10849 (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
10851 * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
10852 * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
10853 gen_altivec_lvsr_reg_di.
10855 2021-03-30 H.J. Lu <hjl.tools@gmail.com>
10858 * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
10859 (__rdtscp): Likewise.
10861 2021-03-30 Tamar Christina <tamar.christina@arm.com>
10863 PR tree-optimization/99825
10864 * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
10865 Reject non-mult 2 lanes.
10867 2021-03-30 Richard Earnshaw <rearnsha@arm.com>
10870 * config/arm/arm.c (arm_file_start): Fix emission of
10871 Tag_ABI_VFP_args attribute.
10873 2021-03-30 Richard Biener <rguenther@suse.de>
10875 PR tree-optimization/99824
10876 * stor-layout.c (set_min_and_max_values_for_integral_type):
10877 Assert the precision is within the bounds of
10878 WIDE_INT_MAX_PRECISION.
10879 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
10880 the outermost component ref only to lower the access size
10881 and initialize that from the access type.
10883 2021-03-30 Richard Sandiford <richard.sandiford@arm.com>
10886 * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
10887 CONST_INTs to aarch64_expand_mov_immediate when called after RA.
10889 2021-03-30 Mihailo Stojanovic <mihailo.stojanovic@typhoon-hil.com>
10891 * config/aarch64/aarch64.md
10892 (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
10893 attribute to disambiguate between SIMD and FP variants of the
10896 2021-03-29 Jan Hubicka <hubicka@ucw.cz>
10898 * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
10899 (analyze_ssa_name_flags): Fix typo in comment.
10901 2021-03-29 Alex Coplan <alex.coplan@arm.com>
10904 * config/aarch64/aarch64-sve-builtins.cc
10905 (function_builder::add_function): Add placeholder_p argument, use
10906 placeholder decls if this is set.
10907 (function_builder::add_unique_function): Instead of conditionally adding
10908 direct overloads, unconditionally add either a direct overload or a
10910 (function_builder::add_overloaded_function): Set placeholder_p if we're
10911 using C++ overloads. Use the obstack for string storage instead
10912 of relying on the tree nodes.
10913 (function_builder::add_overloaded_functions): Don't return early for
10914 m_direct_overloads: we need to add placeholders.
10915 * config/aarch64/aarch64-sve-builtins.h
10916 (function_builder::add_function): Add placeholder_p argument.
10918 2021-03-29 Richard Biener <rguenther@suse.de>
10920 PR tree-optimization/99807
10921 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
10922 assert below VEC_PERM handling.
10924 2021-03-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10927 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
10928 aarch64_simd_or_scalar_imm_zero to match zeroes. Remove pattern
10929 matching const_int 0.
10930 (move_lo_quad_internal_be_<mode>): Likewise.
10931 (move_lo_quad_<mode>): Update for the above.
10932 * config/aarch64/iterators.md (VQ_2E): Delete.
10934 2021-03-29 Jakub Jelinek <jakub@redhat.com>
10936 PR tree-optimization/99777
10937 * fold-const.c (extract_muldiv_1): For conversions, punt on casts from
10938 types other than scalar integral types.
10940 2021-03-28 David Edelsohn <dje.gcc@gmail.com>
10942 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
10943 XCOFF TLS reloc decorations.
10945 2021-03-28 Gerald Pfeifer <gerald@pfeifer.com>
10947 * doc/analyzer.texi (Analyzer Internals): Update link to
10948 "A Memory Model for Static Analysis of C Programs".
10950 2021-03-26 David Edelsohn <dje.gcc@gmail.com>
10952 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
10953 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
10955 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
10956 (rs6000_special_round_type_align): Recursively check innermost first
10959 2021-03-26 Jakub Jelinek <jakub@redhat.com>
10962 * dwarf2out.h (struct dw_fde_node): Add rule18 member.
10963 * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
10964 assignment with drap_reg active, queue reg save for hfp with offset 0
10965 and flush queued reg saves. When handling a push with rule18,
10966 defer queueing reg save for hfp and just assert the offset is 0.
10967 (scan_trace): Assert that fde->rule18 is false.
10969 2021-03-26 Vladimir Makarov <vmakarov@redhat.com>
10972 * ira-costs.c (record_reg_classes): Put case with
10973 CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
10974 * ira.c (ira_setup_alts): Ditto.
10975 * lra-constraints.c (process_alt_operands): Ditto.
10976 * recog.c (asm_operand_ok): Ditto.
10977 * reload.c (find_reloads): Ditto.
10979 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
10981 * config/aarch64/aarch64-protos.h
10982 (cpu_addrcost_table::post_modify_ld3_st3): New member variable.
10983 (cpu_addrcost_table::post_modify_ld4_st4): Likewise.
10984 * config/aarch64/aarch64.c (generic_addrcost_table): Update
10985 accordingly, using the same costs as for post_modify.
10986 (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
10987 (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
10988 (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
10989 (a64fx_addrcost_table): Likewise.
10990 (neoversev1_addrcost_table): New.
10991 (neoversev1_tunings): Use neoversev1_addrcost_table.
10992 (aarch64_address_cost): Use the new post_modify costs for CImode
10995 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
10997 * config/aarch64/aarch64.opt
10998 (-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
10999 * doc/invoke.texi: Document it.
11000 * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
11001 (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
11002 (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
11003 (aarch64_vec_issue_info): New structures.
11004 (cpu_vector_cost): Write comments above the variables rather
11006 (cpu_vector_cost::issue_info): New member variable.
11007 * config/aarch64/aarch64.c: Include gimple-pretty-print.h
11008 and tree-ssa-loop-niter.h.
11009 (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
11010 (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
11011 (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
11012 (thunderx3t110_vector_cost): Initialize issue_info to null.
11013 (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
11014 (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
11015 (neoversev1_vector_cost): Use them.
11016 (aarch64_vec_op_count, aarch64_sve_op_count): New structures.
11017 (aarch64_vector_costs::saw_sve_only_op): New member variable.
11018 (aarch64_vector_costs::num_vector_iterations): Likewise.
11019 (aarch64_vector_costs::scalar_ops): Likewise.
11020 (aarch64_vector_costs::advsimd_ops): Likewise.
11021 (aarch64_vector_costs::sve_ops): Likewise.
11022 (aarch64_vector_costs::seen_loads): Likewise.
11023 (aarch64_simd_vec_costs_for_flags): New function.
11024 (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
11025 Count the number of predicate operations required by SVE WHILE
11027 (aarch64_comparison_type, aarch64_multiply_add_p): New functions.
11028 (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
11029 (aarch64_count_ops): Likewise.
11030 (aarch64_add_stmt_cost): Record whether see an SVE operation
11031 that cannot currently be implementing using Advanced SIMD.
11032 Record issue information about the scalar, Advanced SIMD
11033 and (where relevant) SVE versions of a loop.
11034 (aarch64_vec_op_count::dump): New function.
11035 (aarch64_sve_op_count::dump): Likewise.
11036 (aarch64_estimate_min_cycles_per_iter): Likewise.
11037 (aarch64_adjust_body_cost): If issue information is available,
11038 try to compare the issue rates of the various loop implementations
11039 and increase or decrease the vector body cost accordingly.
11041 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11043 * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
11044 Assume a zero cost for induction phis.
11046 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11048 * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
11050 (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
11051 vector comparisons.
11053 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11055 * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
11057 (aarch64_add_stmt_cost): Call it.
11059 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11061 * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
11062 New tuning parameter.
11063 * config/aarch64/aarch64.c (neoversev1_tunings): Use it.
11064 (aarch64_estimated_sve_vq): New function.
11065 (aarch64_vector_costs::analyzed_vinfo): New member variable.
11066 (aarch64_vector_costs::is_loop): Likewise.
11067 (aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
11068 (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
11069 (aarch64_record_potential_advsimd_unrolling): New function.
11070 (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
11071 (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
11072 aarch64_analyze_bb_vinfo on the first use of a costs structure.
11073 Detect whether we're vectorizing a loop for SVE that might be
11074 completely unrolled if it used Advanced SIMD instead.
11075 (aarch64_adjust_body_cost_for_latency): New function.
11076 (aarch64_finish_cost): Call it.
11078 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11080 * config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
11081 (aarch64_init_cost): New function.
11082 (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
11083 the default unsigned[3].
11084 (aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
11085 (TARGET_VECTORIZE_INIT_COST): Override.
11086 (TARGET_VECTORIZE_FINISH_COST): Likewise.
11087 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
11089 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11091 * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
11092 (neoversev1_sve_vector_cost): New cost structures.
11093 (neoversev1_vector_cost): Likewise.
11094 (neoversev1_tunings): Use them. Enable use_new_vector_costs.
11096 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11098 * config/aarch64/aarch64-protos.h
11099 (sve_vec_cost::scatter_store_elt_cost): New member variable.
11100 * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
11101 accordingly, taking the cost from the cost of a scalar_store.
11102 (a64fx_sve_vector_cost): Likewise.
11103 (aarch64_detect_vector_stmt_subtype): Detect scatter stores.
11105 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11107 * config/aarch64/aarch64-protos.h
11108 (simd_vec_cost::store_elt_extra_cost): New member variable.
11109 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
11110 accordingly, using the vec_to_scalar cost for the new field.
11111 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
11112 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
11113 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
11114 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
11115 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
11116 (thunderx3t110_advsimd_vector_cost): Likewise.
11117 (aarch64_detect_vector_stmt_subtype): Detect single-element stores.
11119 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11121 * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
11122 (simd_vec_cost::ld3_st3_permute_cost): New member variables.
11123 (simd_vec_cost::ld4_st4_permute_cost): Likewise.
11124 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
11125 accordingly, using zero for the new costs.
11126 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
11127 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
11128 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
11129 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
11130 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
11131 (thunderx3t110_advsimd_vector_cost): Likewise.
11132 (aarch64_ld234_st234_vectors): New function.
11133 (aarch64_adjust_stmt_cost): Likewise.
11134 (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
11135 the new vector costs.
11137 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11139 * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
11140 derived class of simd_vec_cost. Add information about CLAST[AB]
11141 and FADDA instructions.
11142 * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
11143 accordingly, using the vec_to_scalar costs for the new fields.
11144 (a64fx_sve_vector_cost): Likewise.
11145 (aarch64_reduc_type): New function.
11146 (aarch64_sve_in_loop_reduction_latency): Likewise.
11147 (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
11148 Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
11149 that occur in the loop body.
11150 (aarch64_add_stmt_cost): Update call accordingly.
11152 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11154 * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
11156 * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
11157 above the fields rather than to the right.
11158 (simd_vec_cost::reduc_i8_cost): New member variable.
11159 (simd_vec_cost::reduc_i16_cost): Likewise.
11160 (simd_vec_cost::reduc_i32_cost): Likewise.
11161 (simd_vec_cost::reduc_i64_cost): Likewise.
11162 (simd_vec_cost::reduc_f16_cost): Likewise.
11163 (simd_vec_cost::reduc_f32_cost): Likewise.
11164 (simd_vec_cost::reduc_f64_cost): Likewise.
11165 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
11166 accordingly, using the vec_to_scalar_cost for the new fields.
11167 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
11168 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
11169 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
11170 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
11171 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
11172 (thunderx3t110_advsimd_vector_cost): Likewise.
11173 (aarch64_use_new_vector_costs_p): New function.
11174 (aarch64_simd_vec_costs): New function, split out from...
11175 (aarch64_builtin_vectorization_cost): ...here.
11176 (aarch64_is_reduction): New function.
11177 (aarch64_detect_vector_stmt_subtype): Likewise.
11178 (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
11179 using the new vector costs.
11181 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
11184 * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
11185 TLS declarations as public.
11187 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
11189 * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
11190 * config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
11191 * config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
11192 * config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
11193 * config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
11194 * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
11195 * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
11196 * config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
11197 * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.
11199 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
11202 * config.gcc (*-*-cygwin*): Add winnt-d.o
11203 (*-*-mingw*): Likewise.
11204 * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
11205 * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
11206 * config/i386/t-cygming: Add winnt-d.o.
11207 * config/i386/winnt-d.c: New file.
11209 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
11211 * config/freebsd-d.c: Include memmodel.h.
11213 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
11216 * config.gcc (*-*-openbsd*): Add openbsd-d.o.
11217 * config/t-openbsd: Add openbsd-d.o.
11218 * config/openbsd-d.c: New file.
11220 2021-03-25 Stam Markianos-Wright <stam.markianos-wright@arm.com>
11222 PR tree-optimization/96974
11223 * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
11224 with graceful exit.
11226 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
11229 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
11233 * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
11234 always_inline in system headers.
11236 2021-03-25 Kewen Lin <linkw@linux.ibm.com>
11238 * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
11240 2021-03-25 Jakub Jelinek <jakub@redhat.com>
11243 * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
11244 * fold-const.c (operand_compare::operand_equal_p): Don't compare
11245 field offsets if OEP_ADDRESS_OF_SAME_FIELD.
11247 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
11251 * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
11252 always_inline in system headers.
11254 2021-03-25 Richard Biener <rguenther@suse.de>
11256 PR tree-optimization/99746
11257 * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
11258 the scalar stmt as patterned. Instead set up required things
11261 2021-03-25 Xionghu Luo <luoxhu@linux.ibm.com>
11263 * config/rs6000/rs6000.c (power8_costs): Change l2 cache
11266 2021-03-24 Martin Liska <mliska@suse.cz>
11269 * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
11271 * config/i386/i386-options.c (ix86_option_override_internal):
11272 Add run-time assert.
11274 2021-03-24 Martin Jambor <mjambor@suse.cz>
11277 * ipa-cp.c (initialize_node_lattices): Mark as bottom all
11278 parameters with unknown type.
11279 (ipacp_value_safe_for_type): New function.
11280 (propagate_vals_across_arith_jfunc): Verify that the constant type
11281 can be used for a type of the formal parameter.
11282 (propagate_vals_across_ancestor): Likewise.
11283 (propagate_scalar_across_jump_function): Likewise. Pass the type
11284 also to propagate_vals_across_ancestor.
11286 2021-03-24 Christophe Lyon <christophe.lyon@linaro.org>
11289 * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
11291 (movmisalign<mode>_mve_load): Likewise.
11293 2021-03-24 Jakub Jelinek <jakub@redhat.com>
11296 * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
11297 movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
11299 2021-03-24 Alexandre Oliva <oliva@adacore.com>
11301 * doc/sourcebuild.texi (sysconf): New effective target.
11303 2021-03-24 Alexandre Oliva <oliva@adacore.com>
11305 * config/i386/predicates.md (reg_or_const_vec_operand): New.
11306 * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
11307 the now *-prefixed insn_and_split, turn the splitter const vec
11308 into an input for the insn, making it an ignored immediate for
11309 non-split cases, and loaded into the scratch register
11312 2021-03-23 Vladimir N. Makarov <vmakarov@redhat.com>
11315 * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
11316 Use define_relaxed_memory_constraint for them.
11318 2021-03-23 Iain Sandoe <iain@sandoe.co.uk>
11321 * config/host-darwin.c (darwin_gt_pch_use_address): Add a
11322 colon to the diagnostic message.
11324 2021-03-23 Ilya Leoshkevich <iii@linux.ibm.com>
11326 * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
11328 (try_fwprop_subst_note): Use set_info instead of insn_info.
11329 (try_fwprop_subst_pattern): Likewise.
11330 (try_fwprop_subst_notes): Likewise.
11331 (try_fwprop_subst): Likewise.
11332 (forward_propagate_subreg): Likewise.
11333 (forward_propagate_and_simplify): Likewise.
11334 (forward_propagate_into): Likewise.
11335 * rtl-ssa/accesses.h (set_info::single_nondebug_use) New
11337 (set_info::single_nondebug_insn_use): Likewise.
11338 (set_info::single_phi_use): Likewise.
11339 * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
11341 (set_info::single_nondebug_insn_use): Likewise.
11342 (set_info::single_phi_use): Likewise.
11344 2021-03-23 Christophe Lyon <christophe.lyon@linaro.org>
11346 * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
11348 2021-03-23 Jakub Jelinek <jakub@redhat.com>
11351 * config/aarch64/aarch64.c (aarch64_add_offset): Tell
11352 expand_mult to perform an unsigned rather than a signed
11355 2021-03-23 H.J. Lu <hjl.tools@gmail.com>
11358 * config/i386/cpuid.h (__cpuid): Add __volatile__.
11359 (__cpuid_count): Likewise.
11361 2021-03-23 Richard Biener <rguenther@suse.de>
11363 PR tree-optimization/99721
11364 * tree-vect-slp.c (vect_slp_analyze_node_operations):
11365 Make sure we can schedule the node.
11367 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
11369 * config/riscv/riscv.c (riscv_subword): Take endianness into
11370 account when calculating the byte offset.
11372 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
11374 * config/riscv/predicates.md (subreg_lowpart_operator): New predicate
11375 * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
11376 (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
11377 (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
11378 (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
11379 new predicate "subreg_lowpart_operator"
11381 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
11383 * config/riscv/riscv.c (riscv_swap_instruction): New function
11384 to byteswap an SImode rtx containing an instruction.
11385 (riscv_trampoline_init): Byteswap the generated instructions
11388 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
11390 * common/config/riscv/riscv-common.c
11391 (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
11392 * config.gcc (riscv32be-*, riscv64be-*): Set
11393 TARGET_BIG_ENDIAN_DEFAULT to 1.
11394 * config/riscv/elf.h (LINK_SPEC): Change -melf* value
11395 depending on default endianness.
11396 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
11397 * config/riscv/linux.h (LINK_SPEC): Likewise.
11398 * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
11399 default endianness.
11400 * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.
11402 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
11404 * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
11405 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
11406 * config/riscv/linux.h (LINK_SPEC): Likewise.
11407 * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
11409 (BYTES_BIG_ENDIAN): Handle big endian.
11410 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
11411 * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
11413 * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
11415 2021-03-23 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
11417 * regcprop.c (find_oldest_value_reg): Ask target whether
11418 different mode is fine for replacement register.
11420 2021-03-23 Aldy Hernandez <aldyh@redhat.com>
11422 PR tree-optimization/99296
11423 * value-range.cc (irange::irange_set_1bit_anti_range): New.
11424 (irange::irange_set_anti_range): Call irange_set_1bit_anti_range
11425 * value-range.h (irange::irange_set_1bit_anti_range): New.
11427 2021-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
11430 * config/aarch64/constraints.md (UtQ): Use
11431 define_relaxed_memory_constraint for it.
11432 * doc/md.texi (define_relaxed_memory_constraint): Describe it.
11433 * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
11434 * genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
11435 (have_relaxed_memory_constraints): New static var.
11436 (relaxed_memory_start, relaxed_memory_end): Ditto.
11437 (add_constraint): Add arg is_relaxed_memory. Check name for
11438 relaxed memory. Set up is_relaxed_memory in constraint_data and
11439 have_relaxed_memory_constraints. Adjust calls.
11440 (choose_enum_order): Process relaxed memory.
11441 (write_tm_preds_h): Ditto.
11442 (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
11443 * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
11444 * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
11445 * ira-lives.c (single_reg_class): Use
11446 insn_extra_relaxed_memory_constraint.
11447 * ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
11448 * lra-constraints.c (valid_address_p): Use
11449 insn_extra_relaxed_memory_constraint instead of other memory
11451 (process_alt_operands): Process CT_RELAXED_MEMORY.
11452 (curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
11453 * recog.c (asm_operand_ok, preprocess_constraints): Process
11455 * reload.c (find_reloads): Ditto.
11456 * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
11457 * stmt.c (parse_input_constraint): Use
11458 insn_extra_relaxed_memory_constraint.
11460 2021-03-22 Segher Boessenkool <segher@kernel.crashing.org>
11463 * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
11466 2021-03-22 Alex Coplan <alex.coplan@arm.com>
11469 * config/arm/arm-protos.h (neon_make_constant): Add generate
11470 argument to guard emitting insns, default to true.
11471 * config/arm/arm.c (arm_legitimate_constant_p_1): Reject
11472 CONST_VECTORs which neon_make_constant can't handle.
11473 (neon_vdup_constant): Add generate argument, avoid emitting
11474 insns if it's not set.
11475 (neon_make_constant): Plumb new generate argument through.
11476 * config/arm/constraints.md (Ui): New. Use it...
11477 * config/arm/mve.md (*mve_mov<mode>): ... here.
11478 * config/arm/vec-common.md (movv8hf): Use neon_make_constant to
11479 synthesize constants.
11481 2021-03-22 Richard Biener <rguenther@suse.de>
11483 * debug.h: Add deprecation warning.
11485 2021-03-22 Richard Biener <rguenther@suse.de>
11487 PR tree-optimization/99694
11488 * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
11491 2021-03-22 Kito Cheng <kito.cheng@sifive.com>
11494 * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
11495 after type checking.
11497 2021-03-22 Jakub Jelinek <jakub@redhat.com>
11501 * dwarf2out.c (get_full_len): Use get_precision rather than
11503 (add_const_value_attribute): Make sure add_AT_wide argument has
11504 precision prec rather than some very wide one.
11506 2021-03-22 Kewen Lin <linkw@linux.ibm.com>
11508 * config/rs6000/rs6000.md (*rotldi3_insert_sf,
11509 *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
11510 floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
11511 floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
11512 *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
11513 fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
11514 *round32<mode>2_fprs, *roundu32<mode>2_fprs,
11515 *fix_trunc<mode>si2_internal): Fix empty split condition.
11516 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
11517 vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
11518 *vsx_reduc_<VEC_reduc_name>_v2df_scalar,
11519 *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
11521 2021-03-22 Xionghu Luo <luoxhu@linux.ibm.com>
11524 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
11525 Convert idx to DImode.
11526 (rs6000_expand_vector_set_var_p8): Likewise.
11528 2021-03-21 Jakub Jelinek <jakub@redhat.com>
11531 * dwarf2out.c (insert_float): Change return type from void to
11532 unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
11533 (mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
11536 2021-03-20 H.J. Lu <hjl.tools@gmail.com>
11539 * config/i386/i386.c (construct_container): Check cfun != NULL
11540 before accessing silent_p.
11542 2021-03-20 Ahamed Husni <ahamedhusni73@gmail.com>
11544 * asan.c: Fix typos in comments.
11546 2021-03-20 Vladimir N. Makarov <vmakarov@redhat.com>
11548 PR rtl-optimization/99680
11549 * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
11550 (process_address_1): Check empty constraint before using
11553 2021-03-19 Pat Haugen <pthaugen@linux.ibm.com>
11555 * config/rs6000/rs6000.c (power10_cost): New.
11556 (rs6000_option_override_internal): Set Power10 costs.
11557 (rs6000_issue_rate): Set Power10 issue rate.
11558 * config/rs6000/power10.md: Rewrite for Power10.
11560 2021-03-19 Vladimir N. Makarov <vmakarov@redhat.com>
11563 * lra-constraints.c (process_address_1): Don't use unknown
11564 constraint for address constraint.
11566 2021-03-19 Iain Sandoe <iain@sandoe.co.uk>
11569 * config.gcc (powerpc-*-darwin8): Delete the reference to
11570 the now removed darwin8.h.
11572 2021-03-19 Olivier Hainque <hainque@adacore.com>
11575 * config/vxworksae.h (VX_CPU_PREFIX): Define.
11577 2021-03-19 John David Anglin <danglin@gcc.gnu.org>
11579 * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
11581 2021-03-19 Tamar Christina <tamar.christina@arm.com>
11583 PR tree-optimization/99656
11584 * tree-vect-slp-patterns.c (linear_loads_p,
11585 complex_add_pattern::matches, is_eq_or_top,
11586 vect_validate_multiplication, complex_mul_pattern::matches,
11587 complex_fms_pattern::matches): Remove complex_perm_kinds_t.
11588 * tree-vectorizer.h: (complex_load_perm_t): Removed.
11589 (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
11590 complex_load_perm_t.
11592 2021-03-19 H.J. Lu <hjl.tools@gmail.com>
11595 * config/i386/i386-options.c (ix86_init_machine_status): Set
11597 * config/i386/i386.c (init_cumulative_args): Set silent_p to
11599 (construct_container): Return early for return and argument
11600 errors if silent_p is true.
11601 * config/i386/i386.h (machine_function): Add silent_p.
11603 2021-03-19 Jakub Jelinek <jakub@redhat.com>
11606 * config/arm/constraints.md (Ds): New constraint.
11607 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
11608 constraint instead of w,Dm.
11610 2021-03-19 Andrew Stubbs <ams@codesourcery.com>
11612 * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
11615 2021-03-19 Eric Botcazou <ebotcazou@adacore.com>
11617 PR middle-end/99641
11618 * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
11619 array type, do the computation of the current position in sizetype.
11621 2021-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
11624 * lra-constraints.c (process_address_1): Use lookup_constraint
11625 only for a single constraint.
11627 2021-03-18 Martin Sebor <msebor@redhat.com>
11629 PR middle-end/99502
11630 * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
11631 (inbounds_memaccess_p): ...to this. Check the ending offset of
11632 the accessed member.
11634 2021-03-18 Andrew Stubbs <ams@codesourcery.com>
11636 * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
11637 %> quote markers to error messages.
11638 (gcn_goacc_validate_dims): Likewise.
11639 (gcn_conditional_register_usage): Remove exclaimation mark from error
11641 (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
11643 2021-03-18 Jan Hubicka <hubicka@ucw.cz>
11645 * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
11648 2021-03-18 Sinan Lin <sinan@isrc.iscas.ac.cn>
11649 Kito Cheng <kito.cheng@sifive.com>
11651 * config/riscv/riscv.c (riscv_block_move_straight): Change type
11652 to unsigned HOST_WIDE_INT for parameter and local variable with
11653 HOST_WIDE_INT type.
11654 (riscv_adjust_block_mem): Ditto.
11655 (riscv_block_move_loop): Ditto.
11656 (riscv_expand_block_move): Ditto.
11658 2021-03-18 Nick Clifton <nickc@redhat.com>
11660 * config/v850/v850.c (construct_restore_jr): Increase static
11662 (construct_save_jarl): Likewise.
11663 * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
11665 2021-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11667 * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
11668 (aarch64_override_options_internal): Use it.
11669 (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
11672 2021-03-17 Sandra Loosemore <sandra@codesourcery.com>
11674 * config/nios2/nios2.c (nios2_custom_check_insns): Clean up
11675 error message format issues.
11676 (nios2_option_override): Likewise.
11677 (nios2_expand_fpu_builtin): Likewise.
11678 (nios2_init_custom_builtins): Adjust to avoid bogus strncpy
11679 truncation warning.
11680 (nios2_expand_custom_builtin): More error message format fixes.
11681 (nios2_expand_rdwrctl_builtin): Likewise.
11682 (nios2_expand_rdprs_builtin): Likewise.
11683 (nios2_expand_eni_builtin): Likewise.
11684 (nios2_expand_builtin): Likewise.
11685 (nios2_register_custom_code): Likewise.
11686 (nios2_valid_target_attribute_rec): Likewise.
11687 (nios2_add_insn_asm): Fix uninitialized variable warning.
11689 2021-03-17 Jan Hubicka <jh@suse.cz>
11691 * config/i386/x86-tune-costs.h (struct processor_costs): Update costs
11692 of gather to match reality.
11693 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.
11695 2021-03-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11697 * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
11698 to compare against CC_REG rather than NE.
11700 2021-03-17 H.J. Lu <hjl.tools@gmail.com>
11703 * config/i386/i386.c (ix86_force_load_from_GOT_p): Support
11704 inline assembly statements.
11705 (ix86_print_operand): Update 'P' handling for -fno-plt.
11707 2021-03-17 Tamar Christina <tamar.christina@arm.com>
11710 * config/aarch64/aarch64.c
11711 (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
11713 2021-03-16 Segher Boessenkool <segher@kernel.crashing.org>
11716 * config/rs6000/predicates.md (branch_comparison_operator): Allow
11717 ordered and unordered for CCFPmode, if flag_finite_math_only.
11719 2021-03-16 Jakub Jelinek <jakub@redhat.com>
11722 * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
11723 rather than ASHIFT.
11724 * config/i386/i386.md (mult by 1248 into ashift): New splitter.
11726 2021-03-16 Martin Liska <mliska@suse.cz>
11729 * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
11730 cl_optimization_compare function.
11732 2021-03-16 Ilya Leoshkevich <iii@linux.ibm.com>
11734 * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
11737 2021-03-16 Jakub Jelinek <jakub@redhat.com>
11740 * config/i386/i386.h (struct machine_function): Add
11741 has_explicit_vzeroupper bitfield.
11742 * config/i386/i386-expand.c (ix86_expand_builtin): Set
11743 cfun->machine->has_explicit_vzeroupper when expanding
11744 IX86_BUILTIN_VZEROUPPER.
11745 * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
11746 Do the mode switching only when TARGET_VZEROUPPER, expensive
11747 optimizations turned on and not optimizing for size.
11748 (pass_insert_vzeroupper::gate): Enable even when
11749 cfun->machine->has_explicit_vzeroupper is set.
11751 2021-03-16 Jakub Jelinek <jakub@redhat.com>
11754 * config/aarch64/aarch64.c
11755 (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
11756 definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
11757 instead of DECL_ARGUMENTS. Ignore types for uniform arguments.
11759 2021-03-15 Richard Biener <rguenther@suse.de>
11761 PR tree-optimization/98834
11762 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
11763 subsetting by truncating the access size.
11765 2021-03-15 Jan Hubicka <hubicka@ucw.cz>
11767 * config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
11768 * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
11771 2021-03-15 Martin Liska <mliska@suse.cz>
11773 * spellcheck.c: Add missing comma in initialization.
11775 2021-03-14 Uroš Bizjak <ubizjak@gmail.com>
11777 * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
11778 alternative 2 and alternative 1 with alternative 3 using
11779 YW register constraint.
11780 (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
11781 using YW register constraint.
11782 (*vec_extractv16qi_zext): Ditto.
11783 (*vec_extractv4si): Merge alternatives 4 and 5
11784 using Yw register constraint.
11785 (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.
11787 2021-03-13 Martin Sebor <msebor@redhat.com>
11789 PR tree-optimization/99489
11790 * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
11791 is not a call statement.
11793 2021-03-13 Jakub Jelinek <jakub@redhat.com>
11795 PR tree-optimization/99544
11796 * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
11797 if for vector types multiplication can't be done in type's mode.
11799 2021-03-12 Eric Botcazou <ebotcazou@adacore.com>
11802 * config/sparc/constraints.md (w): Rename to...
11803 (W): ... this and ditch previous implementation.
11804 * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
11805 (*movdf_insn_sp64): Likewise.
11806 (*mov<VM64:mode>_insn_sp64): Likewise.
11807 * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
11809 (atomic_compare_and_swap_leon3_1): Likewise.
11810 (*atomic_compare_and_swapdi_v8plus): Likewise.
11811 * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
11812 architecture and add missing address validity check during LRA.
11814 2021-03-12 Tobias Burnus <tobias@codesourcery.com>
11817 * gimplify.c (omp_add_variable): Handle NULL_TREE as size
11818 occuring for assumed-size arrays in use_device_{ptr,addr}.
11820 2021-03-12 Jakub Jelinek <jakub@redhat.com>
11823 * config/i386/constraints.md (YW): New internal constraint.
11824 * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
11825 (*<sse2_avx2>_<insn><mode>3<mask_name>,
11826 *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
11827 *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
11829 (<sse2_avx2>_psadbw): Use YW instead of v in constraints.
11830 (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
11831 avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
11832 into one, use Yw instead of former x,v.
11833 (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
11834 the last alternative.
11835 (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
11836 <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
11837 *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
11838 <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
11839 into one, use <v_Yw> instead of former x,v.
11840 (avx2_interleave_highv32qi<mask_name>,
11841 vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
11842 constraints. Add && <mask_avx512bw_condition> to condition.
11843 (avx2_interleave_lowv32qi<mask_name>,
11844 vec_interleave_lowv16qi<mask_name>,
11845 avx2_interleave_highv16hi<mask_name>,
11846 vec_interleave_highv8hi<mask_name>,
11847 avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
11848 avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
11849 avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
11850 avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
11851 *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
11852 Yw instead of v in constraints.
11853 * config/i386/mmx.md (Yv_Yw): New define_mode_attr.
11854 (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
11855 instead of Yv in constraints.
11856 (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
11857 *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
11858 *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
11859 mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
11860 *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
11862 (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
11863 *mmx_pextrb_zext): Use YW instead of Yv in constraints.
11864 (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
11865 (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
11866 two, one with just x, another isa avx512vl with v.
11868 2021-03-12 Martin Liska <mliska@suse.cz>
11870 * doc/invoke.texi: Add missing param documentation.
11872 2021-03-11 David Malcolm <dmalcolm@redhat.com>
11875 * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
11876 analyzer/trimmed-graph.o.
11877 * doc/analyzer.texi (Analyzer Paths): Rewrite description of
11878 feasibility checking to reflect new implementation.
11879 * doc/invoke.texi (-fdump-analyzer-feasibility): Document new
11881 * shortest-paths.h (shortest_paths::get_shortest_distance): New.
11883 2021-03-11 David Malcolm <dmalcolm@redhat.com>
11885 * digraph.cc (selftest::test_shortest_paths): Update
11886 shortest_paths init for new param. Add test of
11887 SPS_TO_GIVEN_TARGET.
11888 * shortest-paths.h (enum shortest_path_sense): New.
11889 (shortest_paths::shortest_paths): Add "sense" param.
11890 Update for renamings. Generalize to use "sense" param.
11891 (shortest_paths::get_shortest_path): Rename param.
11892 (shortest_paths::m_sense): New field.
11893 (shortest_paths::m_prev): Rename...
11894 (shortest_paths::m_best_edge): ...to this.
11895 (shortest_paths::get_shortest_path): Update for renamings.
11896 Conditionalize flipping of path on sense of traversal.
11898 2021-03-11 David Malcolm <dmalcolm@redhat.com>
11900 * digraph.cc (selftest::test_shortest_paths): Add test coverage
11901 for paths from B and C.
11902 * shortest-paths.h (shortest_paths::shortest_paths): Handle
11903 unreachable nodes, rather than asserting.
11905 2021-03-11 David Edelsohn <dje.gcc@gmail.com>
11908 * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
11909 xcoff_tbss_section_name.
11910 * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
11911 * xcoffout.c (xcoff_tbss_section_name): Delete.
11912 * xcoffout.h (xcoff_tbss_section_name): Delete.
11914 2021-03-11 Richard Biener <rguenther@suse.de>
11916 PR tree-optimization/99523
11917 * tree-cfg.c (dump_function_to_file): Dump SSA names
11918 w/o identifier to the decls section as well, not only those
11919 without a VAR_DECL.
11921 2021-03-11 Jakub Jelinek <jakub@redhat.com>
11924 * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
11925 function calls with lhs fail if the lhs don't have compatible types.
11927 2021-03-11 Hans-Peter Nilsson <hp@axis.com>
11929 * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
11930 Change FRAME_POINTER_REGNUM to correspond to a new faked
11931 register faked_fp, part of GENNONACR_REGS like faked_ap.
11932 (CRIS_FAKED_REGS_CONTENTS): New helper macro.
11933 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
11934 (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
11935 (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
11936 * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
11938 (CRIS_REAL_FP_REGNUM): New constant.
11939 * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
11940 for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
11941 (cris_initial_elimination_offset): Handle elimination changes
11942 to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
11943 and add one from FRAME_POINTER_REGNUM to
11944 HARD_FRAME_POINTER_REGNUM.
11945 (cris_expand_prologue, cris_expand_epilogue): Emit code for
11946 hard_frame_pointer_rtx instead of frame_pointer_rtx.
11948 2021-03-10 David Edelsohn <dje.gcc@gmail.com>
11951 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
11952 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
11954 2021-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
11957 * lra-constraints.c (process_address_1): Don't check unknown
11958 constraint, use X for empty constraint.
11960 2021-03-10 Alex Coplan <alex.coplan@arm.com>
11962 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
11963 Fix typo in comment describing "is_ha" argument.
11965 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
11967 * doc/sourcebuild.texi: Document LRA target selector.
11969 2021-03-10 David Malcolm <dmalcolm@redhat.com>
11971 * doc/ux.texi: Add subsection contrasting interactive versus
11972 batch usage of GCC.
11974 2021-03-10 Joel Hutton <joel.hutton@arm.com>
11977 * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
11979 (vectorizable_load): Fix gather load mask check condition.
11981 2021-03-10 Richard Biener <rguenther@suse.de>
11983 PR tree-optimization/99510
11984 * tree.c (check_aligned_type): Check that the candidate
11985 has TYPE_USER_ALIGN set instead of matching with the
11988 2021-03-10 Eric Botcazou <ebotcazou@adacore.com>
11990 * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
11991 float and vector integer modes only if the mode is not larger.
11993 2021-03-10 Hans-Peter Nilsson <hp@axis.com>
11995 * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
11997 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
11999 * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
12001 * ira-lives.c (single_reg_class): Ditto.
12003 2021-03-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
12005 * config.gcc (aarch64-*-rtems*): Include general rtems.h after
12006 the architecture-specific rtems.h.
12007 (aarch64-*-rtems*): Likewise.
12008 (arm*-*-rtems*): Likewise.
12009 (epiphany-*-rtems*): Likewise.
12010 (riscv*-*-rtems*): Likewise.
12012 2021-03-09 Jakub Jelinek <jakub@redhat.com>
12014 PR tree-optimization/99305
12015 * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
12016 before integer_all_onesp instead of vice versa.
12018 2021-03-09 Richard Earnshaw <rearnsha@arm.com>
12020 * common/config/arm/arm-common.c (arm_config_default): Change type
12021 of 'i' to unsigned.
12023 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
12026 * lra-constraints.c (process_address_1): Process constraint 'g'
12027 separately and digital constraints containing more one digit.
12029 2021-03-09 Nick Clifton <nickc@redhat.com>
12031 * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
12032 (DWARF"_DEBUGGING_INFO): Define.
12034 2021-03-09 Eric Botcazou <ebotcazou@adacore.com>
12037 * calls.c (initialize_argument_information): When the argument
12038 is passed by reference, do not make a copy in a thunk only if
12039 the argument is already in memory. Remove redundant test for
12040 the case of callee copy.
12042 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
12045 * lra-constraints.c (process_address_1): Process 0..9 constraints
12046 in process_address_1.
12048 2021-03-09 Andreas Krebbel <krebbel@linux.ibm.com>
12050 * config/s390/s390.c (struct s390_processor processor_table):
12051 Binutils name string must not be empty.
12053 2021-03-09 Claudiu Zissulescu <claziss@synopsys.com>
12055 * config/arc/arc.c (arc_attr_type): Remove function.
12057 2021-03-09 Martin Liska <mliska@suse.cz>
12060 * config/i386/i386-options.c (ix86_option_override_internal):
12061 Set isa_flags for OPTS argument and not for the global
12064 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com>
12066 * config/rs6000/predicates.md (ds_form_mem_operand): Check
12069 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com>
12072 * config/rs6000/predicates.md (ds_form_mem_operand) New
12074 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
12075 ds_form_mem_operand in ld/lwa patterns.
12076 * config/rs6000/fusion.md: Regenerate file.
12078 2021-03-08 Martin Sebor <msebor@redhat.com>
12080 PR middle-end/98266
12081 * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
12082 (array_bounds_checker::check_array_bounds): Call it.
12084 2021-03-08 Martin Sebor <msebor@redhat.com>
12086 PR middle-end/97631
12087 * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
12088 (handle_builtin_stxncpy_strncat): Rename locals. Determine
12089 destination size from allocation calls. Issue a more appropriate
12091 (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
12092 (handle_builtin_memset): Same.
12094 2021-03-08 Peter Bergner <bergner@linux.ibm.com>
12097 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
12098 to ensure we do not have an Altivec style address.
12099 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
12100 an Altivec style address.
12101 (*vsx_le_perm_store_<mode>): Likewise.
12102 (splitters after *vsx_le_perm_store_<mode>): Likewise.
12103 (vsx_load_<mode>): Disable special expander if passed an Altivec
12105 (vsx_store_<mode>): Likewise.
12107 2021-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12110 * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
12111 (aarch64_simd_shift_imm_vec_hi): Likewise.
12112 (aarch64_simd_shift_imm_vec_si): Likewise.
12113 (aarch64_simd_shift_imm_vec_di): Likewise.
12114 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
12115 predicate from above.
12116 (aarch64_shrn<mode>_insn_be): Likewise.
12117 (aarch64_rshrn<mode>_insn_le): Likewise.
12118 (aarch64_rshrn<mode>_insn_be): Likewise.
12119 (aarch64_shrn2<mode>_insn_le): Likewise.
12120 (aarch64_shrn2<mode>_insn_be): Likewise.
12121 (aarch64_rshrn2<mode>_insn_le): Likewise.
12122 (aarch64_rshrn2<mode>_insn_be): Likewise.
12124 2021-03-08 Vladimir N. Makarov <vmakarov@redhat.com>
12127 * lra-constraints.c (skip_contraint_modifiers): New function.
12128 (process_address_1): Use it before lookup_constraint call.
12130 2021-03-08 Martin Liska <mliska@suse.cz>
12133 * config/i386/i386-options.c (ix86_option_override_internal):
12134 Enable UINTR and HRESET for -march that supports it.
12136 2021-03-08 Ilya Leoshkevich <iii@linux.ibm.com>
12138 * config/s390/s390.c (f_constraint_p): New function.
12139 (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
12140 (TARGET_MD_ASM_ADJUST): Likewise.
12142 2021-03-08 Tobias Burnus <tobias@codesourcery.com>
12145 * tree-nested.c (convert_local_reference_stmt): Avoid calling
12146 lookup_field_for_decl for Fortran module (= namespace context).
12148 2021-03-08 Andreas Krebbel <krebbel@linux.ibm.com>
12150 * config/s390/s390.c (s390_expand_vec_compare): Implement <0
12151 comparison with arithmetic right shift.
12152 (s390_expand_vcond): No need for a force_reg anymore.
12153 s390_vec_compare will do it.
12154 * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
12155 immediate operands.
12157 2021-03-07 Jakub Jelinek <jakub@redhat.com>
12160 * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
12161 but TARGET_AVX512BW or TARGET_AVX512VL is not set. Adjust description
12163 * config/i386/sse.md (v_Yw): New define_mode_attr.
12164 (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
12165 *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
12167 * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
12168 xYw in constraints.
12170 2021-03-06 Julian Brown <julian@codesourcery.com>
12172 * tree-pretty-print.c (dump_generic_node): Emit non-generic
12173 address space info for aggregates.
12175 2021-03-06 Hans-Peter Nilsson <hp@axis.com>
12177 * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
12179 2021-03-05 Jakub Jelinek <jakub@redhat.com>
12181 PR middle-end/99322
12182 * tree-cfg.c (bb_to_omp_idx): New variable.
12183 (execute_build_cfg): Release the bb_to_omp_idx vector after
12184 cleanup_tree_cfg returns.
12185 (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
12186 for bb_to_omp_idx being a vec<int> instead of pointer to array
12188 (make_edges): Remove bb_to_omp_idx local variable, don't pass
12189 it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
12190 vec<int> instead of pointer to array of ints and don't free/release
12192 (remove_bb): When removing a bb and placing forced label somewhere
12193 else, ensure it is put into the same OpenMP region during cfg
12194 pass if possible or to entry successor as fallback. Unregister
12195 bb from bb_to_omp_idx.
12197 2021-03-05 Vladimir N. Makarov <vmakarov@redhat.com>
12200 * lra-constraints.c (process_address_1): Skip decomposing address
12201 for asm insn operand with unknown constraint.
12203 2021-03-05 Martin Jambor <mjambor@suse.cz>
12206 * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
12207 corresponding speculative edges if we are about to resolve
12208 sepculation. Make edge direct (and so resolve speculations) before
12209 removing it from call_site_hash.
12210 (cgraph_edge::make_direct): Relax the initial assert to allow calling
12211 the function on speculative direct edges.
12213 2021-03-05 Eric Botcazou <ebotcazou@adacore.com>
12215 PR rtl-optimization/99376
12216 * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
12217 of low-order zero bits is too large, set the result to 0 directly.
12219 2021-03-04 Jakub Jelinek <jakub@redhat.com>
12221 PR middle-end/93235
12222 * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
12223 SUBREG and a SUBREG to op_mode can't be created.
12225 2021-03-04 Alex Coplan <alex.coplan@arm.com>
12228 * config/aarch64/aarch64-sve-builtins.cc
12229 (function_resolver::require_vector_type): Handle error_mark_node.
12231 2021-03-04 Ilya Leoshkevich <iii@linux.ibm.com>
12233 * cfgexpand.c (expand_asm_loc): Pass new parameter.
12234 (expand_asm_stmt): Likewise.
12235 * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
12237 * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
12238 * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
12239 * config/cris/cris.c (cris_md_asm_adjust): Likewise.
12240 * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
12241 * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
12242 * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
12243 * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
12244 * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
12245 * config/vax/vax.c (vax_md_asm_adjust): Likewise.
12246 * config/visium/visium.c (visium_md_asm_adjust): Likewise.
12247 * doc/tm.texi (md_asm_adjust): Likewise.
12248 * target.def (md_asm_adjust): Likewise.
12250 2021-03-04 Richard Biener <rguenther@suse.de>
12252 PR middle-end/97855
12253 * tree-pretty-print.c: Poison pp_printf.
12254 (dump_decl_name): Avoid use of pp_printf.
12255 (dump_block_node): Likewise.
12256 (dump_generic_node): Likewise.
12258 2021-03-04 Martin Sebor <msebor@redhat.com>
12260 PR middle-end/96963
12261 PR middle-end/94655
12262 * builtins.c (handle_array_ref): New helper.
12263 (handle_mem_ref): New helper.
12264 (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
12265 into new helper functions. Correct a workaround for vectorized
12268 2021-03-03 Pat Haugen <pthaugen@linux.ibm.com>
12270 * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
12271 floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
12272 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
12273 *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
12274 attribute for Power10.
12275 * config/rs6000/mma.md (*movoo): Likewise.
12276 * config/rs6000/rs6000.md (define_attr "size"): Add 256.
12277 (define_mode_attr bits): Add DD/TD modes.
12278 * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
12279 store_conditionalpti): Update size attribute for Power10.
12281 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12284 * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
12285 -Wuninitialized, -Wmaybe-uninitialized.
12286 (wide-int.o-warn): Likewise.
12288 2021-03-03 Richard Earnshaw <rearnsha@arm.com>
12290 * common/config/arm/arm-common.c: Include configargs.h.
12291 (arm_config_default): New function.
12292 (arm_target_mode): Renamed from arm_target_thumb_only. Handle
12293 processors that do not support Thumb. Take into account the
12294 --with-mode configuration setting for selecting the default.
12295 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
12296 (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
12298 2021-03-03 Martin Liska <mliska@suse.cz>
12300 PR gcov-profile/97461
12301 * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
12303 2021-03-03 Eric Botcazou <ebotcazou@adacore.com>
12306 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
12307 point back the hard frame pointer to its default location when the
12308 frame is larger than SEH_MAX_FRAME_SIZE.
12310 2021-03-03 Jakub Jelinek <jakub@redhat.com>
12313 * config/i386/predicates.md (logic_operator): New define_predicate.
12314 * config/i386/i386.md (mov + mem using comm arith peephole2):
12315 Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
12316 and the inner mode is [QH]Imode.
12318 2021-03-03 Jakub Jelinek <jakub@redhat.com>
12321 * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
12322 (new_loc_list): Clear end_entry.
12323 (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
12324 if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx. Fix comment
12326 (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
12327 initialize also end_entry.
12329 2021-03-03 Jakub Jelinek <jakub@redhat.com>
12332 * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
12333 partitions, if in non-layout mode after reorder_blocks also move
12334 affected blocks to ensure a single partition transition.
12336 2021-03-03 Jason Merrill <jason@redhat.com>
12339 * cgraphunit.c (process_function_and_variable_attributes): Don't
12340 warn about flatten on an alias if the target also has it.
12341 * cgraph.h (symtab_node::get_alias_target_tree): New.
12343 2021-03-02 David Edelsohn <dje.gcc@gmail.com>
12345 * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
12346 period to symbol name.
12347 (tls_get_addr_internal<mode>): Same.
12349 2021-03-02 David Malcolm <dmalcolm@redhat.com>
12352 * diagnostic-show-locus.c
12353 (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
12356 2021-03-02 Martin Sebor <msebor@redhat.com>
12358 PR middle-end/99276
12359 * builtins.c (warn_for_access): Remove stray warning text.
12361 2021-03-02 Martin Sebor <msebor@redhat.com>
12363 PR middle-end/99295
12364 * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
12367 2021-03-02 Jakub Jelinek <jakub@redhat.com>
12370 * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
12371 -gdwarf-5 -gstrict-dwarf. For -gsplit-dwarf -gdwarf-5 use
12372 DW_MACRO_*_strx instead of DW_MACRO_*_strp. Handle
12373 DW_MACRO_define_strx and DW_MACRO_undef_strx.
12374 (save_macinfo_strings): Use DW_MACRO_*_str* even with
12375 -gdwarf-5 -gstrict-dwarf. Handle DW_MACRO_define_strx and
12376 DW_MACRO_undef_strx.
12378 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
12380 * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
12382 (BT_FN_V8HI_V8HI_UINT): Likewise.
12383 (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
12384 * config/s390/s390-builtins.def (B_NNPA): New macro definition.
12385 (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
12386 New builtin definitions.
12387 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
12388 vector extension version.
12389 * config/s390/s390.c (s390_expand_builtin): Check if builtins are
12390 available with current -march level.
12391 * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
12392 (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
12393 (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
12394 * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
12395 (vec_extend_to_fp32_lo): Likewise.
12396 (vec_round_from_fp32): Likewise.
12397 (vec_convert_to_fp16): Likewise.
12398 (vec_convert_from_fp16): Likewise.
12399 * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
12400 (vclfnls_v8hi): Likewise.
12401 (vcrnfs_v8hi): Likewise.
12402 (vcfn_v8hi): Likewise.
12403 (vcnf_v8hi): Likewise.
12405 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
12407 * common/config/s390/s390-common.c (processor_flags_table): New entry.
12408 * config.gcc: Enable arch14 for --with-arch and --with-tune.
12409 * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
12410 arch14 for unknown CPU models.
12411 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
12412 * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
12413 (s390_get_sched_attrmask): Likewise.
12414 (s390_get_unit_mask): Likewise.
12415 * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
12416 (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
12417 (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
12418 (TARGET_NNPA_P): New macro definitions.
12419 * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
12420 * config/s390/s390.opt: Add PROCESSOR_ARCH14.
12422 2021-03-02 Jakub Jelinek <jakub@redhat.com>
12424 PR middle-end/95757
12425 * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
12426 condition. Call register_edge_assert_for_1 for == 0, != 0, == 1 and
12427 != 1 comparisons if name is lhs of a comparison.
12429 2021-03-01 Iain Sandoe <iain@sandoe.co.uk>
12433 * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
12434 * config/darwin.c (darwin_should_restore_cfa_state): New.
12435 * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
12436 * doc/tm.texi: Regenerated.
12437 * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
12438 * dwarf2cfi.c (connect_traces): If the target requests, restore
12439 the CFA expression after a DW_CFA_restore.
12440 * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
12442 2021-03-01 Martin Liska <mliska@suse.cz>
12445 * optc-save-gen.awk: Add 4 more exceptions.
12447 2021-03-01 Nathan Sidwell <nathan@acm.org>
12450 * tree.h (TYPE_ALIGN_RAW): New accessor.
12451 (TYPE_ALIGN): Use it.
12453 2021-03-01 Jan Hubicka <jh@suse.cz>
12456 * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
12458 2021-03-01 Eric Botcazou <ebotcazou@adacore.com>
12461 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
12462 point the hard frame pointer to the SSE register save area instead
12463 of the general register save area. Perform only minimal adjustment
12464 for small frames if it is initially not correctly aligned.
12465 (ix86_expand_prologue): Remove early saves for a SEH target.
12466 * config/i386/winnt.c (struct seh_frame_state): Document constraint.
12468 2021-02-28 Jakub Jelinek <jakub@redhat.com>
12471 * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
12472 typo - referneced -> referenced.
12473 * tree.c (component_ref_size): Fix comment typo -
12474 refernce -> reference.
12475 * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
12476 traling -> trailing.
12477 (aliasing_component_refs_p): Fix comment typos -
12478 refernce -> reference and refernece -> reference and
12479 traling -> trailing.
12480 (nonoverlapping_refs_since_match_p): Fix comment typo -
12481 referneces -> references.
12482 * doc/invoke.texi (--param modref-max-bases): Fix a typo -
12483 referneces -> references.
12485 2021-02-27 Iain Sandoe <iain@sandoe.co.uk>
12487 * config/host-darwin.c (darwin_gt_pch_use_address): Modify
12488 diagnostic message to avoid use of a contraction and format
12491 2021-02-27 Jakub Jelinek <jakub@redhat.com>
12494 * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
12495 HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
12496 * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
12497 HOST_WIDE_INT_PRINT_DEC in inform format string. Fix comment
12500 2021-02-26 Richard Biener <rguenther@suse.de>
12502 PR middle-end/99281
12503 * expr.c (store_field): For calls with return-slot optimization
12504 and addressable return type expand the store directly.
12506 2021-02-26 Richard Biener <rguenther@suse.de>
12509 * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
12511 2021-02-26 Peter Bergner <bergner@linux.ibm.com>
12514 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
12517 2021-02-26 Aaron Sawdey <acsawdey@linux.ibm.com>
12519 * config.gcc: Add rs6000-pcrel-opt.o.
12520 * config/rs6000/rs6000-pcrel-opt.c: New file.
12521 * config/rs6000/pcrel-opt.md: New file.
12522 * config/rs6000/predicates.md: Add d_form_memory predicate.
12523 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
12524 * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
12525 * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
12526 pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
12527 and make_pass_pcrel_opt().
12528 * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
12529 (rs6000_option_override_internal): Add pcrel-opt.
12530 (rs6000_delegitimize_address): Support pcrel-opt.
12531 (rs6000_opt_masks): Add pcrel-opt.
12532 (pcrel_opt_valid_mem_p): New function.
12533 (reg_to_non_prefixed): Make global.
12534 (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
12535 (output_pcrel_opt_reloc): New function.
12536 * config/rs6000/rs6000.md (loads_extern_addr): New attr.
12537 (pcrel_extern_addr): Set loads_extern_addr.
12538 Add include for pcrel-opt.md.
12539 * config/rs6000/rs6000.opt: Add -mpcrel-opt.
12540 * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
12543 2021-02-26 YunQiang Su <yunqiang.su@cipunited.com>
12546 * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
12547 If TARGET_64BIT and dest is SUBREG, we check the width, if it
12548 equal to SImode, we use SImode operation, just like what we are
12551 2021-02-26 Marek Polacek <polacek@redhat.com>
12553 * builtins.c (warn_for_access): Fix typos.
12555 2021-02-25 Iain Sandoe <iain@sandoe.co.uk>
12557 * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
12558 mark in front of the immediate quantity.
12559 (<optab>_rolsi3_uxtw): Likewise.
12561 2021-02-25 Richard Earnshaw <rearnsha@arm.com>
12564 * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
12565 (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
12566 (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
12567 address and disable when the FPCXT is not available.
12568 (nonsecure_call_value_reg_thumb2): Likewise.
12570 2021-02-25 Nathan Sidwell <nathan@acm.org>
12573 * doc/invoke.texi (flang-info-module-cmi): Renamed option.
12575 2021-02-25 Tamar Christina <tamar.christina@arm.com>
12577 * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
12579 2021-02-25 Richard Biener <rguenther@suse.de>
12581 PR tree-optimization/99253
12582 * tree-vect-loop.c (check_reduction_path): First compute
12583 code, then verify out-of-loop uses.
12585 2021-02-25 Jakub Jelinek <jakub@redhat.com>
12588 * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
12590 2021-02-25 Jakub Jelinek <jakub@redhat.com>
12592 PR tree-optimization/80635
12593 * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
12594 VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
12595 has mode precision.
12597 2021-02-25 Richard Biener <rguenther@suse.de>
12599 * tree-vect-slp.c (optimize_load_redistribution_1): Delay
12600 load_map population.
12601 (vect_match_slp_patterns_2): Revert part of last change.
12602 (vect_analyze_slp): Do not interleave optimize_load_redistribution
12603 with pattern detection but do it afterwards. Dump the
12604 whole SLP graph after pattern recognition and load
12605 redistribution optimization finished.
12607 2021-02-24 Jakub Jelinek <jakub@redhat.com>
12610 * omp-low.c (struct omp_context): Add teams_nested_p and
12611 nonteams_nested_p members.
12612 (scan_omp_target): Diagnose teams nested inside of target with other
12613 directives strictly nested inside of the same target.
12614 (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
12615 ctx->nonteams_nested_p as needed.
12617 2021-02-24 Vladimir N. Makarov <vmakarov@redhat.com>
12619 PR inline-asm/99123
12620 * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
12622 2021-02-24 Hans-Peter Nilsson <hp@axis.com>
12624 * config/cris/cris.c (cris_expand_prologue): Set
12625 current_function_static_stack_size, if flag_stack_usage_info.
12627 2021-02-24 Pat Haugen <pthaugen@linux.ibm.com>
12629 * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
12630 (rs6000_final_prescan_insn): Adjust.
12631 (rs6000_asm_output_opcode): Likewise.
12633 2021-02-24 Martin Sebor <msebor@redhat.com>
12635 PR middle-end/97172
12636 * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
12637 from function arguments.
12639 2021-02-24 Tamar Christina <tamar.christina@arm.com>
12641 PR tree-optimization/99220
12642 * tree-vect-slp.c (optimize_load_redistribution_1): Remove
12643 node from cache when it's about to be deleted.
12645 2021-02-24 Jakub Jelinek <jakub@redhat.com>
12647 PR tree-optimization/99225
12648 * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
12649 to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
12650 build_int_cst (..., 1). Formatting fixes.
12652 2021-02-24 Tamar Christina <tamar.christina@arm.com>
12654 PR tree-optimization/99149
12655 * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
12657 (vect_slp_reset_pattern): Remove.
12658 (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
12659 (complex_mul_pattern::build, complex_fma_pattern::build,
12660 complex_fms_pattern::build): Fix ref counts.
12661 * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
12662 when node is being deleted.
12663 (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
12664 (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
12666 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
12668 2021-02-24 Matthias Klose <doko@ubuntu.com>
12671 2020-12-07 Matthias Klose <doko@ubuntu.com>
12673 * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
12674 and ENABLE_RTL_FLAG_CHECKING.
12676 2021-02-24 Richard Biener <rguenther@suse.de>
12679 * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
12681 2021-02-23 Peter Bergner <bergner@linux.ibm.com>
12683 * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
12684 (vsx_assemble_pair): ...to this.
12685 (*mma_assemble_pair): Rename from this...
12686 (*vsx_assemble_pair): ...to this.
12687 (mma_disassemble_pair): Rename from this...
12688 (vsx_disassemble_pair): ...to this.
12689 (*mma_disassemble_pair): Rename from this...
12690 (*vsx_disassemble_pair): ...to this.
12691 * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
12692 BU_COMPAT): New macros.
12693 (mma_assemble_pair): Rename from this...
12694 (vsx_assemble_pair): ...to this.
12695 (mma_disassemble_pair): Rename from this...
12696 (vsx_disassemble_pair): ...to this.
12697 (mma_assemble_pair): New compatibility built-in.
12698 (mma_disassemble_pair): Likewise.
12699 * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
12700 (RS6000_BUILTIN_COMPAT): Define.
12701 (bdesc_compat): New.
12702 (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
12703 (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
12704 and VSX_BUILTIN_ASSEMBLE_PAIR.
12705 (rs6000_init_builtins): Register compatibility built-ins.
12706 (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
12707 VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
12708 VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
12709 * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
12710 (__builtin_vsx_assemble_pair): ...to this.
12711 (__builtin_mma_disassemble_pair): Rename from this...
12712 (__builtin_vsx_disassemble_pair): ...to this.
12714 2021-02-23 Martin Liska <mliska@suse.cz>
12717 * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
12718 with different alignment. That leads to an invalid red zone
12719 size allocated in runtime.
12721 2021-02-23 Jakub Jelinek <jakub@redhat.com>
12723 PR tree-optimization/99204
12724 * fold-const.c (fold_read_from_constant_string): Check that
12725 tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
12727 2021-02-23 Segher Boessenkool <segher@kernel.crashing.org>
12728 Kewen Lin <linkw@gcc.gnu.org>
12730 * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
12731 (rotl<mode>3_insert_3): ...this.
12732 (plus_ior_xor): New code_iterator.
12733 (define_split for GPR rl*imi): New splitter.
12734 * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
12735 for integer merging.
12737 2021-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12739 * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
12741 * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
12742 into a register when the above is enabled.
12743 * config/aarch64/aarch64.c (neoversev1_tunings):
12744 AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
12745 (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
12747 2021-02-22 Hans-Peter Nilsson <hp@axis.com>
12749 * config/cris/cris.c (cris_print_operand) <'T'>: Change
12750 valid operand from is now an addi mult-value to shift-value.
12751 * config/cris/cris.md (*addi): Change expression of scaled
12752 operand from mult to ashift.
12753 * config/cris/cris.md (*addi_reload): New insn_and_split.
12755 2021-02-22 John David Anglin <danglin@gcc.gnu.org>
12758 * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
12759 hook_bool_const_tree_hwi_hwi_const_tree_true.
12760 (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
12762 2021-02-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
12764 PR rtl-optimization/98791
12765 * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
12766 for unordered modes.
12768 2021-02-22 Martin Liska <mliska@suse.cz>
12770 * tree-inline.c (inline_forbidden_p): Set
12771 inline_forbidden_reason.
12773 2021-02-22 Richard Biener <rguenther@suse.de>
12775 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
12778 2021-02-22 Richard Biener <rguenther@suse.de>
12780 PR tree-optimization/99165
12781 * gimple-ssa-store-merging.c (pass_store_merging::process_store):
12782 Accumulate changed to ret.
12784 2021-02-21 Uros Bizjak <ubizjak@gmail.com>
12787 2020-12-09 Uroš Bizjak <ubizjak@gmail.com>
12789 * config/i386/i386.h (REG_ALLOC_ORDER): Remove
12791 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
12794 * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
12796 (trunctf<DFP_ALL:mode>2): Likewise.
12797 (trunctdtf2_vr): Likewise.
12798 (trunctdtf2): Likewise.
12799 (extend<DFP_ALL:mode>tf2_vr): Likewise.
12800 (extend<DFP_ALL:mode>tf2): Likewise.
12801 (extendtftd2_vr): Likewise.
12802 (extendtftd2): Likewise.
12804 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
12806 * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
12807 add memory alternative.
12808 (tf_to_fprx2): New pattern.
12810 2021-02-19 Martin Sebor <msebor@redhat.com>
12813 * attribs.c (init_attr_rdwr_indices): Guard vblist use.
12814 (attr_access::free_lang_data): Remove a spurious test.
12816 2021-02-19 Nathan Sidwell <nathan@acm.org>
12818 * doc/invoke.texi (flang-info-module-read): Document.
12820 2021-02-19 Martin Liska <mliska@suse.cz>
12822 PR translation/99167
12823 * params.opt: Fix typo.
12825 2021-02-19 Richard Biener <rguenther@suse.de>
12827 PR middle-end/99122
12828 * tree-inline.c (inline_forbidden_p): Do not inline functions
12829 with VLA arguments or return value.
12831 2021-02-19 Jakub Jelinek <jakub@redhat.com>
12834 * config/arm/arm.md (*stack_protect_combined_set_insn,
12835 *stack_protect_combined_test_insn): If force_const_mem result
12836 is not valid general operand, force its address into the destination
12839 2021-02-19 Jakub Jelinek <jakub@redhat.com>
12842 * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
12843 pad or non-local label, put FORCED_LABELs from bb b after that label
12844 rather than before it.
12846 2021-02-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
12849 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
12850 expand_vector_broadcast' to emit the vec_duplicate operand.
12852 2021-02-18 Vladimir N. Makarov <vmakarov@redhat.com>
12854 PR rtl-optimization/96264
12855 * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
12858 2021-02-18 H.J. Lu <hjl.tools@gmail.com>
12861 * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
12862 looking up the retain attribute.
12863 (resolve_unique_section): Likewise.
12864 (get_variable_section): Likewise.
12865 (switch_to_section): Likewise. Warn when a symbol without the
12866 retain attribute and a symbol with the retain attribute are
12867 placed in the section with the same name, instead of the used
12869 * doc/extend.texi: Document the "retain" attribute.
12871 2021-02-18 Nathan Sidwell <nathan@acm.org>
12874 * doc/invoke.texi (flang-info-include-translate): Document header
12877 2021-02-18 Richard Biener <rguenther@suse.de>
12879 PR middle-end/99122
12880 * ipa-fnsummary.c (analyze_function_body): Set
12881 CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
12882 * tree-inline.c (insert_init_debug_bind): Pass NULL for
12883 error_mark_node values.
12884 (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
12886 (setup_one_parameter): Delay force_value_to_type until when
12889 2021-02-18 Hans-Peter Nilsson <hp@axis.com>
12891 PR tree-optimization/99142
12892 * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
12894 2021-02-18 Jakub Jelinek <jakub@redhat.com>
12896 * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
12897 wide_int_bitmask::wide_int_bitmask (uint64_t),
12898 wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
12899 wide_int_bitmask::operator ~ () const,
12900 wide_int_bitmask::operator | (wide_int_bitmask) const,
12901 wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
12903 * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
12904 PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
12905 PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
12906 PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
12907 PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
12908 PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
12909 PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
12910 PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
12911 PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
12912 PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
12913 PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
12914 PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
12915 PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
12916 PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
12917 PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
12918 PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
12919 PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
12920 PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
12921 PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
12922 PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
12923 PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
12924 PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
12925 PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
12926 PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
12928 2021-02-18 Jakub Jelinek <jakub@redhat.com>
12930 PR middle-end/99109
12931 * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
12932 (build_printable_array_type): ... this. Add nelts argument. For
12933 overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead. If
12934 nelts, call build_array_type_nelts.
12935 (array_bounds_checker::check_mem_ref): Use build_printable_array_type
12936 instead of build_zero_elt_array_type and build_array_type_nelts.
12938 2021-02-18 Jakub Jelinek <jakub@redhat.com>
12941 * config/i386/i386.c (distance_non_agu_define): Don't call
12942 extract_insn_cached here.
12943 (ix86_lea_outperforms): Save and restore recog_data around call
12944 to distance_non_agu_define and distance_agu_use.
12945 (ix86_ok_to_clobber_flags): Remove.
12946 (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
12947 (ix86_avoid_lea_for_addr): Likewise. Adjust function comment.
12948 * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
12949 into define_insn. Move the splitting to define_peephole2 and
12950 check there using peep2_regno_dead_p if FLAGS_REG is dead.
12952 2021-02-17 Julian Brown <julian@codesourcery.com>
12954 * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
12957 2021-02-17 Xi Ruoyao <xry111@mengyan1223.wang>
12960 * config/mips/mips.c (mips_symbol_insns): Do not use
12961 MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
12963 2021-02-16 Vladimir N. Makarov <vmakarov@redhat.com>
12965 PR inline-asm/98096
12966 * stmt.c (resolve_operand_name_1): Take inout operands into account
12967 for access to labels by names.
12968 * doc/extend.texi: Describe counting operands for accessing labels.
12970 2021-02-16 Richard Biener <rguenther@suse.de>
12972 PR tree-optimization/38474
12973 * tree-ssa-structalias.c (variable_info::address_taken): New.
12974 (new_var_info): Initialize address_taken.
12975 (process_constraint): Set address_taken.
12976 (solve_constraints): Use the new address_taken flag rather
12977 than is_reg_var for sorting variables.
12978 (dump_constraint): Dump the variable number if the name
12981 2021-02-16 Jakub Jelinek <jakub@redhat.com>
12984 * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
12985 multiply by 4096 and for inbranch by 8192.
12986 * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
12987 return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
12989 2021-02-15 Maya Rashish <coypu@sdf.org>
12991 * config/aarch64/aarch64.c (aarch64_init_builtins):
12992 Call SUBTARGET_INIT_BUILTINS.
12994 2021-02-15 Peter Bergner <bergner@linux.ibm.com>
12996 PR rtl-optimization/98872
12997 * init-regs.c (initialize_uninitialized_regs): Skip initialization
12998 if CONST0_RTX is NULL.
13000 2021-02-15 Richard Sandiford <richard.sandiford@arm.com>
13002 PR rtl-optimization/98863
13003 * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
13004 (function_info::build_info): Turn into a declaration, moving the
13005 definition to internals.h.
13006 (function_info::bb_walker): Declare.
13007 (function_info::create_reg_use): Likewise.
13008 (function_info::calculate_potential_phi_regs): Take a build_info
13010 (function_info::place_phis, function_info::create_ebbs): Declare.
13011 (function_info::calculate_ebb_live_in_for_debug): Likewise.
13012 (function_info::populate_backedge_phis): Delete.
13013 (function_info::start_block, function_info::end_block): Declare.
13014 (function_info::populate_phi_inputs): Delete.
13015 (function_info::m_potential_phi_regs): Move information to build_info.
13016 * rtl-ssa/internals.h: New file.
13017 (function_info::bb_phi_info): New class.
13018 (function_info::build_info): Moved from functions.h.
13019 Add a constructor and destructor.
13020 (function_info::build_info::ebb_use): Delete.
13021 (function_info::build_info::ebb_def): Likewise.
13022 (function_info::build_info::bb_live_out): Likewise.
13023 (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
13024 (function_info::build_info::potential_phi_regs): Likewise.
13025 (function_info::build_info::potential_phi_regs_for_debug): Likewise.
13026 (function_info::build_info::ebb_def_regs): Likewise.
13027 (function_info::build_info::bb_phis): Likewise.
13028 (function_info::build_info::bb_mem_live_out): Likewise.
13029 (function_info::build_info::bb_to_rpo): Likewise.
13030 (function_info::build_info::def_stack): Likewise.
13031 (function_info::build_info::old_def_stack_limit): Likewise.
13032 * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
13033 Remove the regno argument. Push the previous definition onto the
13034 definition stack where necessary.
13035 * rtl-ssa/accesses.cc: Include internals.h.
13036 * rtl-ssa/changes.cc: Likewise.
13037 * rtl-ssa/blocks.cc: Likewise.
13038 (function_info::build_info::build_info): Define.
13039 (function_info::build_info::~build_info): Likewise.
13040 (function_info::bb_walker): New class.
13041 (function_info::bb_walker::bb_walker): Define.
13042 (function_info::add_live_out_use): Convert a logarithmic-complexity
13043 test into a linear one. Allow the same definition to be passed
13045 (function_info::calculate_potential_phi_regs): Moved from
13046 functions.cc. Take a build_info parameter and store the
13047 information there instead.
13048 (function_info::place_phis): New function.
13049 (function_info::add_entry_block_defs): Update call to record_reg_def.
13050 (function_info::calculate_ebb_live_in_for_debug): New function.
13051 (function_info::add_phi_nodes): Use bb_phis to decide which
13052 registers need phi nodes and initialize ebb_def_regs accordingly.
13053 Do not add degenerate phis here.
13054 (function_info::add_artificial_accesses): Use create_reg_use.
13055 Assert that all definitions are listed in the DF LR sets.
13056 Update call to record_reg_def.
13057 (function_info::record_block_live_out): Record live-out register
13058 values in the phis of successor blocks. Use the live-out set
13059 when processing the last block in an EBB, instead of always
13060 using the live-in sets of successor blocks. AND the live sets
13061 with the set of registers that have been defined in the EBB,
13062 rather than with all potential phi registers. Cope correctly
13063 with branches back to the start of the current EBB.
13064 (function_info::start_block): New function.
13065 (function_info::end_block): Likewise.
13066 (function_info::populate_phi_inputs): Likewise.
13067 (function_info::create_ebbs): Likewise.
13068 (function_info::process_all_blocks): Rewrite into a multi-phase
13070 * rtl-ssa/functions.cc: Include internals.h.
13071 (function_info::calculate_potential_phi_regs): Move to blocks.cc.
13072 (function_info::init_function_data): Remove caller.
13073 * rtl-ssa/insns.cc: Include internals.h
13074 (function_info::create_reg_use): New function. Lazily any
13075 degenerate phis needed by the linear RPO view.
13076 (function_info::record_use): Use create_reg_use. When processing
13077 debug uses, use potential_phi_regs and test it before checking
13078 whether the register is live on entry to the current EBB. Lazily
13079 calculate ebb_live_in_for_debug.
13080 (function_info::record_call_clobbers): Update call to record_reg_def.
13081 (function_info::record_def): Likewise.
13083 2021-02-15 Martin Liska <mliska@suse.cz>
13085 * toplev.c (init_asm_output): Free output of
13086 gen_command_line_string function.
13087 (process_options): Likewise.
13089 2021-02-15 Martin Liska <mliska@suse.cz>
13091 * params.opt: Add 2 missing Param keywords.
13093 2021-02-15 Eric Botcazou <ebotcazou@adacore.com>
13095 * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
13097 2021-02-15 Jakub Jelinek <jakub@redhat.com>
13099 PR tree-optimization/99079
13100 * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
13101 useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check. Instead
13102 require both type and TREE_TYPE (@1) to be integral types and either
13103 type having smaller or equal precision, or TREE_TYPE (@1) being
13104 unsigned type, or type being signed type. If TREE_TYPE (@1)
13105 doesn't have wrapping overflow, perform the subtraction of one in
13108 2021-02-14 Jan Hubicka <hubicka@ucw.cz>
13109 Richard Biener <rguether@suse.de>
13112 * ipa-reference.c (ipa_init): Only conditinally initialize
13113 reference_vars_to_consider.
13114 (propagate): Conditionally deninitialize reference_vars_to_consider.
13115 (ipa_reference_write_optimization_summary): Sanity check that
13116 reference_vars_to_consider is not allocated.
13118 2021-02-13 Levy Hsu <admin@levyhsu.com>
13121 * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
13122 extend parameter to get_si_mem_base_reg declaration.
13123 (get_si_mem_base_reg): Add extend parameter. Set it.
13124 (analyze): Pass extend arg to get_si_mem_base_reg.
13125 (transform): Likewise. Use it when rewriting mems.
13126 * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
13127 loads and emit sign/zero extending load followed by subreg move.
13129 2021-02-13 Jim Wilson <jimw@sifive.com>
13132 * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
13133 exit when !reload_completed. Only perform check for compressed reg
13134 if reload_completed.
13135 (riscv_rtx_costs): In MEM case, when optimizing for size and
13136 shorten memrefs, if not compressible, then increase cost.
13138 2021-02-13 Jakub Jelinek <jakub@redhat.com>
13140 PR rtl-optimization/98439
13141 * recog.c (pass_split_before_regstack::gate): Enable even when
13142 pass_split_before_sched2 is enabled if -fselective-scheduling2 is
13145 2021-02-13 Jakub Jelinek <jakub@redhat.com>
13148 * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
13149 swap of V2SImode elements in memory into DImode memory rotate by 32.
13151 2021-02-12 Martin Sebor <msebor@redhat.com>
13153 * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
13155 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
13157 * rtl-ssa/accesses.cc (function_info::make_use_available): Use
13158 m_temp_obstack rather than m_obstack to allocate the temporary use.
13160 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
13162 * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
13163 as read-modify operations.
13165 2021-02-12 Richard Biener <rguenther@suse.de>
13167 PR middle-end/38474
13168 * ipa-fnsummary.c (unmodified_parm_1): Only walk when
13169 fbi->aa_walk_budget is bigger than zero. Update
13170 fbi->aa_walk_budget.
13171 (param_change_prob): Likewise.
13172 * ipa-prop.c (detect_type_change_from_memory_writes):
13173 Properly account walk_aliased_vdefs.
13174 (parm_preserved_before_stmt_p): Canonicalize updates.
13175 (parm_ref_data_preserved_p): Likewise.
13176 (parm_ref_data_pass_through_p): Likewise.
13177 (determine_known_aggregate_parts): Account own alias queries.
13179 2021-02-12 Martin Liska <mliska@suse.cz>
13181 * opts-common.c (decode_cmdline_option): Release werror_arg.
13182 * opts.c (gen_producer_string): Release output of
13183 gen_command_line_string.
13185 2021-02-12 Richard Biener <rguenther@suse.de>
13187 PR tree-optimization/38474
13188 * params.opt (-param=max-store-chains-to-track=): New param.
13189 (-param=max-stores-to-track=): Likewise.
13190 * doc/invoke.texi (max-store-chains-to-track): Document.
13191 (max-stores-to-track): Likewise.
13192 * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
13194 (pass_store_merging::m_n_stores): Likewise.
13195 (pass_store_merging::terminate_and_process_chain): Update
13196 m_n_stores and m_n_chains.
13197 (pass_store_merging::process_store): Likewise. Terminate
13198 oldest chains if the number of stores or chains get too large.
13199 (imm_store_chain_info::terminate_and_process_chain): Dump
13202 2021-02-11 Eric Botcazou <ebotcazou@adacore.com>
13204 * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
13205 the cold section, emit a nop before the directive if the previous
13206 active instruction can throw.
13208 2021-02-11 Peter Bergner <bergner@linux.ibm.com>
13211 * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
13212 memory addresses that are legal for quad word accesses.
13214 2021-02-11 Andrea Corallo <andrea.corallo@arm.com>
13217 * config/arm/thumb2.md (*doloop_end_internal): Generate
13218 alternative sequence to handle long range branches.
13220 2021-02-11 Joel Hutton <joel.hutton@arm.com>
13222 PR tree-optimization/98772
13223 * optabs-tree.c (supportable_half_widening_operation): New function
13224 to check for supportable V8QI->V8HI widening patterns.
13225 * optabs-tree.h (supportable_half_widening_operation): New function.
13226 * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
13227 to create promotion stmts for V8QI->V8HI widening patterns.
13228 (vectorizable_conversion): Add case for V8QI->V8HI.
13230 2021-02-11 Richard Biener <rguenther@suse.de>
13232 * sparseset.h (SPARSESET_ELT_BITS): Remove.
13233 (SPARSESET_ELT_TYPE): Use unsigned int.
13234 * fwprop.c: Do not include sparseset.h.
13236 2021-02-10 Jakub Jelinek <jakub@redhat.com>
13239 * varasm.c (declare_weak): For -fsyntax-only, allow even
13240 TREE_ASM_WRITTEN function decls.
13242 2021-02-10 Jakub Jelinek <jakub@redhat.com>
13245 * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
13246 <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
13247 <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
13248 <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
13249 calling simplify_gen_subreg on it.
13251 2021-02-10 Martin Liska <mliska@suse.cz>
13253 * config/nvptx/nvptx.c (nvptx_option_override): Use
13254 flag_patchable_function_entry instead of the removed
13255 function_entry_patch_area_size.
13257 2021-02-10 Martin Liska <mliska@suse.cz>
13259 PR tree-optimization/99002
13260 PR tree-optimization/99026
13261 * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
13262 leak when adjacent cases are merged.
13263 * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
13265 (make_pass_lower_switch): Remove trailing whitespace.
13266 * tree-switch-conversion.h (release_clusters): New.
13268 2021-02-10 Richard Biener <rguenther@suse.de>
13270 PR rtl-optimization/99054
13271 * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
13272 (fixup_partitions): Adjust.
13273 (rtl_verify_edges): Likewise.
13275 2021-02-10 Jakub Jelinek <jakub@redhat.com>
13277 PR middle-end/99007
13278 * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
13279 temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
13282 2021-02-10 Richard Biener <rguenther@suse.de>
13285 * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
13288 2021-02-10 Richard Biener <rguenther@suse.de>
13290 PR tree-optimization/99024
13291 * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
13292 clear loop->aux if it is associated with the destroyed loop_vinfo.
13294 2021-02-10 Martin Liska <mliska@suse.cz>
13296 PR tree-optimization/99002
13297 * gimple-if-to-switch.cc (find_conditions): Fix memory leak
13300 2021-02-10 Martin Liska <mliska@suse.cz>
13303 * ipa-icf.c (sem_item::add_reference): Fix memory leak when
13304 a reference exists.
13306 2021-02-10 Jakub Jelinek <jakub@redhat.com>
13309 * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
13310 at class scope for DWARF5+.
13312 2021-02-09 Eric Botcazou <ebotcazou@adacore.com>
13314 PR rtl-optimization/96015
13315 * reorg.c (skip_consecutive_labels): Minor comment tweaks.
13316 (relax_delay_slots): When deleting a jump to the next active
13317 instruction over a barrier, first delete the barrier if the
13318 jump is the only way to reach the target label.
13320 2021-02-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
13322 * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
13323 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
13324 vector multiplies and vect.alu for SSRA.
13325 * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
13326 vect.mul cost field.
13327 * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
13328 * config/arm/arm.c: Likewise.
13330 2021-02-09 Richard Biener <rguenther@suse.de>
13332 PR tree-optimization/98863
13333 * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
13334 * tree-ssa-sccvn.c (last_pushed_avail): New global.
13335 (rpo_elim::eliminate_push_avail): Chain pushed avails.
13336 (unwind_state::avail_top): Add.
13337 (do_unwind): Rewrite unwinding of avail entries.
13338 (do_rpo_vn): Initialize last_pushed_avail and
13339 avail_top of the undo state.
13341 2021-02-09 Jakub Jelinek <jakub@redhat.com>
13343 PR middle-end/99004
13344 * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
13345 const char * to char * and free those pointers after use.
13347 2021-02-09 Richard Biener <rguenther@suse.de>
13349 PR tree-optimization/99017
13350 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
13351 zero vector cost entries.
13353 2021-02-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
13355 PR middle-end/98974
13356 * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
13357 parameter in vectorizable_condition.
13359 2021-02-08 Richard Biener <rguenther@suse.de>
13362 * tree.c (walk_tree_1): Walk VECTOR_CST elements.
13364 2021-02-08 Martin Liska <mliska@suse.cz>
13367 * cfgexpand.c (pass_expand::execute): Parse per-function option
13368 flag_patchable_function_entry and use it.
13369 * common.opt: Remove function_entry_patch_area_size and
13370 function_entry_patch_area_start global variables.
13371 * opts.c (parse_and_check_patch_area): New function.
13372 (common_handle_option): Use it.
13373 * opts.h (parse_and_check_patch_area): New function.
13374 * toplev.c (process_options): Parse and use
13375 function_entry_patch_area_size.
13377 2021-02-08 Martin Sebor <msebor@redhat.com>
13379 * doc/extend.texi (attribute malloc): Correct typos.
13381 2021-02-05 Nathan Sidwell <nathan@acm.org>
13384 * gcc.c (driver::maybe_run_linker): Check for input file
13385 accessibility if not linking.
13387 2021-02-05 Richard Biener <rguenther@suse.de>
13389 PR tree-optimization/98855
13390 * tree-vectorizer.h (add_stmt_cost): New overload.
13391 * tree-vect-slp.c (li_cost_vec_cmp): New.
13392 (vect_bb_slp_scalar_cost): Cost individual loop regions
13393 separately. Account for the scalar instance root stmt.
13395 2021-02-05 Tom de Vries <tdevries@suse.de>
13398 * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
13400 (bit_test_cluster::emit): Reuse location_t for newly created
13402 (switch_decision_tree::try_switch_expansion): Preserve
13404 * tree-switch-conversion.h: Change function signatures.
13406 2021-02-05 Jakub Jelinek <jakub@redhat.com>
13409 * config/i386/i386-options.c (m_NONE, m_ALL): Define.
13410 * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
13411 X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
13412 (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
13414 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13416 * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
13417 * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
13418 * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
13419 (vget_high_f16): Reimplement using new builtin.
13420 (vget_high_f32): Likewise.
13421 (vget_high_f64): Likewise.
13422 (vget_high_p8): Likewise.
13423 (vget_high_p16): Likewise.
13424 (vget_high_p64): Likewise.
13425 (vget_high_s8): Likewise.
13426 (vget_high_s16): Likewise.
13427 (vget_high_s32): Likewise.
13428 (vget_high_s64): Likewise.
13429 (vget_high_u8): Likewise.
13430 (vget_high_u16): Likewise.
13431 (vget_high_u32): Likewise.
13432 (vget_high_u64): Likewise.
13434 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13436 * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
13437 * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
13438 * config/aarch64/arm_neon.h (__GET_LOW): Delete.
13439 (vget_low_f16): Reimplement using new builtin.
13440 (vget_low_f32): Likewise.
13441 (vget_low_f64): Likewise.
13442 (vget_low_p8): Likewise.
13443 (vget_low_p16): Likewise.
13444 (vget_low_p64): Likewise.
13445 (vget_low_s8): Likewise.
13446 (vget_low_s16): Likewise.
13447 (vget_low_s32): Likewise.
13448 (vget_low_s64): Likewise.
13449 (vget_low_u8): Likewise.
13450 (vget_low_u16): Likewise.
13451 (vget_low_u32): Likewise.
13452 (vget_low_u64): Likewise.
13454 2021-02-05 Kito Cheng <kito.cheng@sifive.com>
13456 * gcc.c (print_multilib_info): Check all required argument is provided
13459 2021-02-05 liuhongt <hongtao.liu@intel.com>
13462 * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
13463 generate integer mask comparison for 128/256-bits vector when
13464 op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
13465 delete redundant !maskcmp condition.
13466 (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
13468 (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
13469 condition directly to if (maskcmp), add extra check for
13470 cmpmode, it should be MODE_INT.
13471 (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
13472 parameters op_true/op_false.
13473 (ix86_use_mask_cmp_p): New.
13475 2021-02-05 liuhongt <hongtao.liu@intel.com>
13478 * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
13479 Remove m_GENERIC from ~list.
13480 (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
13482 2021-02-04 David Malcolm <dmalcolm@redhat.com>
13485 * diagnostic-show-locus.c (compatible_locations_p): Require
13486 locations in the same macro map to be either both from the
13487 macro definition, or both from the macro arguments.
13489 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
13491 * config/aarch64/aarch64-simd-builtins.def: Add
13492 [su]mull_hi_lane[q] builtin generator macros.
13493 * config/aarch64/aarch64-simd.md
13494 (aarch64_<su>mull_hi_lane<mode>_insn): Define.
13495 (aarch64_<su>mull_hi_lane<mode>): Define.
13496 (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
13497 (aarch64_<su>mull_hi_laneq<mode>): Define.
13498 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
13499 builtin instead of inline asm.
13500 (vmull_high_lane_s32): Likewise.
13501 (vmull_high_lane_u16): Likewise.
13502 (vmull_high_lane_u32): Likewise.
13503 (vmull_high_laneq_s16): Likewise.
13504 (vmull_high_laneq_s32): Likewise.
13505 (vmull_high_laneq_u16): Likewise.
13506 (vmull_high_laneq_u32): Liekwise.
13508 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
13510 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
13511 builtin generator macros.
13512 * config/aarch64/aarch64-simd.md
13513 (aarch64_<su>mull_hi_n<mode>_insn): Define.
13514 (aarch64_<su>mull_hi_n<mode>): Define.
13515 * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
13516 instead of inline asm.
13517 (vmull_high_n_s32): Likewise.
13518 (vmull_high_n_u16): Likewise.
13519 (vmull_high_n_u32): Likewise.
13521 2021-02-04 Richard Biener <rguenther@suse.de>
13523 PR tree-optimization/98855
13524 * tree-vect-loop.c (vectorizable_phi): Do not cost
13525 single-argument PHIs.
13526 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
13527 * tree-vect-stmts.c (vectorizable_bswap): Also perform
13528 costing for SLP operation.
13530 2021-02-04 Martin Liska <mliska@suse.cz>
13532 * doc/extend.texi: Mention -mprefer-vector-width in target
13535 2021-02-03 Martin Sebor <msebor@redhat.com>
13537 PR tree-optimization/98937
13538 * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
13539 Flush pointer_query cache.
13541 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
13543 * config/rs6000/genfusion.pl (gen_2logical): Add missing
13544 fixes based on patch review.
13545 * config/rs6000/fusion.md: Regenerate file.
13547 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
13549 * config/rs6000/t-rs6000: Comment out auto generation of
13552 2021-02-03 Andrew Stubbs <ams@codesourcery.com>
13554 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
13555 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
13556 (output_file_start): Add gfx908.
13557 * config/gcn/gcn.opt (gpu_type): Add gfx908.
13558 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
13559 (MULTILIB_DIRNAMES): Add gfx908.
13560 * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
13561 (main): Recognize gfx908.
13562 * config/gcn/t-omp-device: Add gfx908.
13564 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
13566 * config/aarch64/aarch64-simd-builtins.def: Add
13567 [su]mlsl_hi_lane[q] builtin macro generators.
13568 * config/aarch64/aarch64-simd.md
13569 (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
13570 (aarch64_<su>mlsl_hi_lane<mode>): Define.
13571 (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
13572 (aarch64_<su>mlsl_hi_laneq<mode>): Define.
13573 * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
13574 builtin instead of inline asm.
13575 (vmlsl_high_lane_s32): Likewise.
13576 (vmlsl_high_lane_u16): Likewise.
13577 (vmlsl_high_lane_u32): Likewise.
13578 (vmlsl_high_laneq_s16): Likewise.
13579 (vmlsl_high_laneq_s32): Likewise.
13580 (vmlsl_high_laneq_u16): Likewise.
13581 (vmlsl_high_laneq_u32): Likewise.
13582 (vmlal_high_laneq_u32): Likewise.
13584 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
13586 * config/aarch64/aarch64-simd-builtins.def: Add
13587 [su]mlal_hi_lane[q] builtin generator macros.
13588 * config/aarch64/aarch64-simd.md
13589 (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
13590 (aarch64_<su>mlal_hi_lane<mode>): Define.
13591 (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
13592 (aarch64_<su>mlal_hi_laneq<mode>): Define.
13593 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
13594 builtin instead of inline asm.
13595 (vmlal_high_lane_s32): Likewise.
13596 (vmlal_high_lane_u16): Likewise.
13597 (vmlal_high_lane_u32): Likewise.
13598 (vmlal_high_laneq_s16): Likewise.
13599 (vmlal_high_laneq_s32): Likewise.
13600 (vmlal_high_laneq_u16): Likewise.
13601 (vmlal_high_laneq_u32): Likewise.
13603 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
13605 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
13606 builtin generator macros.
13607 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
13609 (aarch64_<su>mlsl_hi_n<mode>): Define.
13610 * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
13611 instead of inline asm.
13612 (vmlsl_high_n_s32): Likewise.
13613 (vmlsl_high_n_u16): Likewise.
13614 (vmlsl_high_n_u32): Likewise.
13616 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
13618 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
13619 builtin generator macros.
13620 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
13622 (aarch64_<su>mlal_hi_n<mode>): Define.
13623 * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
13624 instead of inline asm.
13625 (vmlal_high_n_s32): Likewise.
13626 (vmlal_high_n_u16): Likewise.
13627 (vmlal_high_n_u32): Likewise.
13629 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
13631 * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
13633 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
13635 (aarch64_<su>mlal_hi<mode>_insn): This.
13636 (aarch64_<su>mlal_hi<mode>): Define.
13637 * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
13638 instead of inline asm.
13639 (vmlal_high_s16): Likewise.
13640 (vmlal_high_s32): Likewise.
13641 (vmlal_high_u8): Likewise.
13642 (vmlal_high_u16): Likewise.
13643 (vmlal_high_u32): Likewise.
13645 2021-02-03 Ilya Leoshkevich <iii@linux.ibm.com>
13647 * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
13648 after calling alter_subreg() on a (mem).
13650 2021-02-03 Martin Liska <mliska@suse.cz>
13653 * lto-streamer-out.c (produce_lto_section): Fill up missing
13655 * lto-streamer.h (struct lto_section): Add _padding field.
13657 2021-02-03 Richard Biener <rguenther@suse.de>
13659 * lto-streamer.c (lto_get_section_name): Free temporary
13661 * tree-loop-distribution.c
13662 (loop_distribution::merge_dep_scc_partitions): Free edge data.
13664 2021-02-03 Jakub Jelinek <jakub@redhat.com>
13666 PR middle-end/97487
13667 * ifcvt.c (noce_can_force_operand): New function.
13668 (noce_emit_move_insn): Use it.
13669 (noce_try_sign_mask): Likewise. Formatting fix.
13671 2021-02-03 Jakub Jelinek <jakub@redhat.com>
13673 PR middle-end/97971
13674 * lra-constraints.c (process_alt_operands): For inline asm, don't call
13675 fatal_insn, but instead return false.
13677 2021-02-03 Jakub Jelinek <jakub@redhat.com>
13679 PR tree-optimization/98287
13680 * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
13683 2021-02-03 Tamar Christina <tamar.christina@arm.com>
13685 PR tree-optimization/98928
13686 * tree-vect-loop.c (vect_analyze_loop_2): Change
13687 STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
13688 * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
13689 * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
13690 (class _stmt_vec_info): Add slp_vect_pattern_only_p.
13692 2021-02-02 Richard Biener <rguenther@suse.de>
13694 * gimple-loop-interchange.cc (prepare_data_references):
13696 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
13697 * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
13698 * tree-vect-stmts.c (vectorizable_condition): Do not
13700 (vectorizable_comparison): Likewise.
13702 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13704 * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
13705 * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
13706 * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
13707 (vrsqrteq_u32): Likewise.
13709 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13711 * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
13712 * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
13713 (aarch64_sqxtun2<mode>_be): Likewise.
13714 (aarch64_sqxtun2<mode>): Likewise.
13715 * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
13716 (vqmovun_high_s32): Likewise.
13717 (vqmovun_high_s64): Likewise.
13718 * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
13720 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13722 * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
13724 (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
13726 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13728 * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
13729 fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
13730 fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
13731 ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
13732 fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
13733 fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
13734 fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
13735 fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
13737 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13739 * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
13740 * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
13741 ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
13743 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13745 * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
13746 uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
13748 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13750 * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
13751 vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
13752 vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
13753 ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
13754 udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
13755 ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
13756 ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
13757 ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
13758 NONE builtin flags.
13760 2021-02-02 Jakub Jelinek <jakub@redhat.com>
13762 PR tree-optimization/98848
13763 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
13764 STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
13766 2021-02-02 Kito Cheng <kito.cheng@sifive.com>
13769 * expr.c: Check mode before calling store_expr.
13771 2021-02-02 Christophe Lyon <christophe.lyon@linaro.org>
13773 * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
13775 * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
13776 instruction using expression ior.
13777 (mve_vornq_u<mode>): New expander.
13778 (mve_vornq_f<mode>): Use ior code instead of unspec.
13779 * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
13781 2021-02-02 Alexandre Oliva <oliva@adacore.com>
13783 * tree-nested.c (convert_nonlocal_reference_op): Move
13784 current_function_decl restore after re-gimplification.
13785 (convert_local_reference_op): Likewise.
13787 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13789 * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
13791 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
13793 (aarch64_rshrn<mode>_insn_be): Likewise.
13794 (aarch64_rshrn<mode>): Likewise.
13795 (aarch64_rshrn2<mode>_insn_le): Likewise.
13796 (aarch64_rshrn2<mode>_insn_be): Likewise.
13797 (aarch64_rshrn2<mode>): Likewise.
13798 * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
13799 * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
13801 (vrshrn_high_n_s32): Likewise.
13802 (vrshrn_high_n_s64): Likewise.
13803 (vrshrn_high_n_u16): Likewise.
13804 (vrshrn_high_n_u32): Likewise.
13805 (vrshrn_high_n_u64): Likewise.
13806 (vrshrn_n_s16): Likewise.
13807 (vrshrn_n_s32): Likewise.
13808 (vrshrn_n_s64): Likewise.
13809 (vrshrn_n_u16): Likewise.
13810 (vrshrn_n_u32): Likewise.
13811 (vrshrn_n_u64): Likewise.
13813 2021-02-01 Sergei Trofimovich <siarheit@google.com>
13815 PR tree-optimization/98499
13816 * ipa-modref.c (analyze_ssa_name_flags): treat RVO
13817 conservatively and assume all possible side-effects.
13819 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13821 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
13822 vec_unpacku_hi_): Define builtins.
13823 * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
13825 (vmovl_high_s16): Likewise.
13826 (vmovl_high_s32): Likewise.
13827 (vmovl_high_u8): Likewise.
13828 (vmovl_high_u16): Likewise.
13829 (vmovl_high_u32): Likewise.
13831 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13833 * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
13835 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
13837 * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
13839 * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
13841 (vabdl_s16): Likewise.
13842 (vabdl_s32): Likewise.
13843 (vabdl_u8): Likewise.
13844 (vabdl_u16): Likewise.
13845 (vabdl_u32): Likewise.
13846 * config/aarch64/iterators.md (ABDL): New int iterator.
13847 (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
13849 2021-02-01 Martin Sebor <msebor@redhat.com>
13851 * tree.h (BLOCK_VARS): Add comment.
13852 (BLOCK_SUBBLOCKS): Same.
13853 (BLOCK_SUPERCONTEXT): Same.
13854 (BLOCK_ABSTRACT_ORIGIN): Same.
13855 (inlined_function_outer_scope_p): Same.
13857 2021-02-01 Martin Sebor <msebor@redhat.com>
13859 PR middle-end/97172
13860 * attribs.c (attr_access::free_lang_data): Define new function.
13861 * attribs.h (attr_access::free_lang_data): Declare new function.
13863 2021-02-01 Richard Biener <rguenther@suse.de>
13865 * vec.h (auto_vec::auto_vec): Add memory stat parameters
13867 * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
13869 2021-02-01 Tamar Christina <tamar.christina@arm.com>
13871 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
13872 aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
13874 2021-02-01 Richard Biener <rguenther@suse.de>
13876 PR rtl-optimization/98863
13877 * config/i386/i386-features.c (convert_scalars_to_vector):
13878 Set DF_RD_PRUNE_DEAD_DEFS.
13880 2021-01-31 Eric Botcazou <ebotcazou@adacore.com>
13882 * system.h (SIZE_MAX): Define if not already defined.
13884 2021-01-30 Aaron Sawdey <acsawdey@linux.ibm.com>
13886 * config/rs6000/genfusion.pl (gen_2logical): New function to
13887 generate patterns for logical-logical fusion.
13888 * config/rs6000/fusion.md: Regenerated patterns.
13889 * config/rs6000/rs6000-cpus.def: Add
13890 OPTION_MASK_P10_FUSION_2LOGICAL.
13891 * config/rs6000/rs6000.c (rs6000_option_override_internal):
13892 Enable logical-logical fusion for p10.
13893 * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
13895 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
13897 * config/rs6000/rs6000.opt: Add periods to new AIX options.
13899 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
13901 * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
13902 (mabi=vec-default): New.
13903 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
13904 __EXTABI__ for AIX Vector extended ABI.
13905 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
13907 (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
13909 * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
13911 2021-01-30 Jakub Jelinek <jakub@redhat.com>
13913 * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
13914 DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
13916 2021-01-29 Vladimir N. Makarov <vmakarov@redhat.com>
13919 * lra-constraints.c (in_class_p): Don't narrow class only for REG
13922 2021-01-29 Will Schmidt <will_schmidt@vnet.ibm.com>
13924 * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
13925 clauses for CODE_FOR_vsx_xvcvuxddp_scale and
13926 CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
13928 2021-01-29 Andrew MacLeod <amacleod@redhat.com>
13930 PR tree-optimization/98866
13931 * gimple-range-gori.h (gori_compute:set_range_invariant): New.
13932 * gimple-range-gori.cc (gori_map::set_range_invariant): New.
13933 (gori_map::m_maybe_invariant): Rename from all_outgoing.
13934 (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
13935 (gori_map::is_export_p): Ditto.
13936 (gori_map::calculate_gori): Ditto.
13937 (gori_compute::set_range_invariant): New.
13938 * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
13939 invariant for pointers evaluating to [1, +INF].
13941 2021-01-29 Richard Biener <rguenther@suse.de>
13943 PR rtl-optimization/98863
13944 * config/i386/i386-features.c (remove_partial_avx_dependency):
13945 Do not perform DF analysis.
13946 (pass_data_remove_partial_avx_dependency): Remove
13949 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
13951 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
13952 builtin generator macros.
13953 * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
13955 * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
13956 instead of inline asm.
13957 (vmull_n_s32): Likewise.
13958 (vmull_n_u16): Likewise.
13959 (vmull_n_u32): Likewise.
13961 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13963 * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
13965 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
13967 (aarch64_<sur>abdl2<mode>): ... This.
13968 (<sur>sadv16qi): Adjust use of above.
13969 * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
13971 (vabdl_high_s16): Likewise.
13972 (vabdl_high_s32): Likewise.
13973 (vabdl_high_u8): Likewise.
13974 (vabdl_high_u16): Likewise.
13975 (vabdl_high_u32): Likewise.
13977 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13979 * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
13981 (uabal2): Likewise.
13982 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
13984 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
13986 * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
13988 (vabal_high_s16): Likewise.
13989 (vabal_high_s32): Likewise.
13990 (vabal_high_u8): Likewise.
13991 (vabal_high_u16): Likewise.
13992 (vabal_high_u32): Likewise.
13993 * config/aarch64/iterators.md (ABAL2): New mode iterator.
13994 (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
13996 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13998 * config/aarch64/aarch64-simd-builtins.def (sabal): Define
14001 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
14003 (aarch64_<sur>abal<mode>): ... This
14004 (<sur>sadv16qi): Adust use of the above.
14005 * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
14007 (vabal_s16): Likewise.
14008 (vabal_s32): Likewise.
14009 (vabal_u8): Likewise.
14010 (vabal_u16): Likewise.
14011 (vabal_u32): Likewise.
14013 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14015 * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
14017 * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
14019 * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
14021 (vaddlv_s16): Likewise.
14022 (vaddlv_u8): Likewise.
14023 (vaddlv_u16): Likewise.
14024 (vaddlvq_s8): Likewise.
14025 (vaddlvq_s16): Likewise.
14026 (vaddlvq_s32): Likewise.
14027 (vaddlvq_u8): Likewise.
14028 (vaddlvq_u16): Likewise.
14029 (vaddlvq_u32): Likewise.
14030 (vaddlv_s32): Likewise.
14031 (vaddlv_u32): Likewise.
14032 * config/aarch64/iterators.md (VDQV_L): New mode iterator.
14033 (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
14034 (Vwstype): New mode attribute.
14036 (VWIDE_S): Likewise.
14037 (USADDLV): New int iterator.
14038 (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
14040 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
14042 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
14043 builtin generator macros.
14044 * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
14046 * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
14047 instead of inline asm.
14048 (vmlsl_lane_s32): Likewise.
14049 (vmlsl_lane_u16): Likewise.
14050 (vmlsl_lane_u32): Likewise.
14051 (vmlsl_laneq_s16): Likewise.
14052 (vmlsl_laneq_s32): Likewise.
14053 (vmlsl_laneq_u16): Likewise.
14054 (vmlsl_laneq_u32): Likewise.
14056 2021-01-29 Richard Biener <rguenther@suse.de>
14058 * doc/invoke.texi (--param max-gcse-memory): Document unit
14060 * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
14061 * params.opt (--param max-gcse-memory): Adjust default and
14062 document unit of size.
14064 2021-01-29 Richard Biener <rguenther@suse.de>
14066 PR rtl-optimization/98863
14067 * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
14068 HOST_WIDE_INT for the memory estimate.
14070 2021-01-29 Bin Cheng <bin.cheng@linux.alibaba.com>
14071 Richard Biener <rguenther@suse.de>
14073 PR tree-optimization/97627
14074 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
14075 Do not analyze fake edges.
14077 2021-01-29 Richard Biener <rguenther@suse.de>
14079 PR rtl-optimization/98144
14080 * df.h (df_mir_bb_info): Add con_visited member.
14081 * df-problems.c (df_mir_alloc): Initialize con_visited,
14082 do not fully populate IN and OUT.
14083 (df_mir_reset): Likewise.
14084 (df_mir_confluence_0): Set con_visited.
14085 (df_mir_confluence_n): Properly handle implicitely
14086 fully populated IN and OUT as designated by con_visited
14087 and update con_visited accordingly.
14089 2021-01-29 Jakub Jelinek <jakub@redhat.com>
14092 * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
14093 vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
14094 && !TARGET_REALLY_IWMMXT to conditions.
14096 2021-01-29 Jakub Jelinek <jakub@redhat.com>
14099 * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
14102 2021-01-28 Marek Polacek <polacek@redhat.com>
14105 * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
14106 the main variant, maybe reset it in its variants too.
14107 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
14108 (check_aligned_type): Check if TYPE_USER_ALIGN match.
14110 2021-01-28 Christophe Lyon <christophe.lyon@linaro.org>
14113 * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
14114 of constant zero for comparisons.
14116 2021-01-28 Michael Meissner <meissner@linux.ibm.com>
14118 * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
14119 support for mapping built-in function names for long double
14120 built-in functions if long double is IEEE 128-bit.
14122 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
14124 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
14125 builtin generator macros.
14126 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
14128 * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
14129 instead of inline asm.
14130 (vmlsl_n_s32): Likewise.
14131 (vmlsl_n_u16): Likewise.
14132 (vmlsl_n_u32): Likewise.
14134 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
14136 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
14137 builtin generator macros.
14138 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
14140 * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
14141 instead of inline asm.
14142 (vmlal_n_s32): Likewise.
14143 (vmlal_n_u16): Likewise.
14144 (vmlal_n_u32): Likewise.
14146 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14148 * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
14150 * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
14152 (aarch64_shrn2<mode>_insn_be): Likewise.
14153 (aarch64_shrn2<mode>): Likewise.
14154 * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
14156 (vshrn_high_n_s32): Likewise.
14157 (vshrn_high_n_s64): Likewise.
14158 (vshrn_high_n_u16): Likewise.
14159 (vshrn_high_n_u32): Likewise.
14160 (vshrn_high_n_u64): Likewise.
14162 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14164 * config/aarch64/aarch64-simd-builtins.def (shrn): Define
14166 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
14168 (aarch64_shrn<mode>_insn_be): Likewise.
14169 (aarch64_shrn<mode>): Likewise.
14170 * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
14172 (vshrn_n_s32): Likewise.
14173 (vshrn_n_s64): Likewise.
14174 (vshrn_n_u16): Likewise.
14175 (vshrn_n_u32): Likewise.
14176 (vshrn_n_u64): Likewise.
14177 * config/aarch64/iterators.md (vn_mode): New mode attribute.
14179 2021-01-28 Richard Biener <rguenther@suse.de>
14181 PR rtl-optimization/80960
14182 * dse.c (check_mem_read_rtx): Call get_addr on the
14185 2021-01-28 Xionghu Luo <luoxhu@linux.ibm.com>
14186 David Edelsohn <dje.gcc@gmail.com>
14189 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14190 Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
14192 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
14194 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
14195 wrapper call rs6000_expand_vector_set_var for cleanup. Call
14196 rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
14198 (rs6000_expand_vector_set_var): Delete.
14199 (rs6000_expand_vector_set_var_p9): Make static.
14200 (rs6000_expand_vector_set_var_p8): Make static.
14202 2021-01-28 Xing GUO <higuoxing@gmail.com>
14204 * common/config/riscv/riscv-common.c
14205 (riscv_subset_list::parsing_subset_version): Fix -march option parsing
14206 when `p` extension exists.
14208 2021-01-27 Vladimir N. Makarov <vmakarov@redhat.com>
14210 PR rtl-optimization/97684
14211 * ira.c (ira): Call ira_set_pseudo_classes before
14212 update_equiv_regs when it is necessary.
14214 2021-01-27 Jakub Jelinek <jakub@redhat.com>
14217 * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
14218 %w0, %w1 and %2 instead of %0, %1 and %2.
14220 2021-01-27 Aaron Sawdey <acsawdey@linux.ibm.com>
14222 * config/rs6000/genfusion.pl: New script to generate
14223 define_insn_and_split patterns so combine can arrange fused
14224 instructions next to each other.
14225 * config/rs6000/fusion.md: New file, generated fused instruction
14226 patterns for combine.
14227 * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
14228 (non_update_memory_operand): New predicate.
14229 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
14230 OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
14232 * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
14234 * config/rs6000/rs6000.c (rs6000_option_override_internal):
14235 Automatically set OPTION_MASK_P10_FUSION and
14236 OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
14237 (rs600_opt_masks): Allow -mpower10-fusion
14238 in function attributes.
14239 (address_is_non_pfx_d_or_x): New function.
14240 * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
14241 * config/rs6000/rs6000.md: Include fusion.md.
14242 * config/rs6000/rs6000.opt: Add -mpower10-fusion
14243 and -mpower10-fusion-ld-cmpi.
14244 * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
14246 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
14248 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
14249 builtin generator macros.
14250 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
14252 (aarch64_<su>mlal<mode>): This.
14253 * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
14254 instead of inline asm.
14255 (vmlal_s16): Likewise.
14256 (vmlal_s32): Likewise.
14257 (vmlal_u8): Likewise.
14258 (vmlal_u16): Likewise.
14259 (vmlal_u32): Likewise.
14261 2021-01-27 Richard Biener <rguenther@suse.de>
14263 PR tree-optimization/98854
14264 * tree-vect-slp.c (vect_build_slp_tree_2): Also build
14265 PHIs from scalars when the number of CTORs matches the
14266 number of children.
14268 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
14270 * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
14272 * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
14274 (aarch64_mls_n<mode>): This.
14275 * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
14277 (vmls_n_s32): Likewise.
14278 (vmls_n_u16): Likewise.
14279 (vmls_n_u32): Likewise.
14280 (vmlsq_n_s16): Likewise.
14281 (vmlsq_n_s32): Likewise.
14282 (vmlsq_n_u16): Likewise.
14283 (vmlsq_n_u32): Likewise.
14285 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
14287 * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
14289 * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
14291 (vmls_s16): Likewise.
14292 (vmls_s32): Likewise.
14293 (vmls_u8): Likewise.
14294 (vmls_u16): Likewise.
14295 (vmls_u32): Likewise.
14296 (vmlsq_s8): Likewise.
14297 (vmlsq_s16): Likewise.
14298 (vmlsq_s32): Likewise.
14299 (vmlsq_u8): Likewise.
14300 (vmlsq_u16): Likewise.
14301 (vmlsq_u32): Likewise.
14303 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
14305 * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
14307 * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
14309 (aarch64_mla_n<mode>): This.
14310 * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
14312 (vmla_n_s32): Likewise.
14313 (vmla_n_u16): Likewise.
14314 (vmla_n_u32): Likewise.
14315 (vmlaq_n_s16): Likewise.
14316 (vmlaq_n_s32): Likewise.
14317 (vmlaq_n_u16): Likewise.
14318 (vmlaq_n_u32): Likewise.
14320 2021-01-27 liuhongt <hongtao.liu@intel.com>
14323 * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
14324 (*sse2_eq<mode>3): Ditto.
14326 2021-01-27 Jakub Jelinek <jakub@redhat.com>
14328 * tree-pass.h (PROP_trees): Rename to ...
14329 (PROP_gimple): ... this.
14330 * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
14331 * passes.c (execute_function_dump, execute_function_todo,
14332 execute_one_ipa_transform_pass, execute_one_pass): Likewise.
14333 * varpool.c (ctor_for_folding): Likewise.
14335 2021-01-27 Jakub Jelinek <jakub@redhat.com>
14337 PR tree-optimization/97260
14338 * varpool.c: Include tree-pass.h.
14339 (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
14340 non-TREE_SIDE_EFFECTS automatic variables.
14342 2021-01-26 Paul Fee <paul.f.fee@gmail.com>
14344 * doc/cpp.texi (__cplusplus): Document value for -std=c++23
14346 * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
14347 * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
14348 (gen_compile_unit_die): Recognise C++23.
14350 2021-01-26 Jakub Jelinek <jakub@redhat.com>
14353 * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
14356 2021-01-26 Jakub Jelinek <jakub@redhat.com>
14359 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
14360 Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
14361 and INTVAL (mask). Add && INTVAL (mask) > 0 condition.
14363 2021-01-26 Richard Biener <rguenther@suse.de>
14365 * gimple-pretty-print.c (dump_binary_rhs): Handle
14366 VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
14368 2021-01-26 Richard Biener <rguenther@suse.de>
14370 PR middle-end/98726
14371 * tree.h (vector_cst_int_elt): Remove.
14372 * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
14375 2021-01-26 Andrew Stubbs <ams@codesourcery.com>
14377 * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
14378 for V64DFmode min/max reductions.
14380 2021-01-26 Jakub Jelinek <jakub@redhat.com>
14382 * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
14383 as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
14384 two halves, one with x and the other with const0_rtx, ordered
14385 depending on endianity.
14387 2021-01-26 Alexandre Oliva <oliva@adacore.com>
14389 * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
14390 temporaries not seen in binding block, and not about to be
14391 added as gimple variables.
14393 2021-01-25 Martin Sebor <msebor@redhat.com>
14396 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
14398 2021-01-25 Martin Liska <mliska@suse.cz>
14400 * value-prof.c (get_nth_most_common_value): Use %s instead
14403 2021-01-25 Jakub Jelinek <jakub@redhat.com>
14406 * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
14407 readelf -wi is able to read the emitted .debug_info back.
14408 * configure: Regenerated.
14410 2021-01-25 Martin Liska <mliska@suse.cz>
14412 PR gcov-profile/98739
14413 * common.opt: Add missing sign symbol.
14414 * value-prof.c (get_nth_most_common_value): Restore handling
14415 of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
14416 PROFILE_REPRODUCIBILITY_MULTITHREADED.
14418 2021-01-25 Richard Biener <rguenther@suse.de>
14420 PR middle-end/98807
14421 * tree.c (vector_element_bits): Always use precision of
14422 the element type for boolean vectors.
14424 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
14426 * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
14427 (ENDFILE_SPEC): Evaluate qnolinkcmds.
14429 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
14431 * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
14432 nostartfiles handling since this is already done by
14433 LINK_COMMAND_SPEC. Evaluate qnolinkcmds.
14434 (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
14435 is already done by LINK_COMMAND_SPEC.
14436 (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
14437 this is already done by LINK_COMMAND_SPEC. Remove qnolinkcmds
14440 2021-01-25 Jakub Jelinek <jakub@redhat.com>
14443 * fold-const-call.c (host_size_t_cst_p): Renamed to ...
14444 (size_t_cst_p): ... this. Check and store unsigned HOST_WIDE_INT
14445 value rather than host size_t.
14446 (fold_const_call): Change type of s2 from size_t to
14447 unsigned HOST_WIDE_INT. Use size_t_cst_p instead of
14448 host_size_t_cst_p. For strncmp calls, pass MIN (s2, SIZE_MAX)
14449 instead of s2 as last argument.
14451 2021-01-25 Tamar Christina <tamar.christina@arm.com>
14453 * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
14454 VCMLA_OP, VCMUL_OP): New.
14455 * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
14456 * config/arm/neon.md (cmul<conj_op><mode>3): New.
14457 * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
14458 UNSPEC_VCMUL_CONJ): New.
14459 * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
14460 cml<fcmac1><conj_op><mode>4): New.
14462 2021-01-23 Jakub Jelinek <jakub@redhat.com>
14465 * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
14467 2021-01-22 Jonathan Wright <jonathan.wright@arm.com>
14469 * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
14471 * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
14473 (vmla_s16): Likewise.
14474 (vmla_s32): Likewise.
14475 (vmla_u8): Likewise.
14476 (vmla_u16): Likewise.
14477 (vmla_u32): Likewise.
14478 (vmlaq_s8): Likewise.
14479 (vmlaq_s16): Likewise.
14480 (vmlaq_s32): Likewise.
14481 (vmlaq_u8): Likewise.
14482 (vmlaq_u16): Likewise.
14483 (vmlaq_u32): Likewise.
14485 2021-01-22 David Malcolm <dmalcolm@redhat.com>
14487 * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
14490 2021-01-22 Jakub Jelinek <jakub@redhat.com>
14493 * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
14494 filenames to emit, still emit the required 0 index directory and
14495 filename entries that match DW_AT_comp_dir and DW_AT_name of the
14498 2021-01-22 Marek Polacek <polacek@redhat.com>
14501 * doc/invoke.texi: Update C++ ABI Version 15 description.
14503 2021-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14505 PR tree-optimization/98766
14506 * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
14507 comparing against type size with param_avoid_fma_max_bits.
14509 2021-01-22 Richard Biener <rguenther@suse.de>
14511 PR middle-end/98793
14512 * tree.c (vector_element_bits): Key single-bit bool vector on
14513 integer mode rather than not vector mode.
14515 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
14518 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14519 Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
14521 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
14522 to call different path for P8 and P9.
14523 (rs6000_expand_vector_set_var_p9): New function.
14524 (rs6000_expand_vector_set_var_p8): New function.
14526 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
14530 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14531 Ajdust variable index vec_insert from address dereference to
14532 ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
14533 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
14535 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
14537 2021-01-22 Martin Liska <mliska@suse.cz>
14539 PR gcov-profile/98739
14540 * profile.c (compute_value_histograms): Drop time profile for
14541 -fprofile-reproducible=multithreaded.
14543 2021-01-22 Nathan Sidwell <nathan@acm.org>
14545 * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
14548 2021-01-22 Richard Biener <rguenther@suse.de>
14550 PR middle-end/98773
14551 * tree-data-ref.c (initalize_matrix_A): Revert previous
14552 change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
14554 2021-01-22 Jakub Jelinek <jakub@redhat.com>
14556 PR tree-optimization/90248
14557 * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
14558 X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
14560 (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
14561 X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
14563 2021-01-22 Jakub Jelinek <jakub@redhat.com>
14565 PR tree-optimization/98255
14566 * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
14567 extend index - low_bound from sizetype's precision rather than index
14569 (get_addr_base_and_unit_offset_1): Likewise.
14570 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
14571 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
14573 2021-01-22 Richard Biener <rguenther@suse.de>
14575 PR tree-optimization/98786
14576 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
14577 adding new uses of abnormals. Verify we deal with a conditional
14580 2021-01-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14583 * optc-save-gen.awk: Add arm_fp16_format to checked_options.
14585 2021-01-22 liuhongt <hongtao.liu@intel.com>
14589 * config/i386/sse.md (VI_128_256): New mode iterator.
14590 (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
14591 *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
14592 *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
14593 define_insn_and_split to lower avx512 vector comparison to avx
14594 version when dest is vector.
14595 (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
14596 define_insn_and_split for negating the comparison result.
14597 * config/i386/predicates.md (float_vector_all_ones_operand):
14599 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
14600 general NOT operator without UNSPEC_MASKOP.
14602 2021-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
14604 PR rtl-optimization/98777
14605 * lra-int.h (lra_pmode_pseudo): New extern.
14606 * lra.c (lra_pmode_pseudo): New global.
14608 * lra-eliminations.c (eliminate_regs_in_insn): Use it.
14610 2021-01-21 Ilya Leoshkevich <iii@linux.ibm.com>
14612 * fwprop.c (fwprop_propagation::classify_result): Allow
14613 (subreg (mem)) simplifications.
14615 2021-01-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14617 * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
14619 (aarch64_sqdmlal<mode>): ... This...
14620 (aarch64_sqdmlsl<mode>): ... And this.
14621 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
14622 (aarch64_sqdmlal_lane<mode>): ... This...
14623 (aarch64_sqdmlsl_lane<mode>): ... And this.
14624 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
14625 (aarch64_sqdmlsl_laneq<mode>): ... This...
14626 (aarch64_sqdmlal_laneq<mode>): ... And this.
14627 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
14628 (aarch64_sqdmlsl_n<mode>): ... This...
14629 (aarch64_sqdmlal_n<mode>): ... And this.
14630 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
14631 (aarch64_sqdmlal2<mode>_internal): ... This...
14632 (aarch64_sqdmlsl2<mode>_internal): ... And this.
14634 2021-01-21 Christophe Lyon <christophe.lyon@linaro.org>
14636 * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
14638 2021-01-21 Andrea Corallo <andrea.corallo@arm.com>
14641 * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
14643 2021-01-21 liuhongt <hongtao.liu@intel.com>
14645 PR rtl-optimization/98694
14646 * regcprop.c (copy_value): If SRC had been assigned a mode
14647 narrower than the copy, we can't link DEST into the chain even
14648 they have same hard_regno_nregs(i.e. HImode/SImode in i386
14651 2021-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14653 * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
14654 Convert to define_insn_and_split. Split into simple move when moving
14657 2021-01-20 Segher Boessenkool <segher@kernel.crashing.org>
14659 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
14660 Adjust comment. Simplify code.
14662 2021-01-20 Jakub Jelinek <jakub@redhat.com>
14665 * dwarf2out.c (reset_indirect_string): Also reset indirect strings
14666 with DW_FORM_line_strp form.
14667 (prune_unused_types_update_strings): Don't add into debug_str_hash
14668 indirect strings with DW_FORM_line_strp form.
14669 (adjust_name_comp_dir): New function.
14670 (dwarf2out_finish): Call it on CU DIEs after resetting
14671 debug_line_str_hash.
14673 2021-01-20 Vladimir N. Makarov <vmakarov@redhat.com>
14675 PR rtl-optimization/98722
14676 * lra-eliminations.c (eliminate_regs_in_insn): Check that target
14677 has no 3-op add insn to transform insns containing two pluses.
14679 2021-01-20 Richard Biener <rguenther@suse.de>
14681 * hwint.h (add_hwi): New function.
14682 (mul_hwi): Likewise.
14683 * tree-data-ref.c (initialize_matrix_A): Properly translate
14684 tree constants and avoid HOST_WIDE_INT_MIN.
14685 (lambda_matrix_row_add): Avoid undefined integer overflow
14686 and return true on such overflow.
14687 (lambda_matrix_right_hermite): Handle overflow from
14688 lambda_matrix_row_add gracefully. Simplify previous fix.
14689 (analyze_subscript_affine_affine): Likewise.
14691 2021-01-20 Eugene Rozenfeld <erozen@microsoft.com>
14693 PR tree-optimization/96674
14694 * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
14695 x >= y && y != XXX_MIN --> x > y - 1
14697 2021-01-20 Richard Sandiford <richard.sandiford@arm.com>
14699 PR tree-optimization/98535
14700 * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
14701 If the high and low permutes are the same, remove the high permutes
14702 from the working set and only continue with the low ones.
14704 2021-01-20 Jakub Jelinek <jakub@redhat.com>
14706 PR tree-optimization/98721
14707 * builtins.c (access_ref::inform_access): Don't assume
14708 SSA_NAME_IDENTIFIER must be non-NULL. Print messages about
14709 object whenever allocfn is NULL, rather than only when DECL_P
14710 is true. Use %qE instead of %qD for that. Formatting fixes.
14712 2021-01-20 Richard Biener <rguenther@suse.de>
14714 PR tree-optimization/98758
14715 * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
14716 (lambda_matrix_right_hermite): Avoid undefinedness with
14717 signed integer abs and multiplication.
14718 (analyze_subscript_affine_affine): Use lambda_int.
14720 2021-01-20 David Malcolm <dmalcolm@redhat.com>
14723 * dwarf2out.c (output_line_info): Rename static variable
14724 "generation", moving it out of the function to...
14725 (output_line_info_generation): New.
14726 (init_sections_and_labels): Likewise, renaming the variable to...
14727 (init_sections_and_labels_generation): New.
14728 (dwarf2out_c_finalize): Reset the new variables.
14730 2021-01-19 Martin Sebor <msebor@redhat.com>
14732 PR middle-end/98664
14733 * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
14734 all functions, even if they're not declared artificial or inline.
14735 * tree.c (tree_inlined_location): Use macro expansion location
14736 only if scope traversal fails to expose one.
14738 2021-01-19 Richard Sandiford <richard.sandiford@arm.com>
14740 PR rtl-optimization/92294
14741 * alias.c (compare_base_symbol_refs): Take an extra parameter
14742 and add the distance between two symbols to it. Enshrine in
14743 comments that -1 means "either 0 or 1, but we can't tell
14744 which at compile time".
14745 (memrefs_conflict_p): Update call accordingly.
14746 (rtx_equal_for_memref_p): Likewise. Take the distance between symbols
14749 2021-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14751 * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
14752 sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
14753 uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
14754 sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
14755 sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
14756 sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
14757 sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
14758 sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
14759 sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
14760 uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
14761 sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
14762 sqmovun): Use NONE flags.
14764 2021-01-19 Richard Biener <rguenther@suse.de>
14767 * ipa-modref.c (analyze_stmt): Only record a summary for a
14770 2021-01-19 Richard Biener <rguenther@suse.de>
14772 PR middle-end/98638
14773 * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
14775 2021-01-19 Daniel Hellstrom <daniel@gaisler.com>
14777 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
14778 built-in define __FIX_LEON3FT_TN0018.
14780 2021-01-19 Richard Biener <rguenther@suse.de>
14783 * tree-inline.c (tree_function_versioning): Set input_location
14784 to UNKNOWN_LOCATION throughout the function.
14786 2021-01-19 Tobias Burnus <tobias@codesourcery.com>
14789 * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
14791 2021-01-19 Martin Jambor <mjambor@suse.cz>
14794 * ipa-sra.c (ssa_name_only_returned_p): New parameter fun. Check
14795 whether non-call exceptions allow removal of a statement.
14796 (isra_analyze_call): Pass the appropriate function to
14797 ssa_name_only_returned_p.
14799 2021-01-19 Geng Qi <gengqi@linux.alibaba.com>
14801 * config/riscv/arch-canonicalize (longext_sort): New function for
14802 sorting 'multi-letter'.
14803 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
14804 'alts'. The 'arch' may not be the first of 'alts'.
14805 (_expand_combination): Add underline for the 'ext' without '*'.
14806 This is because, a single-letter extension can always be treated well
14807 with a '_' prefix, but it cannot be separated out if it is appended
14810 2021-01-18 Vladimir N. Makarov <vmakarov@redhat.com>
14813 * ira.c (ira): Skip abnormal critical edge splitting.
14815 2021-01-18 Jakub Jelinek <jakub@redhat.com>
14817 PR tree-optimization/98727
14818 * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
14819 second .MUL_OVERFLOW operand for signed multiplication with overflow
14820 checking if the second operand of multiplication is not constant.
14822 2021-01-18 David Edelsohn <dje.gcc@gmail.com>
14824 * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
14825 defaults to version 4.
14827 2021-01-18 David Malcolm <dmalcolm@redhat.com>
14829 * attribs.h (fndecl_dealloc_argno): New decl.
14830 * builtins.c (call_dealloc_argno): Split out second half of
14832 (fndecl_dealloc_argno): New.
14833 * doc/extend.texi (Common Function Attributes): Document the
14834 interaction between the analyzer and the malloc attribute.
14835 * doc/invoke.texi (Static Analyzer Options): Likewise.
14837 2021-01-17 David Edelsohn <dje.gcc@gmail.com>
14839 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
14840 dwarf_version to 4.
14841 * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
14843 2021-01-17 Martin Jambor <mjambor@suse.cz>
14846 * cgraph.c (clone_of_p): Check also former_clone_of as we climb
14849 2021-01-17 Mark Wielaard <mark@klomp.org>
14851 * common.opt (gdwarf-): Init(5).
14852 * doc/invoke.texi (-gdwarf): Document default to 5.
14854 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
14856 * builtin-types.def
14857 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
14859 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
14860 ...this. Add extra argument.
14861 * gimplify.c (omp_default_clause): Ensure that event handle is
14862 firstprivate in a task region.
14863 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
14864 (gimplify_adjust_omp_clauses): Likewise.
14865 * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
14866 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
14867 * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
14868 if detach clause specified. Add detach argument when generating
14870 * omp-low.c (scan_sharing_clauses): Setup data environment for detach
14872 (finish_taskreg_scan): Move field for variable containing the event
14873 handle to the front of the struct.
14874 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH. Fix
14876 * tree-nested.c (convert_nonlocal_omp_clauses): Handle
14877 OMP_CLAUSE_DETACH clause.
14878 (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
14879 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
14880 * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
14882 (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix
14884 (walk_tree_1): Handle OMP_CLAUSE_DETACH.
14886 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
14888 * config/nios2/t-rtems: Reset all MULTILIB_* variables. Shorten
14889 multilib directory names. Use MULTILIB_REQUIRED instead of
14890 MULTILIB_EXCEPTIONS. Add -mhw-mul -mhw-mulx -mhw-div
14891 -mcustom-fpu-cfg=fph2 multilib.
14893 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
14895 * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
14896 (nios2_init_fpu_configs): Provide register values for new
14897 -mcustom-fpu-cfg=fph2 option variant.
14898 * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
14901 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
14903 * config/nios2/nios2.c (nios2_custom_check_insns): Remove
14904 custom instruction warnings.
14906 2021-01-16 Jakub Jelinek <jakub@redhat.com>
14908 PR tree-optimization/96669
14909 * match.pd ((CST << x) & 1 -> x == 0): New simplification.
14911 2021-01-16 Jakub Jelinek <jakub@redhat.com>
14913 PR tree-optimization/96271
14914 * passes.def: Pass false argument to first two pass_cd_dce
14915 instances and true to last instance. Add comment that
14916 last instance rewrites no longer addressed locals.
14917 * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
14919 (pass_cd_dce::set_pass_param): New method.
14920 (pass_cd_dce::execute): Return TODO_update_address_taken from
14921 last cd_dce instance.
14923 2021-01-15 Carl Love <cel@us.ibm.com>
14925 * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
14927 * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
14928 * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
14929 DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
14930 DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
14931 MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
14932 Add builtin define.
14933 (MULH, DIVE, MOD): Add new BU_P10_OVERLOAD_2 definitions.
14934 * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
14935 VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
14936 New overloaded definitions.
14937 (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
14938 P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
14939 P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
14940 P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
14941 P10V_BUILTIN_MULHU_V4SI]: Add case
14942 statement for builtins.
14943 * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
14944 * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
14945 (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
14946 (vsx_mul_v2di): Add if TARGET_POWER10 statement.
14947 (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
14948 (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
14949 mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
14950 Add define_insn, mode is VIlong.
14951 * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
14952 Add builtin descriptions.
14954 2021-01-15 Eric Botcazou <ebotcazou@adacore.com>
14956 * final.c (final_start_function_1): Reset force_source_line.
14958 2021-01-15 Jakub Jelinek <jakub@redhat.com>
14960 PR tree-optimization/96669
14961 * match.pd (((1 << A) & 1) != 0 -> A == 0,
14962 ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
14963 possibly different power of two constants and to right shift too.
14965 2021-01-15 Jakub Jelinek <jakub@redhat.com>
14967 PR tree-optimization/96681
14968 * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
14969 ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
14970 ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
14971 ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
14973 2021-01-15 Alexandre Oliva <oliva@adacore.com>
14975 * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
14977 2021-01-15 Tamar Christina <tamar.christina@arm.com>
14979 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
14980 cmul<conj_op><mode>3): New.
14981 * config/aarch64/iterators.md (UNSPEC_FCMUL,
14982 UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
14983 UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
14984 FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
14985 sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
14986 (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
14987 (rot_op): Renamed to conj_op.
14988 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
14989 cmul<conj_op><mode>3): New.
14990 * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
14991 cmul<conj_op><mode>3): New.
14993 2021-01-15 David Malcolm <dmalcolm@redhat.com>
14997 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
14998 Escape the tempfile name when constructing the expected output.
15000 2021-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15002 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
15004 (aarch64_<su>mlsl_hi<mode>): ... This.
15005 (aarch64_<su>mlsl_hi<mode>): Define.
15006 (*aarch64_<su>mlsl<mode): Rename to...
15007 (aarch64_<su>mlsl<mode): ... This.
15008 * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
15009 smlsl_hi, umlsl_hi): Define builtins.
15010 * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
15011 vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
15012 vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
15013 vmlsl_u16, vmlsl_u32): Reimplement with builtins.
15015 2021-01-15 Uroš Bizjak <ubizjak@gmail.com>
15017 * config/i386/i386-c.c (ix86_target_macros):
15018 Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
15020 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
15023 * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
15024 * Makefile.in (RTL_SSA_H): New variable.
15025 * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
15026 * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
15027 * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
15029 * config/aarch64/aarch64-cc-fusion.cc: New file.
15031 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
15033 * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
15034 calling cancel_changes for changes that no longer exist.
15036 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
15038 * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
15039 (function_info::reg_defs): ...this.
15040 * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
15041 (function_info::reg_defs): ...this.
15043 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
15046 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
15048 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
15051 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
15054 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
15056 2021-01-15 Richard Biener <rguenther@suse.de>
15058 PR tree-optimization/96376
15059 * tree-vect-stmts.c (get_load_store_type): Disregard alignment
15060 for VMAT_INVARIANT.
15062 2021-01-15 Martin Liska <mliska@suse.cz>
15064 * doc/install.texi: Document that some tests need pytest module.
15065 * doc/sourcebuild.texi: Likewise.
15067 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
15070 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
15072 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
15074 * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
15075 (mve_vshrq_n_u<mode>_imm): Likewise.
15076 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
15077 * config/arm/vec-common.md: ... here.
15079 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
15081 * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
15083 * config/arm/neon.md (vashl<mode>3): Delete.
15084 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
15085 (vasl<mode>3): New expander.
15087 2021-01-15 Richard Biener <rguenther@suse.de>
15089 PR tree-optimization/98685
15090 * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
15091 of vector extern defs.
15093 2021-01-14 David Malcolm <dmalcolm@redhat.com>
15096 * diagnostic.c (diagnostic_kind_text): Break out this array
15098 (diagnostic_build_prefix): ...here.
15099 (fancy_abort): Detect when diagnostic_initialize has not yet been
15100 called and fall back to a minimal implementation of printing the
15101 ICE, rather than segfaulting in internal_error.
15103 2021-01-14 David Malcolm <dmalcolm@redhat.com>
15105 * diagnostic.c (diagnostic_initialize): Eliminate
15106 parseable_fixits_p in favor of initializing extra_output_kind from
15107 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
15108 (convert_column_unit): New function, split out from...
15109 (diagnostic_converted_column): ...this.
15110 (print_parseable_fixits): Add "column_unit" and "tabstop" params.
15111 Use them to call convert_column_unit on the column values.
15112 (diagnostic_report_diagnostic): Eliminate conditional on
15113 parseable_fixits_p in favor of a switch statement on
15114 extra_output_kind, passing the appropriate values to the new
15115 params of print_parseable_fixits.
15116 (selftest::test_print_parseable_fixits_none): Update for new
15117 params of print_parseable_fixits.
15118 (selftest::test_print_parseable_fixits_insert): Likewise.
15119 (selftest::test_print_parseable_fixits_remove): Likewise.
15120 (selftest::test_print_parseable_fixits_replace): Likewise.
15121 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
15123 (selftest::diagnostic_c_tests): Call it.
15124 * diagnostic.h (enum diagnostics_extra_output_kind): New.
15125 (diagnostic_context::parseable_fixits_p): Delete field in favor
15127 (diagnostic_context::extra_output_kind): ...this new field.
15128 * doc/invoke.texi (Environment Variables): Add
15129 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
15130 * opts.c (common_handle_option): Update handling of
15131 OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
15134 2021-01-14 Tamar Christina <tamar.christina@arm.com>
15136 * tree-vect-slp-patterns.c (class complex_operations_pattern,
15137 complex_operations_pattern::matches,
15138 complex_operations_pattern::recognize,
15139 complex_operations_pattern::build): New.
15140 (slp_patterns): Use it.
15142 2021-01-14 Tamar Christina <tamar.christina@arm.com>
15144 * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
15145 * optabs.def (cmls_optab, cmls_conj_optab): New.
15146 * doc/md.texi: Document them.
15147 * tree-vect-slp-patterns.c (class complex_fms_pattern,
15148 complex_fms_pattern::matches, complex_fms_pattern::recognize,
15149 complex_fms_pattern::build): New.
15151 2021-01-14 Tamar Christina <tamar.christina@arm.com>
15153 * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
15154 * optabs.def (cmla_optab, cmla_conj_optab): New.
15155 * doc/md.texi: Document them.
15156 * tree-vect-slp-patterns.c (vect_match_call_p,
15157 class complex_fma_pattern, vect_slp_reset_pattern,
15158 complex_fma_pattern::matches, complex_fma_pattern::recognize,
15159 complex_fma_pattern::build): New.
15161 2021-01-14 Tamar Christina <tamar.christina@arm.com>
15163 * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
15164 * optabs.def (cmul_optab, cmul_conj_optab): New.
15165 * doc/md.texi: Document them.
15166 * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
15167 vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
15168 vect_build_combine_node, class complex_mul_pattern,
15169 complex_mul_pattern::matches, complex_mul_pattern::recognize,
15170 complex_mul_pattern::build): New.
15172 2021-01-14 Tamar Christina <tamar.christina@arm.com>
15174 * tree-vect-slp.c (optimize_load_redistribution_1): New.
15175 (optimize_load_redistribution, vect_is_slp_load_node): New.
15176 (vect_match_slp_patterns): Use it.
15178 2021-01-14 Tamar Christina <tamar.christina@arm.com>
15180 * tree-vect-slp-patterns.c (complex_add_pattern::build):
15183 2021-01-14 Thomas Schwinge <thomas@codesourcery.com>
15185 * config/gcn/mkoffload.c (main): Create an offload image only in
15186 64-bit configurations.
15188 2021-01-14 H.J. Lu <hjl.tools@gmail.com>
15191 * config/i386/i386-options.c (ix86_option_override_internal):
15192 Issue an error for -fcf-protection with CF_BRANCH when compiling
15193 for 32-bit non-TARGET_CMOV targets.
15195 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
15198 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
15199 Remove declaration and initialization of shadow variable "ret".
15200 (ix86_option_override_internal): Remove delcaration of
15201 shadow variable "i". Redeclare shadowed variable to unsigned.
15202 * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
15203 * config/i386/i386-builtins.c (get_builtin_code_for_version):
15204 Update for redeclaration.
15205 * config/i386/i386.h (pta_size): Ditto.
15207 2021-01-14 Richard Biener <rguenther@suse.de>
15209 PR tree-optimization/98674
15210 * tree-data-ref.c (base_supports_access_fn_components_p): New.
15211 (initialize_data_dependence_relation): For two bases without
15212 possible access fns resort to type size equality when determining
15213 shape compatibility.
15215 2021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15218 * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
15219 <=, >= operators in vcle and vcge intrinsics respectively.
15220 * config/arm/arm_neon_builtins.def: Remove entry for
15223 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
15226 * config/i386/i386-options.c (ix86_function_specific_save):
15227 Remove redundant assignment to opts->x_ix86_branch_cost.
15228 * config/i386/i386.c (ix86_prefetch_sse):
15229 Rename from x86_prefetch_sse. Update all uses.
15230 * config/i386/i386.h: Update for rename.
15231 * config/i386/i386-options.h: Ditto.
15233 2021-01-14 Jakub Jelinek <jakub@redhat.com>
15236 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
15237 *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
15238 Use Bm instead of m for non-avx. Add isa attribute.
15240 2021-01-14 Jakub Jelinek <jakub@redhat.com>
15242 PR tree-optimization/96688
15243 * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
15244 ~X can be simplified.
15246 2021-01-14 Richard Sandiford <richard.sandiford@arm.com>
15248 * tree-vect-stmts.c (vect_model_load_cost): Account for unused
15249 IFN_LOAD_LANES results.
15251 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15253 * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
15255 (aarch64_xtn<mode>): Likewise.
15256 * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
15259 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
15261 (vmovl_s16): Likewise.
15262 (vmovl_s32): Likewise.
15263 (vmovl_u8): Likewise.
15264 (vmovl_u16): Likewise.
15265 (vmovl_u32): Likewise.
15266 (vmovn_s16): Likewise.
15267 (vmovn_s32): Likewise.
15268 (vmovn_s64): Likewise.
15269 (vmovn_u16): Likewise.
15270 (vmovn_u32): Likewise.
15271 (vmovn_u64): Likewise.
15273 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15275 * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
15277 (aarch64_<su>qxtn2<mode>_be): Likewise.
15278 (aarch64_<su>qxtn2<mode>): Likewise.
15279 * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
15281 * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
15282 (su): Handle ss_truncate and us_truncate.
15283 * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
15285 (vqmovn_high_s32): Likewise.
15286 (vqmovn_high_s64): Likewise.
15287 (vqmovn_high_u16): Likewise.
15288 (vqmovn_high_u32): Likewise.
15289 (vqmovn_high_u64): Likewise.
15291 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15293 * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
15295 (aarch64_xtn2<mode>_be): Likewise.
15296 (aarch64_xtn2<mode>): Likewise.
15297 * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
15299 * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
15301 (vmovn_high_s32): Likewise.
15302 (vmovn_high_s64): Likewise.
15303 (vmovn_high_u16): Likewise.
15304 (vmovn_high_u32): Likewise.
15305 (vmovn_high_u64): Likewise.
15307 2021-01-13 Stafford Horne <shorne@gmail.com>
15309 * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
15311 2021-01-13 Stafford Horne <shorne@gmail.com>
15313 * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
15315 2021-01-13 Stafford Horne <shorne@gmail.com>
15317 * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
15318 define for __or1k_hard_float__.
15320 2021-01-13 Stafford Horne <shorne@gmail.com>
15322 * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
15323 (PROFILE_HOOK): Define to call _mcount.
15324 (FUNCTION_PROFILER): Change from abort to no-op.
15326 2021-01-13 Jakub Jelinek <jakub@redhat.com>
15328 PR tree-optimization/96691
15329 * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
15330 (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
15331 (~D ^ C) or (D ^ C) can be simplified.
15333 2021-01-13 Richard Biener <rguenther@suse.de>
15335 PR tree-optimization/92645
15336 * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
15337 until after vector lowering.
15339 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
15341 * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
15343 (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
15344 (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
15346 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
15348 * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
15350 (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
15351 (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
15353 2021-01-13 Richard Biener <rguenther@suse.de>
15355 PR tree-optimization/92645
15356 * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
15357 BIT_FIELD_REF argument.
15358 (vect_build_slp_tree_2): Record the desired vector type
15359 on the external vector def.
15360 (vectorizable_slp_permutation): Handle required punning
15361 of existing vector defs.
15363 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
15365 * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
15367 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
15369 * config/sh/sh.md (movsf_ie): Remove operands[2] test.
15371 2021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
15373 * config.gcc [$target == *-*-gnu*]: Enable
15374 'default_gnu_indirect_function'.
15376 2021-01-13 Jakub Jelinek <jakub@redhat.com>
15379 * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
15380 registers before calling targetm.vectorize.vec_perm_const, only after
15382 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
15383 two argument permutation when one operand is zero vector and only
15384 after that force operands into registers.
15385 * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
15386 define_insn_and_split pattern.
15387 (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
15388 (*avx512f_zero_extendv16hiv16si2_1): Likewise.
15389 (*avx2_zero_extendv8hiv8si2_1): Likewise.
15390 (*avx512f_zero_extendv8siv8di2_1): Likewise.
15391 (*avx2_zero_extendv4siv4di2_1): Likewise.
15392 * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
15394 * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
15395 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
15396 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
15397 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
15398 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
15399 * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise. Use std::swap.
15401 2021-01-13 Martin Liska <mliska@suse.cz>
15403 PR tree-optimization/98455
15404 * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
15405 Record also virtual PHIs.
15406 (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
15409 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
15411 * doc/invoke.texi (C++ Modules): Fix typos.
15413 2021-01-13 Richard Biener <rguenther@suse.de>
15415 PR tree-optimization/98640
15416 * tree-ssa-sccvn.c (visit_nary_op): Do not try to
15417 handle plus or minus from a truncated operand to be
15420 2021-01-13 Jakub Jelinek <jakub@redhat.com>
15423 * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
15424 define_insn_and_split patterns.
15425 (splitter after *btr<mode>_2): New splitter.
15427 2021-01-13 Martin Liska <mliska@suse.cz>
15430 * cgraphunit.c (analyze_functions): Remove dead code.
15432 2021-01-13 Qian Jianhua <qianjh@cn.fujitsu.com>
15434 * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
15435 * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
15436 (a64fx_regmove_cost, a64fx_vector_cost): New.
15437 (a64fx_tunings): Use the new added cost tables.
15439 2021-01-13 Jakub Jelinek <jakub@redhat.com>
15442 * config/i386/predicates.md (pmovzx_parallel): New predicate.
15443 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
15444 define_insn_and_split pattern.
15445 (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
15446 (*sse4_1_zero_extendv2siv2di2_3): Likewise.
15448 2021-01-13 Julian Brown <julian@codesourcery.com>
15450 * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
15451 to fix v0 register.
15453 2021-01-13 Julian Brown <julian@codesourcery.com>
15455 * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
15458 2021-01-13 Julian Brown <julian@codesourcery.com>
15460 * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
15461 for reciprocal-approximation instructions.
15462 (div<mode>3): Use fused multiply-accumulate operations for reciprocal
15463 refinement and division result.
15464 * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
15466 2021-01-13 Julian Brown <julian@codesourcery.com>
15468 * config/gcn/gcn-valu.md (subdf): Rename to...
15471 2021-01-12 Martin Liska <mliska@suse.cz>
15473 * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
15475 2021-01-12 Andrea Corallo <andrea.corallo@arm.com>
15477 * function-abi.h: Fix typo.
15479 2021-01-12 Christophe Lyon <christophe.lyon@linaro.org>
15483 * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
15484 (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
15485 (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
15486 (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
15487 (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
15488 (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
15489 (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
15490 (ARM_HAVE_NEON_V2DI_LDST): Likewise.
15491 (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
15492 (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
15493 (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
15494 (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
15495 (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
15496 (ARM_HAVE_V2DI_LDST): Likewise.
15497 * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
15498 (*movmisalign<mode>_mve_load): New pattern.
15499 * config/arm/neon.md (movmisalign<mode>): Move to ...
15500 * config/arm/vec-common.md: ... here.
15502 2021-01-12 Vladimir N. Makarov <vmakarov@redhat.com>
15505 * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
15506 of pattern 'plus (plus (hard reg, const), pseudo)'.
15508 2021-01-12 Richard Biener <rguenther@suse.de>
15510 PR tree-optimization/98550
15511 * tree-vect-slp.c (vect_record_max_nunits): Check whether
15512 the group size is a multiple of the vector element count.
15513 (vect_build_slp_tree_1): When we need to fail because
15514 the vector type choosen causes unrolling do so lazily
15515 without affecting matches only at the end to guide group splitting.
15517 2021-01-12 Martin Liska <mliska@suse.cz>
15520 * optc-save-gen.awk: Compare also n_target_save vars with
15523 2021-01-12 Martin Liska <mliska@suse.cz>
15525 * gcov.c (source_info::debug): New.
15526 (print_usage): Add --debug (-D) option.
15527 (process_args): Likewise.
15528 (generate_results): Call src->debug after
15529 accumulate_line_counts.
15530 (read_graph_file): Properly assign id for EXIT_BLOCK.
15531 * profile.c (branch_prob): Dump function body before it is
15534 2021-01-12 Jakub Jelinek <jakub@redhat.com>
15536 PR tree-optimization/98629
15537 * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
15538 unless returning non-zero.
15540 2021-01-12 Jakub Jelinek <jakub@redhat.com>
15542 PR tree-optimization/95731
15543 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
15544 x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
15545 (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
15546 only after optimize_range_tests_var_bound.
15548 2021-01-12 Jakub Jelinek <jakub@redhat.com>
15550 * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
15551 * configure: Regenerated.
15553 2021-01-12 liuhongt <hongtao.liu@intel.com>
15556 * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
15558 * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
15561 2021-01-12 Alexandre Oliva <oliva@adacore.com>
15563 * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
15565 (auto_end_imm_use_stmt_traverse): New struct.
15566 (FOR_EACH_IMM_USE_STMT): Use it.
15567 (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
15569 * gimple-ssa-strength-reduction.c: ... here, ...
15570 * graphite-scop-detection.c: ... here, ...
15571 * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
15572 * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
15573 * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
15574 * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
15575 * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
15576 * tree-vect-slp.c: ... and here, ...
15577 * doc/tree-ssa.texi: ... and the example here.
15579 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15581 * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
15582 SVE_FULL_I to SVE_I. Generate an UNSPEC_PRED_X.
15583 (*sdiv_pow2<mode>3): New pattern.
15584 (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
15585 Wrap the ASRD in an UNSPEC_PRED_X.
15586 (*cond_<sve_int_op><mode>_2): Likewise. Replace the UNSPEC_PRED_X
15587 predicate with a constant PTRUE, if it isn't already.
15588 (*cond_<sve_int_op><mode>_z): Replace with...
15589 (*cond_<sve_int_op><mode>_any): ...this new pattern.
15591 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15593 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
15594 SVE_FULL_I to SVE_I.
15595 (*cond_bic<mode>_any): Likewise.
15597 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15599 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
15600 (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
15603 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15605 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
15606 SVE_FULL_I to SVE_I.
15607 (*aarch64_cond_<su>abd<mode>_2): Likewise.
15608 (*aarch64_cond_<su>abd<mode>_any): Likewise.
15609 (@aarch64_pred_<su>abd<mode>): Likewise. Use UNSPEC_PRED_X
15610 for the max and min but not for the minus.
15611 (*aarch64_cond_<su>abd<mode>_3): New pattern.
15613 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15615 * config/aarch64/iterators.md (SVE_24I): New iterator.
15616 * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
15617 SVE_FULL_SDI to SVE_24I. Use containers rather than elements.
15619 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15621 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
15622 (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
15624 (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
15625 (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
15626 (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
15627 (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
15629 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15631 * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
15632 (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
15633 (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
15636 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15638 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
15639 (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
15640 (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
15642 2021-01-11 Martin Liska <mliska@suse.cz>
15645 * symtab-clones.h (clone_info::release): Release
15646 symtab::m_clones with ggc_delete as it's a GGC memory.
15648 2021-01-11 Matthias Klose <doko@ubuntu.com>
15650 * Makefile.in (LINK_PROGRESS): Show the link target.
15652 2021-01-11 Richard Biener <rguenther@suse.de>
15654 PR tree-optimization/91403
15655 * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
15656 single-element interleaving group size at 4096 elements.
15658 2021-01-11 Richard Biener <rguenther@suse.de>
15660 PR tree-optimization/98526
15661 * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
15662 of the actual reduction op for the regular case.
15663 (vectorizable_reduction): Cost the stmts
15664 vect_transform_reduction produces here.
15666 2021-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
15668 * tree-ssa-forwprop.c (simplify_vector_constructor): For
15669 big-endian, use UNPACK[_FLOAT]_HI.
15671 2021-01-11 Tamar Christina <tamar.christina@arm.com>
15673 * tree-vect-slp-patterns.c (class complex_pattern,
15674 class complex_add_pattern): Add parameters to matches.
15675 (complex_add_pattern::build): Free memory.
15676 (complex_add_pattern::matches): Move validation end of match.
15677 (complex_add_pattern::recognize): Likewise.
15679 2021-01-11 Tamar Christina <tamar.christina@arm.com>
15681 * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
15683 2021-01-11 Tamar Christina <tamar.christina@arm.com>
15685 * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
15687 2021-01-11 Jakub Jelinek <jakub@redhat.com>
15689 PR tree-optimization/95867
15690 * tree-ssa-math-opts.h: New header.
15691 * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
15692 (powi_as_mults): No longer static. Use build_one_cst instead of
15693 build_real. Formatting fix.
15694 * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
15695 (attempt_builtin_powi): Handle multiplication reassociation without
15696 powi_fndecl using powi_as_mults.
15697 (reassociate_bb): For integral types don't require
15698 -funsafe-math-optimizations to call attempt_builtin_powi.
15700 2021-01-11 Jakub Jelinek <jakub@redhat.com>
15702 PR tree-optimization/95852
15703 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
15704 mul_stmts parameter type to vec<gimple *> &. Before cond_stmt
15705 allow in the bb any of the stmts in that vector, div_stmt and
15706 up to 3 cast stmts.
15707 (arith_cast_equal_p): New function.
15708 (arith_overflow_check_p): Add cast_stmt argument, handle signed
15709 multiply overflow checks.
15710 (match_arith_overflow): Adjust caller. Handle signed multiply
15713 2021-01-11 Jakub Jelinek <jakub@redhat.com>
15715 PR tree-optimization/95852
15716 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
15717 (uaddsub_overflow_check_p): Renamed to ...
15718 (arith_overflow_check_p): ... this. Handle also multiplication
15719 with overflow check.
15720 (match_uaddsub_overflow): Renamed to ...
15721 (match_arith_overflow): ... this. Add cfg_changed argument. Handle
15722 also multiplication with overflow check. Adjust function comment.
15723 (math_opts_dom_walker::after_dom_children): Adjust callers. Call
15724 match_arith_overflow also for MULT_EXPR.
15726 2021-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15728 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
15729 __builtin_convertvector.
15730 (vmovl_s16): Likewise.
15731 (vmovl_s32): Likewise.
15732 (vmovl_u8): Likewise.
15733 (vmovl_u16): Likewise.
15734 (vmovl_u32): Likewise.
15735 (vmovn_s16): Likewise.
15736 (vmovn_s32): Likewise.
15737 (vmovn_s64): Likewise.
15738 (vmovn_u16): Likewise.
15739 (vmovn_u32): Likewise.
15740 (vmovn_u64): Likewise.
15742 2021-01-11 Martin Liska <mliska@suse.cz>
15744 * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
15745 (if_chain::is_beneficial): Delete clusters
15746 (find_conditions): Make second argument of conditions_in_bbs a
15747 pointer so that we control over it's lifetime.
15748 (pass_if_to_switch::execute): Delete them.
15750 2021-01-11 Kewen Lin <linkw@linux.ibm.com>
15752 * ira.c (move_unallocated_pseudos): Check other_reg and skip if
15755 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
15757 * config/vax/vax.md (cc): Remove mode attribute.
15758 (subst_<cc>, subst_f<cc>): Rename to...
15759 (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
15760 (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
15761 (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
15762 (*branch_<mode>, *branch_<mode>_reversed): Likewise.
15764 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
15766 * config/vax/vax.md (subst_f<cc>): Add mode to operands and
15767 `const_double_zero'.
15769 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
15771 * config/pdp11/pdp11.md (PDPfp): New mode iterator.
15772 (fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and
15775 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
15777 * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
15779 * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
15780 with `const_double_zero'.
15781 * doc/rtl.texi (Constant Expression Types): Document it.
15783 2021-01-09 Jakub Jelinek <jakub@redhat.com>
15786 * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
15787 POINTER_DIFF_EXPR to be any integral type.
15789 2021-01-09 Jakub Jelinek <jakub@redhat.com>
15791 PR rtl-optimization/98603
15792 * function.c (instantiate_virtual_regs_in_insn): For asm goto
15793 with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
15794 if any, set ASM_OPERANDS mode to VOIDmode and change
15795 ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
15797 2021-01-09 Alexandre Oliva <oliva@gnu.org>
15800 * final.c (notice_source_line): Narrow down the condition to
15801 skip a line-0 marker.
15803 2021-01-08 Sergei Trofimovich <siarheit@google.com>
15805 * ipa-modref.c (merge_call_side_effects): Fix
15806 linebreak split by reordering two print calls.
15808 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
15810 * config/s390/vector.md (*tf_to_fprx2_0): Rename from
15811 "*mov_tf_to_fprx2_0" for consistency, fix constraint.
15812 (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
15813 consistency, fix constraint.
15815 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
15817 * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
15818 callables instead of mask values.
15819 (struct target_flag_set_p): New predicate.
15820 (s390_cpu_cpp_builtins_internal): Define or undefine
15821 __LONG_DOUBLE_VX__ macro.
15823 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
15826 * config/i386/i386.c (x86_function_profiler): Use R10 and R11
15827 to call mcount in large model with PIC for NO_PROFILE_COUNTERS
15830 2021-01-08 Richard Biener <rguenther@suse.de>
15832 * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
15834 2021-01-08 Richard Biener <rguenther@suse.de>
15836 * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
15837 (vect_build_slp_tree): On cache hit release the matched
15838 scalar stmts vector.
15839 * tree-vect-stmts.c (vectorizable_store): Properly free
15840 vec_oprnds before possibly gathering them again.
15842 2021-01-08 Richard Biener <rguenther@suse.de>
15844 PR tree-optimization/98544
15845 * tree-vect-slp.c (vect_optimize_slp): Always materialize
15846 permutes at a permute node.
15848 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
15851 * config/i386/i386.c (x86_function_profiler): Use R10 to call
15852 mcount in large model. Sorry for large model with PIC.
15854 2021-01-08 Jakub Jelinek <jakub@redhat.com>
15857 * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
15858 ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
15859 ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
15860 TargetSave and initialize for variables with enum types.
15861 (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
15862 mstack-protector-guard-symbol=): Add Save.
15863 * config/i386/i386-options.c (ix86_function_specific_save,
15864 ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
15865 x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
15866 x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
15867 x_ix86_veclibabi_type.
15869 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
15871 * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
15872 SVE_FULL_I to SVE_I.
15873 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
15875 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
15877 * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
15878 SVE_FULL_I to SVE_I.
15879 (*cond_uxt<mode>_any): Likewise.
15881 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15883 * config/aarch64/iterators.md (Vwhalf): New iterator.
15884 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
15886 (aarch64_<sur>adalp<mode>): ... This. Make more
15888 (<sur>sadv16qi): Adjust callsite of the above.
15889 * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
15891 * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
15893 (vpadal_s16): Likewise.
15894 (vpadal_u8): Likewise.
15895 (vpadal_u16): Likewise.
15896 (vpadalq_s8): Likewise.
15897 (vpadalq_s16): Likewise.
15898 (vpadalq_s32): Likewise.
15899 (vpadalq_u8): Likewise.
15900 (vpadalq_u16): Likewise.
15901 (vpadalq_u32): Likewise.
15903 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15905 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
15907 (aarch64_<su>abd<mode>): ... This.
15908 (<sur>sadv16qi): Adjust callsite of the above.
15909 * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
15911 * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
15913 (vabd_s16): Likewise.
15914 (vabd_s32): Likewise.
15915 (vabd_u8): Likewise.
15916 (vabd_u16): Likewise.
15917 (vabd_u32): Likewise.
15918 (vabdq_s8): Likewise.
15919 (vabdq_s16): Likewise.
15920 (vabdq_s32): Likewise.
15921 (vabdq_u8): Likewise.
15922 (vabdq_u16): Likewise.
15923 (vabdq_u32): Likewise.
15925 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15927 * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
15929 * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
15930 (vaba_s16): Likewise.
15931 (vaba_s32): Likewise.
15932 (vaba_u8): Likewise.
15933 (vaba_u16): Likewise.
15934 (vaba_u32): Likewise.
15935 (vabaq_s8): Likewise.
15936 (vabaq_s16): Likewise.
15937 (vabaq_s32): Likewise.
15938 (vabaq_u8): Likewise.
15939 (vabaq_u16): Likewise.
15940 (vabaq_u32): Likewise.
15942 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15944 * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
15945 (aarch64_<su>aba<mode>): ... This. Handle uaba as well.
15946 Change RTL pattern to match.
15948 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
15950 * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
15951 * config/riscv/riscv-c.c (riscv-subset.h): New.
15952 (INCLUDE_STRING): Define.
15953 (riscv_cpu_cpp_builtins): Add new style architecture extension
15955 * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
15956 (riscv_subset_list::end): New.
15957 (riscv_current_subset_list): New.
15959 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
15961 * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
15962 Move to riscv-subset.h.
15963 (struct riscv_subset_t): Ditto.
15964 (class riscv_subset_list): Ditto.
15965 * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
15966 from riscv-common.c.
15967 (struct riscv_subset_t): Ditto.
15968 (class riscv_subset_list): Ditto.
15969 * config/riscv/t-riscv ($(common_out_file)): Add file
15972 2021-01-07 Jakub Jelinek <jakub@redhat.com>
15975 * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
15976 New define_insn patterns.
15978 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
15980 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
15981 (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
15982 (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
15984 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
15986 PR tree-optimization/98560
15987 * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
15988 * internal-fn.c (vec_cond_mask_direct): Get the data mode from
15990 (vec_cond_direct): Likewise argument 2.
15991 (vec_condu_direct, vec_condeq_direct): Delete.
15992 (expand_vect_cond_optab_fn): Rename to...
15993 (expand_vec_cond_optab_fn): ...this, replacing old macro.
15994 (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
15995 (expand_vect_cond_mask_optab_fn): Rename to...
15996 (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
15997 (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
15999 (direct_vec_cond_optab_supported_p): Likewise.
16000 (direct_vec_condu_optab_supported_p): Delete.
16001 (direct_vec_condeq_optab_supported_p): Delete.
16002 * gimple-isel.cc: Include internal-fn.h.
16003 (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
16006 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
16008 PR tree-optimization/98560
16009 * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
16010 IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
16012 2021-01-07 Uroš Bizjak <ubizjak@gmail.com>
16014 * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
16015 rotate_insn and optab code attributes.
16016 Update all uses to merged code attribute.
16017 * config/i386/sse.md: Update all uses to merged code attribute.
16018 * config/i386/mmx.md: Update all uses to merged code attribute.
16020 2021-01-07 Jakub Jelinek <jakub@redhat.com>
16022 PR tree-optimization/98568
16023 * gimple-ssa-store-merging.c (bswap_view_convert): New function.
16024 (bswap_replace): Use it.
16026 2021-01-06 Vladimir N. Makarov <vmakarov@redhat.com>
16028 PR rtl-optimization/97978
16029 * lra-int.h (lra_hard_reg_split_p): New external.
16030 * lra.c (lra_hard_reg_split_p): New global.
16031 (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
16032 * lra-assigns.c (lra_assign): Don't check allocation correctness
16033 after hard reg splitting.
16035 2021-01-06 Martin Sebor <msebor@redhat.com>
16038 * builtins.c (new_delete_mismatch_p): New overload.
16039 (new_delete_mismatch_p (tree, tree)): Call it.
16041 2021-01-06 Alexandre Oliva <oliva@adacore.com>
16043 * Makefile.in (T_GLIMITS_H): New.
16044 (stmp-int-hdrs): Depend on it, use it.
16045 * config/t-vxworks (T_GLIMITS_H): Override it.
16046 (vxw-glimits.h): New.
16048 2021-01-06 Richard Biener <rguenther@suse.de>
16050 PR tree-optimization/98513
16051 * value-range.cc (intersect_ranges): Compare the upper bounds
16052 for the expected relation.
16054 2021-01-06 Gerald Pfeifer <gerald@pfeifer.com>
16057 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com>
16059 * doc/standards.texi (HSAIL): Remove section.
16061 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
16063 * configure: Re-generate.
16065 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16067 * doc/invoke.texi (-std=c++20): Adjust for the publication of
16068 ISO 14882:2020 standard.
16069 * doc/standards.texi: Likewise.
16071 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16073 PR tree-optimization/94802
16074 * expr.h (maybe_optimize_sub_cmp_0): Declare.
16075 * expr.c: Include tree-pretty-print.h and flags.h.
16076 (maybe_optimize_sub_cmp_0): New function.
16077 (do_store_flag): Use it.
16078 * cfgexpand.c (expand_gimple_cond): Likewise.
16080 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
16082 * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
16083 * rtlanal.c (simple_regno_set): Tweak description to clarify the
16086 2021-01-05 Richard Biener <rguenther@suse.de>
16088 PR tree-optimization/98516
16089 * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
16090 lanes when materializing on a VEC_PERM node.
16091 (vectorizable_slp_permutation): Dump the permute properly.
16093 2021-01-05 Richard Biener <rguenther@suse.de>
16095 * tree-vect-slp.c (vect_slp_region): Move debug counter
16096 to cover individual subgraphs.
16098 2021-01-05 Richard Biener <rguenther@suse.de>
16100 PR tree-optimization/98428
16101 * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
16102 vector lane extracts for loop vectorization.
16104 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16106 PR tree-optimization/98514
16107 * tree-ssa-reassoc.c (bb_rank): Change type from long * to
16109 (operand_rank): Change type from hash_map<tree, long> to
16110 hash_map<tree, int64_t>.
16111 (phi_rank): Change return type from long to int64_t.
16112 (loop_carried_phi): Change block_rank variable type from long to
16114 (propagate_rank): Change return type, rank parameter type and
16115 op_rank variable type from long to int64_t.
16116 (find_operand_rank): Change return type from long to int64_t
16117 and change slot variable type from long * to int64_t *.
16118 (insert_operand_rank): Change rank parameter type from long to
16120 (get_rank): Change return type and rank variable type from long to
16121 int64_t. Use PRId64 instead of ld to print the rank.
16122 (init_reassoc): Change rank variable type from long to int64_t
16123 and adjust correspondingly bb_rank and operand_rank initialization.
16125 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16127 PR tree-optimization/96928
16128 * tree-ssa-phiopt.c (xor_replacement): New function.
16129 (tree_ssa_phiopt_worker): Call it.
16131 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16133 PR tree-optimization/96930
16134 * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
16135 from narrower value which has the same type as 1 << B, perform
16136 the right shift on the narrower value followed by extension.
16138 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16140 PR tree-optimization/96239
16141 * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
16143 (get_status_for_store_merging): Don't return BB_INVALID for blocks
16144 with potential bswap optimizable CONSTRUCTORs.
16145 (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
16148 2021-01-05 Richard Biener <rguenther@suse.de>
16150 PR tree-optimization/98381
16151 * tree.c (vector_element_bits): Properly compute bool vector
16153 * tree-vect-loop.c (vectorizable_live_operation): Properly
16154 compute the last lane bit offset.
16156 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
16159 * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
16160 Clear the top 64 bytes of the input XMM register.
16161 (sse_cvttps2pi): Ditto.
16163 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
16166 * config/i386/xopintrin.h (_mm256_cmov_si256): New.
16168 2021-01-05 H.J. Lu <hjl.tools@gmail.com>
16171 * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
16174 2021-01-05 Claudiu Zissulescu <claziss@synopsys.com>
16176 * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
16177 (umaddsidi4_split): Likewise.
16179 2021-01-05 liuhongt <hongtao.liu@intel.com>
16182 * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
16183 define_insn_and_split for zero_extend of subreg HI of pmovskb
16185 (*sse2_pmovskb_zexthisi): Add new combine splitters for
16186 zero_extend of not of subreg HI of pmovskb result.
16188 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
16191 * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
16193 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
16194 convert_memory_address to convert symbolic immediates to ptr_mode
16195 before forcing them to memory.
16197 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
16199 PR rtl-optimization/97144
16200 * recog.c (constrain_operands): Initialize matching_operand
16201 for each alternative, rather than only doing it once.
16203 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
16205 PR rtl-optimization/98403
16206 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
16207 why we don't remove call clobbers.
16208 (function_info::apply_changes_to_insn): Don't attempt to add
16209 call clobbers here.
16211 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
16213 PR tree-optimization/98371
16214 * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
16215 (vect_analyze_loop): If an epilogue loop appears to be cheaper
16216 than the main loop, re-analyze it as a main loop before adopting
16219 2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16222 * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
16223 * aclocal.m4, configure: Regenerate.
16224 * Makefile.in (NETLIBS): Define.
16225 (BACKEND): Remove $(CODYLIB).
16227 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16229 PR rtl-optimization/98334
16230 * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
16231 Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
16233 2021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
16235 * tree-inline.c (expand_call_inline): Restore input_location.
16236 Return result from recursive call.
16238 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
16240 PR tree-optimization/95401
16241 * config/aarch64/aarch64-sve-builtins.cc
16242 (gimple_folder::load_store_cookie): Use bits rather than bytes
16243 for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
16244 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
16245 * tree-vect-stmts.c (vectorizable_store): Likewise.
16246 (vectorizable_load): Likewise.
16248 2021-01-04 Richard Biener <rguenther@suse.de>
16250 PR tree-optimization/98308
16251 * tree-vect-stmts.c (vectorizable_load): Set invariant mask
16254 2021-01-04 Jakub Jelinek <jakub@redhat.com>
16256 PR tree-optimization/95771
16257 * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
16258 with precision smaller than int's precision and types with precision
16259 twice as large as long long. Formatting fixes.
16261 2021-01-04 Richard Biener <rguenther@suse.de>
16263 PR tree-optimization/98464
16264 * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
16265 (vn_valueize_wrapper): ... this. Temporarily adjust vn_context_bb.
16266 (process_bb): Adjust.
16268 2021-01-04 Matthew Malcomson <matthew.malcomson@arm.com>
16271 * doc/invoke.texi (-fsanitize=address): Fix wording describing
16272 clash with -fsanitize=hwaddress.
16274 2021-01-04 Richard Biener <rguenther@suse.de>
16276 PR tree-optimization/98282
16277 * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
16278 invariants as VN_NARY.
16280 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
16283 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
16284 aarch64_simd_reg_or_zero for operand 2. Use the combinez patterns
16285 to handle zero operands.
16287 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
16289 * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
16290 (offset_6bit_unsigned_scaled_p): Fix typo in comment.
16291 (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
16294 2021-01-04 Richard Biener <rguenther@suse.de>
16296 PR tree-optimization/98393
16297 * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
16298 when hitting the limit.
16300 2021-01-04 Richard Biener <rguenther@suse.de>
16302 PR tree-optimization/98291
16303 * tree-vect-loop.c (vectorizable_reduction): Bypass
16304 associativity check for SLP reductions with VF 1.
16306 2021-01-04 Jakub Jelinek <jakub@redhat.com>
16308 PR tree-optimization/96782
16309 * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
16311 2021-01-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
16313 * collect-utils.c (collect_execute): Check dumppfx.
16314 * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
16315 to collect_execute.
16316 (do_link): Add new parameter atsuffix.
16317 (main): Handle -dumpdir option. Skip one argument for
16318 -o, -isystem and -B options.
16319 * gcc.c (make_at_file): New helper function.
16320 (close_at_file): Use it.
16322 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16324 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
16325 Amend handling for LD64_VERSION fallback defaults.
16327 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16329 * config.gcc: Compute default version information
16330 from the configured target. Likewise defaults for
16332 * config/darwin10.h: Removed.
16333 * config/darwin12.h: Removed.
16334 * config/darwin9.h: Removed.
16335 * config/rs6000/darwin8.h: Removed.
16337 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16339 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
16341 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16343 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
16344 * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
16346 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16348 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
16350 * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
16352 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16354 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
16355 for the Darwin10 unwinder stub from here ...
16356 * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
16358 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16360 * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
16361 (ASM_DEBUG_SPEC):Only define if the assembler supports
16363 (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
16364 (DARWIN_PREFER_DWARF): Define.
16365 * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
16366 (DARWIN_PREFER_DWARF): Likewise
16367 (DSYMUTIL_SPEC): Likewise.
16368 (COLLECT_RUN_DSYMUTIL): Likewise.
16369 (ASM_DEBUG_SPEC): Likewise.
16370 (ASM_DEBUG_OPTION_SPEC): Likewise.
16372 2021-01-02 Jan Hubicka <jh@suse.cz>
16374 * cfg.c (free_block): ggc_free bb.
16376 2021-01-01 Jakub Jelinek <jakub@redhat.com>
16378 * gcc.c (process_command): Update copyright notice dates.
16379 * gcov-dump.c (print_version): Ditto.
16380 * gcov.c (print_version): Ditto.
16381 * gcov-tool.c (print_version): Ditto.
16382 * gengtype.c (create_file): Ditto.
16383 * doc/cpp.texi: Bump @copying's copyright year.
16384 * doc/cppinternals.texi: Ditto.
16385 * doc/gcc.texi: Ditto.
16386 * doc/gccint.texi: Ditto.
16387 * doc/gcov.texi: Ditto.
16388 * doc/install.texi: Ditto.
16389 * doc/invoke.texi: Ditto.
16391 2021-01-01 Jakub Jelinek <jakub@redhat.com>
16393 * ChangeLog-2020: Rotate ChangeLog. New file.
16396 Copyright (C) 2021 Free Software Foundation, Inc.
16398 Copying and distribution of this file, with or without modification,
16399 are permitted in any medium without royalty provided the copyright
16400 notice and this notice are preserved.