]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2021-07-21 Thomas Schwinge <thomas@codesourcery.com>
2 Joseph Myers <joseph@codesourcery.com>
3 Cesar Philippidis <cesar@codesourcery.com>
4
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):
7 Handle it.
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.
16
17 2021-07-21 Martin Sebor <msebor@redhat.com>
18
19 * tree-ssa-alias.c (walk_aliased_vdefs_1): Fix typos in a comment.
20
21 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
22
23 * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table):
24 Implement.
25
26 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
27
28 * config/rs6000/rs6000-gen-builtins.c (write_fntype): New
29 callback function.
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.
34
35 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
36
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.
42
43 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
44
45 * config/rs6000/rs6000-gen-builtins.c (write_defines_file):
46 Implement.
47
48 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
49
50 * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New
51 function.
52 (complete_base_type): Likewise.
53 (construct_fntype_id): Likewise.
54 (parse_bif_entry): Call contruct_fntype_id.
55 (parse_ovld_entry): Likewise.
56
57 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
58
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.
71
72 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
73
74 * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs):
75 Implement.
76
77 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
78
79 * config/rs6000/rs6000-gen-builtins.c (parse_args): New function.
80 (parse_prototype): Implement.
81
82 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
83
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.
89 (fnkinds): New enum.
90 (typelist): New struct.
91 (attrinfo): Likewise.
92 (MAXRESTROPNDS): New macro.
93 (prototype): New struct.
94 (MAXBIFS): New macro.
95 (bifdata): New struct.
96 (bifs): New variable.
97 (curr_bif): Likewise.
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.
109
110 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
111
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.
128 (main): Likewise.
129
130 2021-07-21 H.J. Lu <hjl.tools@gmail.com>
131
132 PR target/101549
133 * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2
134 from CRC32 _builtin functions.
135
136 2021-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
137
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.
140
141 2021-07-21 Kito Cheng <kito.cheng@sifive.com>
142
143 Revert:
144 2021-07-20 Kito Cheng <kito.cheng@sifive.com>
145
146 * config.gcc (riscv*-*-*): Detect which python is available.
147
148 2021-07-21 Jakub Jelinek <jakub@redhat.com>
149
150 PR middle-end/101535
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.
154
155 2021-07-21 Richard Sandiford <richard.sandiford@arm.com>
156
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.
160
161 2021-07-21 Richard Sandiford <richard.sandiford@arm.com>
162
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.
167
168 2021-07-21 Kewen Lin <linkw@linux.ibm.com>
169
170 * tree-data-ref.c (free_dependence_relations): Adjust to pass vec
171 by reference.
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
176 members.
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
191 vec.
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
196 changes.
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
208 removal.
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.
222
223 2021-07-20 Martin Sebor <msebor@redhat.com>
224
225 PR middle-end/101397
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
229 built-ins.
230
231 2021-07-20 Martin Sebor <msebor@redhat.com>
232
233 PR middle-end/101300
234 * tree-ssa-uninit.c (check_defs): Handle UBSAN built-ins.
235
236 2021-07-20 Jeff Law <jlaw@localhost.localdomain>
237
238 * function.c (assign_parm_setup_block): Use adjust_address instead
239 of change_address to preserve MEM_EXPR and friends.
240
241 2021-07-20 Martin Sebor <msebor@redhat.com>
242
243 * cfgloop.h (single_likely_exit): Adjust by-value argument to
244 by-const-reference.
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
259 by-reference.
260 * gimple.h (gimple_build_call_vec): Adjust by-value argument to
261 by-const-reference.
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
266 by-reference.
267 * haifa-sched.c (calc_priorities): Adjust by-value argument to
268 by-const-reference.
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
273 by-reference.
274 (find_more_scalar_values_for_callers_subset): Adjust by-value argument to
275 by-const-reference.
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
282 by-reference.
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.
349
350 2021-07-20 Jakub Jelinek <jakub@redhat.com>
351
352 PR target/101384
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.
367
368 2021-07-20 Richard Biener <rguenther@suse.de>
369
370 PR debug/101473
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
376 dwarf_file_data.
377 (file_name_acquire): Do not remap the filename again.
378 (maybe_emit_file): Likewise.
379
380 2021-07-20 Jonathan Wright <jonathan.wright@arm.com>
381
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>):
386 Rename to...
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
398 RTL pattern.
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.
413 (vtbl2_s8): 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.
440
441 2021-07-20 Uroš Bizjak <ubizjak@gmail.com>
442
443 PR target/100182
444 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
445 Remove.
446 (define_peephole2 atomic_loaddi_fpu): Ditto.
447
448 2021-07-20 Kito Cheng <kito.cheng@sifive.com>
449
450 * config.gcc (riscv*-*-*): Detect which python is available.
451
452 2021-07-20 Kewen Lin <linkw@linux.ibm.com>
453
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.
460
461 2021-07-20 Kewen Lin <linkw@linux.ibm.com>
462
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
469 function CFN_MULH.
470
471 2021-07-19 Indu Bhagat <indu.bhagat@oracle.com>
472
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.
478
479 2021-07-19 Indu Bhagat <indu.bhagat@oracle.com>
480
481 * flags.h (ctf_debuginfo_p): New function declaration.
482 * opts.c (ctf_debuginfo_p): New function definition.
483
484 2021-07-19 Andrew Stubbs <ams@codesourcery.com>
485
486 PR target/100208
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
496 SRAM-ECC flag.
497 (EF_AMDGPU_XNACK): New.
498 (EF_AMDGPU_SRAM_ECC): New.
499 (elf_flags): 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.
503
504 2021-07-19 Andrew Pinski <apinski@marvell.com>
505
506 PR target/101205
507 * config/aarch64/aarch64.md (csneg3_uxtw_insn): Rename to ...
508 (*cs<neg_not_cs>3_uxtw_insn4): and extend to NEG_NOT.
509
510 2021-07-19 Richard Biener <rguenther@suse.de>
511
512 PR tree-optimization/101505
513 * tree-vect-patterns.c (vect_determine_precisions): Walk
514 PHIs also for loop vectorization.
515
516 2021-07-19 Richard Biener <rguenther@suse.de>
517
518 * gimple.h (gimple_expr_type): Remove.
519 * doc/gimple.texi: Remove gimple_expr_type documentation.
520
521 2021-07-19 Richard Biener <rguenther@suse.de>
522
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
527 values.
528 * tree-ssa-pre.c (compute_avail): Do not try to PRE calls
529 without a value.
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.
538
539 2021-07-19 Richard Biener <rguenther@suse.de>
540
541 * tree-vrp.c (register_edge_assert_for_2): Use the
542 type from the LHS.
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
551 type of the LHS.
552
553 2021-07-18 H.J. Lu <hjl.tools@gmail.com>
554
555 PR target/101492
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
559 explicitly.
560
561 2021-07-18 H.J. Lu <hjl.tools@gmail.com>
562
563 PR target/101495
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.
568
569 2021-07-17 Jan Hubicka <hubicka@ucw.cz>
570
571 * tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED.
572 (handle_const_call): Liekise
573 (handle_pure_call): Liekise
574
575 2021-07-17 Andrew MacLeod <amacleod@redhat.com>
576
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.
582
583 2021-07-16 David Malcolm <dmalcolm@redhat.com>
584
585 * doc/analyzer.texi: Add __analyzer_dump_state.
586
587 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
588
589 * config/rs6000/rbtree.c: New file.
590 * config/rs6000/rbtree.h: New file.
591
592 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
593
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.
598
599 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
600
601 * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement.
602
603 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
604
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.
612
613 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
614
615 * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New
616 function.
617 (advance_line): Likewise.
618 (safe_inc_pos): Likewise.
619 (match_identifier): Likewise.
620 (match_integer): Likewise.
621 (match_to_right_bracket): Likewise.
622
623 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
624
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.
638 (line): Likewise.
639 (pos): Likewise.
640 (diag): Likewise.
641 (bif_diag): New function.
642 (ovld_diag): Likewise.
643
644 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
645
646 * config/rs6000/rs6000-builtin-new.def: New.
647 * config/rs6000/rs6000-overload.def: New.
648
649 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
650
651 * config/rs6000/rs6000-gen-builtins.c: New.
652
653 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
654
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
659 headers to scan.
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.
668
669 2021-07-16 Richard Biener <rguenther@suse.de>
670
671 * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use
672 the type of the LHS.
673 (find_bswap_or_nop_1): Likewise.
674 (find_bswap_or_nop): Likewise.
675 * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust
676 prototype.
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
685 the type of the LHS.
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.
694
695 2021-07-16 Jan Hubicka <hubicka@ucw.cz>
696
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;
709 handle call flags.
710 (analyze_parms): Also analyze const functions; update conition on
711 flags usefulness.
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.
719
720 2021-07-16 Richard Biener <rguenther@suse.de>
721
722 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use
723 the type of the LHS.
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
732 the def.
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.
737
738 2021-07-16 Ilya Leoshkevich <iii@linux.ibm.com>
739
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,
746 use UNSPEC_PLT31.
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.
756 (*movdi_64): Use %K.
757 (reload_base_64): Likewise.
758 (*sibcall_brc): Likewise.
759 (*sibcall_brcl): Likewise.
760 (*sibcall_value_brc): Likewise.
761 (*sibcall_value_brcl): Likewise.
762 (*bras): Likewise.
763 (*brasl): Likewise.
764 (*bras_r): 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.
771
772 2021-07-16 Richard Biener <rguenther@suse.de>
773
774 PR tree-optimization/101467
775 * tree-vect-stmts.c (vect_gen_while): Properly guard
776 make_temp_ssa_name usage.
777
778 2021-07-16 Cooper Qu <cooper.qu@linux.alibaba.com>
779
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.
786
787 2021-07-16 Richard Biener <rguenther@suse.de>
788
789 * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign
790 conversion issues with the partial reduction of the reused
791 vector accumulator.
792
793 2021-07-16 Richard Biener <rguenther@suse.de>
794
795 * config/i386/i386-options.c (ix86_option_override_internal): Set
796 param_vect_partial_vector_usage to zero if not set.
797
798 2021-07-15 Uroš Bizjak <ubizjak@gmail.com>
799
800 PR target/101346
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.
807
808 2021-07-15 Andrew MacLeod <amacleod@redhat.com>
809
810 * gimple-range-fold.cc (adjust_pointer_diff_expr): Use
811 gimple_range_type.
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.
820
821 2021-07-15 Martin Sebor <msebor@redhat.com>
822
823 PR middle-end/97027
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.
833
834 2021-07-15 David Malcolm <dmalcolm@redhat.com>
835
836 PR analyzer/95006
837 PR analyzer/94713
838 PR analyzer/94714
839 * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value.
840
841 2021-07-15 David Malcolm <dmalcolm@redhat.com>
842
843 * doc/invoke.texi (-fdump-analyzer-exploded-paths): New.
844
845 2021-07-15 Martin Sebor <msebor@redhat.com>
846
847 PR c/101289
848 PR c/97548
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.
852
853 2021-07-15 Martin Jambor <mjambor@suse.cz>
854
855 * profile-count.h (profile_count::value): Change the return type to
856 uint64_t.
857 * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print
858 statement.
859 * tree-cfg.c (dump_function_to_file): Likewise.
860
861 2021-07-15 Bill Schmidt <wschmidt@linux.ibm.com>
862
863 PR target/101129
864 * config/rs6000/rs6000-p8swap.c (has_part_mult): New.
865 (rs6000_analyze_swaps): Insns containing a subreg of a mult are
866 not swappable.
867
868 2021-07-15 Richard Biener <rguenther@suse.de>
869
870 * tree-vectorizer.h (vect_gen_while): Match up with
871 vect_gen_while_not.
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.
876
877 2021-07-15 Aldy Hernandez <aldyh@redhat.com>
878
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
884 adjust_range.
885 (gimple_ranger::range_on_entry): Same.
886
887 2021-07-15 Tamar Christina <tamar.christina@arm.com>
888
889 Revert:
890 2021-07-14 Tamar Christina <tamar.christina@arm.com>
891
892 * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
893
894 2021-07-15 Tamar Christina <tamar.christina@arm.com>
895
896 Revert:
897 2021-07-14 Tamar Christina <tamar.christina@arm.com>
898
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):
905 Update builtins.
906
907 2021-07-15 Jakub Jelinek <jakub@redhat.com>
908
909 PR middle-end/101437
910 * gimplify.c (gimplify_expr): Throw away volatile reads from empty
911 types even if they have non-BLKmode TYPE_MODE.
912
913 2021-07-15 Richard Biener <rguenther@suse.de>
914
915 PR driver/101383
916 * gcc.c (process_command): Process -gtoggle like process_options
917 would after parsing options.
918
919 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org>
920
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.
938
939 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org>
940
941 * tree-diagnostic.c (diagnostic_report_current_function): Use the
942 diagnostic's location, not input_location.
943
944 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org>
945
946 * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to
947 diagnostics.
948 (expand_asm_stmt): Likewise.
949
950 2021-07-14 Peter Bergner <bergner@linux.ibm.com>
951
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.
956
957 2021-07-14 Peter Bergner <bergner@linux.ibm.com>
958
959 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later
960 in the file.
961
962 2021-07-14 Jason Merrill <jason@redhat.com>
963
964 * sel-sched-ir.h (get_all_loop_exits): Use auto_vec.
965
966 2021-07-14 Jason Merrill <jason@redhat.com>
967
968 * doc/invoke.texi: -fdelete-dead-exceptions is on by default for
969 C++.
970
971 2021-07-14 Tamar Christina <tamar.christina@arm.com>
972
973 * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
974 Remove erroneous line.
975
976 2021-07-14 Andrew MacLeod <amacleod@redhat.com>
977
978 * params.opt (param_evrp_mode): Change default.
979
980 2021-07-14 Tamar Christina <tamar.christina@arm.com>
981
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):
988 Update builtins.
989
990 2021-07-14 Tamar Christina <tamar.christina@arm.com>
991
992 * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
993
994 2021-07-14 Tamar Christina <tamar.christina@arm.com>
995
996 * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document.
997
998 2021-07-14 Tamar Christina <tamar.christina@arm.com>
999
1000 * config/arm/neon.md (usdot_prod<vsi2qi>): New.
1001
1002 2021-07-14 Tamar Christina <tamar.christina@arm.com>
1003
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>):
1010 Rename to...
1011 (@<sur>dot_prod<vsi2qi>): ...This.
1012 * config/aarch64/aarch64-sve-builtins-base.cc
1013 (svusdot_impl::expand): Use it.
1014
1015 2021-07-14 Tamar Christina <tamar.christina@arm.com>
1016
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
1025 optab subtype.
1026 (vect_widened_op_tree): Optionally ignore
1027 mismatch types.
1028 (vect_recog_dot_prod_pattern): Support usdot_prod_optab.
1029
1030 2021-07-14 H.J. Lu <hjl.tools@gmail.com>
1031
1032 PR target/101395
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
1038 in 64-bit mode.
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.
1042
1043 2021-07-14 Richard Biener <rguenther@suse.de>
1044
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
1048 accesses.
1049
1050 2021-07-14 Jakub Jelinek <jakub@redhat.com>
1051
1052 PR go/101407
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.
1056
1057 2021-07-14 Richard Biener <rguenther@suse.de>
1058
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.
1066
1067 2021-07-14 Alexandre Oliva <oliva@adacore.com>
1068
1069 * tree-ssa-alias.c (attr_fnspec::verify): Fix index in
1070 non-'t'-sized arg check.
1071
1072 2021-07-14 Alexandre Oliva <oliva@adacore.com>
1073
1074 * tree-cfg.c (cleanup_dead_labels_eh): Update
1075 post_landing_pad label upon change of landing pad block's
1076 primary label.
1077 (cleanup_dead_labels): Check that a removed label is not that
1078 of a landing pad.
1079
1080 2021-07-13 Jonathan Wright <jonathan.wright@arm.com>
1081
1082 * combine.c (combine_simplify_rtx): Add vec_select -> subreg
1083 simplification.
1084 * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64):
1085 Add Neon to general purpose register case for zero-extend
1086 pattern.
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
1095 of the vector.
1096 * rtlanal.h (vec_series_lowpart_p): Define.
1097 * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
1098 Add vec_select -> subreg simplification.
1099
1100 2021-07-13 Paul A. Clarke <pc@us.ibm.com>
1101
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.
1105
1106 2021-07-13 Roger Sayle <roger@nextmovesoftware.com>
1107 Richard Biener <rguenther@suse.de>
1108
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.
1115
1116 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1117
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.
1145
1146 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1147
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.
1155
1156 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1157
1158 * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with...
1159 (neutral_op_for_reduction): ...this, providing a more general
1160 interface.
1161 (vect_create_epilog_for_reduction): Update accordingly.
1162 (vectorizable_reduction): Likewise.
1163 (vect_transform_cycle_phi): Likewise.
1164
1165 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1166
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.
1170
1171 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1172
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.
1176
1177 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1178
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.
1185
1186 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1187
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.
1191
1192 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1193
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.
1197
1198 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1199
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.
1204
1205 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1206
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".
1210
1211 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
1212
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.
1219
1220 2021-07-13 Jakub Jelinek <jakub@redhat.com>
1221 Richard Biener <rguenther@suse.de>
1222
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.
1240
1241 2021-07-13 Kito Cheng <kito.cheng@sifive.com>
1242
1243 PR target/101275
1244 * config/riscv/constraints.md ("S"): Update description and remove
1245 @internal.
1246 * doc/md.texi (Machine Constraints): Document the 'S' constraints
1247 for RISC-V.
1248
1249 2021-07-13 Richard Biener <rguenther@suse.de>
1250
1251 Revert:
1252 2021-07-12 Richard Biener <rguenther@suse.de>
1253
1254 * tree-vect-slp.c (vect_slp_region): Show the number of
1255 SLP graph entries in the optimization message.
1256
1257 2021-07-13 Michael Meissner <meissner@linux.ibm.com>
1258
1259 * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable
1260 value to to long.
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
1264 type to long.
1265
1266 2021-07-12 Andrew MacLeod <amacleod@redhat.com>
1267
1268 * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call):
1269 Query relation between the 2 operands and use it.
1270
1271 2021-07-12 Sergei Trofimovich <siarheit@google.com>
1272
1273 * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo.
1274
1275 2021-07-12 Uroš Bizjak <ubizjak@gmail.com>
1276
1277 PR target/101424
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.
1286
1287 2021-07-12 Andrew MacLeod <amacleod@redhat.com>
1288
1289 PR tree-optimization/101335
1290 * range-op.cc (operator_cast::lhs_op1_relation): Delete.
1291
1292 2021-07-12 Andrew Pinski <apinski@marvell.com>
1293
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.
1298
1299 2021-07-12 Richard Biener <rguenther@suse.de>
1300
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.
1305
1306 2021-07-12 Richard Biener <rguenther@suse.de>
1307
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.
1319
1320 2021-07-12 Uroš Bizjak <ubizjak@gmail.com>
1321
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.
1337
1338 2021-07-12 Richard Biener <rguenther@suse.de>
1339
1340 * tree-vect-slp.c (vect_slp_region): Show the number of
1341 SLP graph entries in the optimization message.
1342
1343 2021-07-12 Richard Biener <rguenther@suse.de>
1344
1345 PR tree-optimization/101394
1346 * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting
1347 copies from abnormals for a full redundancy.
1348
1349 2021-07-12 Richard Biener <rguenther@suse.de>
1350
1351 PR middle-end/101423
1352 * gimple.c (gimple_could_trap_p_1): Internal function calls
1353 do not trap.
1354 * tree-eh.c (tree_could_trap_p): Likewise.
1355
1356 2021-07-12 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
1357
1358 PR target/66791
1359 * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with
1360 __a * __b.
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.
1366
1367 2021-07-12 Martin Liska <mliska@suse.cz>
1368
1369 PR sanitizer/101425
1370 * gcc.c (check_offload_target_name): Call
1371 candidates_list_and_hint only if we have a candidate.
1372
1373 2021-07-12 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
1374
1375 PR target/98435
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.
1379
1380 2021-07-12 Roger Sayle <roger@nextmovesoftware.com>
1381
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
1385 the type extension.
1386
1387 2021-07-09 Roger Sayle <roger@nextmovesoftware.com>
1388 Uroš Bizjak <ubizjak@gmail.com>
1389
1390 * config/i386/i386.md (*divmodsi4_const): Optimize SImode
1391 divmod of a constant numerator with new define_insn_and_split.
1392
1393 2021-07-09 Iain Sandoe <iain@sandoe.co.uk>
1394
1395 PR target/100152
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.
1400
1401 2021-07-09 Eric Botcazou <ebotcazou@adacore.com>
1402
1403 PR target/101377
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.
1407
1408 2021-07-09 Uroš Bizjak <ubizjak@gmail.com>
1409
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.
1413
1414 2021-07-09 Sergei Trofimovich <siarheit@google.com>
1415
1416 * doc/md.texi: Don't split @smallexample in multiple @groups.
1417
1418 2021-07-09 Sergei Trofimovich <siarheit@google.com>
1419
1420 * doc/md.texi: Add missing 'see' word.
1421
1422 2021-07-09 Andrew Pinski <apinski@marvell.com>
1423
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
1430 used.
1431
1432 2021-07-09 Xi Ruoyao <xry111@mengyan1223.wang>
1433
1434 PR target/100760
1435 PR target/100761
1436 PR target/100762
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.
1441
1442 2021-07-09 Kewen Lin <linkw@linux.ibm.com>
1443
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,
1449 MODU_V4SI): Adjust.
1450
1451 2021-07-08 Jeff Law <jeffreyalaw@gmail.com>
1452
1453 * config/h8300/shiftrotate.md (variable shifts): Expose condition
1454 code handling for the test before the loop.
1455
1456 2021-07-08 Martin Jambor <mjambor@suse.cz>
1457
1458 PR ipa/101066
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.
1468
1469 2021-07-08 Martin Sebor <msebor@redhat.com>
1470
1471 PR bootstrap/101374
1472 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
1473 Use Object Size Type 0 instead of 1.
1474
1475 2021-07-08 Richard Sandiford <richard.sandiford@arm.com>
1476
1477 * tree-vect-loop.c (vectorizable_reduction): Remove always-true
1478 if condition.
1479
1480 2021-07-08 Richard Sandiford <richard.sandiford@arm.com>
1481
1482 * match.pd: Simplify an extend-operate-truncate sequence involving
1483 a POLY_INT_CST.
1484
1485 2021-07-08 Roger Sayle <roger@nextmovesoftware.com>
1486 Richard Biener <rguenther@suse.de>
1487
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.
1492
1493 2021-07-08 Uroš Bizjak <ubizjak@gmail.com>
1494
1495 PR target/100637
1496 * config/i386/i386-expand.c (ix86_expand_sse_unpack):
1497 Handle V4QI mode.
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.
1512
1513 2021-07-08 Michael Meissner <meissner@linux.ibm.com>
1514
1515 PR target/100809
1516 * config/rs6000/rs6000.md (udivti3): New insn.
1517 (divti3): New insn.
1518 (umodti3): New insn.
1519 (modti3): New insn.
1520
1521 2021-07-07 Martin Sebor <msebor@redhat.com>
1522
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.
1535
1536 2021-07-07 Peter Bergner <bergner@linux.ibm.com>
1537
1538 * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP
1539 and VSX_BUILTIN_STXVP.
1540
1541 2021-07-07 Martin Sebor <msebor@redhat.com>
1542
1543 PR target/101363
1544 * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove
1545 a stray %K from error_at() missed in r12-2088.
1546
1547 2021-07-07 Richard Biener <rguenther@suse.de>
1548
1549 PR tree-optimization/99728
1550 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record
1551 aggregate copies.
1552 (mem_refs_may_alias_p): Add assert we handled aggregate
1553 copies elsewhere.
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
1559 copies.
1560
1561 2021-07-06 Indu Bhagat <indu.bhagat@oracle.com>
1562
1563 PR debug/101283
1564 * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get
1565 number of bits.
1566
1567 2021-07-06 Martin Sebor <msebor@redhat.com>
1568
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.
1573
1574 2021-07-06 Martin Sebor <msebor@redhat.com>
1575
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.
1584
1585 2021-07-06 Martin Sebor <msebor@redhat.com>
1586
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.
1617
1618 2021-07-06 Uroš Bizjak <ubizjak@gmail.com>
1619
1620 PR target/97194
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.
1628
1629 2021-07-06 Jeff Law <jeffreyalaw@gmail.com>
1630
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.
1635
1636 2021-07-06 Iain Sandoe <iain@sandoe.co.uk>
1637
1638 PR bootstrap/100246
1639 * config/i386/i386.h (struct stringop_algs): Define a CTOR for
1640 this type.
1641
1642 2021-07-06 Richard Biener <rguenther@suse.de>
1643
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.
1657
1658 2021-07-06 Richard Biener <rguenther@suse.de>
1659
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
1663 at -O1 but not -Og.
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.
1667
1668 2021-07-06 Iain Sandoe <iain@sandoe.co.uk>
1669
1670 * doc/install.texi: Document --with-dsymutil.
1671
1672 2021-07-06 Andrew Pinski <apinski@marvell.com>
1673
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.
1680
1681 2021-07-06 Kewen Lin <linkw@linux.ibm.com>
1682
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.
1686
1687 2021-07-06 Kewen Lin <linkw@linux.ibm.com>
1688
1689 PR rtl-optimization/100328
1690 * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new
1691 parameter.
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.
1700
1701 2021-07-05 Jeff Law <jeffreyalaw@gmail.com>
1702
1703 * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to
1704 generate condition code aware RTL directly.
1705
1706 2021-07-05 Andrew Pinski <apinski@marvell.com>
1707
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.
1713
1714 2021-07-05 Andrew Pinski <apinski@marvell.com>
1715
1716 * tree-ssa-phiopt.c (gimple_simplify_phiopt):
1717 If "A ? B : C" fails to simplify, try "(!A) ? C : B".
1718
1719 2021-07-05 Andrew Pinski <apinski@marvell.com>
1720
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.
1728
1729 2021-07-05 Andrew Pinski <apinski@marvell.com>
1730
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.
1742
1743 2021-07-05 Iain Sandoe <iain@sandoe.co.uk>
1744
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.
1756
1757 2021-07-05 Uroš Bizjak <ubizjak@gmail.com>
1758
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.
1779
1780 2021-07-05 Richard Biener <rguenther@suse.de>
1781
1782 * tree-vect-loop-manip.c (vect_loop_versioning): Do not
1783 set LOOP_C_INFINITE on the vectorized loop.
1784
1785 2021-07-05 Richard Biener <rguenther@suse.de>
1786
1787 PR middle-end/101291
1788 * cfgloopmanip.c (loop_version): Set the loop copy of the
1789 versioned loop to the new loop.
1790
1791 2021-07-04 Iain Sandoe <iain@sandoe.co.uk>
1792
1793 PR target/100269
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.
1806
1807 2021-07-03 H.J. Lu <hjl.tools@gmail.com>
1808
1809 PR middle-end/101294
1810 * expr.c (store_constructor): Don't use vec_duplicate on vector.
1811
1812 2021-07-02 Martin Sebor <msebor@redhat.com>
1813
1814 PR middle-end/98871
1815 PR middle-end/98512
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.
1824
1825 2021-07-02 Peter Bergner <bergner@linux.ibm.com>
1826
1827 * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
1828 New macros.
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.
1835
1836 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
1837
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.
1848
1849 2021-07-02 Andrew MacLeod <amacleod@redhat.com>
1850
1851 PR tree-optimization/101223
1852 * range-op.cc (build_lt): Add -1 for signed values.
1853 (built_gt): Subtract -1 for signed values.
1854
1855 2021-07-02 David Faust <david.faust@oracle.com>
1856
1857 * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT.
1858 (btf_asm_type): Likewise.
1859
1860 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
1861
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.
1881
1882 2021-07-02 Iain Sandoe <iain@sandoe.co.uk>
1883
1884 PR debug/101283
1885 * config/darwin.h (DSYMUTIL_SPEC): Do not try to run
1886 dsymutil for BTF/CTF.
1887
1888 2021-07-02 Iain Sandoe <iain@sandoe.co.uk>
1889
1890 PR debug/101283
1891 * config/darwin.h (CTF_INFO_SECTION_NAME): Update the
1892 segment to include BTF.
1893 (BTF_INFO_SECTION_NAME): New.
1894
1895 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
1896
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.
1901
1902 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
1903
1904 * config/frv/frv-protos.h (integer_register_operand): Adjust return
1905 type.
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.
1928
1929 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
1930
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
1936 return type.
1937 (xstormy16_splittable_below100_operand): Likewise.
1938
1939 2021-07-02 Richard Biener <rguenther@suse.de>
1940
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.
1946
1947 2021-07-02 Eric Botcazou <ebotcazou@adacore.com>
1948
1949 * config/i386/i386.c (asm_preferred_eh_data_format): Always use the
1950 PIC encodings for PE-COFF targets.
1951
1952 2021-07-02 Jakub Jelinek <jakub@redhat.com>
1953
1954 PR target/101286
1955 * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant):
1956 Return nullptr for TImode inner mode.
1957
1958 2021-07-02 Richard Biener <rguenther@suse.de>
1959
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
1965 inverse.
1966
1967 2021-07-02 Hongyu Wang <hongyu.wang@intel.com>
1968
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.
1972
1973 2021-07-02 Eugene Rozenfeld <erozen@microsoft.com>
1974
1975 * config/i386/gcc-auto-profile: regenerate
1976
1977 2021-07-02 liuhongt <hongtao.liu@intel.com>
1978
1979 * config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to ..
1980 (trunc<mode><pmov_dst_4_lower>2): this.
1981
1982 2021-07-01 David Malcolm <dmalcolm@redhat.com>
1983
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
2012 to...
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
2020 to fields.
2021 (fcache::~fcache): Rename to...
2022 (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes
2023 to fields.
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.
2045
2046 2021-07-01 Michael Meissner <meissner@linux.ibm.com>
2047
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
2051 types.
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.
2057
2058 2021-07-01 Iain Sandoe <iain@sandoe.co.uk>
2059
2060 PR debug/101283
2061 * config/darwin.h (CTF_INFO_SECTION_NAME): New.
2062
2063 2021-07-01 H.J. Lu <hjl.tools@gmail.com>
2064
2065 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
2066 Make it global.
2067 * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate):
2068 New prototype.
2069 * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator.
2070 (vec_duplicate<mode>): New expander.
2071
2072 2021-07-01 H.J. Lu <hjl.tools@gmail.com>
2073
2074 PR target/100865
2075 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
2076 New prototype.
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
2085 prototype.
2086 * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function.
2087
2088 2021-07-01 Uroš Bizjak <ubizjak@gmail.com>
2089
2090 * config/i386/predicates.md (ix86_endbr_immediate_operand):
2091 Return true/false instead of 1/0.
2092 (movq_parallel): Ditto.
2093
2094 2021-07-01 Uroš Bizjak <ubizjak@gmail.com>
2095
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.
2106
2107 2021-07-01 Uroš Bizjak <ubizjak@gmail.com>
2108
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.
2138
2139 2021-07-01 Richard Biener <rguenther@suse.de>
2140
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
2146 dependence.
2147
2148 2021-07-01 Richard Biener <rguenther@suse.de>
2149
2150 PR tree-optimization/101278
2151 * tree-ssa-dse.c (dse_classify_store): First check for
2152 uses, then ignore stmt for chaining purposes.
2153
2154 2021-07-01 Richard Biener <rguenther@suse.de>
2155
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.
2159
2160 2021-07-01 Uroš Bizjak <ubizjak@gmail.com>
2161
2162 PR target/101044
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.
2175
2176 2021-07-01 Richard Biener <rguenther@suse.de>
2177
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.
2185
2186 2021-07-01 Jakub Jelinek <jakub@redhat.com>
2187
2188 PR debug/101266
2189 * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR.
2190
2191 2021-07-01 Jakub Jelinek <jakub@redhat.com>
2192
2193 PR middle-end/94366
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.
2198
2199 2021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com>
2200
2201 * config/gcn/gcn.c: Include dwarf2.h.
2202 (gcn_addr_space_debug): New function.
2203 (TARGET_ADDR_SPACE_DEBUG): New hook.
2204
2205 2021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com>
2206
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
2210 when emitting CFI.
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.
2214
2215 2021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com>
2216
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.
2228
2229 2021-06-30 Richard Biener <rguenther@suse.de>
2230
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
2235 that.
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
2241 masked loads.
2242 (vect_is_simple_use): Remove special-casing of masked stores.
2243
2244 2021-06-30 Tobias Burnus <tobias@codesourcery.com>
2245
2246 * common.opt (foffload): Remove help as Driver only.
2247 * gcc.c (display_help): Add -foffload.
2248
2249 2021-06-30 Tobias Burnus <tobias@codesourcery.com>
2250
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.
2257
2258 2021-06-30 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
2259
2260 PR target/66791
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.
2278
2279 2021-06-30 Richard Biener <rguenther@suse.de>
2280
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.
2285
2286 2021-06-30 liuhongt <hongtao.liu@intel.com>
2287
2288 PR target/101248
2289 * config/i386/sse.md
2290 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>):
2291 Refined to ..
2292 (avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>):
2293 this.
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.
2300
2301 2021-06-30 David Edelsohn <dje.gcc@gmail.com>
2302
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.
2307
2308 2021-06-29 Sergei Trofimovich <siarheit@google.com>
2309
2310 * doc/generic.texi: Fix s/net yet/not yet/ typo.
2311
2312 2021-06-29 Andrew MacLeod <amacleod@redhat.com>
2313
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.
2317
2318 2021-06-29 Andrew MacLeod <amacleod@redhat.com>
2319
2320 * value-query.cc (gimple_range_global): Allow phis.
2321
2322 2021-06-29 Andrew MacLeod <amacleod@redhat.com>
2323
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.
2338
2339 2021-06-29 Uroš Bizjak <ubizjak@gmail.com>
2340
2341 PR target/95046
2342 * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern.
2343
2344 2021-06-29 Julian Brown <julian@codesourcery.com>
2345
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
2349 otherwise.
2350 (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions.
2351 (MAX_FIXED_MODE_SIZE): Change to 128.
2352
2353 2021-06-29 Julian Brown <julian@codesourcery.com>
2354
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.
2359
2360 2021-06-29 Julian Brown <julian@codesourcery.com>
2361
2362 * config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm,
2363 muldi3): Add patterns.
2364
2365 2021-06-29 Julian Brown <julian@codesourcery.com>
2366
2367 * config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander.
2368 (<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns.
2369
2370 2021-06-29 Julian Brown <julian@codesourcery.com>
2371
2372 * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.
2373
2374 2021-06-29 Joseph Myers <joseph@codesourcery.com>
2375
2376 * btfout.c, ctfout.c: Include "memmodel.h".
2377
2378 2021-06-29 Tobias Burnus <tobias@codesourcery.com>
2379
2380 * gcc.c (check_offload_target_name): Cast len argument to
2381 %q.*s to 'int'; avoid -Wstringop-truncation warning.
2382
2383 2021-06-29 Richard Biener <rguenther@suse.de>
2384
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.
2388
2389 2021-06-29 Tobias Burnus <tobias@codesourcery.com>
2390
2391 PR other/67300
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):
2404 Likewise.
2405 * opts.c (common_handle_option): Likewise.
2406
2407 2021-06-29 Tobias Burnus <tobias@codesourcery.com>
2408
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.
2413
2414 2021-06-29 Richard Biener <rguenther@suse.de>
2415
2416 * tree-vect-slp.c (slpg_vertex::visited): Remove.
2417 (vect_slp_perms_eq): Handle -1 permutes.
2418 (vect_optimize_slp): Rewrite permute propagation.
2419
2420 2021-06-29 Jakub Jelinek <jakub@redhat.com>
2421
2422 PR c++/101210
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
2425 reference type.
2426
2427 2021-06-29 Richard Biener <rguenther@suse.de>
2428
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.
2432
2433 2021-06-29 Jan-Benedict Glaw <jbglaw@getslash.de>
2434
2435 * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning.
2436 * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove
2437 "register" keyword.
2438 (pdp11_initial_elimination_offset) Remove unused variable.
2439 (pdp11_cmp_length) Ditto.
2440 (pdp11_insn_cost): Ditto, and fix signedness warning.
2441
2442 2021-06-29 David Edelsohn <dje.gcc@gmail.com>
2443
2444 * btfout.c: Include tm_p.h.
2445 * ctfout.c: Same.
2446
2447 2021-06-28 Indu Bhagat <indu.bhagat@oracle.com>
2448
2449 * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as
2450 frame related.
2451 (bpf_expand_epilogue): Likewise.
2452 * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0.
2453 Do not define DBX_DEBUGGING_INFO.
2454
2455 2021-06-28 Indu Bhagat <indu.bhagat@oracle.com>
2456
2457 * doc/invoke.texi: Document the CTF and BTF debug info options.
2458
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>
2463
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.
2468 * ctfc.c: Likewise.
2469 * ctfc.h: Likewise.
2470 * ctfout.c: Likewise.
2471 * dwarf2ctf.c: Likewise.
2472 * dwarf2ctf.h: Likewise.
2473 * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and
2474 BTF_DEBUG.
2475 * dwarf2out.c (dwarf2out_source_line): Likewise.
2476 (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to
2477 be generated.
2478 (debug_format_do_cu): New function.
2479 (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for
2480 them if requested.
2481 Include dwarf2ctf.c.
2482 * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug
2483 formats.
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
2498 frontend is not C.
2499
2500 2021-06-28 Jose E. Marchesi <jose.marchesi@oracle.com>
2501
2502 * dwarf2out.c (AT_class): Function is no longer static.
2503 (AT_int): Likewise.
2504 (AT_unsigned): Likewise.
2505 (AT_loc): Likewise.
2506 (get_AT): 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.
2524
2525 2021-06-28 Martin Jambor <mjambor@suse.cz>
2526
2527 PR ipa/93385
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
2535 new mwmbers.
2536 (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that
2537 are dead.
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.
2541
2542 2021-06-28 Martin Jambor <mjambor@suse.cz>
2543
2544 PR ipa/93385
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
2557 been.
2558 * cgraphclones.c (cgraph_node::create_clone): Do not copy performed
2559 splits.
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
2585 modify_gimple_stmt.
2586 (ipa_edge_modifications_finalize): New function.
2587 * tree-inline.c (remap_gimple_stmt): Pass original statement to
2588 modify_gimple_stmt.
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.
2594
2595 2021-06-28 Andrew Pinski <apinski@marvell.com>
2596
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.
2601
2602 2021-06-28 Richard Biener <rguenther@suse.de>
2603
2604 PR tree-optimization/101229
2605 * gimple-walk.c (gimple_walk_op): Handle PHIs.
2606
2607 2021-06-28 Martin Liska <mliska@suse.cz>
2608
2609 * config/v850/v850.c (construct_dispose_instruction): Allocate
2610 a bigger buffer.
2611 (construct_prepare_instruction): Likewise.
2612
2613 2021-06-28 Martin Liska <mliska@suse.cz>
2614
2615 * config/v850/v850.c (v850_option_override): Build default
2616 target node.
2617 (v850_can_inline_p): New. Allow MASK_PROLOG_FUNCTION to be
2618 ignored for inlining.
2619 (TARGET_CAN_INLINE_P): New.
2620
2621 2021-06-28 Richard Biener <rguenther@suse.de>
2622
2623 PR tree-optimization/101207
2624 * tree-vect-slp.c (vect_optimize_slp): Do BB reduction
2625 permute eliding for load permutations properly.
2626
2627 2021-06-28 Richard Biener <rguenther@suse.de>
2628
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.
2633
2634 2021-06-28 liuhongt <hongtao.liu@intel.com>
2635
2636 PR target/100648
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.
2643
2644 2021-06-28 liuhongt <hongtao.liu@intel.com>
2645
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
2650 CODE_FOR_nothing.
2651 * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv
2652 builtins.
2653 * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not):
2654 New pre_reload splitter.
2655
2656 2021-06-27 Andrew Pinski <apinski@marvell.com>
2657
2658 PR middle-end/101230
2659 * fold-const.c (fold_ternary_loc): Check
2660 the return value of invert_tree_comparison.
2661
2662 2021-06-27 David Edelsohn <dje.gcc@gmail.com>
2663
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.
2669
2670 2021-06-26 Jason Merrill <jason@redhat.com>
2671
2672 * except.c: #include "dwarf2.h" instead of "dwarf2out.h".
2673
2674 2021-06-26 Andrew Pinski <apinski@marvell.com>
2675
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.
2679
2680 2021-06-26 Andrew Pinski <apinski@marvell.com>
2681
2682 * tree-ssa-phiopt.c (match_simplify_replacement): Reset
2683 flow senatitive info on the moved ssa set.
2684
2685 2021-06-26 Andrew Pinski <apinski@marvell.com>
2686
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.
2692
2693 2021-06-25 Martin Sebor <msebor@redhat.com>
2694
2695 PR middle-end/101216
2696 * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant.
2697
2698 2021-06-25 Jeff Law <jeffreyalaw@gmail.com>
2699
2700 * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT.
2701
2702 2021-06-25 Richard Biener <rguenther@suse.de>
2703
2704 PR tree-optimization/101202
2705 * tree-vect-slp.c (vect_optimize_slp): Explicitely handle
2706 failed nodes.
2707
2708 2021-06-25 Richard Biener <rguenther@suse.de>
2709
2710 * tree-vect-slp-patterns.c (addsub_pattern::build): Copy
2711 STMT_VINFO_REDUC_DEF from the original representative.
2712
2713 2021-06-25 Martin Sebor <msebor@redhat.com>
2714
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.
2718 (c_strlen): Same.
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.
2752 (check_call): Same.
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.
2799
2800 2021-06-25 Martin Sebor <msebor@redhat.com>
2801
2802 * tree.h (warning_suppressed_at, copy_warning,
2803 warning_suppressed_p, suppress_warning): New functions.
2804
2805 2021-06-25 Martin Sebor <msebor@redhat.com>
2806
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
2812 declarations.
2813 * warning-control.cc: New file.
2814
2815 2021-06-25 liuhongt <hongtao.liu@intel.com>
2816
2817 PR target/101185
2818 * config/i386/i386.c (x86_order_regs_for_local_alloc):
2819 Revert r12-1669.
2820
2821 2021-06-24 Andrew MacLeod <amacleod@redhat.com>
2822
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.
2829
2830 2021-06-24 Andrew MacLeod <amacleod@redhat.com>
2831
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.
2835
2836 2021-06-24 Andrew MacLeod <amacleod@redhat.com>
2837
2838 * gimple-range-cache.cc (ranger_cache::propagate_cache): Call
2839 range_on_edge instead of manually calculating.
2840
2841 2021-06-24 Andrew MacLeod <amacleod@redhat.com>
2842
2843 * range-op.cc: Fix comment.
2844
2845 2021-06-24 Uroš Bizjak <ubizjak@gmail.com>
2846
2847 PR target/89021
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):
2851 New insn pattern.
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.
2862
2863 2021-06-24 Eric Botcazou <ebotcazou@adacore.com>
2864
2865 * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here..
2866 (dwarf2out_finish): ...instead of here.
2867
2868 2021-06-24 Eric Botcazou <ebotcazou@adacore.com>
2869
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.
2874
2875 2021-06-24 Richard Biener <rguenther@suse.de>
2876
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.
2880
2881 2021-06-24 Richard Biener <rguenther@suse.de>
2882
2883 * config/i386/sse.md (avx_addsubv4df3): Rename to
2884 vec_addsubv4df3.
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
2896 m_ops optional.
2897 * doc/md.texi (vec_addsub<mode>3): Document.
2898
2899 2021-06-24 Jakub Jelinek <jakub@redhat.com>
2900
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
2904 regno.
2905
2906 2021-06-24 Jakub Jelinek <jakub@redhat.com>
2907
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.
2911
2912 2021-06-24 Ilya Leoshkevich <iii@linux.ibm.com>
2913
2914 * config/s390/s390.c (s390_function_profiler): Ignore labelno
2915 parameter.
2916 * config/s390/s390.h (NO_PROFILE_COUNTERS): Define.
2917
2918 2021-06-24 Richard Biener <rguenther@suse.de>
2919
2920 * tree-vect-slp.c (vect_optimize_slp): Do not propagate
2921 across operations that have different semantics on different
2922 lanes.
2923
2924 2021-06-24 Jakub Jelinek <jakub@redhat.com>
2925
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.
2938
2939 2021-06-24 Kewen Lin <linkw@linux.ibm.com>
2940
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.
3009
3010 2021-06-24 Richard Biener <rguenther@suse.de>
3011
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.
3016
3017 2021-06-24 Richard Biener <rguenther@suse.de>
3018
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.
3022
3023 2021-06-24 liuhongt <hongtao.liu@intel.com>
3024
3025 PR target/98434
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
3037 iterator.
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
3044 vashr/vlshr/vashl.
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
3050 instruction.
3051
3052 2021-06-23 Dimitar Dimitrov <dimitar@dinux.eu>
3053
3054 * doc/lto.texi (Design Overview): Update that slim objects are
3055 the default.
3056
3057 2021-06-23 Aaron Sawdey <acsawdey@linux.ibm.com>
3058
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.
3061
3062 2021-06-23 Richard Biener <rguenther@suse.de>
3063 Martin Jambor <mjambor@suse.cz>
3064
3065 * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the
3066 param replacement unconditionally. Adjust comment.
3067
3068 2021-06-23 Andrew MacLeod <amacleod@redhat.com>
3069
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.
3127
3128 2021-06-23 Andrew MacLeod <amacleod@redhat.com>
3129
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.
3138
3139 2021-06-23 Andrew MacLeod <amacleod@redhat.com>
3140
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.
3148
3149 2021-06-23 Andrew MacLeod <amacleod@redhat.com>
3150
3151 * gimple-range.cc (dump_bb): Use range_on_edge from the cache.
3152
3153 2021-06-23 Jeff Law <jeffreyalaw@gmail.com>
3154
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
3165 prototype.
3166 (output_logical_op): Likewise.
3167
3168 2021-06-23 Uroš Bizjak <ubizjak@gmail.com>
3169
3170 PR target/89021
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.
3176
3177 2021-06-23 Martin Liska <mliska@suse.cz>
3178
3179 PR target/98636
3180 * optc-save-gen.awk: Put back arm_fp16_format to
3181 checked_options.
3182
3183 2021-06-23 Uroš Bizjak <ubizjak@gmail.com>
3184
3185 PR target/101175
3186 * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX.
3187 (bsr): Ditto.
3188 (*bsrhi): Remove.
3189 (clz<mode>2): Update RTX pattern for additions.
3190
3191 2021-06-23 Jakub Jelinek <jakub@redhat.com>
3192
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.
3196
3197 2021-06-22 Sergei Trofimovich <siarheit@google.com>
3198
3199 * doc/rtl.texi: drop unbalanced parenthesis.
3200
3201 2021-06-22 Richard Biener <rguenther@suse.de>
3202
3203 PR middle-end/101156
3204 * gimplify.c (gimplify_expr): Remove premature incorrect
3205 optimization.
3206
3207 2021-06-22 Jakub Jelinek <jakub@redhat.com>
3208
3209 PR tree-optimization/101159
3210 * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some
3211 comment typos.
3212
3213 2021-06-22 Jakub Jelinek <jakub@redhat.com>
3214
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.
3218
3219 2021-06-22 Jakub Jelinek <jakub@redhat.com>
3220 Andrew Pinski <apinski@marvell.com>
3221
3222 PR tree-optimization/101162
3223 * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer
3224 types.
3225
3226 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3227
3228 * range-op.cc (range_relational_tests): New.
3229 (range_op_tests): Call range_relational_tests.
3230
3231 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3232
3233 * range-op.cc (operator_cast::lhs_op1_relation): New.
3234 (operator_identity::lhs_op1_relation): Mew.
3235
3236 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3237
3238 * range-op.cc (operator_minus::op1_op2_relation_effect): New.
3239
3240 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3241
3242 * range-op.cc (operator_plus::lhs_op1_relation): New.
3243 (operator_plus::lhs_op2_relation): New.
3244
3245 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3246
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.
3277
3278 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3279
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.
3303
3304 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
3305
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.
3315
3316 2021-06-22 Richard Biener <rguenther@suse.de>
3317
3318 PR tree-optimization/101151
3319 * tree-ssa-sink.c (statement_sink_location): Expand irreducible
3320 region check.
3321
3322 2021-06-22 Jojo R <rjiejie@linux.alibaba.com>
3323
3324 * config/riscv/riscv.c (thead_c906_tune_info): New.
3325 (riscv_tune_info_table): Use new tune.
3326
3327 2021-06-22 Richard Biener <rguenther@suse.de>
3328
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.
3332
3333 2021-06-22 Richard Biener <rguenther@suse.de>
3334
3335 PR tree-optimization/101159
3336 * tree-vect-patterns.c (vect_recog_popcount_pattern): Add
3337 missing NULL vectype check.
3338
3339 2021-06-22 Richard Biener <rguenther@suse.de>
3340
3341 PR tree-optimization/101154
3342 * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access.
3343
3344 2021-06-22 Jakub Jelinek <jakub@redhat.com>
3345
3346 PR target/11877
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
3354 successful peep2s.
3355
3356 2021-06-22 Martin Liska <mliska@suse.cz>
3357
3358 * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format
3359 was changed.
3360
3361 2021-06-22 Martin Liska <mliska@suse.cz>
3362
3363 * gcov-io.h: Remove padding entries.
3364
3365 2021-06-22 liuhongt <hongtao.liu@intel.com>
3366
3367 PR tree-optimization/97770
3368 * tree-vect-patterns.c (vect_recog_popcount_pattern):
3369 New.
3370 (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern.
3371
3372 2021-06-22 liuhongt <hongtao.liu@intel.com>
3373
3374 PR target/100267
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
3381 v{,p}expand*.
3382
3383 2021-06-22 liuhongt <hongtao.liu@intel.com>
3384
3385 PR target/100310
3386 * config/i386/i386-expand.c
3387 (ix86_expand_special_args_builtin): Keep constm1_operand only
3388 if it satisfies insn's operand predicate.
3389
3390 2021-06-21 Jason Merrill <jason@redhat.com>
3391
3392 PR target/88529
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.
3396
3397 2021-06-21 Richard Biener <rguenther@suse.de>
3398
3399 PR tree-optimization/101120
3400 * tree-vect-data-refs.c (bump_vector_ptr): Fold the
3401 built increment.
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.
3407
3408 2021-06-21 Jakub Jelinek <jakub@redhat.com>
3409
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
3415 set template to "".
3416
3417 2021-06-21 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
3418
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.
3437
3438 2021-06-21 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
3439
3440 PR target/97906
3441 * config/arm/iterators.md (NEON_VACMP): Remove.
3442 * config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE
3443 iterator.
3444 (neon_vca<cmp_op><mode>_insn): Likewise.
3445 (neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of
3446 NEON_VACMP.
3447
3448 2021-06-21 Richard Biener <rguenther@suse.de>
3449
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.
3455
3456 2021-06-21 liuhongt <hongtao.liu@intel.com>
3457
3458 PR target/101142
3459 * config/i386/i386.md: (*anddi_1): Disparage slightly the mask
3460 register alternative.
3461 (*and<mode>_1): Ditto.
3462 (*andqi_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.
3471
3472 2021-06-21 Roger Sayle <roger@nextmovesoftware.com>
3473
3474 PR target/11877
3475 * config/i386/i386.md: New define_peephole2s to shrink writing
3476 1, 2 or 4 consecutive zeros to memory when optimizing for size.
3477
3478 2021-06-18 Jeff Law <jeffreyalaw@gmail.com>
3479
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.
3483
3484 2021-06-18 Andrew MacLeod <amacleod@redhat.com>
3485
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.
3490
3491 2021-06-18 Andrew MacLeod <amacleod@redhat.com>
3492
3493 PR tree-optimization/101014
3494 * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor
3495 value list.
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.
3505
3506 2021-06-18 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3507
3508 PR target/100856
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.
3521
3522 2021-06-18 Marcel Vollweiler <marcel@codesourcery.com>
3523
3524 * config.in: Regenerate.
3525 * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
3526 functions.
3527 * configure: Regenerate.
3528 * configure.ac: Fix for global_load assembler functions.
3529
3530 2021-06-18 Richard Biener <rguenther@suse.de>
3531
3532 PR tree-optimization/101112
3533 * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition
3534 to lookup a pattern stmt def.
3535
3536 2021-06-18 Jakub Jelinek <jakub@redhat.com>
3537
3538 PR middle-end/101062
3539 * stor-layout.c (finish_bitfield_layout): Don't add bitfield
3540 representatives in QUAL_UNION_TYPE.
3541
3542 2021-06-18 Andrew Pinski <apinski@marvell.com>
3543
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.
3553
3554 2021-06-18 Andrew Pinski <apinski@marvell.com>
3555
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.
3562
3563 2021-06-18 Michael Meissner <meissner@linux.ibm.com>
3564
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):
3568 New insns.
3569
3570 2021-06-17 Aaron Sawdey <acsawdey@linux.ibm.com>
3571
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.
3576
3577 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3578
3579 * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec.
3580
3581 2021-06-17 Andrew MacLeod <amacleod@redhat.com>
3582
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.
3587
3588 2021-06-17 H.J. Lu <hjl.tools@gmail.com>
3589
3590 PR target/100704
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.
3620
3621 2021-06-17 Uroš Bizjak <ubizjak@gmail.com>
3622
3623 PR target/97194
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.
3636
3637 2021-06-17 Aldy Hernandez <aldyh@redhat.com>
3638
3639 PR tree-optimization/100790
3640 * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz
3641 code.
3642
3643 2021-06-17 Martin Liska <mliska@suse.cz>
3644
3645 * doc/invoke.texi: Use consistently -O1 instead of -O.
3646
3647 2021-06-17 Martin Liska <mliska@suse.cz>
3648
3649 * gcov-io.h: Update documentation entry about string format.
3650
3651 2021-06-17 Marius Hillenbrand <mhillen@linux.ibm.com>
3652
3653 PR target/100871
3654 * config/s390/vecintrin.h (vec_doublee): Fix to use
3655 __builtin_s390_vflls.
3656 (vec_floate): Fix to use __builtin_s390_vflrd.
3657
3658 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3659
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.
3669
3670 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3671
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.
3677
3678 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3679
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.
3687
3688 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3689
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.
3693
3694 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3695
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.
3703
3704 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
3705
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
3708 constructor.
3709 (auto_vec<T, 0>::operator=): Define move assignment and delete copy
3710 assignment.
3711
3712 2021-06-17 Aldy Hernandez <aldyh@redhat.com>
3713
3714 * gimple-range.cc (debug_seed_ranger): New.
3715 (dump_ranger): New.
3716 (debug_ranger): New.
3717
3718 2021-06-17 Richard Biener <rguenther@suse.de>
3719
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
3726 representative.
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
3734 instances.
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.
3742
3743 2021-06-17 Andrew MacLeod <amacleod@redhat.com>
3744
3745 * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with
3746 may_recompute_p.
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.
3750
3751 2021-06-17 Andrew MacLeod <amacleod@redhat.com>
3752
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.
3756
3757 2021-06-16 Martin Sebor <msebor@redhat.com>
3758
3759 * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete):
3760 Correct documented defaults.
3761
3762 2021-06-16 Andrew MacLeod <amacleod@redhat.com>
3763
3764 * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize
3765 m_new_value_p directly.
3766
3767 2021-06-16 Uroš Bizjak <ubizjak@gmail.com>
3768
3769 PR target/89021
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.
3778
3779 2021-06-16 Jonathan Wright <jonathan.wright@arm.com>
3780
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.
3786
3787 2021-06-16 Jonathan Wright <jonathan.wright@arm.com>
3788
3789 * config/aarch64/aarch64-simd-builtins.def: Split generator
3790 for aarch64_<su>qmovn builtins into scalar and vector
3791 variants.
3792 * config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le):
3793 Define.
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.
3798
3799 2021-06-16 Jonathan Wright <jonathan.wright@arm.com>
3800
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
3806 on endianness.
3807 (aarch64_sqmovun<mode>_insn_le): Define.
3808 (aarch64_sqmovun<mode>_insn_be): Define.
3809
3810 2021-06-16 Jonathan Wright <jonathan.wright@arm.com>
3811
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
3817 semantics.
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
3823 of aarch64_xtn.
3824 * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode
3825 attribute iterator.
3826
3827 2021-06-16 Martin Jambor <mjambor@suse.cz>
3828
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.
3836
3837 2021-06-16 Jakub Jelinek <jakub@redhat.com>
3838
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
3844 aggregate.
3845
3846 2021-06-16 Richard Biener <rguenther@suse.de>
3847
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
3853 on exits.
3854
3855 2021-06-16 Roger Sayle <roger@nextmovesoftware.com>
3856
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.
3863
3864 2021-06-16 Richard Biener <rguenther@suse.de>
3865
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.
3870
3871 2021-06-15 Martin Sebor <msebor@redhat.com>
3872
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
3876
3877 2021-06-15 Jeff Law <jeffreyalaw@gmail.com>
3878
3879 * compare-elim.c (try_eliminate_compare): Run DCE to clean things
3880 up before eliminating comparisons.
3881
3882 2021-06-15 Aldy Hernandez <aldyh@redhat.com>
3883
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.
3887
3888 2021-06-15 Carl Love <cel@us.ibm.com>
3889
3890 PR target/101022
3891 * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the
3892 enum definition.
3893 (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2
3894 definitions.
3895
3896 2021-06-15 Tobias Burnus <tobias@codesourcery.com>
3897
3898 PR fortran/92568
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.
3911
3912 2021-06-15 David Malcolm <dmalcolm@redhat.com>
3913
3914 * doc/analyzer.texi
3915 (Special Functions for Debugging the Analyzer): Add
3916 __analyzer_dump_capacity.
3917
3918 2021-06-15 Jakub Jelinek <jakub@redhat.com>
3919
3920 PR target/101046
3921 * expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR,
3922 case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode.
3923
3924 2021-06-15 Richard Biener <rguenther@suse.de>
3925
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.
3932
3933 2021-06-15 Richard Biener <rguenther@suse.de>
3934
3935 * tree-ssa-threadupdate.c
3936 (jump_thread_path_registry::mark_threaded_blocks): Assert we
3937 have marked irreducible regions.
3938
3939 2021-06-14 Martin Sebor <msebor@redhat.com>
3940
3941 PR c++/100876
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.
3945
3946 2021-06-14 Peter Bergner <bergner@linux.ibm.com>
3947
3948 PR target/100777
3949 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use
3950 create_tmp_reg_or_ssa_name().
3951
3952 2021-06-14 Andrew MacLeod <amacleod@redhat.com>
3953
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
3959 poor values.
3960 * gimple-range-cache.h (ranger_cache): Adjust prototypes.
3961 * gimple-range.cc (gimple_ranger::range_of_expr): Adjust.
3962
3963 2021-06-14 Uroš Bizjak <ubizjak@gmail.com>
3964
3965 PR target/101058
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.
3969
3970 2021-06-14 Christophe Lyon <christophe.lyon@linaro.org>
3971
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
3977 vec-common.md.
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
3982 pattern.
3983 (vec_unpack<US>_lo_<mode>): New.
3984 (vec_pack_trunc_<mode>): New.
3985
3986 2021-06-14 Richard Biener <rguenther@suse.de>
3987
3988 PR tree-optimization/100934
3989 * tree-ssa-dom.c (pass_dominator::execute): Properly
3990 mark irreducible regions.
3991
3992 2021-06-14 Martin Liska <mliska@suse.cz>
3993
3994 * doc/invoke.texi: Put r{...} on the same line as @item.
3995
3996 2021-06-14 Martin Liska <mliska@suse.cz>
3997
3998 * doc/invoke.texi: Add missing newline.
3999
4000 2021-06-14 Martin Liska <mliska@suse.cz>
4001
4002 * doc/invoke.texi: Remove '+' charasters.
4003
4004 2021-06-14 Claudiu Zissulescu <claziss@synopsys.com>
4005
4006 * config.gcc (arc): Add support for with_cpu option.
4007 * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu.
4008
4009 2021-06-14 Richard Biener <rguenther@suse.de>
4010
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
4014 terminating nul.
4015
4016 2021-06-14 Martin Liska <mliska@suse.cz>
4017
4018 * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[].
4019
4020 2021-06-14 Aldy Hernandez <aldyh@redhat.com>
4021
4022 * value-query.cc (gimple_range_global): Call get_range_global
4023 if called after inlining.
4024
4025 2021-06-13 Uroš Bizjak <ubizjak@gmail.com>
4026
4027 PR target/101021
4028 * config/i386/i386-expand.c (expand_vec_perm_pshufb):
4029 Emit constant permutation insn directly from here.
4030
4031 2021-06-13 Trevor Saunders <tbsaunde@tbsaunde.org>
4032
4033 * attribs.c (find_attribute_namespace): Iterate over vec<> with
4034 range based for.
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):
4084 Likewise.
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.
4092
4093 2021-06-13 Jeff Law <jeffreyalaw@gmail.com>
4094
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
4102
4103 2021-06-13 H.J. Lu <hjl.tools@gmail.com>
4104
4105 PR target/101023
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
4109 ix86_red_zone_used.
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.
4115
4116 2021-06-12 Jason Merrill <jason@redhat.com>
4117
4118 * doc/extend.texi (unused variable attribute): Applies to
4119 structure fields as well.
4120
4121 2021-06-12 Eugene Rozenfeld <erozen@microsoft.com>
4122
4123 * auto-profile.c (read_profile): fix a typo in an error string
4124
4125 2021-06-11 Thomas Schwinge <thomas@codesourcery.com>
4126
4127 * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
4128 default argument.
4129 * tree-pretty-print.c (dump_omp_clauses): Update.
4130 (dump_generic_node) <OMP_CLAUSE>: Use it.
4131
4132 2021-06-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4133
4134 PR target/101016
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.
4143
4144 2021-06-11 Roger Sayle <roger@nextmovesoftware.com>
4145
4146 PR tree-optimization/96392
4147 * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype.
4148
4149 2021-06-11 Roger Sayle <roger@nextmovesoftware.com>
4150
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.
4164
4165 2021-06-11 Richard Biener <rguenther@suse.de>
4166
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.
4170
4171 2021-06-11 Richard Biener <rguenther@suse.de>
4172
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
4176 in matches[] so.
4177
4178 2021-06-11 Richard Biener <rguenther@suse.de>
4179
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.
4183
4184 2021-06-11 Jakub Jelinek <jakub@redhat.com>
4185
4186 PR rtl-optimization/101008
4187 * simplify-rtx.c (relational_result): New function.
4188 (simplify_logical_relational_operation,
4189 simplify_relational_operation): Use it.
4190
4191 2021-06-11 Jakub Jelinek <jakub@redhat.com>
4192
4193 PR target/101007
4194 * config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2.
4195
4196 2021-06-11 Uroš Bizjak <ubizjak@gmail.com>
4197
4198 PR target/101021
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.
4204
4205 2021-06-11 Martin Liska <mliska@suse.cz>
4206
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.
4213
4214 2021-06-11 Richard Biener <rguenther@suse.de>
4215
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
4219 index pair.
4220 (compute_affine_dependence): Also dump the actual DR_REF.
4221
4222 2021-06-10 Aldy Hernandez <aldyh@redhat.com>
4223
4224 PR tree-optimization/100984
4225 * gimple-ssa-evrp.c (ssa_equiv_stack): Use auto_vec for
4226 replacements table.
4227 (ssa_equiv_stack::~ssa_equiv_stack): Remove.
4228
4229 2021-06-11 Kewen Lin <linkw@linux.ibm.com>
4230
4231 * config/rs6000/rs6000.md
4232 (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New
4233 define_insn_and_split.
4234
4235 2021-06-11 Richard Biener <rguenther@suse.de>
4236
4237 * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort
4238 to sort operands of the associative chain.
4239
4240 2021-06-11 Richard Biener <rguenther@suse.de>
4241
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.
4246
4247 2021-06-10 Uroš Bizjak <ubizjak@gmail.com>
4248
4249 PR target/89021
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.
4266
4267 2021-06-10 Peter Bergner <bergner@linux.ibm.com>
4268
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):
4278 Document.
4279 (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove
4280 documentation.
4281
4282 2021-06-10 Jeff Law <jeffreyalaw@gmail.com>
4283
4284 * config/h8300/h8300.c (select_cc_mode): Handle MEM. Use
4285 REG_P.
4286 * config/h8300/extensions.md: Replace _clobber_flags patterns
4287 with <cczn>.
4288
4289 2021-06-10 Robin Dapp <rdapp@linux.ibm.com>
4290
4291 * config/s390/vector.md (vcond_mask_<mode><mode>): Change to
4292 (vcond_mask_<mode><tointvec>): this.
4293
4294 2021-06-10 Andrew Stubbs <ams@codesourcery.com>
4295 Thomas Schwinge <thomas@codesourcery.com>
4296
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):
4309 Likewise.
4310
4311 2021-06-10 Aldy Hernandez <aldyh@redhat.com>
4312
4313 * value-query.cc (value_query::value_on_edge): Rename name to
4314 expr.
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.
4320
4321 2021-06-10 Richard Biener <rguenther@suse.de>
4322
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.
4326
4327 2021-06-10 Jakub Jelinek <jakub@redhat.com>
4328
4329 PR debug/100852
4330 * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use
4331 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
4332
4333 2021-06-10 Clement Chigot <clement.chigot@atos.net>
4334
4335 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive.
4336 * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
4337
4338 2021-06-09 Andrew Pinski <apinski@marvell.com>
4339
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.
4344
4345 2021-06-09 Jeff Law <jeffreyalaw@gmail.com>
4346
4347 Revert:
4348 2021-06-09 Jeff Law <jeffreyalaw@gmail.com>
4349
4350 * doc/tm.texi: Correctly update.
4351
4352 2021-06-09 Jeff Law <jeffreyalaw@gmail.com>
4353
4354 * doc/tm.texi: Correctly update.
4355
4356 2021-06-09 H.J. Lu <hjl.tools@gmail.com>
4357
4358 PR other/100735
4359 * doc/tm.texi.in (Trampolines): Add a missing blank line.
4360
4361 2021-06-09 Paul Eggert <eggert@cs.ucla.edu>
4362
4363 PR other/100735
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.
4368
4369 2021-06-09 Carl Love <cel@us.ibm.com>
4370
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.
4387
4388 2021-06-09 Carl Love <cel@us.ibm.com>
4389
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.
4396
4397 2021-06-09 Carl Love <cel@us.ibm.com>
4398
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.
4406
4407 2021-06-09 Carl Love <cel@us.ibm.com>
4408
4409 * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns.
4410
4411 2021-06-09 Carl Love <cel@us.ibm.com>
4412
4413 * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new
4414 builtins.
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
4422 define_insn.
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]:
4459 New assignments.
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
4479 define_insns.
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.
4487
4488 2021-06-09 Carl Love <cel@us.ibm.com>
4489
4490 * config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix
4491 bug in argument generation.
4492
4493 2021-06-09 Christophe Lyon <christophe.lyon@linaro.org>
4494
4495 * config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S.
4496 (VCLZQ): Remove.
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.
4504
4505 2021-06-09 Christophe Lyon <christophe.lyon@linaro.org>
4506
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.
4512
4513 2021-06-09 imba-tjd <109224573@qq.com>
4514
4515 * doc/invoke.texi: Fix typo.
4516
4517 2021-06-09 Roger Sayle <roger@nextmovesoftware.com>
4518
4519 PR middle-end/53267
4520 * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]:
4521 Support evaluation of fmod/fmodf/fmodl at compile-time.
4522
4523 2021-06-09 Richard Biener <rguenther@suse.de>
4524
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
4529 reduction info.
4530
4531 2021-06-09 Richard Biener <rguenther@suse.de>
4532
4533 PR tree-optimization/97832
4534 * tree-vectorizer.h (_slp_tree::failed): New.
4535 * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
4536 failed member.
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.
4541 (dt_sort_cmp): New.
4542 (vect_build_slp_tree_2): Handle associatable chains
4543 together doing more aggressive operand swapping.
4544
4545 2021-06-09 H.J. Lu <hjl.tools@gmail.com>
4546
4547 PR target/100896
4548 * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and
4549 GNU targets.
4550 * doc/install.texi: Require glibc 2.1 and binutils 2.12 for
4551 Linux and GNU targets.
4552
4553 2021-06-09 Richard Biener <rguenther@suse.de>
4554
4555 * tree-vect-stmts.c (vect_is_simple_use): Always get dt
4556 from the stmt.
4557
4558 2021-06-09 Claudiu Zissulescu <claziss@synopsys.com>
4559
4560 * config/arc/arc.md (loop_end): Change it to
4561 define_insn_and_split.
4562
4563 2021-06-09 Claudiu Zissulescu <claziss@synopsys.com>
4564
4565 * config/arc/arc.md (maddhisi4): Use VMAC2H instruction.
4566 (machi): New pattern.
4567 (umaddhisi4): Use VMAC2HU instruction.
4568 (umachi): New pattern.
4569
4570 2021-06-09 Claudiu Zissulescu <claziss@synopsys.com>
4571
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.
4578
4579 2021-06-09 Uroš Bizjak <ubizjak@gmail.com>
4580
4581 PR target/100936
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.
4584
4585 2021-06-09 Martin Liska <mliska@suse.cz>
4586
4587 * doc/gcov.texi: Create a proper JSON files.
4588 * doc/invoke.texi: Remove dots in order to make it a valid
4589 JSON object.
4590
4591 2021-06-09 Xionghu Luo <luoxhu@linux.ibm.com>
4592
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.
4601
4602 2021-06-09 Andrew MacLeod <amacleod@redhat.com>
4603
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.
4636
4637 2021-06-08 Andrew Pinski <apinski@marvell.com>
4638
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.
4644
4645 2021-06-08 Pat Haugen <pthaugen@linux.ibm.com>
4646
4647 * config/rs6000/power10.md (power10-fused-load, power10-fused-store,
4648 power10-fused_alu, power10-fused-vec, power10-fused-branch): New.
4649
4650 2021-06-08 Jeff Law <jeffreyalaw@gmail.com>
4651
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
4654 know will use AND.
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.
4658
4659 2021-06-08 Richard Biener <rguenther@suse.de>
4660
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.
4673
4674 2021-06-08 Richard Biener <rguenther@suse.de>
4675
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
4692 as root stmts.
4693 (vect_slp_analyze_bb_1): Simplify by marking all root stmts
4694 as pure_slp.
4695 (vectorize_slp_instance_root_stmt): Adjust.
4696 (vect_schedule_slp): Likewise.
4697
4698 2021-06-08 Aldy Hernandez <aldyh@redhat.com>
4699
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.
4730
4731 2021-06-08 Jakub Jelinek <jakub@redhat.com>
4732
4733 PR c++/100957
4734 * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't
4735 check TREE_CODE if OMP_CLAUSE_DECL is NULL.
4736
4737 2021-06-08 Richard Biener <rguenther@suse.de>
4738
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.
4745
4746 2021-06-08 Martin Liska <mliska@suse.cz>
4747
4748 * doc/invoke.texi: Document new param evrp-sparse-threshold.
4749
4750 2021-06-08 Martin Liska <mliska@suse.cz>
4751
4752 * genautomata.c (create_automata): Fix typo.
4753
4754 2021-06-08 Kewen Lin <linkw@linux.ibm.com>
4755
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
4760 adjust for it.
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.
4765
4766 2021-06-08 Kewen Lin <linkw@linux.ibm.com>
4767
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
4771 value.
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.
4776
4777 2021-06-07 Andrew MacLeod <amacleod@redhat.com>
4778
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.
4792
4793 2021-06-07 Andrew MacLeod <amacleod@redhat.com>
4794
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.
4800
4801 2021-06-07 Uroš Bizjak <ubizjak@gmail.com>
4802
4803 PR target/100637
4804 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
4805 Handle V4QI mode.
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.
4810
4811 2021-06-07 Jeff Law <jeffreyalaw@gmail.com>
4812
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.
4817
4818 2021-06-07 Martin Liska <mliska@suse.cz>
4819
4820 * common/common-target.def: Split long lines and replace them
4821 with '\n\'.
4822 * target.def: Likewise.
4823 * doc/tm.texi: Re-generated.
4824
4825 2021-06-07 Jakub Jelinek <jakub@redhat.com>
4826
4827 PR target/100887
4828 * fold-const.c (fold_read_from_vector): Return NULL if trying to
4829 read from a CONSTRUCTOR with vector type elements.
4830
4831 2021-06-07 Jakub Jelinek <jakub@redhat.com>
4832
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.
4837
4838 2021-06-07 liuhongt <hongtao.liu@intel.com>
4839
4840 PR target/100885
4841 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine
4842 constraints.
4843 (<insn>v4siv4di2): Delete constraints for define_expand.
4844
4845 2021-06-07 liuhongt <hongtao.liu@intel.com>
4846
4847 PR target/82735
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
4855 of the function.
4856 (gate): Remove cfun->machine->has_explicit_vzeroupper.
4857 * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper):
4858 Declared.
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
4863 ABI.
4864 (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi.
4865 (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper
4866 directly.
4867 * config/i386/i386.h (struct GTY(()) machine_function): Delete
4868 has_explicit_vzeroupper.
4869 * config/i386/i386.md (enum unspec): New member
4870 UNSPEC_CALLEE_ABI.
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.
4880
4881 2021-06-07 liuhongt <hongtao.liu@intel.com>
4882
4883 PR target/82735
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
4892 a insn.
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.
4896
4897 2021-06-06 Eric Botcazou <ebotcazou@adacore.com>
4898
4899 * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename
4900 to...
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.
4910
4911 2021-06-06 David Edelsohn <dje.gcc@gmail.com>
4912
4913 * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common):
4914 Use assemble_name to output BSS section name.
4915
4916 2021-06-06 Uroš Bizjak <ubizjak@gmail.com>
4917
4918 * config/i386/constraints.md (Bs):
4919 Remove boolean operators from match_test RTX.
4920 (Bw): Ditto.
4921 (L): Ditto.
4922 (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX.
4923 (Wz): Ditto.
4924
4925 2021-06-06 Martin Liska <mliska@suse.cz>
4926
4927 * doc/extend.texi: Add missing @headitem.
4928 * doc/invoke.texi: Likewise.
4929 * doc/objc.texi: Likewise.
4930
4931 2021-06-06 Martin Liska <mliska@suse.cz>
4932
4933 * genhooks.c (emit_findices): Remove unused function.
4934 (emit_documentation): Do not call emit_findices
4935 and do not search for @Fcode directives.
4936
4937 2021-06-06 Martin Liska <mliska@suse.cz>
4938
4939 * doc/invoke.texi: Remove extra character.
4940
4941 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
4942
4943 * config/sh/sh.md (doloop_end_split): Fix empty split condition.
4944
4945 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
4946
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.
4951
4952 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
4953
4954 * config/or1k/or1k.md (*movdi): Fix empty split condition.
4955
4956 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
4957
4958 * config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty
4959 split condition.
4960
4961 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
4962
4963 * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec,
4964 *zero_extendsidi2): Fix empty split condition.
4965
4966 2021-06-05 Jeff Law <jeffreyalaw@gmail.com>
4967
4968 * config/h8300/addsub.md: Fix split condition in define_insn_and_split
4969 patterns.
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.
4981
4982 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
4983
4984 PR middle-end/100905
4985 * tree-nested.c (convert_nonlocal_omp_clauses,
4986 convert_local_omp_clauses): Handle OMP_CLAUSE_BIND.
4987
4988 2021-06-04 Martin Sebor <msebor@redhat.com>
4989
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.
4995
4996 2021-06-04 Martin Sebor <msebor@redhat.com>
4997
4998 * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected
4999 order.
5000 (attr_access::vla_bounds): Also handle VLA bounds.
5001
5002 2021-06-04 Uroš Bizjak <ubizjak@gmail.com>
5003
5004 * config/i386/predicates.md (GOT_memory_operand):
5005 Implement using match_code RTXes.
5006 (GOT32_symbol_operand): Ditto.
5007
5008 2021-06-04 Uroš Bizjak <ubizjak@gmail.com>
5009
5010 PR target/100637
5011 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
5012 Handle V2HI mode.
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.
5026
5027 2021-06-04 Kewen Lin <linkw@linux.ibm.com>
5028
5029 * config/arm/vfp.md (no_literal_pool_df_immediate,
5030 no_literal_pool_sf_immediate): Fix empty split condition.
5031
5032 2021-06-04 Kewen Lin <linkw@linux.ibm.com>
5033
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.
5039
5040 2021-06-04 Jakub Jelinek <jakub@redhat.com>
5041
5042 PR target/100887
5043 * config/i386/i386-expand.c (ix86_expand_vector_init): Handle
5044 concatenation from half-sized modes with TImode elements.
5045
5046 2021-06-04 Claudiu Zissulescu <claziss@synopsys.com>
5047
5048 * config/arc/arc.c (arc_override_options): Disable millicode
5049 thunks when RF16 is on.
5050
5051 2021-06-04 Haochen Gui <guihaoc@gcc.gnu.org>
5052
5053 * config/rs6000/rs6000.h (PROMOTE_MODE): Remove.
5054
5055 2021-06-04 Haochen Gui <guihaoc@gcc.gnu.org>
5056
5057 * config/rs6000/rs6000-call.c (rs6000_promote_function_mode):
5058 Replace PROMOTE_MODE marco with its content.
5059
5060 2021-06-03 Kewen Lin <linkw@linux.ibm.com>
5061
5062 * config/cris/cris.md (*addi_reload): Fix empty split condition.
5063
5064 2021-06-03 Jim Wilson <jimw@sifive.com>
5065
5066 * config.gcc (riscv*-*-*): If --with-riscv-attribute not used,
5067 turn it on for all riscv targets.
5068
5069 2021-06-03 Uroš Bizjak <ubizjak@gmail.com>
5070
5071 PR target/100637
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.
5076 (*pinsrb): Ditto.
5077 (*pextrw): Ditto.
5078 (*pextrw_zext): Ditto.
5079 (*pextrb): 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.
5087
5088 2021-06-03 Aaron Sawdey <acsawdey@linux.ibm.com>
5089
5090 * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input
5091 order to subf instruction.
5092 * config/rs6000/fusion.md: Regenerate.
5093
5094 2021-06-03 Aldy Hernandez <aldyh@redhat.com>
5095
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.
5103
5104 2021-06-03 Aldy Hernandez <aldyh@redhat.com>
5105
5106 * function-tests.c (test_ranges): Call gimple_range_tests.
5107 * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt
5108 to get_tree_range.
5109 * gimple-range.cc (fur_source::get_operand): Do not call
5110 get_tree_range or gimple_range_global.
5111 get_tree_range.
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
5120 stmt argument.
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
5125 get_tree_range.
5126 * gimple-range-tests.cc: New file.
5127
5128 2021-06-03 Aldy Hernandez <aldyh@redhat.com>
5129
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.
5134
5135 2021-06-03 David Malcolm <dmalcolm@redhat.com>
5136
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.
5140
5141 2021-06-03 Andre Vieira <andre.simoesdiasvieira@arm.com>
5142
5143 * tree-vect-loop.c (vect_transform_loop): Use main loop's various'
5144 thresholds to narrow the upper bound on epilogue iterations.
5145
5146 2021-06-03 Christophe Lyon <christophe.lyon@linaro.org>
5147
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.
5154
5155 2021-06-03 Claudiu Zissulescu <claziss@synopsys.com>
5156
5157 * common/config/arc/arc-common.c (arc_option_optimization_table):
5158 Remove malign-call.
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.
5167
5168 2021-06-03 Martin Liska <mliska@suse.cz>
5169
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.
5174
5175 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
5176
5177 PR ipa/99122
5178 * tree-inline.c (inline_forbidden_p): Remove test on return type.
5179
5180 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
5181
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.
5186
5187 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
5188
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.
5196
5197 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
5198
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.
5216
5217 2021-06-03 Jakub Jelinek <jakub@redhat.com>
5218
5219 PR c++/100859
5220 * tree-inline.c (copy_tree_body_r): Handle iterators on
5221 OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND.
5222
5223 2021-06-03 Kewen Lin <linkw@linux.ibm.com>
5224
5225 * config/arc/arc.md (*bbit_di): Remove.
5226
5227 2021-06-02 Christoph Muellner <cmuellner@gcc.gnu.org>
5228
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.
5236
5237 2021-06-02 Jakub Jelinek <jakub@redhat.com>
5238
5239 PR target/100841
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.
5244
5245 2021-06-02 Pat Haugen <pthaugen@linux.ibm.com>
5246
5247 * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use
5248 gen_frame_store.
5249
5250 2021-06-02 Vineet Gupta <vgupta@synopsys.com>
5251
5252 * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux.
5253
5254 2021-06-02 Ilya Leoshkevich <iii@linux.ibm.com>
5255
5256 * config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single
5257 constraint.
5258 * config/s390/subst.md(cconly_subst): Use a single constraint
5259 in (match_scratch).
5260
5261 2021-06-02 Martin Liska <mliska@suse.cz>
5262
5263 * ipa-icf.h: Use auto_vec for memory_access_types.
5264
5265 2021-06-02 Jeff Law <jeffreyalaw@gmail.com>
5266
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>
5290
5291 2021-06-01 Andrew Pinski <apinski@marvell.com>
5292
5293 PR tree-optimization/25290
5294 * tree-ssa-phiopt.c (match_simplify_replacement):
5295 New function.
5296 (tree_ssa_phiopt_worker): Use match_simplify_replacement.
5297 (two_value_replacement): Change the comment about
5298 conditional_replacement.
5299 (conditional_replacement): Delete.
5300
5301 2021-06-01 Andrew Pinski <apinski@marvell.com>
5302
5303 PR tree-optimization/95481
5304 * tree-tailcall.c (find_tail_calls): Handle empty typed
5305 return decls.
5306
5307 2021-06-01 Andrew Pinski <apinski@marvell.com>
5308
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
5314 zero_sized_type.
5315
5316 2021-06-01 Jason Merrill <jason@redhat.com>
5317
5318 PR c++/91859
5319 * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment.
5320
5321 2021-06-01 Jason Merrill <jason@redhat.com>
5322
5323 PR c++/94492
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.
5328
5329 2021-06-01 Aldy Hernandez <aldyh@redhat.com>
5330
5331 * gimple-ssa-evrp.c: Enable exporting of global ranges.
5332
5333 2021-06-01 Martin Liska <mliska@suse.cz>
5334
5335 PR other/100826
5336 * doc/invoke.texi: Mention that -fgcse-after-reload
5337 is enabled with -O3.
5338
5339 2021-06-01 liuhongt <hongtao.liu@intel.com>
5340
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.
5346
5347 2021-06-01 Andrew MacLeod <amacleod@redhat.com>
5348
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.
5358
5359 2021-06-01 Andrew MacLeod <amacleod@redhat.com>
5360
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.
5369
5370 2021-06-01 Andrew MacLeod <amacleod@redhat.com>
5371
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
5386 output changes.
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
5411 ranger_cache.
5412 (gimple_ranger::dump_bb): Adjust dump.
5413 * gimple-range.h (gimple_ranger):export gori computes object.
5414
5415 2021-06-01 Andrew MacLeod <amacleod@redhat.com>
5416
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.
5422
5423 2021-05-31 Martin Liska <mliska@suse.cz>
5424
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
5431 macro.
5432 (DECL_IS_OPERATOR_NEW_P): Likewise.
5433 (DECL_IS_OPERATOR_DELETE_P): Likewise.
5434 (DECL_LAMBDA_FUNCTION_P): Likewise.
5435
5436 2021-05-31 Richard Biener <rguenther@suse.de>
5437
5438 PR c++/88601
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.
5443
5444 2021-05-31 Peter Bergner <bergner@linux.ibm.com>
5445
5446 PR target/99842
5447 * config/rs6000/predicates.md(mma_assemble_input_operand): Allow
5448 indexed form addresses.
5449
5450 2021-05-29 Jeff Law <jlaw@tachyum.com>
5451
5452 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused
5453 parameter. Call callers fixed.
5454 (push): Likewise.
5455 (output_plussi): Add FALLTHRU markers.
5456 (h8300_shift_needs_scratch_p): Add gcc_unreachable marker.
5457
5458 2021-05-29 Jakub Jelinek <jakub@redhat.com>
5459
5460 PR middle-end/99928
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.
5464
5465 2021-05-29 Aldy Hernandez <aldyh@redhat.com>
5466
5467 PR tree-optimization/100787
5468 * gimple-ssa-evrp.c: Disable exporting of global ranges.
5469
5470 2021-05-28 Jason Merrill <jason@redhat.com>
5471
5472 * tree-iterator.h (struct tree_stmt_iterator): Add operator++,
5473 operator--, operator*, operator==, and operator!=.
5474 (class tsi_range): New.
5475
5476 2021-05-28 Richard Biener <rguenther@suse.de>
5477
5478 PR tree-optimization/100778
5479 * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly
5480 trapping ops in different BBs.
5481
5482 2021-05-28 Richard Biener <rguenther@suse.de>
5483
5484 PR ipa/100791
5485 * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack
5486 copy fntype from original call.
5487
5488 2021-05-28 Martin Liska <mliska@suse.cz>
5489
5490 PR gcov-profile/100751
5491 * doc/gcov.texi: Revert partially a hunk that was wrong.
5492
5493 2021-05-28 Cooper Qu <cooper.qu@linux.alibaba.com>
5494
5495 * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi):
5496 Defined.
5497 (HAVE_sync_compare_and_swaphi): Likewise.
5498 (HAVE_sync_compare_and_swapsi): Likewise.
5499
5500 2021-05-28 Jakub Jelinek <jakub@redhat.com>
5501
5502 PR middle-end/99928
5503 * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define.
5504
5505 2021-05-28 Tobias Burnus <tobias@codesourcery.com>
5506
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.
5513
5514 2021-05-28 Joern Rennecke <joern.rennecke@riscy-ip.com>
5515 Richard Biener <rguenther@suse.de>
5516
5517 * match.pd <popcount & / + pattern matching>:
5518 When generating popcount directly fails, try doing it in two halves.
5519
5520 2021-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
5521
5522 * Makefile.in (generated_files): Add gimple-match.c and
5523 generic-match.c
5524
5525 2021-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
5526
5527 * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP.
5528
5529 2021-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
5530
5531 * gensupport.c (alter_constraints): Add MATCH_SCRATCH case.
5532
5533 2021-05-28 Kewen Lin <linkw@linux.ibm.com>
5534
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
5540 function.
5541 * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New
5542 declare.
5543
5544 2021-05-27 Uroš Bizjak <ubizjak@gmail.com>
5545
5546 * config/i386/mmx.md (addv2sf3): Do not call
5547 ix86_fixup_binary_operands_no_copy.
5548 (subv2sf3): Ditto.
5549 (mulv2sf3): Ditto.
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.
5592
5593 2021-05-27 Martin Sebor <msebor@redhat.com>
5594
5595 * ggc.h (gt_ggc_mx): Add overloads for all integers.
5596 (gt_pch_nx): Same.
5597 * hash-map.h (class hash_map): Add pch_nx_helper overloads for all
5598 integers.
5599 (hash_map::operator==): New function.
5600
5601 2021-05-27 Uroš Bizjak <ubizjak@gmail.com>
5602
5603 PR target/100637
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.
5610
5611 2021-05-27 Richard Earnshaw <rearnsha@arm.com>
5612
5613 PR target/100767
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
5622 prototype.
5623
5624 2021-05-27 Aldy Hernandez <aldyh@redhat.com>
5625
5626 * vr-values.c (simplify_conversion_using_ranges): Use
5627 get_range_query instead of get_global_range_query.
5628
5629 2021-05-27 Aldy Hernandez <aldyh@redhat.com>
5630
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
5636 value-query.h.
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
5643 tree-ssanames.c.
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
5650 gimple-range.h.
5651 (gimple_range_global): Same.
5652
5653 2021-05-27 Uroš Bizjak <ubizjak@gmail.com>
5654
5655 PR target/100637
5656 * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern.
5657 (uavgv2hi3_ceil): Ditto.
5658
5659 2021-05-26 Eric Botcazou <ebotcazou@adacore.com>
5660
5661 PR c/100653
5662 * doc/extend.texi (scalar_storage_order): Rephrase slightly.
5663
5664 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
5665
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
5669 wide_ints.
5670
5671 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
5672
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.
5686 * match.pd: 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.
5700 (get_range): 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.
5718
5719 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
5720
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.
5724
5725 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
5726
5727 * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call
5728 enable_ranger.
5729 (rvrp_folder::~rvrp_folder): Call disable_ranger.
5730 (hybrid_folder::hybrid_folder): Call enable_ranger.
5731 (hybrid_folder::~hybrid_folder): Call disable_ranger.
5732
5733 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
5734
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.
5760
5761 2021-05-26 Uroš Bizjak <ubizjak@gmail.com>
5762
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.
5767
5768 2021-05-26 Bernd Edlinger <bernd.edlinger@hotmail.de>
5769
5770 * gimple-range-gori.cc (range_def_chain::register_dependency):
5771 Resize m_def_chain when needed.
5772
5773 2021-05-26 Christophe Lyon <christophe.lyon@linaro.org>
5774
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.
5778
5779 2021-05-26 Jakub Jelinek <jakub@redhat.com>
5780
5781 * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove
5782 register keywords.
5783 * config/microblaze/microblaze.c (microblaze_legitimize_address,
5784 call_internal1,
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.
5792
5793 2021-05-26 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5794
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
5798 keyword.
5799
5800 2021-05-26 Jakub Jelinek <jakub@redhat.com>
5801
5802 PR libgomp/100573
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.
5812
5813 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
5814
5815 * config/csky/csky.c (csky_can_change_mode_class): Delete.
5816 For csky, HF/SF mode use the low bits of VREGS.
5817
5818 2021-05-26 Eric Botcazou <ebotcazou@adacore.com>
5819
5820 * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a
5821 DECL which is a reference for OMP.
5822
5823 2021-05-26 Martin Liska <mliska@suse.cz>
5824
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.
5828
5829 2021-05-26 Martin Liska <mliska@suse.cz>
5830
5831 * doc/install.texi: Port relevant part from install-old.texi
5832 and re-generate list of CPUs and systems.
5833
5834 2021-05-26 Martin Liska <mliska@suse.cz>
5835
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.
5840
5841 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
5842
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.
5850
5851 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
5852
5853 * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete.
5854
5855 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
5856
5857 * config/csky/csky.md (untyped_call): Emit clobber for return
5858 registers to mark them used.
5859
5860 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
5861
5862 * config/csky/csky.md (cskyv2_sextend_ldbs): New.
5863
5864 2021-05-26 Andrew Pinski <apinski@marvell.com>
5865
5866 * match.pd (x < 0 ? ~y : y): New patterns.
5867
5868 2021-05-26 Andrew Pinski <apinski@marvell.com>
5869
5870 * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0,
5871 A?POW2:0 and A?0:POW2.
5872
5873 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5874
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
5890 virtual.
5891 (class gori_compute_cache): Delete.
5892
5893 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5894
5895 * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori
5896 intead of m_cache.
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.
5901
5902 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5903
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.
5913
5914 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5915
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.
5925
5926 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5927
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.
5939
5940 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5941
5942 * gimple-range-gori.cc (range_def_chain::range_def_chain): init
5943 bitmap obstack.
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
5950 and set imports.
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.
5977
5978 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5979
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.
5983
5984 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
5985
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.
6000
6001 2021-05-25 Aldy Hernandez <aldyh@redhat.com>
6002
6003 * value-range.cc (range_tests_legacy): Use
6004 build_nonstandard_integer_type instead of int and short.
6005
6006 2021-05-25 Eric Botcazou <ebotcazou@adacore.com>
6007
6008 * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL
6009 when really creating an initialization statement for it.
6010
6011 2021-05-25 Eric Botcazou <ebotcazou@adacore.com>
6012
6013 * tree-inline.c (setup_one_parameter): Fix thinko in new condition.
6014
6015 2021-05-25 Kito Cheng <kito.cheng@sifive.com>
6016
6017 * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax.
6018
6019 2021-05-25 Martin Liska <mliska@suse.cz>
6020
6021 PR tree-optimization/92860
6022 PR target/99592
6023 * optc-save-gen.awk: Remove exceptions.
6024
6025 2021-05-25 Martin Liska <mliska@suse.cz>
6026
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.
6036
6037 2021-05-25 Cooper Qu <cooper.qu@linux.alibaba.com>
6038
6039 * config/csky/csky-modes.def : Fix copyright.
6040
6041 2021-05-25 Cooper Qu <cooper.qu@linux.alibaba.com>
6042
6043 * config/csky/csky-modes.def : Amend copyright.
6044 * config/csky/csky_insn_fpuv2.md : Likewise.
6045 * config/csky/csky_insn_fpuv3.md : Likewise.
6046
6047 2021-05-25 Richard Biener <rguenther@suse.de>
6048
6049 PR middle-end/100727
6050 * calls.c (initialize_argument_information): Explicitely test
6051 for WITH_SIZE_EXPR.
6052 * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR.
6053
6054 2021-05-25 Geng Qi <gengqi@linux.alibaba.com>
6055
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.
6065
6066 2021-05-25 Geng Qi <gengqi@linux.alibaba.com>
6067
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.
6071
6072 2021-05-25 Geng Qi <gengqi@linux.alibaba.com>
6073
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.
6080
6081 2021-05-25 Geng Qi <gengqi@linux.alibaba.com>
6082
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"
6087 constraint.
6088 ("Dv"): New constraint for const double value that can be used at
6089 fmovi instruction.
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
6093 "W".
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.
6128 (movdf): 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.
6138 (fpv3_hf): New.
6139 (fpv3_hsf): New.
6140 (fpv3_sdf): New.
6141 (fpv3): New.
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
6145 csky_insn_fpuv3.md.
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
6148 isntructions.
6149 * config/csky/csky_isa.def (fcr): New.
6150 (fpv3_hi): New.
6151 (fpv3_hf): New.
6152 (fpv3_sf): New.
6153 (fpv3_df): New.
6154 (CK860): New definition for ck860.
6155 * config/csky/csky_tables.opt (ck860): New processors ck860,
6156 ck860f. And new arch ck860.
6157 (fpv3_hf): New.
6158 (fpv3_hsf): New.
6159 (fpv3_hdf): New.
6160 (fpv3): New.
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.
6166
6167 2021-05-24 Aaron Sawdey <acsawdey@linux.ibm.com>
6168
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
6172 and powerpc 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.
6178
6179 2021-05-24 Aldy Hernandez <aldyh@redhat.com>
6180
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
6184 sizes.
6185
6186 2021-05-24 Wilco Dijkstra <wdijkstr@arm.com>
6187
6188 * config/aarch64/aarch64.c (neoversen1_tunings):
6189 Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
6190
6191 2021-05-24 Wilco Dijkstra <wdijkstr@arm.com>
6192
6193 * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for
6194 extern weak symbols. Limit symbol offsets for non-GOT symbols with
6195 PIC/PIE.
6196
6197 2021-05-24 Christophe Lyon <christophe.lyon@linaro.org>
6198
6199 * config/arm/neon.md (vec_load_lanesxi<mode>)
6200 (vec_store_lanexoi<mode>): Move ...
6201 * config/arm/vec-common.md: here.
6202
6203 2021-05-24 Christophe Lyon <christophe.lyon@linaro.org>
6204
6205 * config/arm/neon.md (vec_load_lanesoi<mode>)
6206 (vec_store_lanesoi<mode>): Move ...
6207 * config/arm/vec-common.md: here.
6208
6209 2021-05-24 liuhongt <hongtao.liu@intel.com>
6210
6211 PR target/100660
6212 * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing
6213 stmt with GIMPLE_NOP when lhs doesn't exist.
6214
6215 2021-05-23 Uroš Bizjak <ubizjak@gmail.com>
6216
6217 PR target/100722
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.
6222
6223 2021-05-23 Andrew Pinski <apinski@marvell.com>
6224
6225 * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types.
6226
6227 2021-05-22 Aaron Sawdey <acsawdey@linux.ibm.com>
6228
6229 * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types.
6230 * config/rs6000/fusion.md: Regenerate file.
6231
6232 2021-05-21 Aaron Sawdey <acsawdey@linux.ibm.com>
6233
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.
6241
6242 2021-05-21 Jakub Jelinek <jakub@redhat.com>
6243
6244 PR middle-end/99928
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.
6257
6258 2021-05-21 Jakub Jelinek <jakub@redhat.com>
6259
6260 PR middle-end/99928
6261 * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New
6262 function.
6263 (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it.
6264 (gimplify_omp_for): Likewise.
6265
6266 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6267
6268 PR middle-end/90115
6269 * omp-low.c (oacc_privatization_candidate_p): Reject 'static',
6270 'external' in blocks.
6271
6272 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6273
6274 PR middle-end/90115
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
6279 function.
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'
6284 parameter.
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.
6291
6292 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6293
6294 * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__'
6295 DejaGnu selector.
6296
6297 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6298
6299 PR middle-end/90115
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.
6304
6305 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6306
6307 PR middle-end/90115
6308 * omp-offload.c (execute_oacc_device_lower): Skip processing if no
6309 work to be done.
6310
6311 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6312
6313 PR middle-end/90115
6314 * omp-offload.c (execute_oacc_device_lower): Explain.
6315
6316 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6317
6318 PR middle-end/90115
6319 * omp-offload.c (execute_oacc_device_lower)
6320 <IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1'
6321 case, too.
6322 * internal-fn.c (expand_UNIQUE): Don't expect
6323 'IFN_UNIQUE_OACC_PRIVATE'.
6324
6325 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6326
6327 PR middle-end/90115
6328 * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses.
6329
6330 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
6331
6332 PR middle-end/90115
6333 * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl)
6334 (nvptx_goacc_expand_var_decl): Tighten.
6335
6336 2021-05-21 Julian Brown <julian@codesourcery.com>
6337 Chung-Lin Tang <cltang@codesourcery.com>
6338 Thomas Schwinge <thomas@codesourcery.com>
6339
6340 PR middle-end/90115
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
6349 field.
6350 (lower_oacc_reductions): Add PRIVATE_MARKER parameter. Insert
6351 before fork.
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):
6357 New functions.
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
6366 nodes afterwards.
6367 * target.def (adjust_private_decl, expand_var_decl): New hooks.
6368 * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl):
6369 Rename to...
6370 (gcn_goacc_adjust_private_decl): ...this.
6371 * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl):
6372 Rename to...
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):
6386 New functions.
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.
6390
6391 2021-05-21 H.J. Lu <hjl.tools@gmail.com>
6392
6393 * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed.
6394
6395 2021-05-21 Richard Biener <rguenther@suse.de>
6396 H.J. Lu <hjl.tools@gmail.com>
6397
6398 PR middle-end/90773
6399 * expr.c (expand_constructor): Elide expand_constructor if
6400 move by pieces is preferred.
6401
6402 2021-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6403
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.
6415
6416 2021-05-21 Aaron Sawdey <acsawdey@linux.ibm.com>
6417
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.
6422
6423 2021-05-21 Uroš Bizjak <ubizjak@gmail.com>
6424
6425 PR target/100637
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.
6441
6442 2021-05-21 Jakub Jelinek <jakub@redhat.com>
6443
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.
6450
6451 2021-05-21 Uroš Bizjak <ubizjak@gmail.com>
6452
6453 PR target/100637
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.
6473
6474 2021-05-20 Clement Chigot <clement.chigot@atos.net>
6475 David Edelsohn <dje.gcc@gmail.com>
6476
6477 * collect2.c (scan_prog_file): Issue non-fatal warning for
6478 non-COFF files.
6479
6480 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
6481
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
6485 new options.
6486
6487 2021-05-20 Indu Bhagat <indu.bhagat@oracle.com>
6488
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):
6496 Likewise.
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.
6508
6509 2021-05-20 Indu Bhagat <indu.bhagat@oracle.com>
6510
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.
6528
6529 2021-05-20 Martin Sebor <msebor@redhat.com>
6530
6531 PR middle-end/100684
6532 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda.
6533
6534 2021-05-20 Uroš Bizjak <ubizjak@gmail.com>
6535
6536 PR target/100701
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.
6544
6545 2021-05-20 Kewen Lin <linkw@linux.ibm.com>
6546
6547 * config/arm/arm.c: Include head files tree-vectorizer.h and
6548 cfgloop.h.
6549
6550 2021-05-20 Uroš Bizjak <ubizjak@gmail.com>
6551
6552 PR target/100637
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.
6562
6563 2021-05-20 Kewen Lin <linkw@linux.ibm.com>
6564
6565 * doc/invoke.texi (vect-inner-loop-cost-factor): Document new
6566 parameter.
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):
6577 Likewise.
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.
6581
6582 2021-05-20 Christophe Lyon <christophe.lyon@linaro.org>
6583 Torbjörn Svensson <torbjorn.svensson@st.com>
6584
6585 PR c/42579
6586 * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__.
6587
6588 2021-05-20 Jakub Jelinek <jakub@redhat.com>
6589
6590 PR middle-end/99928
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.
6594
6595 2021-05-20 Jakub Jelinek <jakub@redhat.com>
6596
6597 PR tree-optimization/94589
6598 * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence
6599 of integral conversions.
6600
6601 2021-05-19 Andrew MacLeod <amacleod@redhat.com>
6602
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.
6624 (fold_range): New.
6625 * vr-values.c (vr_values::extract_range_basic): Use fold_using_range
6626 instead of range_of_builtin_call.
6627
6628 2021-05-19 Jonathan Wakely <jwakely@redhat.com>
6629
6630 * doc/cpp.texi (Common Predefined Macros): Update documentation
6631 for the __GXX_EXPERIMENTAL_CXX0X__ macro.
6632
6633 2021-05-19 Alex Coplan <alex.coplan@arm.com>
6634
6635 PR target/100333
6636 * config/arm/arm.md (nonsecure_call_internal): Always ensure
6637 callee's address is in a register.
6638
6639 2021-05-19 Geng Qi <gengqi@linux.alibaba.com>
6640
6641 * common/config/riscv/riscv-common.c
6642 (riscv_subset_list::parsing_subset_version): Properly parse the letter
6643 'p' in '-march'.
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.
6647
6648 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
6649
6650 * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q"
6651 type attribute in patterns generating XTN(2).
6652
6653 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
6654
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.
6662
6663 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
6664
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
6670 split into...
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.
6674
6675 2021-05-19 Jonathn Wright <jonathan.wright@arm.com>
6676
6677 * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead
6678 of UNSPEC_SQXTUN2.
6679 * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2.
6680
6681 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
6682
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.
6688
6689 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
6690
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.
6698
6699 2021-05-19 Richard Biener <rguenther@suse.de>
6700
6701 PR middle-end/100672
6702 * fold-const.c (fold_negate_expr_1): Use element_precision.
6703 (negate_expr_p): Likewise.
6704
6705 2021-05-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
6706
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.
6714
6715 2021-05-19 Richard Biener <rguenther@suse.de>
6716
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.
6726
6727 2021-05-19 Richard Biener <rguenther@suse.de>
6728
6729 * builtins.c (get_object_alignment_1): Strip outer
6730 WITH_SIZE_EXPR.
6731 * tree-dfa.c (get_ref_base_and_extent): Handle outer
6732 WITH_SIZE_EXPR for size processing and process the
6733 containing ref.
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
6739 core alias workers.
6740 * tree.c (get_base_address): Handle WITH_SIZE_EXPR by
6741 looking through it instead of returning NULL.
6742
6743 2021-05-19 Jakub Jelinek <jakub@redhat.com>
6744
6745 PR middle-end/100576
6746 * builtins.c (check_read_access): Convert bound to size_type_node if
6747 non-NULL.
6748
6749 2021-05-19 Richard Biener <rguenther@suse.de>
6750
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.
6755
6756 2021-05-19 Uroš Bizjak <ubizjak@gmail.com>
6757
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.
6765
6766 2021-05-19 Jakub Jelinek <jakub@redhat.com>
6767
6768 PR middle-end/99928
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.
6774
6775 2021-05-19 Xionghu Luo <luoxhu@linux.ibm.com>
6776
6777 * passes.def: Add sink_code pass before store_merging.
6778 * tree-ssa-sink.c (pass_sink_code:clone): New.
6779
6780 2021-05-18 Bill Schmidt <wschmidt@linux.ibm.com>
6781
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):
6786 Remove ABI warning.
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):
6791 Remove.
6792 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to
6793 rs6000_special_adjust_field_align_p.
6794
6795 2021-05-18 Uroš Bizjak <ubizjak@gmail.com>
6796
6797 PR target/100637
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.
6803 (Yv_Yw): Ditto.
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.
6816
6817 2021-05-18 Uroš Bizjak <ubizjak@gmail.com>
6818
6819 * config/i386/sse.md (<any_extend:insn>v4qiv4di2):
6820 Fix a mode mismatch with operand 1.
6821
6822 2021-05-18 Uroš Bizjak <ubizjak@gmail.com>
6823
6824 PR target/100626
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.
6828
6829 2021-05-18 Richard Biener <rguenther@suse.de>
6830
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.
6842
6843 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
6844
6845 * doc/sourcebuild.texi: Document 'dg-note'.
6846
6847 2021-05-18 Tobias Burnus <tobias@codesourcery.com>
6848
6849 PR other/100598
6850 * configure: Regenerate.
6851 * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@).
6852
6853 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
6854
6855 * gimple.h (is_gimple_omp_oacc): Tighten.
6856 * omp-low.c (check_omp_nesting_restrictions): Adjust.
6857
6858 2021-05-18 Richard Biener <rguenther@suse.de>
6859
6860 * tree-ssa-operands.c (mark_address_taken): Simplify.
6861
6862 2021-05-18 Martin Liska <mliska@suse.cz>
6863
6864 * config/gcn/mkoffload.c (STR): Redefine.
6865 * config/i386/intelmic-mkoffload.c (STR): Likewise.
6866 * config/nvptx/mkoffload.c (STR): Likewise.
6867
6868 2021-05-18 Martin Liska <mliska@suse.cz>
6869
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.
6906 (main): 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.
6927 (STR): 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.
6938 (main): Likewise.
6939 * config/vms/vms.c: Likewise.
6940
6941 2021-05-18 Jakub Jelinek <jakub@redhat.com>
6942
6943 PR rtl-optimization/100590
6944 * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if
6945 they are NONJUMP_INSN_P.
6946
6947 2021-05-18 Jakub Jelinek <jakub@redhat.com>
6948
6949 PR c++/100580
6950 * function.c (push_dummy_function): Set DECL_ARTIFICIAL and
6951 DECL_ASSEMBLER_NAME on the fn_decl.
6952
6953 2021-05-18 Jakub Jelinek <jakub@redhat.com>
6954
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.
6959
6960 2021-05-18 Martin Liska <mliska@suse.cz>
6961
6962 * Makefile.in: genversion.o should depend on DATESTAMP.
6963
6964 2021-05-18 Claudiu Zissulescu <claziss@synopsys.com>
6965
6966 * config/arc/simdext.md (negv2si2): Remove round bracket.
6967
6968 2021-05-18 Andreas Krebbel <krebbel@linux.ibm.com>
6969
6970 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
6971 _Bool as macro expanding to _Bool.
6972
6973 2021-05-18 Andreas Krebbel <krebbel@linux.ibm.com>
6974
6975 PR c++/100281
6976 * tree.c (build_reference_type_for_mode)
6977 (build_pointer_type_for_mode): Pick pointer mode if MODE argument
6978 is VOIDmode.
6979 (build_reference_type, build_pointer_type): Invoke
6980 build_*_type_for_mode with VOIDmode.
6981
6982 2021-05-17 Andrew MacLeod <amacleod@redhat.com>
6983
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.
6989
6990 2021-05-17 Tom de Vries <tdevries@suse.de>
6991
6992 PR target/100497
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
6998 insns.
6999
7000 2021-05-17 Aldy Hernandez <aldyh@redhat.com>
7001
7002 PR tree-optimization/100349
7003 * vr-values.c (bounds_of_var_in_loop): Bail if scev returns
7004 NULL.
7005
7006 2021-05-17 Tamar Christina <tamar.christina@arm.com>
7007
7008 * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New.
7009 (host_detect_local_cpu): Use it.
7010
7011 2021-05-17 Martin Liska <mliska@suse.cz>
7012
7013 * doc/invoke.texi: Add 2 missing dots.
7014
7015 2021-05-17 Marius Hillenbrand <mhillen@linux.ibm.com>
7016
7017 PR bootstrap/100552
7018 * configure.ac: Replace pattern substitution with call to sed.
7019 * configure: Regenerate.
7020
7021 2021-05-17 Richard Biener <rguenther@suse.de>
7022
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.
7026
7027 2021-05-17 Joern Rennecke <joern.rennecke@embecosm.com>
7028
7029 * genoutput.c (validate_insn_alternatives) Make "wrong number of
7030 alternatives" message more specific, and remove assumption on where
7031 the problem is.
7032
7033 2021-05-17 Christophe Lyon <christophe.lyon@linaro.org>
7034
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.
7042
7043 2021-05-17 Christophe Lyon <christophe.lyon@linaro.org>
7044
7045 * config/arm/arm-protos.h (arm_expand_vector_compare): Update
7046 prototype.
7047 * config/arm/arm.c (arm_expand_vector_compare): Add support for
7048 MVE.
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
7071 from neon.md.
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
7077 condition.
7078
7079 2021-05-17 liuhongt <hongtao.liu@intel.com>
7080
7081 PR target/100549
7082 * config/i386/i386.c (ix86_gimple_fold_builtin): Use
7083 gsi_insert_seq_before instead.
7084
7085 2021-05-17 Christophe Lyon <christophe.lyon@linaro.org>
7086
7087 * doc/sourcebuild.texi (arm_qbit_ok): Rename into...
7088 (arm_sat_ok): ...this.
7089
7090 2021-05-17 Martin Liska <mliska@suse.cz>
7091
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
7095 with IL files.
7096
7097 2021-05-16 Christophe Lyon <christophe.lyon@linaro.org>
7098
7099 * config/arm/arm.h (CPP_SPEC): Remove error message about
7100 -mlittle-endian/-mbig-endian conflict.
7101
7102 2021-05-15 Bill Schmidt <wschmidt@linux.ibm.com>
7103
7104 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
7105 __ROP_PROTECT__ if -mrop-protect is selected.
7106
7107 2021-05-15 Bill Schmidt <wschmidt@linux.ibm.com>
7108
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
7117 UNSPEC_HASHCHK.
7118 (hashst): New define_insn.
7119 (hashchk): Likewise.
7120
7121 2021-05-15 Bill Schmidt <wschmidt@linux.ibm.com>
7122
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.
7128
7129 2021-05-15 Hans-Peter Nilsson <hp@axis.com>
7130
7131 * reorg.c (fill_slots_from_thread): Reinstate code typoed out in
7132 "Remove CC0".
7133
7134 2021-05-15 Martin Jambor <mjambor@suse.cz>
7135
7136 Revert:
7137 2021-05-13 Martin Jambor <mjambor@suse.cz>
7138
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.
7143
7144 2021-05-15 Jakub Jelinek <jakub@redhat.com>
7145
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.
7150
7151 2021-05-14 Jason Merrill <jason@redhat.com>
7152
7153 * intl.h: Add comments.
7154
7155 2021-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7156
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.
7167
7168 2021-05-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7169
7170 PR target/66791
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.
7190
7191 2021-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7192
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.
7205
7206 2021-05-13 Martin Sebor <msebor@redhat.com>
7207
7208 PR middle-end/100574
7209 * builtins.c (access_ref::get_ref): Improve detection of PHIs with
7210 all null arguments.
7211
7212 2021-05-13 Martin Sebor <msebor@redhat.com>
7213
7214 PR tree-optimization/93100
7215 PR middle-end/98583
7216 * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that
7217 don't modify referenced objects.
7218
7219 2021-05-13 Martin Jambor <mjambor@suse.cz>
7220
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.
7225
7226 2021-05-13 Martin Liska <mliska@suse.cz>
7227
7228 * tree-ssa-dom.c: Remove m_simplifier.
7229
7230 2021-05-13 Richard Earnshaw <rearnsha@arm.com>
7231
7232 PR target/100563
7233 * config/arm/arm.c (arm_canonicalize_comparison): Correctly
7234 canonicalize DImode inequality comparisons against the
7235 maximum integral value.
7236
7237 2021-05-13 Jakub Jelinek <jakub@redhat.com>
7238
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
7243 caller.
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.
7253
7254 2021-05-13 Uroš Bizjak <ubizjak@gmail.com>
7255
7256 PR target/100581
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.
7260
7261 2021-05-13 Martin Liska <mliska@suse.cz>
7262
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
7277 to 4 bytes.
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.
7294
7295 2021-05-13 liuhongt <hongtao.liu@intel.com>
7296
7297 PR target/94680
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.
7304
7305 2021-05-13 Alexandre Oliva <oliva@adacore.com>
7306
7307 * targhooks.c (default_zero_call_used_regs): Retry using
7308 successfully-zeroed registers as sources.
7309
7310 2021-05-12 Tobias Burnus <tobias@codesourcery.com>
7311
7312 * omp-low.c (finish_taskreg_scan): Use the proper detach decl.
7313
7314 2021-05-12 Aldy Hernandez <aldyh@redhat.com>
7315
7316 PR c/100521
7317 * gimple-range.cc (range_of_builtin_call): Skip out on
7318 processing __builtin_clz when varying.
7319
7320 2021-05-12 Tom de Vries <tdevries@suse.de>
7321
7322 PR target/96005
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
7329 TARGET_PTX_6_3.
7330 * config/nvptx/nvptx.opt (ptx_version): Add enum.
7331 (mptx): Add option.
7332 * doc/invoke.texi (Nvidia PTX Options): Add mptx item.
7333
7334 2021-05-12 Richard Biener <rguenther@suse.de>
7335
7336 PR tree-optimization/100566
7337 * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
7338 allow_back for all edge queries.
7339
7340 2021-05-12 liuhongt <hongtao.liu@intel.com>
7341
7342 PR target/99908
7343 * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add
7344 splitters for pblendvb of NOT mask register.
7345
7346 2021-05-12 Richard Biener <rguenther@suse.de>
7347
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.
7355
7356 2021-05-12 Martin Liska <mliska@suse.cz>
7357
7358 * lto-wrapper.c (merge_and_complain): Merge -flto=arg options.
7359 (run_gcc): Use -flto argument detection for merged
7360 fdecoded_options.
7361
7362 2021-05-12 Martin Liska <mliska@suse.cz>
7363
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.
7368
7369 2021-05-12 Martin Liska <mliska@suse.cz>
7370
7371 * lto-wrapper.c (get_options_from_collect_gcc_options): Change
7372 return type.
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
7377 type arguments.
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.
7386
7387 2021-05-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
7388
7389 PR debug/100515
7390 * dwarf2out.c (dwarf2out_finish): Set
7391 have_multiple_function_sections with multi-range text_section.
7392
7393 2021-05-12 Martin Liska <mliska@suse.cz>
7394
7395 PR bootstrap/100560
7396 * Makefile.in: Remove version.h from linker command line.
7397
7398 2021-05-12 Richard Biener <rguenther@suse.de>
7399
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.
7403
7404 2021-05-12 Jakub Jelinek <jakub@redhat.com>
7405
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.
7410
7411 2021-05-12 Jakub Jelinek <jakub@redhat.com>
7412 Marc Glisse <marc.glisse@inria.fr>
7413
7414 PR tree-optimization/94589
7415 * match.pd ((X & Y) == X -> (X & ~Y) == 0,
7416 (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications.
7417
7418 2021-05-12 Uroš Bizjak <ubizjak@gmail.com>
7419
7420 PR target/98218
7421 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode.
7422 * config/i386/mmx.md (MMXMODE124): New mode iterator.
7423 (V2FI): Ditto.
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.
7434
7435 2021-05-11 Martin Sebor <msebor@redhat.com>
7436
7437 PR middle-end/21433
7438 * expr.c (expand_expr_real_1): Replace unreachable code with an assert.
7439
7440 2021-05-11 Richard Biener <rguenther@suse.de>
7441
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
7445 inputs.
7446
7447 2021-05-11 Martin Liska <mliska@suse.cz>
7448
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.
7501
7502 2021-05-11 Richard Biener <rguenther@suse.de>
7503
7504 PR ipa/100513
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.
7509
7510 2021-05-11 Alex Coplan <alex.coplan@arm.com>
7511
7512 PR target/99725
7513 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear):
7514 Avoid emitting CFA adjusts on the sp if we have the fp.
7515
7516 2021-05-11 Richard Sandiford <richard.sandiford@arm.com>
7517
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.
7528
7529 2021-05-11 Richard Biener <rguenther@suse.de>
7530
7531 * gimple-fold.c (maybe_fold_reference): Only return
7532 is_gimple_min_invariant values.
7533
7534 2021-05-11 Richard Biener <rguenther@suse.de>
7535
7536 PR middle-end/100509
7537 * gimple-fold.c (fold_gimple_assign): Only call
7538 get_symbol_constant_value on register type symbols.
7539
7540 2021-05-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7541 Joe Ramsay <joe.ramsay@arm.com>
7542
7543 PR target/100419
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.
7560
7561 2021-05-11 Jakub Jelinek <jakub@redhat.com>
7562
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.
7567
7568 2021-05-11 Kewen Lin <linkw@linux.ibm.com>
7569
7570 * config/rs6000/rs6000.c (struct rs6000_cost_data): New member
7571 costing_for_scalar.
7572 (rs6000_density_test): Early return if costing_for_scalar is true.
7573 (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data.
7574
7575 2021-05-11 Kewen Lin <linkw@linux.ibm.com>
7576
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.
7590
7591 2021-05-11 Kewen Lin <linkw@linux.ibm.com>
7592
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.
7599
7600 2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
7601
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.
7605
7606 2021-05-10 Martin Sebor <msebor@redhat.com>
7607
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.
7615
7616 2021-05-10 Pat Haugen <pthaugen@linux.ibm.com>
7617
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.
7621
7622 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
7623
7624 * config/arm/arm.h (CPP_SPEC): Remove error message about
7625 -mfloat-abi.
7626
7627 2021-05-10 Martin Jambor <mjambor@suse.cz>
7628
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
7644 ipa_edge_args_sum.
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
7695 some queries.
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
7712 ipa_edge_args_sum.
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
7715 ipa_edge_args_sum.
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
7735 top edge summary.
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
7738 ipa_edge_args_sum.
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
7747 ipa_edge_args_sum.
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.
7752
7753 2021-05-10 Uroš Bizjak <ubizjak@gmail.com>
7754
7755 * config/i386/i386-expand.c (ix86_expand_sse_movcc)
7756 <case E_V2SImode>: Force op_true to register.
7757
7758 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
7759
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*
7763 patterns.
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.
7773
7774 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
7775
7776 * config/arm/iterators.md (MVE_COMPARISONS): New.
7777 (mve_cmp_op): New.
7778 (mve_cmp_type): New.
7779 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all
7780 mve_vcmp patterns.
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.
7788
7789 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
7790
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
7794 names.
7795
7796 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
7797
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.
7808
7809 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
7810
7811 * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call
7812 the 's' version of the builtin.
7813
7814 2021-05-10 Richard Biener <rguenther@suse.de>
7815
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.
7819
7820 2021-05-10 Richard Biener <rguenther@suse.de>
7821
7822 PR middle-end/100464
7823 PR c++/100468
7824 * gimple-fold.c (canonicalize_constructor_val): Do not set
7825 TREE_ADDRESSABLE.
7826
7827 2021-05-10 Richard Biener <rguenther@suse.de>
7828
7829 PR tree-optimization/100434
7830 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
7831 call LHS.
7832 (dse_optimize_stmt): Handle call LHS by dropping the
7833 LHS or the whole call if it doesn't have other
7834 side-effects.
7835 (pass_dse::execute): Adjust.
7836
7837 2021-05-10 Martin Liska <mliska@suse.cz>
7838
7839 * Makefile.in: Add missing genversion rule.
7840
7841 2021-05-10 Alex Coplan <alex.coplan@arm.com>
7842
7843 PR target/99960
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.
7846
7847 2021-05-10 Martin Liska <mliska@suse.cz>
7848
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.
7893
7894 2021-05-10 Martin Liska <mliska@suse.cz>
7895
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):
7900 Likewise.
7901 * sbitmap.h: Likewise.
7902
7903 2021-05-10 Martin Liska <mliska@suse.cz>
7904
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
7912 GCC_major_version.
7913 * version.c: Removed.
7914 * version.h: Removed.
7915
7916 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7917
7918 * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define.
7919 * config/arc/simdext.md (VCT): Add predicates for iterator
7920 elements.
7921 (EMUVEC): Define.
7922 (voptab): Likewise.
7923 (vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate.
7924 (<voptab>v2si3): New patterns.
7925 (neg): Likewise.
7926 (reduc_plus_scal_v4hi): Likewise.
7927 (reduc_plus_scal_v2si): Likewise.
7928 (vec_duplicatev2si): Likewise.
7929 (vec_duplicatev4hi): Likewise.
7930
7931 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7932
7933 * config/arc/simdext.md: Format and cleanup file.
7934
7935 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7936
7937 * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access
7938 only when munaligned-access option is on.
7939 (movmisalign<mode>): Likewise.
7940
7941 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7942
7943 * common/config/arc/arc-common.c (arc_handle_option): Remove dot
7944 from string.
7945 * config/arc/arc.c (arc_reorg): Remove underscore from string.
7946
7947 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7948
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.
7952 (norm_f): Likewise.
7953 (ffs): Likewise.
7954 (ffs_f): Likewise.
7955 (clzsi2): Use fls instruction when available.
7956 (arc_clzsi2): Likewise.
7957
7958 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7959
7960 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27.
7961
7962 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
7963
7964 * doc/extend.texi (__builtin_arc_sr): Swap arguments.
7965
7966 2021-05-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
7967
7968 PR middle-end/100467
7969 * toplev.c (compile_file): Call insn_locations_init before
7970 targetm.asm_out.code_end.
7971
7972 2021-05-07 Andrew Stubbs <ams@codesourcery.com>
7973
7974 Revert:
7975 2021-05-07 Andrew Stubbs <ams@codesourcery.com>
7976
7977 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
7978
7979 2021-05-07 Jakub Jelinek <jakub@redhat.com>
7980 Andrew Stubbs <amd@codesourcery.com>
7981
7982 PR target/100418
7983 * builtins.c (try_store_by_multiple_pieces): Use force_operand for
7984 emit_move_insn operands.
7985
7986 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
7987
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.
7993
7994 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
7995
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.
8010
8011 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
8012
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.
8018
8019 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
8020
8021 * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with
8022 only PHI nodes better.
8023
8024 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
8025
8026 * gimple-range-edge.h (gimple_outgoing_range): Rename from
8027 outgoing_range.
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.
8032
8033 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
8034
8035 * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute
8036 default range into a temp and allocate only what is needed.
8037
8038 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
8039
8040 * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED.
8041
8042 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
8043
8044 * gimple-range.h (gimple_range_global): Pick up parameter initial
8045 values, and use-before defined locals are UNDEFINED.
8046
8047 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
8048
8049 * doc/extend.texi (scalar_storage_order): Mention effect on pointer
8050 and vector fields.
8051 * tree.h (reverse_storage_order_for_component_p): Return false if
8052 the type is a pointer.
8053
8054 2021-05-07 Andrew Stubbs <ams@codesourcery.com>
8055
8056 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
8057
8058 2021-05-07 Uroš Bizjak <ubizjak@gmail.com>
8059
8060 PR target/98218
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.
8066
8067 2021-05-07 Tobias Burnus <tobias@codesourcery.com>
8068 Tom de Vries <tdevries@suse.de>
8069
8070 * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if
8071 a truth_value_p reduction variable is nonintegral.
8072
8073 2021-05-07 Uroš Bizjak <ubizjak@gmail.com>
8074
8075 PR target/100445
8076 * config/i386/i386-expand.c (ix86_use_mask_cmp_p):
8077 Return false for mode sizes < 16.
8078
8079 2021-05-07 Jakub Jelinek <jakub@redhat.com>
8080
8081 PR target/100445
8082 * config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn.
8083
8084 2021-05-06 Martin Jambor <mjambor@suse.cz>
8085
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
8089 bailing out early.
8090
8091 2021-05-06 Tom Tromey <tom@tromey.com>
8092
8093 * godump.c (string_hash_eq): Remove.
8094 (go_finish): Use htab_eq_string.
8095
8096 2021-05-06 Tom Tromey <tom@tromey.com>
8097
8098 * gengtype-state.c (read_state): Use htab_eq_string.
8099 (string_eq): Remove.
8100
8101 2021-05-06 Tom Tromey <tom@tromey.com>
8102
8103 * gensupport.c (htab_eq_string): Remove.
8104
8105 2021-05-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
8106
8107 PR ipa/97937
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
8119 in_text_section_p.
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.
8134
8135 2021-05-06 Richard Biener <rguenther@suse.de>
8136
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.
8143
8144 2021-05-06 Jakub Jelinek <jakub@redhat.com>
8145
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
8150 gimple * to gphi *.
8151
8152 2021-05-06 Richard Biener <rguenther@suse.de>
8153
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.
8158
8159 2021-05-06 Richard Biener <rguenther@suse.de>
8160
8161 * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE
8162 return variable removal.
8163
8164 2021-05-06 Marius Hillenbrand <mhillen@linux.ibm.com>
8165
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
8169 operand.
8170 * config/s390/s390.c (s390_const_operand_ok): Remove unused
8171 values.
8172
8173 2021-05-06 Jakub Jelinek <jakub@redhat.com>
8174
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.
8179
8180 2021-05-06 Richard Biener <rguenther@suse.de>
8181
8182 PR ipa/100373
8183 * tree-emutls.c (gen_emutls_addr): Pass in whether we're
8184 dealing with a debug use and only query existing addresses
8185 if so.
8186 (lower_emutls_1): Avoid splitting out addresses for debug
8187 stmts, reset the debug stmt when we fail to find existing
8188 lowered addresses.
8189 (lower_emutls_phi_arg): Set wi.stmt.
8190
8191 2021-05-06 Christoph Muellner <cmuellner@gcc.gnu.org>
8192
8193 PR target/100266
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.
8197
8198 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
8199
8200 PR target/100402
8201 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
8202 always return the establisher frame for __builtin_frame_address (0).
8203
8204 2021-05-05 Ivan Sorokin <vanyacpp@gmail.com>
8205
8206 PR target/91400
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
8212 their types.
8213
8214 2021-05-05 Martin Sebor <msebor@redhat.com>
8215
8216 * passes.def (pass_warn_printf): Run after SSA.
8217
8218 2021-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8219
8220 * config/arm/neon.md (neon_vtst_combine<mode>): New pattern.
8221 * config/arm/predicates.md (minus_one_operand): New predicate.
8222
8223 2021-05-05 Jeff Law <jlaw@tachyum.com>
8224
8225 * config/avr/avr.md: Remove references to CC_STATUS_INIT.
8226
8227 2021-05-05 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
8228
8229 PR rtl-optimization/100263
8230 * postreload.c (move2add_valid_value_p): Ensure register can
8231 change mode.
8232
8233 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
8234
8235 PR rtl-optimization/100411
8236 * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue
8237 and beginning of function markers.
8238
8239 2021-05-05 Jeff Law <jlaw@tachyum.com>
8240
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.
8244
8245 2021-05-05 Uroš Bizjak <ubizjak@gmail.com>
8246
8247 PR target/98218
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.
8262
8263 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
8264
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.
8269
8270 2021-05-05 Richard Biener <rguenther@suse.de>
8271
8272 PR tree-optimization/79333
8273 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
8274 Fold stmt following SSA edges.
8275
8276 2021-05-05 Richard Biener <rguenther@suse.de>
8277
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
8284 dead EH.
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.
8288
8289 2021-05-05 Alexandre Oliva <oliva@adacore.com>
8290
8291 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it
8292 unconditional.
8293
8294 2021-05-04 David Edelsohn <dje.gcc@gmail.com>
8295
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
8301 ASM_OUTPUT_LABEL.
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
8305 FUNCTION_DECL.
8306 (rs6000_asm_weaken_decl): Don't explicitly add [DS].
8307
8308 2021-05-04 Martin Sebor <msebor@redhat.com>
8309
8310 PR middle-end/100307
8311 * builtins.c (compute_objsize_r): Clear base0 for pointers.
8312
8313 2021-05-04 Jeff Law <jlaw@tachyum.com>
8314
8315 * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.
8316
8317 2021-05-04 Segher Boessenkool <segher@kernel.crashing.org>
8318
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.
8389
8390 2021-05-04 Richard Biener <rguenther@suse.de>
8391
8392 PR tree-optimization/100414
8393 * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
8394 info here.
8395 (tree_ssa_phiopt_worker): But unconditionally here.
8396
8397 2021-05-04 Tobias Burnus <tobias@codesourcery.com>
8398
8399 * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
8400 && and || with floating-point and complex arguments.
8401
8402 2021-05-04 Eric Botcazou <ebotcazou@adacore.com>
8403
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.
8411
8412 2021-05-04 Eric Botcazou <ebotcazou@adacore.com>
8413
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.
8416
8417 2021-05-04 Richard Biener <rguenther@suse.de>
8418
8419 PR tree-optimization/100329
8420 * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
8421 asm goto defs.
8422 (insert_stmt_after): Assert we're not running into asm goto.
8423
8424 2021-05-04 Richard Biener <rguenther@suse.de>
8425
8426 PR tree-optimization/100398
8427 * tree-ssa-dse.c (pass_dse::execute): Preserve control
8428 altering stmts.
8429
8430 2021-05-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8431
8432 * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype.
8433
8434 2021-05-04 Alexandre Oliva <oliva@adacore.com>
8435
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.
8445
8446 2021-05-03 Tom de Vries <tdevries@suse.de>
8447
8448 PR target/100321
8449 * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined
8450 reduction.
8451
8452 2021-05-03 Richard Biener <rguenther@suse.de>
8453
8454 * tree-ssa-dse.c (dse_classify_store): Track two PHI defs.
8455
8456 2021-05-03 Richard Biener <rguenther@suse.de>
8457
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
8464 order walk.
8465
8466 2021-05-03 H.J. Lu <hjl.tools@gmail.com>
8467
8468 PR bootstrap/99703
8469 * configure: Regenerated.
8470
8471 2021-05-03 Ilya Leoshkevich <iii@linux.ibm.com>
8472
8473 PR target/100217
8474 * config/s390/s390.c (s390_hard_fp_reg_p): New function.
8475 (s390_md_asm_adjust): Handle hard registers.
8476
8477 2021-05-03 Jakub Jelinek <jakub@redhat.com>
8478
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.
8483
8484 2021-05-02 David Edelsohn <dje.gcc@gmail.com>
8485
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
8491 unsigned int.
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
8498 bss_initializer.
8499 (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage
8500 mapping class.
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.
8514
8515 2021-05-02 Jakub Jelinek <jakub@redhat.com>
8516
8517 PR target/100375
8518 * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0
8519 as first argument of pseudo_node_t constructors.
8520
8521 2021-05-02 Jakub Jelinek <jakub@redhat.com>
8522
8523 PR target/100336
8524 * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def.
8525
8526 2021-05-01 Aldy Hernandez <aldyh@redhat.com>
8527
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
8532 the base class.
8533
8534 2021-05-01 Geng Qi <gengqi@linux.alibaba.com>
8535
8536 * doc/options.texi (Negative): Change either or to both and.
8537
8538 2021-04-30 Jonathan Wright <jonathan.wright@arm.com>
8539
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.
8550
8551 2021-04-30 Jonathan Wright <jonathan.wright@arm.com>
8552
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>):
8556 Rename to...
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.
8565
8566 2021-04-30 Jonathan Wright <jonathan.wright@arm.com>
8567
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>):
8571 Define.
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.
8583
8584 2021-04-30 Jonathan Wright <jonathan.wright@arm.com>
8585
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>):
8589 Rename to...
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.
8598
8599 2021-04-30 Jonathan Wright <joanthan.wright@arm.com>
8600
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.
8609
8610 2021-04-30 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
8611
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.
8616
8617 2021-04-30 David Edelsohn <dje.gcc@gmail.com>
8618
8619 * varasm.c (use_blocks_for_decl_p): Don't use section anchors
8620 for VAR_DECLs if -fdata-sections enabled.
8621
8622 2021-04-30 Michael Meissner <meissner@linux.ibm.com>
8623
8624 PR bootstrap/100327
8625 * config/rs6000/rs6000.c
8626 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
8627 (rs6000_libgcc_floating_mode_supported_p): New target hook.
8628
8629 2021-04-30 Aldy Hernandez <aldyh@redhat.com>
8630
8631 * tree-ssa-threadbackward.c (class thread_jumps): Split out code
8632 from here...
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.
8656
8657 2021-04-30 Aldy Hernandez <aldyh@redhat.com>
8658
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):
8688 Here...
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
8766 class.
8767
8768 2021-04-30 Christophe Lyon <christophe.lyon@linaro.org>
8769
8770 * genflags.c (gen_insn): Print failed expansion string.
8771
8772 2021-04-30 H.J. Lu <hjl.tools@gmail.com>
8773
8774 * expr.c (alignment_for_piecewise_move): Call mode_for_size
8775 without limit to MAX_FIXED_MODE_SIZE.
8776
8777 2021-04-30 H.J. Lu <hjl.tools@gmail.com>
8778
8779 PR middle-end/90773
8780 * builtins.c (builtin_memset_gen_str): Don't use return from
8781 simplify_gen_subreg.
8782
8783 2021-04-30 Uroš Bizjak <ubizjak@gmail.com>
8784
8785 PR target/98060
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):
8791 New predicate.
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.
8795
8796 2021-04-30 Roman Zhuykov <zhroma@ispras.ru>
8797
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
8804 tail.
8805
8806 2021-04-30 Geng Qi <gengqi@linux.alibaba.com>
8807
8808 * config/riscv/riscv.opt (march=,mabi=): Negative itself.
8809
8810 2021-04-30 LevyHsu <admin@levyhsu.com>
8811
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.
8816
8817 2021-04-29 Alexandre Oliva <oliva@adacore.com>
8818
8819 * config.gcc: Merged x86 and x86_64 cpu_type-setting cases.
8820
8821 2021-04-29 Alexandre Oliva <oliva@adacore.com>
8822
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.
8838
8839 2021-04-29 Uroš Bizjak <ubizjak@gmail.com>
8840
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.
8846
8847 2021-04-29 Richard Sandiford <richard.sandiford@arm.com>
8848
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.
8859
8860 2021-04-29 Jeff Law <jlaw@tachyum.com>
8861
8862 * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside
8863 of RTX_CODE guard.
8864
8865 2021-04-29 Uroš Bizjak <ubizjak@gmail.com>
8866 Richard Biener <rguenther@suse.de>
8867
8868 PR target/100312
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.
8878
8879 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
8880
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.
8888
8889 2021-04-29 Uroš Bizjak <ubizjak@gmail.com>
8890
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.
8898
8899 2021-04-29 Tom de Vries <tdevries@suse.de>
8900
8901 * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of
8902 fd->loop.step by either step or orig_step.
8903
8904 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
8905
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.
8941
8942 2021-04-29 H.J. Lu <hjl.tools@gmail.com>
8943
8944 PR middle-end/90773
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.
8964 (PUSHG_P): New.
8965 (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d
8966 change.
8967 (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d
8968 change.
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.
8982
8983 2021-04-29 Richard Biener <rguenther@suse.de>
8984
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.
8989
8990 2021-04-29 Jakub Jelinek <jakub@redhat.com>
8991
8992 PR target/100302
8993 * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
8994 absu_hwi instead of abs_hwi.
8995
8996 2021-04-29 Richard Biener <rguenther@suse.de>
8997
8998 PR middle-end/38474
8999 * tree-ssa-structalias.c (add_graph_edge): Avoid direct
9000 forwarding when indirect forwarding through ESCAPED
9001 alread happens.
9002
9003 2021-04-29 Tom de Vries <tdevries@suse.de>
9004
9005 PR target/100232
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.
9010
9011 2021-04-29 Richard Biener <rguenther@suse.de>
9012
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
9017 caller.
9018 (dse_dom_walker::before_dom_children): Remove trivially
9019 dead SSA defs and schedule CFG cleanup if we removed all
9020 PHIs in a block.
9021 (pass_dse::execute): Get TODO as computed by the DOM walker
9022 and return it. Wipe dominator info earlier.
9023
9024 2021-04-29 Richard Biener <rguenther@suse.de>
9025
9026 PR ipa/100308
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
9031 doing EH cleanup.
9032
9033 2021-04-29 Martin Sebor <msebor@redhat.com>
9034
9035 PR middle-end/100250
9036 * attribs.c (attr_access::array_as_string): Avoid dereferencing
9037 a pointer when it's null.
9038
9039 2021-04-29 Martin Sebor <msebor@redhat.com>
9040
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.
9046
9047 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9048
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
9053 unspecs.
9054 * config/aarch64/iterators.md: Remove redundant unspecs and
9055 iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively.
9056
9057 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9058
9059 * config/aarch64/arm_acle.h (__attribute__): Make intrinsic
9060 attributes consistent with those defined in arm_neon.h.
9061
9062 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9063
9064 * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic
9065 attributes consistent with those defined in arm_neon.h.
9066
9067 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9068
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):
9072 Define.
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.
9082
9083 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9084
9085 * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin
9086 generator macros.
9087 * config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>):
9088 Define.
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.
9099
9100 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9101
9102 * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin
9103 generator macros.
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.
9117
9118 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9119
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.
9129
9130 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9131
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.
9140
9141 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9142
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.
9150
9151 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9152
9153 * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp
9154 builtin generator macros.
9155 * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>):
9156 Define.
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.
9172
9173 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9174
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.
9188
9189 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
9190
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>):
9194 Define.
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.
9204
9205 2021-04-28 Tobias Burnus <tobias@codesourcery.com>
9206
9207 * doc/install.texi (--enable-offload-defaulted): Document.
9208
9209 2021-04-28 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
9210
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
9215 the splitters.
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
9232 REG_CC clobber.
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
9239 of cc0_rtx.
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
9249 for REG_CC.
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
9258 the splitters.
9259 (sez): Remove unused pattern.
9260
9261 2021-04-28 Richard Earnshaw <rearnsha@arm.com>
9262
9263 PR target/100311
9264 * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be
9265 used in HImode.
9266
9267 2021-04-28 Richard Sandiford <richard.sandiford@arm.com>
9268
9269 PR target/100305
9270 * config/aarch64/constraints.md (Utq): Require the address to
9271 be valid for both the element mode and for V2DImode.
9272
9273 2021-04-28 Jakub Jelinek <jakub@redhat.com>
9274 Tobias Burnus <tobias@codesourcery.com>
9275
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.
9288
9289 2021-04-28 Richard Biener <rguenther@suse.de>
9290
9291 PR tree-optimization/100292
9292 * tree-vect-generic.c (expand_vector_condition): Do not fold
9293 the comparisons.
9294
9295 2021-04-27 David Edelsohn <dje.gcc@gmail.com>
9296
9297 * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New.
9298 * config/rs6000/aix64.opt (m64): New.
9299 (m32): New.
9300
9301 2021-04-27 Maciej W. Rozycki <macro@orcam.me.uk>
9302
9303 * config/vax/vax.c (print_operand_address, vax_address_cost_1)
9304 (index_term_p): Handle ASHIFT too.
9305
9306 2021-04-27 Maciej W. Rozycki <macro@orcam.me.uk>
9307
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.
9311
9312 2021-04-27 Maciej W. Rozycki <macro@orcam.me.uk>
9313
9314 * config/vax/vax-protos.h (adjacent_operands_p): Remove
9315 prototype.
9316 * config/vax/vax.c (adjacent_operands_p): Remove.
9317
9318 2021-04-27 Maciej W. Rozycki <macro@linux-mips.org>
9319
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.
9323
9324 2021-04-27 Richard Sandiford <richard.sandiford@arm.com>
9325
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.
9330
9331 2021-04-27 David Edelsohn <dje.gcc@gmail.com>
9332
9333 * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect
9334 with TARGET_AIX_OS.
9335
9336 2021-04-27 David Edelsohn <dje.gcc@gmail.com>
9337
9338 PR target/94177
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.
9346
9347 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9348
9349 PR target/100200
9350 * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL
9351 back to HOST_WIDE_INT.
9352
9353 2021-04-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
9354
9355 PR target/100106
9356 * simplify-rtx.c (simplify_context::simplify_subreg): Check the
9357 memory alignment for the outer mode.
9358
9359 2021-04-27 H.J. Lu <hjl.tools@gmail.com>
9360
9361 PR middle-end/90773
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.
9364
9365 2021-04-27 Alex Coplan <alex.coplan@arm.com>
9366
9367 PR target/99977
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.
9377
9378 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9379
9380 PR target/100200
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.
9386
9387 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9388
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.
9392
9393 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9394
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.
9398
9399 2021-04-27 Richard Biener <rguenther@suse.de>
9400
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
9404 at start.
9405
9406 2021-04-27 Richard Biener <rguenther@suse.de>
9407
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.
9412
9413 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9414
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.
9422
9423 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9424
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
9430 cheaper.
9431
9432 2021-04-27 Martin Jambor <mjambor@suse.cz>
9433
9434 PR ipa/99951
9435 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
9436 If removing a call statement LHS SSA name, release it.
9437
9438 2021-04-27 Richard Earnshaw <rearnsha@arm.com>
9439
9440 PR target/100236
9441 * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM
9442 is valid before including it in the mask.
9443
9444 2021-04-27 Richard Sandiford <richard.sandiford@arm.com>
9445
9446 PR target/100270
9447 * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle
9448 SVE attributes.
9449
9450 2021-04-27 Richard Biener <rguenther@suse.de>
9451
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.
9455
9456 2021-04-27 Richard Biener <rguenther@suse.de>
9457
9458 PR tree-optimization/100278
9459 * tree-ssa-pre.c (compute_avail): Give up when we cannot
9460 adjust TBAA beacuse of mismatching bases.
9461
9462 2021-04-27 Jakub Jelinek <jakub@redhat.com>
9463
9464 PR target/99405
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.
9468
9469 2021-04-27 Richard Biener <rguenther@suse.de>
9470
9471 PR tree-optimization/99776
9472 * match.pd (bit_field_ref (ctor)): Relax element extract
9473 type compatibility checks.
9474
9475 2021-04-27 Cui,Lili <lili.cui@intel.com>
9476
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.
9481
9482 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
9483
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].
9487
9488 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
9489
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.
9495
9496 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
9497
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
9505 m_kind field set.
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.
9518
9519 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
9520
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.
9528
9529 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
9530
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.
9537
9538 2021-04-26 Richard Biener <rguenther@suse.de>
9539
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.
9546
9547 2021-04-26 Christophe Lyon <christophe.lyon@linaro.org>
9548
9549 * doc/sourcebuild.texi (arm_cmse_hw): Document.
9550
9551 2021-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9552
9553 * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF.
9554
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>
9560
9561 * omp-offload.c (oacc_validate_dims): Implement
9562 '-Wopenacc-parallelism'.
9563 * doc/invoke.texi (-Wopenacc-parallelism): Document.
9564
9565 2021-04-26 Richard Biener <rguenther@suse.de>
9566
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.
9574 Modernize.
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.
9583
9584 2021-04-26 Richard Biener <rguenther@suse.de>
9585
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.
9595
9596 2021-04-26 Richard Biener <rguenther@suse.de>
9597
9598 * tree-ssa-phiopt.c (two_value_replacement): Remove use
9599 of legacy gimplify_buildN API.
9600
9601 2021-04-26 Richard Biener <rguenther@suse.de>
9602
9603 PR tree-optimization/99473
9604 * tree-ssa-phiopt.c (cond_store_replacement): Handle all
9605 stores.
9606
9607 2021-04-26 Richard Biener <rguenther@suse.de>
9608
9609 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin):
9610 Use replace_call_with_value.
9611
9612 2021-04-26 Richard Biener <rguenther@suse.de>
9613
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.
9645
9646 2021-04-26 Jakub Jelinek <jakub@redhat.com>
9647
9648 PR debug/100255
9649 * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
9650 vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
9651 register keywords.
9652
9653 2021-04-25 liuhongt <hongtao.liu@intel.com>
9654
9655 PR target/98911
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.
9672
9673 2021-04-24 Iain Sandoe <iain@sandoe.co.uk>
9674
9675 Revert:
9676 2021-04-24 Iain Sandoe <iain@sandoe.co.uk>
9677
9678 PR target/100152
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.
9682
9683 2021-04-24 Iain Sandoe <iain@sandoe.co.uk>
9684
9685 PR target/100152
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.
9689
9690 2021-04-24 Richard Sandiford <richard.sandiford@arm.com>
9691
9692 * doc/sourcebuild.texi: Document no-opts and any-opts target
9693 selectors.
9694
9695 2021-04-23 YiFei Zhu <zhuyifei1999@gmail.com>
9696
9697 * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm.
9698
9699 2021-04-23 YiFei Zhu <zhuyifei1999@gmail.com>
9700
9701 * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.
9702
9703 2021-04-23 Uroš Bizjak <ubizjak@gmail.com>
9704
9705 PR target/100041
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.
9709
9710 2021-04-23 Martin Liska <mliska@suse.cz>
9711
9712 * lto-wrapper.c: Remove FIXME about usage of
9713 hardware_concurrency. The function is not on par with
9714 what we have now.
9715
9716 2021-04-23 Uroš Bizjak <ubizjak@gmail.com>
9717
9718 PR target/100182
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.
9730
9731 2021-04-23 Alex Coplan <alex.coplan@arm.com>
9732
9733 PR rtl-optimization/100230
9734 * early-remat.c (early_remat::sort_candidates): Use delete[]
9735 instead of delete for array allocated with new[].
9736
9737 2021-04-23 Richard Biener <rguenther@suse.de>
9738
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.
9750
9751 2021-04-23 Richard Biener <rguenther@suse.de>
9752
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.
9760
9761 2021-04-23 Richard Biener <rguenther@suse.de>
9762
9763 PR tree-optimization/100222
9764 * predict.c (pass_profile::execute): Remove redundant call to
9765 mark_irreducible_loops.
9766 (report_predictor_hitrates): Likewise.
9767
9768 2021-04-23 Richard Biener <rguenther@suse.de>
9769
9770 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
9771 valid_gimple_rhs_p by instead gimplifying to one.
9772
9773 2021-04-23 Richard Biener <rguenther@suse.de>
9774
9775 PR tree-optimization/99971
9776 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
9777 Always use TBAA for loads.
9778
9779 2021-04-23 liuhongt <hongtao.liu@intel.com>
9780
9781 PR target/100093
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.
9786
9787 2021-04-23 David Edelsohn <dje.gcc@gmail.com>
9788
9789 * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to
9790 DWARF2_DEBUG.
9791 * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same.
9792
9793 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
9794
9795 * config.gcc (powerpc-ibm-aix6.*): Remove.
9796 * config/rs6000/aix61.h: Delete.
9797
9798 2021-04-22 Martin Liska <mliska@suse.cz>
9799
9800 PR testsuite/100159
9801 PR testsuite/100192
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.
9805
9806 2021-04-22 Uroš Bizjak <ubizjak@gmail.com>
9807
9808 PR target/100119
9809 * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse):
9810 Remove the sign with FE_DOWNWARD, where x - x = -0.0.
9811
9812 2021-04-21 Iain Sandoe <iain@sandoe.co.uk>
9813
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().
9818
9819 2021-04-21 Martin Liska <mliska@suse.cz>
9820
9821 Revert:
9822 2021-04-21 Martin Liska <mliska@suse.cz>
9823
9824 * lto-wrapper.c (cpuset_popcount): Remove.
9825 (init_num_threads): Remove and use hardware_concurrency.
9826
9827 2021-04-21 Martin Liska <mliska@suse.cz>
9828
9829 PR jit/98615
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.
9833
9834 2021-04-21 Martin Liska <mliska@suse.cz>
9835
9836 * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the
9837 makeserver cannot be detected, then use -flto=N fallback.
9838
9839 2021-04-21 Richard Sandiford <richard.sandiford@arm.com>
9840
9841 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling,
9842 default to yes for aarch64-linux-gnu.
9843 * configure: Regenerate.
9844
9845 2021-04-21 Martin Liska <mliska@suse.cz>
9846
9847 * lto-wrapper.c (cpuset_popcount): Remove.
9848 (init_num_threads): Remove and use hardware_concurrency.
9849
9850 2021-04-21 Martin Liska <mliska@suse.cz>
9851
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.
9860
9861 2021-04-21 Martin Liska <mliska@suse.cz>
9862
9863 * config/i386/i386-expand.c (decide_alignment): Use newly named
9864 macro TARGET_CPU_P.
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.
9878
9879 2021-04-21 Martin Liska <mliska@suse.cz>
9880
9881 * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P):
9882 Define.
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.
9890 (DEF_PTA): New.
9891 * config/i386/i386.h (TARGET_*): Remove.
9892 * opth-gen.awk: Generate new used macros.
9893
9894 2021-04-21 Martin Liska <mliska@suse.cz>
9895
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.
9900
9901 2021-04-21 Alex Coplan <alex.coplan@arm.com>
9902
9903 PR target/99988
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
9906 jump table targets.
9907
9908 2021-04-21 H.J. Lu <hjl.tools@gmail.com>
9909
9910 * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and
9911 x86_64-*-* targets.
9912 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET):
9913 New.
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
9929 TARGET_MWAIT.
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.
9934
9935 2021-04-21 Martin Liska <mliska@suse.cz>
9936
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.
9940
9941 2021-04-21 Martin Liska <mliska@suse.cz>
9942
9943 * tree-cfg.c (gimple_verify_flow_info): Use qD instead
9944 of print_generic_expr.
9945
9946 2021-04-21 Jakub Jelinek <jakub@redhat.com>
9947
9948 PR rtl-optimization/100148
9949 * cprop.c (constprop_register): Use next_nondebug_insn instead of
9950 NEXT_INSN.
9951
9952 2021-04-21 Martin Liska <mliska@suse.cz>
9953
9954 PR ipa/98815
9955 * cgraphunit.c (cgraph_node::analyze): Remove duplicate
9956 free_dominance_info calls.
9957
9958 2021-04-21 Richard Biener <rguenther@suse.de>
9959
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.
9966
9967 2021-04-21 Richard Biener <rguenther@suse.de>
9968
9969 * fold-const.c (pedantic_non_lvalue_loc): Remove.
9970 (fold_binary_loc): Adjust.
9971 (fold_ternary_loc): Likewise.
9972
9973 2021-04-21 Richard Sandiford <richard.sandiford@arm.com>
9974
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.
9983
9984 2021-04-20 H.J. Lu <hjl.tools@gmail.com>
9985
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
9991 check.
9992 (sse4_2_crc32di): Likewise.
9993 * config/i386/ia32intrin.h: Use crc32 target option for CRC32
9994 intrinsics.
9995
9996 2021-04-20 Segher Boessenkool <segher@kernel.crashing.org>
9997
9998 PR target/100108
9999 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
10000 OPTION_MASK_ISEL.
10001
10002 2021-04-20 Martin Liska <mliska@suse.cz>
10003
10004 * doc/invoke.texi: Fix typo.
10005 * params.opt: Likewise.
10006
10007 2021-04-20 Martin Liska <mliska@suse.cz>
10008
10009 * doc/invoke.texi: Document new param.
10010
10011 2021-04-19 Andrew MacLeod <amacleod@redhat.com>
10012
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.
10022
10023 2021-04-19 Richard Earnshaw <rearnsha@arm.com>
10024
10025 PR target/100067
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).
10029
10030 2021-04-19 Thomas Schwinge <thomas@codesourcery.com>
10031
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'.
10037
10038 2021-04-19 Martin Liska <mliska@suse.cz>
10039
10040 PR c/100143
10041 * gengtype.c (finish_root_table): Align function arguments
10042 in between declaration and definition.
10043
10044 2021-04-19 Eric Botcazou <ebotcazou@adacore.com>
10045
10046 * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
10047 frames larger than the SEH maximum frame size.
10048
10049 2021-04-18 Segher Boessenkool <segher@kernel.crashing.org>
10050
10051 PR rtl-optimization/99927
10052 * combine.c (distribute_notes) [REG_UNUSED]: If the register already
10053 is dead, just drop it.
10054
10055 2021-04-17 Iain Buclaw <ibuclaw@gdcproject.org>
10056
10057 PR d/99914
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.
10062
10063 2021-04-17 Iain Buclaw <ibuclaw@gdcproject.org>
10064
10065 * config/darwin-d.c (darwin_d_handle_target_object_format): New
10066 function.
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
10070 function.
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
10074 function.
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
10078 function.
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
10082 function.
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
10086 function.
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
10090 function.
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
10094 function.
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
10101 function.
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
10105 function.
10106 (solaris_d_register_target_info): New function.
10107 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
10108
10109 2021-04-16 Jakub Jelinek <jakub@redhat.com>
10110
10111 PR target/91710
10112 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
10113 abi_break argument from bool * to unsigned *, store there the pre-GCC 9
10114 alignment.
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.
10118
10119 2021-04-16 Tamar Christina <tamar.christina@arm.com>
10120
10121 PR target/100048
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
10124 TRN optab.
10125 * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
10126
10127 2021-04-16 Bill Schmidt <wschmidt@linux.ibm.com>
10128
10129 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
10130 this section and its subsections.
10131
10132 2021-04-16 Jakub Jelinek <jakub@redhat.com>
10133
10134 PR target/100075
10135 * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New
10136 define_insn patterns.
10137
10138 2021-04-16 Richard Sandiford <richard.sandiford@arm.com>
10139
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
10147 to untyped_calls.
10148
10149 2021-04-16 Richard Sandiford <richard.sandiford@arm.com>
10150
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.
10156
10157 2021-04-16 Jakub Jelinek <jakub@redhat.com>
10158
10159 PR target/99767
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.
10163
10164 2021-04-15 Martin Liska <mliska@suse.cz>
10165
10166 * doc/invoke.texi: Other params don't use it, remove it.
10167
10168 2021-04-15 Richard Biener <rguenther@suse.de>
10169
10170 * gimple-builder.h: Add deprecation note.
10171
10172 2021-04-15 Richard Sandiford <richard.sandiford@arm.com>
10173
10174 PR c++/98852
10175 * attribs.h (restrict_type_identity_attributes_to): Declare.
10176 * attribs.c (restrict_type_identity_attributes_to): New function.
10177
10178 2021-04-15 Richard Sandiford <richard.sandiford@arm.com>
10179
10180 PR c/98852
10181 * attribs.h (affects_type_identity_attributes): Declare.
10182 * attribs.c (remove_attributes_matching): New function.
10183 (affects_type_identity_attributes): Likewise.
10184
10185 2021-04-15 Jakub Jelinek <jakub@redhat.com>
10186
10187 PR target/100056
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.
10191
10192 2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
10193
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.
10202
10203 2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
10204
10205 * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print
10206 more information about variable-length CONST_VECTORs.
10207
10208 2021-04-14 Vladimir N. Makarov <vmakarov@redhat.com>
10209
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.
10213
10214 2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
10215
10216 PR target/99246
10217 * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
10218 New function.
10219 (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
10220
10221 2021-04-14 Andreas Krebbel <krebbel@linux.ibm.com>
10222
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
10227 operand.
10228 (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the
10229 immediate operand.
10230 * config/s390/s390.c (s390_const_operand_ok): Check the new
10231 operand types and generate a list of valid values.
10232
10233 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
10234
10235 * doc/tm.texi: Regenerate.
10236 * doc/tm.texi.in (D language and ABI): Add @hook for
10237 TARGET_D_REGISTER_OS_TARGET_INFO.
10238
10239 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
10240
10241 * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New
10242 function.
10243 (aarch64_d_register_target_info): New function.
10244 * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info):
10245 Declare.
10246 * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO):
10247 Define.
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
10265 function.
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
10270 function.
10271 (rs6000_d_register_target_info): New function.
10272 * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info):
10273 Declare.
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
10280 function.
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.
10287
10288 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
10289
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.
10296
10297 2021-04-14 Richard Biener <rguenther@suse.de>
10298
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.
10303
10304 2021-04-14 Richard Earnshaw <rearnsha@arm.com>
10305
10306 PR target/100067
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.
10311
10312 2021-04-13 Richard Biener <rguenther@suse.de>
10313
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
10317 predicated values.
10318 (dominated_by_p_w_unex): Add parameter to ignore executable
10319 state on backedges.
10320 (rpo_elim::eliminate_avail): Adjust.
10321
10322 2021-04-13 Jakub Jelinek <jakub@redhat.com>
10323
10324 PR target/100028
10325 * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr,
10326 *aarch64_bfxilsi_extrdi): New define_insn patterns.
10327
10328 2021-04-13 Jakub Jelinek <jakub@redhat.com>
10329
10330 PR target/99648
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.
10336
10337 2021-04-12 Jakub Jelinek <jakub@redhat.com>
10338
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.
10344
10345 2021-04-12 Jakub Jelinek <jakub@redhat.com>
10346
10347 PR debug/99830
10348 * combine.c (simplify_and_const_int_1): Don't optimize varop
10349 away if it has side-effects.
10350
10351 2021-04-12 Martin Liska <mliska@suse.cz>
10352
10353 * doc/extend.texi: Escape @smallexample content.
10354
10355 2021-04-12 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
10356
10357 * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add
10358 alternative in order to load a DFP zero.
10359
10360 2021-04-12 Martin Liska <mliska@suse.cz>
10361
10362 * doc/extend.texi: Be more precise in documentation
10363 of symver attribute.
10364
10365 2021-04-12 Martin Liska <mliska@suse.cz>
10366
10367 PR sanitizer/99877
10368 * gimplify.c (gimplify_expr): Right now, we unpoison all
10369 variables before a goto <dest>. We should not do it if we are
10370 in a omp context.
10371
10372 2021-04-12 Cui,Lili <lili.cui@intel.com>
10373
10374 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle
10375 rocketlake.
10376 * common/config/i386/i386-common.c (processor_names): Add
10377 rocketlake.
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
10383 rocketlake.
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
10387 TARGET_ROCKETLAKE.
10388 (processor_type) : Add PROCESSOR_ROCKETLAKE.
10389 (PTA_ROCKETLAKE): Ditto.
10390 * doc/extend.texi: Add rocketlake.
10391 * doc/invoke.texi: Add rocketlake.
10392
10393 2021-04-12 Cui,Lili <lili.cui@intel.com>
10394
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.
10399
10400 2021-04-11 Hafiz Abid Qadeer <abidh@codesourcery.com>
10401
10402 PR middle-end/98088
10403 * omp-expand.c (expand_oacc_collapse_init): Update condition in
10404 a gcc_assert.
10405
10406 2021-04-10 H.J. Lu <hjl.tools@gmail.com>
10407
10408 PR target/99744
10409 * config/i386/serializeintrin.h (_serialize): Defined as macro.
10410
10411 2021-04-10 Jakub Jelinek <jakub@redhat.com>
10412
10413 PR lto/99849
10414 * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
10415 just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
10416
10417 2021-04-10 Jakub Jelinek <jakub@redhat.com>
10418
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.
10423
10424 2021-04-10 Jakub Jelinek <jakub@redhat.com>
10425
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.
10430
10431 2021-04-10 Jan Hubicka <hubicka@ucw.cz>
10432
10433 PR lto/99857
10434 * tree.c (free_lang_data_in_decl): Do not release body of
10435 declare_variant_alt.
10436
10437 2021-04-09 Richard Sandiford <richard.sandiford@arm.com>
10438
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.
10442
10443 2021-04-09 Richard Sandiford <richard.sandiford@arm.com>
10444
10445 * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
10446 as the temporary register.
10447
10448 2021-04-09 Martin Liska <mliska@suse.cz>
10449
10450 * doc/extend.texi: Move non-target attributes on the top level.
10451
10452 2021-04-09 Martin Liska <mliska@suse.cz>
10453
10454 * doc/invoke.texi: Document minimum and maximum value of the
10455 argument for both supported compression algorithms.
10456
10457 2021-04-08 David Edelsohn <dje.gcc@gmail.com>
10458
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.
10462
10463 2021-04-08 Richard Sandiford <richard.sandiford@arm.com>
10464
10465 * doc/sourcebuild.texi (stdint_types_mbig_endian): Document.
10466
10467 2021-04-08 Richard Sandiford <richard.sandiford@arm.com>
10468
10469 * match.pd: Extend vec_cond folds to handle shifts.
10470
10471 2021-04-08 Maciej W. Rozycki <macro@orcam.me.uk>
10472
10473 * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's
10474 peephole.
10475
10476 2021-04-08 Alex Coplan <alex.coplan@arm.com>
10477
10478 PR target/99647
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).
10486
10487 2021-04-08 Xionghu Luo <luoxhu@linux.ibm.com>
10488
10489 * fold-const.c (fold_single_bit_test): Fix typo.
10490 * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single
10491 instead.
10492
10493 2021-04-07 Richard Sandiford <richard.sandiford@arm.com>
10494
10495 PR tree-optimization/97513
10496 * tree-vect-slp.c (vect_add_slp_permutation): New function,
10497 split out from...
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.
10502
10503 2021-04-07 Richard Sandiford <richard.sandiford@arm.com>
10504
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.
10509
10510 2021-04-07 Jakub Jelinek <jakub@redhat.com>
10511
10512 PR target/99872
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
10515 ASM_OUTPUT_DEF.
10516
10517 2021-04-07 Richard Biener <rguenther@suse.de>
10518
10519 PR tree-optimization/99954
10520 * tree-loop-distribution.c: Include tree-affine.h.
10521 (generate_memcpy_builtin): Try using tree-affine to prove
10522 non-overlap.
10523 (loop_distribution::classify_builtin_ldst): Always classify
10524 as PKIND_MEMMOVE.
10525
10526 2021-04-07 Richard Biener <rguenther@suse.de>
10527
10528 PR tree-optimization/99947
10529 * tree-vect-loop.c (vectorizable_induction): Pre-allocate
10530 steps vector to avoid pushing elements from the reallocated
10531 vector.
10532
10533 2021-04-07 Richard Biener <rguenther@suse.de>
10534
10535 * tree-ssa-sccvn.h (print_vn_reference_ops): Declare.
10536 * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand
10537 printing...
10538 * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new
10539 function.
10540 (debug_vn_reference_ops): New.
10541
10542 2021-04-07 Bin Cheng <bin.cheng@linux.alibaba.com>
10543
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.
10549
10550 2021-04-06 Vladimir N. Makarov <vmakarov@redhat.com>
10551
10552 PR target/99781
10553 * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
10554 * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
10555 functions.
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.
10559
10560 2021-04-06 Xianmiao Qu <xianmiao_qu@c-sky.com>
10561
10562 * config/csky/csky_pipeline_ck802.md : Use insn reservation name
10563 instead of *.
10564
10565 2021-04-06 H.J. Lu <hjl.tools@gmail.com>
10566
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.
10573
10574 2021-04-06 Richard Biener <rguenther@suse.de>
10575
10576 PR tree-optimization/99880
10577 * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
10578 set vectorized defs of relevant PHIs.
10579
10580 2021-04-06 Richard Biener <rguenther@suse.de>
10581
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.
10585
10586 2021-04-06 Alex Coplan <alex.coplan@arm.com>
10587
10588 PR target/99748
10589 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
10590 PCS for [su]fix_optab.
10591
10592 2021-04-03 Iain Sandoe <iain@sandoe.co.uk>
10593
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.
10597
10598 2021-04-03 Iain Sandoe <iain@sandoe.co.uk>
10599
10600 * config/darwin.c (machopic_legitimize_pic_address): Fix
10601 whitespace, remove unused code.
10602
10603 2021-04-03 Jakub Jelinek <jakub@redhat.com>
10604
10605 PR tree-optimization/99882
10606 * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
10607 pointer type.
10608
10609 2021-04-03 Jakub Jelinek <jakub@redhat.com>
10610
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
10615 registers.
10616
10617 2021-04-03 Jakub Jelinek <jakub@redhat.com>
10618
10619 PR testsuite/98125
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
10623 argument.
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):
10627 Redefine.
10628 (rs6000_print_patchable_function_entry): New function.
10629
10630 2021-04-02 Eric Botcazou <ebotcazou@adacore.com>
10631
10632 * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
10633
10634 2021-04-01 Jason Merrill <jason@redhat.com>
10635
10636 PR c++/98481
10637 * common.opt: Document v15 and v16.
10638
10639 2021-04-01 Richard Biener <rguenther@suse.de>
10640
10641 PR tree-optimization/99863
10642 * gimplify.c (gimplify_init_constructor): Recompute vector
10643 constructor flags.
10644
10645 2021-04-01 Jakub Jelinek <jakub@redhat.com>
10646
10647 * doc/extend.texi (symver attribute): Fix up syntax errors
10648 in the examples.
10649
10650 2021-04-01 Jakub Jelinek <jakub@redhat.com>
10651
10652 PR tree-optimization/96573
10653 * gimple-ssa-store-merging.c (init_symbolic_number): Handle
10654 also pointer types.
10655
10656 2021-04-01 Richard Biener <rguenther@suse.de>
10657
10658 PR tree-optimization/99856
10659 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
10660 precision to vector element precision.
10661
10662 2021-04-01 Martin Jambor <mjambor@suse.cz>
10663
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
10667 test.
10668
10669 2021-03-31 Jan Hubicka <hubicka@ucw.cz>
10670
10671 PR ipa/98265
10672 * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
10673
10674 2021-03-31 Pat Haugen <pthaugen@linux.ibm.com>
10675
10676 PR target/99133
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>):
10683 Likewise.
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.
10687
10688 2021-03-31 Jakub Jelinek <jakub@redhat.com>
10689
10690 PR debug/99490
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
10696 members.
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
10703 output_rnglists.
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.
10723
10724 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
10725
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.
10730
10731 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
10732
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
10736 being versioned.
10737
10738 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
10739
10740 PR rtl-optimization/97141
10741 PR rtl-optimization/98726
10742 * emit-rtl.c (valid_for_const_vector_p): Return true for
10743 CONST_POLY_INT_P.
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
10747 of a wide_int.
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
10753 elements instead.
10754
10755 2021-03-31 Jan Hubicka <jh@suse.cz>
10756
10757 PR lto/99447
10758 * cgraph.c (cgraph_node::release_body): Fix overactive check.
10759
10760 2021-03-31 Christophe Lyon <christophe.lyon@linaro.org>
10761
10762 PR target/99786
10763 * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
10764 for V4HI and V2SI.
10765
10766 2021-03-31 H.J. Lu <hjl.tools@gmail.com>
10767
10768 * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
10769 For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
10770 to SImode.
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):
10781 New.
10782
10783 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
10784
10785 PR target/98119
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.
10790
10791 2021-03-31 Jan Hubicka <jh@suse.cz>
10792
10793 PR lto/99447
10794 * cgraph.c (cgraph_node::release_body): Remove all callers and
10795 references.
10796 * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
10797 * cgraphunit.c (cgraph_node::expand): And here.
10798
10799 2021-03-31 Martin Liska <mliska@suse.cz>
10800
10801 * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
10802 and one negated condition.
10803
10804 2021-03-31 Jakub Jelinek <jakub@redhat.com>
10805 Richard Sandiford <richard.sandiford@arm.com>
10806
10807 PR target/99813
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.
10811
10812 2021-03-31 Jakub Jelinek <jakub@redhat.com>
10813
10814 PR bootstrap/98860
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
10819 targets.
10820 * config.in: Regenerated.
10821 * configure: Regenerated.
10822
10823 2021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10824
10825 PR target/99820
10826 * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
10827 available issue_info before using it.
10828
10829 2021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10830
10831 PR target/99822
10832 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
10833 in operand 1.
10834
10835 2021-03-30 Xionghu Luo <luoxhu@linux.ibm.com>
10836
10837 PR target/99718
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
10850 position.
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.
10854
10855 2021-03-30 H.J. Lu <hjl.tools@gmail.com>
10856
10857 PR target/99744
10858 * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
10859 (__rdtscp): Likewise.
10860
10861 2021-03-30 Tamar Christina <tamar.christina@arm.com>
10862
10863 PR tree-optimization/99825
10864 * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
10865 Reject non-mult 2 lanes.
10866
10867 2021-03-30 Richard Earnshaw <rearnsha@arm.com>
10868
10869 PR target/99773
10870 * config/arm/arm.c (arm_file_start): Fix emission of
10871 Tag_ABI_VFP_args attribute.
10872
10873 2021-03-30 Richard Biener <rguenther@suse.de>
10874
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.
10882
10883 2021-03-30 Richard Sandiford <richard.sandiford@arm.com>
10884
10885 PR target/98136
10886 * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
10887 CONST_INTs to aarch64_expand_mov_immediate when called after RA.
10888
10889 2021-03-30 Mihailo Stojanovic <mihailo.stojanovic@typhoon-hil.com>
10890
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
10894 instruction.
10895
10896 2021-03-29 Jan Hubicka <hubicka@ucw.cz>
10897
10898 * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
10899 (analyze_ssa_name_flags): Fix typo in comment.
10900
10901 2021-03-29 Alex Coplan <alex.coplan@arm.com>
10902
10903 PR target/99216
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
10909 placeholder.
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.
10917
10918 2021-03-29 Richard Biener <rguenther@suse.de>
10919
10920 PR tree-optimization/99807
10921 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
10922 assert below VEC_PERM handling.
10923
10924 2021-03-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10925
10926 PR target/99037
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.
10933
10934 2021-03-29 Jakub Jelinek <jakub@redhat.com>
10935
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.
10939
10940 2021-03-28 David Edelsohn <dje.gcc@gmail.com>
10941
10942 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
10943 XCOFF TLS reloc decorations.
10944
10945 2021-03-28 Gerald Pfeifer <gerald@pfeifer.com>
10946
10947 * doc/analyzer.texi (Analyzer Internals): Update link to
10948 "A Memory Model for Static Analysis of C Programs".
10949
10950 2021-03-26 David Edelsohn <dje.gcc@gmail.com>
10951
10952 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
10953 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
10954 Declare.
10955 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
10956 (rs6000_special_round_type_align): Recursively check innermost first
10957 field.
10958
10959 2021-03-26 Jakub Jelinek <jakub@redhat.com>
10960
10961 PR debug/99334
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.
10968
10969 2021-03-26 Vladimir Makarov <vmakarov@redhat.com>
10970
10971 PR target/99766
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.
10978
10979 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
10980
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
10993 and XImode.
10994
10995 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
10996
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
11005 than to the side.
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
11026 instructions.
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.
11040
11041 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11042
11043 * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
11044 Assume a zero cost for induction phis.
11045
11046 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11047
11048 * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
11049 function.
11050 (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
11051 vector comparisons.
11052
11053 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11054
11055 * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
11056 New function.
11057 (aarch64_add_stmt_cost): Call it.
11058
11059 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11060
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.
11077
11078 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11079
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.
11088
11089 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11090
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.
11095
11096 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11097
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.
11104
11105 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11106
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.
11118
11119 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11120
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.
11136
11137 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11138
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.
11151
11152 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
11153
11154 * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
11155 New tuning flag.
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.
11180
11181 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
11182
11183 PR ipa/99466
11184 * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
11185 TLS declarations as public.
11186
11187 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
11188
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.
11198
11199 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
11200
11201 PR d/91595
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.
11208
11209 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
11210
11211 * config/freebsd-d.c: Include memmodel.h.
11212
11213 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
11214
11215 PR d/99691
11216 * config.gcc (*-*-openbsd*): Add openbsd-d.o.
11217 * config/t-openbsd: Add openbsd-d.o.
11218 * config/openbsd-d.c: New file.
11219
11220 2021-03-25 Stam Markianos-Wright <stam.markianos-wright@arm.com>
11221
11222 PR tree-optimization/96974
11223 * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
11224 with graceful exit.
11225
11226 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
11227
11228 Revert:
11229 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
11230
11231 PR target/98209
11232 PR target/99744
11233 * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
11234 always_inline in system headers.
11235
11236 2021-03-25 Kewen Lin <linkw@linux.ibm.com>
11237
11238 * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
11239
11240 2021-03-25 Jakub Jelinek <jakub@redhat.com>
11241
11242 PR c++/99565
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.
11246
11247 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
11248
11249 PR target/98209
11250 PR target/99744
11251 * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
11252 always_inline in system headers.
11253
11254 2021-03-25 Richard Biener <rguenther@suse.de>
11255
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
11259 manually.
11260
11261 2021-03-25 Xionghu Luo <luoxhu@linux.ibm.com>
11262
11263 * config/rs6000/rs6000.c (power8_costs): Change l2 cache
11264 from 256 to 512.
11265
11266 2021-03-24 Martin Liska <mliska@suse.cz>
11267
11268 PR target/99753
11269 * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
11270 error.
11271 * config/i386/i386-options.c (ix86_option_override_internal):
11272 Add run-time assert.
11273
11274 2021-03-24 Martin Jambor <mjambor@suse.cz>
11275
11276 PR ipa/99122
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.
11285
11286 2021-03-24 Christophe Lyon <christophe.lyon@linaro.org>
11287
11288 PR target/99727
11289 * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
11290 constraint.
11291 (movmisalign<mode>_mve_load): Likewise.
11292
11293 2021-03-24 Jakub Jelinek <jakub@redhat.com>
11294
11295 PR target/99724
11296 * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
11297 movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
11298
11299 2021-03-24 Alexandre Oliva <oliva@adacore.com>
11300
11301 * doc/sourcebuild.texi (sysconf): New effective target.
11302
11303 2021-03-24 Alexandre Oliva <oliva@adacore.com>
11304
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
11310 otherwise.
11311
11312 2021-03-23 Vladimir N. Makarov <vmakarov@redhat.com>
11313
11314 PR target/99581
11315 * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
11316 Use define_relaxed_memory_constraint for them.
11317
11318 2021-03-23 Iain Sandoe <iain@sandoe.co.uk>
11319
11320 PR target/99733
11321 * config/host-darwin.c (darwin_gt_pch_use_address): Add a
11322 colon to the diagnostic message.
11323
11324 2021-03-23 Ilya Leoshkevich <iii@linux.ibm.com>
11325
11326 * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
11327 set_info's uses.
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
11336 method.
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
11340 method.
11341 (set_info::single_nondebug_insn_use): Likewise.
11342 (set_info::single_phi_use): Likewise.
11343
11344 2021-03-23 Christophe Lyon <christophe.lyon@linaro.org>
11345
11346 * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
11347
11348 2021-03-23 Jakub Jelinek <jakub@redhat.com>
11349
11350 PR target/99540
11351 * config/aarch64/aarch64.c (aarch64_add_offset): Tell
11352 expand_mult to perform an unsigned rather than a signed
11353 multiplication.
11354
11355 2021-03-23 H.J. Lu <hjl.tools@gmail.com>
11356
11357 PR target/99704
11358 * config/i386/cpuid.h (__cpuid): Add __volatile__.
11359 (__cpuid_count): Likewise.
11360
11361 2021-03-23 Richard Biener <rguenther@suse.de>
11362
11363 PR tree-optimization/99721
11364 * tree-vect-slp.c (vect_slp_analyze_node_operations):
11365 Make sure we can schedule the node.
11366
11367 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
11368
11369 * config/riscv/riscv.c (riscv_subword): Take endianness into
11370 account when calculating the byte offset.
11371
11372 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
11373
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"
11380
11381 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
11382
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
11386 when needed.
11387
11388 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
11389
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.
11401
11402 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
11403
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
11408 -mlittle-endian.
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
11412 options.
11413 * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
11414
11415 2021-03-23 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
11416
11417 * regcprop.c (find_oldest_value_reg): Ask target whether
11418 different mode is fine for replacement register.
11419
11420 2021-03-23 Aldy Hernandez <aldyh@redhat.com>
11421
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.
11426
11427 2021-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
11428
11429 PR target/99581
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
11450 constraints.
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
11454 CT_RELAXED_MEMORY.
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.
11459
11460 2021-03-22 Segher Boessenkool <segher@kernel.crashing.org>
11461
11462 PR target/97926
11463 * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
11464 there are no NaNs.
11465
11466 2021-03-22 Alex Coplan <alex.coplan@arm.com>
11467
11468 PR target/97252
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.
11480
11481 2021-03-22 Richard Biener <rguenther@suse.de>
11482
11483 * debug.h: Add deprecation warning.
11484
11485 2021-03-22 Richard Biener <rguenther@suse.de>
11486
11487 PR tree-optimization/99694
11488 * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
11489 PHI result.
11490
11491 2021-03-22 Kito Cheng <kito.cheng@sifive.com>
11492
11493 PR target/99702
11494 * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
11495 after type checking.
11496
11497 2021-03-22 Jakub Jelinek <jakub@redhat.com>
11498
11499 PR debug/99562
11500 PR debug/66728
11501 * dwarf2out.c (get_full_len): Use get_precision rather than
11502 min_precision.
11503 (add_const_value_attribute): Make sure add_AT_wide argument has
11504 precision prec rather than some very wide one.
11505
11506 2021-03-22 Kewen Lin <linkw@linux.ibm.com>
11507
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.
11520
11521 2021-03-22 Xionghu Luo <luoxhu@linux.ibm.com>
11522
11523 PR target/98914
11524 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
11525 Convert idx to DImode.
11526 (rs6000_expand_vector_set_var_p8): Likewise.
11527
11528 2021-03-21 Jakub Jelinek <jakub@redhat.com>
11529
11530 PR debug/99388
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):
11534 Adjust callers.
11535
11536 2021-03-20 H.J. Lu <hjl.tools@gmail.com>
11537
11538 PR target/99679
11539 * config/i386/i386.c (construct_container): Check cfun != NULL
11540 before accessing silent_p.
11541
11542 2021-03-20 Ahamed Husni <ahamedhusni73@gmail.com>
11543
11544 * asan.c: Fix typos in comments.
11545
11546 2021-03-20 Vladimir N. Makarov <vmakarov@redhat.com>
11547
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
11551 CONSTRAINT_LEN.
11552
11553 2021-03-19 Pat Haugen <pthaugen@linux.ibm.com>
11554
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.
11559
11560 2021-03-19 Vladimir N. Makarov <vmakarov@redhat.com>
11561
11562 PR target/99663
11563 * lra-constraints.c (process_address_1): Don't use unknown
11564 constraint for address constraint.
11565
11566 2021-03-19 Iain Sandoe <iain@sandoe.co.uk>
11567
11568 PR target/99661
11569 * config.gcc (powerpc-*-darwin8): Delete the reference to
11570 the now removed darwin8.h.
11571
11572 2021-03-19 Olivier Hainque <hainque@adacore.com>
11573
11574 PR target/99660
11575 * config/vxworksae.h (VX_CPU_PREFIX): Define.
11576
11577 2021-03-19 John David Anglin <danglin@gcc.gnu.org>
11578
11579 * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
11580
11581 2021-03-19 Tamar Christina <tamar.christina@arm.com>
11582
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.
11591
11592 2021-03-19 H.J. Lu <hjl.tools@gmail.com>
11593
11594 PR target/99652
11595 * config/i386/i386-options.c (ix86_init_machine_status): Set
11596 silent_p to true.
11597 * config/i386/i386.c (init_cumulative_args): Set silent_p to
11598 false.
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.
11602
11603 2021-03-19 Jakub Jelinek <jakub@redhat.com>
11604
11605 PR target/99593
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.
11609
11610 2021-03-19 Andrew Stubbs <ams@codesourcery.com>
11611
11612 * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
11613 in error message.
11614
11615 2021-03-19 Eric Botcazou <ebotcazou@adacore.com>
11616
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.
11620
11621 2021-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
11622
11623 PR target/99422
11624 * lra-constraints.c (process_address_1): Use lookup_constraint
11625 only for a single constraint.
11626
11627 2021-03-18 Martin Sebor <msebor@redhat.com>
11628
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.
11633
11634 2021-03-18 Andrew Stubbs <ams@codesourcery.com>
11635
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
11640 message.
11641 (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
11642
11643 2021-03-18 Jan Hubicka <hubicka@ucw.cz>
11644
11645 * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
11646 integer divides1.
11647
11648 2021-03-18 Sinan Lin <sinan@isrc.iscas.ac.cn>
11649 Kito Cheng <kito.cheng@sifive.com>
11650
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.
11657
11658 2021-03-18 Nick Clifton <nickc@redhat.com>
11659
11660 * config/v850/v850.c (construct_restore_jr): Increase static
11661 buffer size.
11662 (construct_save_jarl): Likewise.
11663 * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
11664
11665 2021-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11666
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
11670 tune_flags.
11671
11672 2021-03-17 Sandra Loosemore <sandra@codesourcery.com>
11673
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.
11688
11689 2021-03-17 Jan Hubicka <jh@suse.cz>
11690
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.
11694
11695 2021-03-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11696
11697 * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
11698 to compare against CC_REG rather than NE.
11699
11700 2021-03-17 H.J. Lu <hjl.tools@gmail.com>
11701
11702 PR target/99504
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.
11706
11707 2021-03-17 Tamar Christina <tamar.christina@arm.com>
11708
11709 PR target/99542
11710 * config/aarch64/aarch64.c
11711 (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
11712
11713 2021-03-16 Segher Boessenkool <segher@kernel.crashing.org>
11714
11715 PR target/98092
11716 * config/rs6000/predicates.md (branch_comparison_operator): Allow
11717 ordered and unordered for CCFPmode, if flag_finite_math_only.
11718
11719 2021-03-16 Jakub Jelinek <jakub@redhat.com>
11720
11721 PR target/99600
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.
11725
11726 2021-03-16 Martin Liska <mliska@suse.cz>
11727
11728 PR target/99592
11729 * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
11730 cl_optimization_compare function.
11731
11732 2021-03-16 Ilya Leoshkevich <iii@linux.ibm.com>
11733
11734 * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
11735 as "v".
11736
11737 2021-03-16 Jakub Jelinek <jakub@redhat.com>
11738
11739 PR target/99563
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.
11750
11751 2021-03-16 Jakub Jelinek <jakub@redhat.com>
11752
11753 PR target/99542
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.
11758
11759 2021-03-15 Richard Biener <rguenther@suse.de>
11760
11761 PR tree-optimization/98834
11762 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
11763 subsetting by truncating the access size.
11764
11765 2021-03-15 Jan Hubicka <hubicka@ucw.cz>
11766
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
11769 of znver2_cost.
11770
11771 2021-03-15 Martin Liska <mliska@suse.cz>
11772
11773 * spellcheck.c: Add missing comma in initialization.
11774
11775 2021-03-14 Uroš Bizjak <ubizjak@gmail.com>
11776
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.
11786
11787 2021-03-13 Martin Sebor <msebor@redhat.com>
11788
11789 PR tree-optimization/99489
11790 * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
11791 is not a call statement.
11792
11793 2021-03-13 Jakub Jelinek <jakub@redhat.com>
11794
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.
11798
11799 2021-03-12 Eric Botcazou <ebotcazou@adacore.com>
11800
11801 PR target/99422
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
11808 w with W.
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.
11813
11814 2021-03-12 Tobias Burnus <tobias@codesourcery.com>
11815
11816 PR fortran/98858
11817 * gimplify.c (omp_add_variable): Handle NULL_TREE as size
11818 occuring for assumed-size arrays in use_device_{ptr,addr}.
11819
11820 2021-03-12 Jakub Jelinek <jakub@redhat.com>
11821
11822 PR target/99321
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
11828 constraints.
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
11861 constraints.
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.
11867
11868 2021-03-12 Martin Liska <mliska@suse.cz>
11869
11870 * doc/invoke.texi: Add missing param documentation.
11871
11872 2021-03-11 David Malcolm <dmalcolm@redhat.com>
11873
11874 PR analyzer/96374
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
11880 option.
11881 * shortest-paths.h (shortest_paths::get_shortest_distance): New.
11882
11883 2021-03-11 David Malcolm <dmalcolm@redhat.com>
11884
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.
11897
11898 2021-03-11 David Malcolm <dmalcolm@redhat.com>
11899
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.
11904
11905 2021-03-11 David Edelsohn <dje.gcc@gmail.com>
11906
11907 PR target/99094
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.
11913
11914 2021-03-11 Richard Biener <rguenther@suse.de>
11915
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.
11920
11921 2021-03-11 Jakub Jelinek <jakub@redhat.com>
11922
11923 PR ipa/99517
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.
11926
11927 2021-03-11 Hans-Peter Nilsson <hp@axis.com>
11928
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
11937 register.
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.
11947
11948 2021-03-10 David Edelsohn <dje.gcc@gmail.com>
11949
11950 PR target/99492
11951 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
11952 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
11953
11954 2021-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
11955
11956 PR target/99422
11957 * lra-constraints.c (process_address_1): Don't check unknown
11958 constraint, use X for empty constraint.
11959
11960 2021-03-10 Alex Coplan <alex.coplan@arm.com>
11961
11962 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
11963 Fix typo in comment describing "is_ha" argument.
11964
11965 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
11966
11967 * doc/sourcebuild.texi: Document LRA target selector.
11968
11969 2021-03-10 David Malcolm <dmalcolm@redhat.com>
11970
11971 * doc/ux.texi: Add subsection contrasting interactive versus
11972 batch usage of GCC.
11973
11974 2021-03-10 Joel Hutton <joel.hutton@arm.com>
11975
11976 PR target/99102
11977 * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
11978 check condition.
11979 (vectorizable_load): Fix gather load mask check condition.
11980
11981 2021-03-10 Richard Biener <rguenther@suse.de>
11982
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
11986 original type.
11987
11988 2021-03-10 Eric Botcazou <ebotcazou@adacore.com>
11989
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.
11992
11993 2021-03-10 Hans-Peter Nilsson <hp@axis.com>
11994
11995 * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
11996
11997 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
11998
11999 * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
12000 constraints > 9.
12001 * ira-lives.c (single_reg_class): Ditto.
12002
12003 2021-03-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
12004
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.
12011
12012 2021-03-09 Jakub Jelinek <jakub@redhat.com>
12013
12014 PR tree-optimization/99305
12015 * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
12016 before integer_all_onesp instead of vice versa.
12017
12018 2021-03-09 Richard Earnshaw <rearnsha@arm.com>
12019
12020 * common/config/arm/arm-common.c (arm_config_default): Change type
12021 of 'i' to unsigned.
12022
12023 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
12024
12025 PR target/99454
12026 * lra-constraints.c (process_address_1): Process constraint 'g'
12027 separately and digital constraints containing more one digit.
12028
12029 2021-03-09 Nick Clifton <nickc@redhat.com>
12030
12031 * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
12032 (DWARF"_DEBUGGING_INFO): Define.
12033
12034 2021-03-09 Eric Botcazou <ebotcazou@adacore.com>
12035
12036 PR c++/90448
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.
12041
12042 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
12043
12044 PR target/99454
12045 * lra-constraints.c (process_address_1): Process 0..9 constraints
12046 in process_address_1.
12047
12048 2021-03-09 Andreas Krebbel <krebbel@linux.ibm.com>
12049
12050 * config/s390/s390.c (struct s390_processor processor_table):
12051 Binutils name string must not be empty.
12052
12053 2021-03-09 Claudiu Zissulescu <claziss@synopsys.com>
12054
12055 * config/arc/arc.c (arc_attr_type): Remove function.
12056
12057 2021-03-09 Martin Liska <mliska@suse.cz>
12058
12059 PR target/99464
12060 * config/i386/i386-options.c (ix86_option_override_internal):
12061 Set isa_flags for OPTS argument and not for the global
12062 global_options.
12063
12064 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com>
12065
12066 * config/rs6000/predicates.md (ds_form_mem_operand): Check
12067 in correct code.
12068
12069 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com>
12070
12071 PR target/99070
12072 * config/rs6000/predicates.md (ds_form_mem_operand) New
12073 predicate.
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.
12077
12078 2021-03-08 Martin Sebor <msebor@redhat.com>
12079
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.
12083
12084 2021-03-08 Martin Sebor <msebor@redhat.com>
12085
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
12090 kind of warning.
12091 (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
12092 (handle_builtin_memset): Same.
12093
12094 2021-03-08 Peter Bergner <bergner@linux.ibm.com>
12095
12096 PR target/98959
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
12104 style address.
12105 (vsx_store_<mode>): Likewise.
12106
12107 2021-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12108
12109 PR target/99437
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.
12123
12124 2021-03-08 Vladimir N. Makarov <vmakarov@redhat.com>
12125
12126 PR target/99422
12127 * lra-constraints.c (skip_contraint_modifiers): New function.
12128 (process_address_1): Use it before lookup_constraint call.
12129
12130 2021-03-08 Martin Liska <mliska@suse.cz>
12131
12132 PR target/99463
12133 * config/i386/i386-options.c (ix86_option_override_internal):
12134 Enable UINTR and HRESET for -march that supports it.
12135
12136 2021-03-08 Ilya Leoshkevich <iii@linux.ibm.com>
12137
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.
12141
12142 2021-03-08 Tobias Burnus <tobias@codesourcery.com>
12143
12144 PR fortran/97927
12145 * tree-nested.c (convert_local_reference_stmt): Avoid calling
12146 lookup_field_for_decl for Fortran module (= namespace context).
12147
12148 2021-03-08 Andreas Krebbel <krebbel@linux.ibm.com>
12149
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.
12156
12157 2021-03-07 Jakub Jelinek <jakub@redhat.com>
12158
12159 PR target/99321
12160 * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
12161 but TARGET_AVX512BW or TARGET_AVX512VL is not set. Adjust description
12162 and comment.
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
12166 in constraints.
12167 * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
12168 xYw in constraints.
12169
12170 2021-03-06 Julian Brown <julian@codesourcery.com>
12171
12172 * tree-pretty-print.c (dump_generic_node): Emit non-generic
12173 address space info for aggregates.
12174
12175 2021-03-06 Hans-Peter Nilsson <hp@axis.com>
12176
12177 * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
12178
12179 2021-03-05 Jakub Jelinek <jakub@redhat.com>
12180
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
12187 of ints.
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
12191 it at the end.
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.
12196
12197 2021-03-05 Vladimir N. Makarov <vmakarov@redhat.com>
12198
12199 PR target/99378
12200 * lra-constraints.c (process_address_1): Skip decomposing address
12201 for asm insn operand with unknown constraint.
12202
12203 2021-03-05 Martin Jambor <mjambor@suse.cz>
12204
12205 PR ipa/98078
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.
12212
12213 2021-03-05 Eric Botcazou <ebotcazou@adacore.com>
12214
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.
12218
12219 2021-03-04 Jakub Jelinek <jakub@redhat.com>
12220
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.
12224
12225 2021-03-04 Alex Coplan <alex.coplan@arm.com>
12226
12227 PR target/99381
12228 * config/aarch64/aarch64-sve-builtins.cc
12229 (function_resolver::require_vector_type): Handle error_mark_node.
12230
12231 2021-03-04 Ilya Leoshkevich <iii@linux.ibm.com>
12232
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
12236 parameter.
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.
12249
12250 2021-03-04 Richard Biener <rguenther@suse.de>
12251
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.
12257
12258 2021-03-04 Martin Sebor <msebor@redhat.com>
12259
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
12266 assignments.
12267
12268 2021-03-03 Pat Haugen <pthaugen@linux.ibm.com>
12269
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.
12280
12281 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12282
12283 PR bootstrap/92002
12284 * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
12285 -Wuninitialized, -Wmaybe-uninitialized.
12286 (wide-int.o-warn): Likewise.
12287
12288 2021-03-03 Richard Earnshaw <rearnsha@arm.com>
12289
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.
12297
12298 2021-03-03 Martin Liska <mliska@suse.cz>
12299
12300 PR gcov-profile/97461
12301 * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
12302
12303 2021-03-03 Eric Botcazou <ebotcazou@adacore.com>
12304
12305 PR target/99234
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.
12309
12310 2021-03-03 Jakub Jelinek <jakub@redhat.com>
12311
12312 PR target/99321
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.
12317
12318 2021-03-03 Jakub Jelinek <jakub@redhat.com>
12319
12320 PR debug/99090
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
12325 typo.
12326 (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
12327 initialize also end_entry.
12328
12329 2021-03-03 Jakub Jelinek <jakub@redhat.com>
12330
12331 PR target/99085
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.
12335
12336 2021-03-03 Jason Merrill <jason@redhat.com>
12337
12338 PR c++/96078
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.
12342
12343 2021-03-02 David Edelsohn <dje.gcc@gmail.com>
12344
12345 * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
12346 period to symbol name.
12347 (tls_get_addr_internal<mode>): Same.
12348
12349 2021-03-02 David Malcolm <dmalcolm@redhat.com>
12350
12351 PR c/99323
12352 * diagnostic-show-locus.c
12353 (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
12354 column 0.
12355
12356 2021-03-02 Martin Sebor <msebor@redhat.com>
12357
12358 PR middle-end/99276
12359 * builtins.c (warn_for_access): Remove stray warning text.
12360
12361 2021-03-02 Martin Sebor <msebor@redhat.com>
12362
12363 PR middle-end/99295
12364 * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
12365 property.
12366
12367 2021-03-02 Jakub Jelinek <jakub@redhat.com>
12368
12369 PR debug/99319
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.
12377
12378 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
12379
12380 * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
12381 builtin signature.
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.
12404
12405 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
12406
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.
12421
12422 2021-03-02 Jakub Jelinek <jakub@redhat.com>
12423
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.
12428
12429 2021-03-01 Iain Sandoe <iain@sandoe.co.uk>
12430
12431 PR target/44107
12432 PR target/48097
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.
12441
12442 2021-03-01 Martin Liska <mliska@suse.cz>
12443
12444 PR target/99313
12445 * optc-save-gen.awk: Add 4 more exceptions.
12446
12447 2021-03-01 Nathan Sidwell <nathan@acm.org>
12448
12449 PR c++/99294
12450 * tree.h (TYPE_ALIGN_RAW): New accessor.
12451 (TYPE_ALIGN): Use it.
12452
12453 2021-03-01 Jan Hubicka <jh@suse.cz>
12454
12455 PR ipa/98338
12456 * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
12457
12458 2021-03-01 Eric Botcazou <ebotcazou@adacore.com>
12459
12460 PR target/99234
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.
12467
12468 2021-02-28 Jakub Jelinek <jakub@redhat.com>
12469
12470 PR c/99304
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.
12484
12485 2021-02-27 Iain Sandoe <iain@sandoe.co.uk>
12486
12487 * config/host-darwin.c (darwin_gt_pch_use_address): Modify
12488 diagnostic message to avoid use of a contraction and format
12489 warning.
12490
12491 2021-02-27 Jakub Jelinek <jakub@redhat.com>
12492
12493 PR other/99288
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
12498 typos.
12499
12500 2021-02-26 Richard Biener <rguenther@suse.de>
12501
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.
12505
12506 2021-02-26 Richard Biener <rguenther@suse.de>
12507
12508 PR c/99275
12509 * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
12510
12511 2021-02-26 Peter Bergner <bergner@linux.ibm.com>
12512
12513 PR target/99279
12514 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
12515 with an "if" test.
12516
12517 2021-02-26 Aaron Sawdey <acsawdey@linux.ibm.com>
12518
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
12541 pcrel-opt.md.
12542
12543 2021-02-26 YunQiang Su <yunqiang.su@cipunited.com>
12544
12545 PR target/98996
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
12549 doing for REG one.
12550
12551 2021-02-26 Marek Polacek <polacek@redhat.com>
12552
12553 * builtins.c (warn_for_access): Fix typos.
12554
12555 2021-02-25 Iain Sandoe <iain@sandoe.co.uk>
12556
12557 * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
12558 mark in front of the immediate quantity.
12559 (<optab>_rolsi3_uxtw): Likewise.
12560
12561 2021-02-25 Richard Earnshaw <rearnsha@arm.com>
12562
12563 PR target/99271
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.
12569
12570 2021-02-25 Nathan Sidwell <nathan@acm.org>
12571
12572 PR c++/99166
12573 * doc/invoke.texi (flang-info-module-cmi): Renamed option.
12574
12575 2021-02-25 Tamar Christina <tamar.christina@arm.com>
12576
12577 * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
12578
12579 2021-02-25 Richard Biener <rguenther@suse.de>
12580
12581 PR tree-optimization/99253
12582 * tree-vect-loop.c (check_reduction_path): First compute
12583 code, then verify out-of-loop uses.
12584
12585 2021-02-25 Jakub Jelinek <jakub@redhat.com>
12586
12587 PR target/95798
12588 * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
12589
12590 2021-02-25 Jakub Jelinek <jakub@redhat.com>
12591
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.
12596
12597 2021-02-25 Richard Biener <rguenther@suse.de>
12598
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.
12606
12607 2021-02-24 Jakub Jelinek <jakub@redhat.com>
12608
12609 PR fortran/99226
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.
12616
12617 2021-02-24 Vladimir N. Makarov <vmakarov@redhat.com>
12618
12619 PR inline-asm/99123
12620 * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
12621
12622 2021-02-24 Hans-Peter Nilsson <hp@axis.com>
12623
12624 * config/cris/cris.c (cris_expand_prologue): Set
12625 current_function_static_stack_size, if flag_stack_usage_info.
12626
12627 2021-02-24 Pat Haugen <pthaugen@linux.ibm.com>
12628
12629 * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
12630 (rs6000_final_prescan_insn): Adjust.
12631 (rs6000_asm_output_opcode): Likewise.
12632
12633 2021-02-24 Martin Sebor <msebor@redhat.com>
12634
12635 PR middle-end/97172
12636 * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
12637 from function arguments.
12638
12639 2021-02-24 Tamar Christina <tamar.christina@arm.com>
12640
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.
12644
12645 2021-02-24 Jakub Jelinek <jakub@redhat.com>
12646
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.
12651
12652 2021-02-24 Tamar Christina <tamar.christina@arm.com>
12653
12654 PR tree-optimization/99149
12655 * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
12656 buffer.
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
12665 stores.
12666 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
12667
12668 2021-02-24 Matthias Klose <doko@ubuntu.com>
12669
12670 Revert:
12671 2020-12-07 Matthias Klose <doko@ubuntu.com>
12672
12673 * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
12674 and ENABLE_RTL_FLAG_CHECKING.
12675
12676 2021-02-24 Richard Biener <rguenther@suse.de>
12677
12678 PR c/99224
12679 * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
12680
12681 2021-02-23 Peter Bergner <bergner@linux.ibm.com>
12682
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.
12713
12714 2021-02-23 Martin Liska <mliska@suse.cz>
12715
12716 PR sanitizer/99168
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.
12720
12721 2021-02-23 Jakub Jelinek <jakub@redhat.com>
12722
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.
12726
12727 2021-02-23 Segher Boessenkool <segher@kernel.crashing.org>
12728 Kewen Lin <linkw@gcc.gnu.org>
12729
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.
12736
12737 2021-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12738
12739 * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
12740 Define.
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.
12746
12747 2021-02-22 Hans-Peter Nilsson <hp@axis.com>
12748
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.
12754
12755 2021-02-22 John David Anglin <danglin@gcc.gnu.org>
12756
12757 PR target/85074
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.
12761
12762 2021-02-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
12763
12764 PR rtl-optimization/98791
12765 * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
12766 for unordered modes.
12767
12768 2021-02-22 Martin Liska <mliska@suse.cz>
12769
12770 * tree-inline.c (inline_forbidden_p): Set
12771 inline_forbidden_reason.
12772
12773 2021-02-22 Richard Biener <rguenther@suse.de>
12774
12775 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
12776 costed subgraph.
12777
12778 2021-02-22 Richard Biener <rguenther@suse.de>
12779
12780 PR tree-optimization/99165
12781 * gimple-ssa-store-merging.c (pass_store_merging::process_store):
12782 Accumulate changed to ret.
12783
12784 2021-02-21 Uros Bizjak <ubizjak@gmail.com>
12785
12786 Revert:
12787 2020-12-09 Uroš Bizjak <ubizjak@gmail.com>
12788
12789 * config/i386/i386.h (REG_ALLOC_ORDER): Remove
12790
12791 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
12792
12793 PR target/99134
12794 * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
12795 pattern.
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.
12803
12804 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
12805
12806 * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
12807 add memory alternative.
12808 (tf_to_fprx2): New pattern.
12809
12810 2021-02-19 Martin Sebor <msebor@redhat.com>
12811
12812 PR c/97172
12813 * attribs.c (init_attr_rdwr_indices): Guard vblist use.
12814 (attr_access::free_lang_data): Remove a spurious test.
12815
12816 2021-02-19 Nathan Sidwell <nathan@acm.org>
12817
12818 * doc/invoke.texi (flang-info-module-read): Document.
12819
12820 2021-02-19 Martin Liska <mliska@suse.cz>
12821
12822 PR translation/99167
12823 * params.opt: Fix typo.
12824
12825 2021-02-19 Richard Biener <rguenther@suse.de>
12826
12827 PR middle-end/99122
12828 * tree-inline.c (inline_forbidden_p): Do not inline functions
12829 with VLA arguments or return value.
12830
12831 2021-02-19 Jakub Jelinek <jakub@redhat.com>
12832
12833 PR target/98998
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
12837 register first.
12838
12839 2021-02-19 Jakub Jelinek <jakub@redhat.com>
12840
12841 PR ipa/99034
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.
12845
12846 2021-02-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
12847
12848 PR target/98657
12849 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
12850 expand_vector_broadcast' to emit the vec_duplicate operand.
12851
12852 2021-02-18 Vladimir N. Makarov <vmakarov@redhat.com>
12853
12854 PR rtl-optimization/96264
12855 * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
12856 hard regs.
12857
12858 2021-02-18 H.J. Lu <hjl.tools@gmail.com>
12859
12860 PR target/99113
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
12868 attribute.
12869 * doc/extend.texi: Document the "retain" attribute.
12870
12871 2021-02-18 Nathan Sidwell <nathan@acm.org>
12872
12873 PR c++/99023
12874 * doc/invoke.texi (flang-info-include-translate): Document header
12875 lookup behaviour.
12876
12877 2021-02-18 Richard Biener <rguenther@suse.de>
12878
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
12885 values.
12886 (setup_one_parameter): Delay force_value_to_type until when
12887 it's needed.
12888
12889 2021-02-18 Hans-Peter Nilsson <hp@axis.com>
12890
12891 PR tree-optimization/99142
12892 * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
12893
12894 2021-02-18 Jakub Jelinek <jakub@redhat.com>
12895
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
12902 instead of inline.
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.
12927
12928 2021-02-18 Jakub Jelinek <jakub@redhat.com>
12929
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.
12937
12938 2021-02-18 Jakub Jelinek <jakub@redhat.com>
12939
12940 PR target/99104
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.
12951
12952 2021-02-17 Julian Brown <julian@codesourcery.com>
12953
12954 * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
12955 for non-decls.
12956
12957 2021-02-17 Xi Ruoyao <xry111@mengyan1223.wang>
12958
12959 PR target/98491
12960 * config/mips/mips.c (mips_symbol_insns): Do not use
12961 MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
12962
12963 2021-02-16 Vladimir N. Makarov <vmakarov@redhat.com>
12964
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.
12969
12970 2021-02-16 Richard Biener <rguenther@suse.de>
12971
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
12979 is just NULL.
12980
12981 2021-02-16 Jakub Jelinek <jakub@redhat.com>
12982
12983 PR target/99100
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'.
12988
12989 2021-02-15 Maya Rashish <coypu@sdf.org>
12990
12991 * config/aarch64/aarch64.c (aarch64_init_builtins):
12992 Call SUBTARGET_INIT_BUILTINS.
12993
12994 2021-02-15 Peter Bergner <bergner@linux.ibm.com>
12995
12996 PR rtl-optimization/98872
12997 * init-regs.c (initialize_uninitialized_regs): Skip initialization
12998 if CONST0_RTX is NULL.
12999
13000 2021-02-15 Richard Sandiford <richard.sandiford@arm.com>
13001
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
13009 parameter.
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
13044 multiple times.
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
13069 process.
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.
13082
13083 2021-02-15 Martin Liska <mliska@suse.cz>
13084
13085 * toplev.c (init_asm_output): Free output of
13086 gen_command_line_string function.
13087 (process_options): Likewise.
13088
13089 2021-02-15 Martin Liska <mliska@suse.cz>
13090
13091 * params.opt: Add 2 missing Param keywords.
13092
13093 2021-02-15 Eric Botcazou <ebotcazou@adacore.com>
13094
13095 * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
13096
13097 2021-02-15 Jakub Jelinek <jakub@redhat.com>
13098
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
13106 unsigned type.
13107
13108 2021-02-14 Jan Hubicka <hubicka@ucw.cz>
13109 Richard Biener <rguether@suse.de>
13110
13111 PR ipa/97346
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.
13117
13118 2021-02-13 Levy Hsu <admin@levyhsu.com>
13119
13120 PR target/97417
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.
13128
13129 2021-02-13 Jim Wilson <jimw@sifive.com>
13130
13131 PR target/97417
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.
13137
13138 2021-02-13 Jakub Jelinek <jakub@redhat.com>
13139
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
13143 on.
13144
13145 2021-02-13 Jakub Jelinek <jakub@redhat.com>
13146
13147 PR target/96166
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.
13150
13151 2021-02-12 Martin Sebor <msebor@redhat.com>
13152
13153 * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
13154
13155 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
13156
13157 * rtl-ssa/accesses.cc (function_info::make_use_available): Use
13158 m_temp_obstack rather than m_obstack to allocate the temporary use.
13159
13160 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
13161
13162 * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
13163 as read-modify operations.
13164
13165 2021-02-12 Richard Biener <rguenther@suse.de>
13166
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.
13178
13179 2021-02-12 Martin Liska <mliska@suse.cz>
13180
13181 * opts-common.c (decode_cmdline_option): Release werror_arg.
13182 * opts.c (gen_producer_string): Release output of
13183 gen_command_line_string.
13184
13185 2021-02-12 Richard Biener <rguenther@suse.de>
13186
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):
13193 New.
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
13200 chain length.
13201
13202 2021-02-11 Eric Botcazou <ebotcazou@adacore.com>
13203
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.
13207
13208 2021-02-11 Peter Bergner <bergner@linux.ibm.com>
13209
13210 PR target/99041
13211 * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
13212 memory addresses that are legal for quad word accesses.
13213
13214 2021-02-11 Andrea Corallo <andrea.corallo@arm.com>
13215
13216 PR target/98931
13217 * config/arm/thumb2.md (*doloop_end_internal): Generate
13218 alternative sequence to handle long range branches.
13219
13220 2021-02-11 Joel Hutton <joel.hutton@arm.com>
13221
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.
13229
13230 2021-02-11 Richard Biener <rguenther@suse.de>
13231
13232 * sparseset.h (SPARSESET_ELT_BITS): Remove.
13233 (SPARSESET_ELT_TYPE): Use unsigned int.
13234 * fwprop.c: Do not include sparseset.h.
13235
13236 2021-02-10 Jakub Jelinek <jakub@redhat.com>
13237
13238 PR c++/99035
13239 * varasm.c (declare_weak): For -fsyntax-only, allow even
13240 TREE_ASM_WRITTEN function decls.
13241
13242 2021-02-10 Jakub Jelinek <jakub@redhat.com>
13243
13244 PR target/99025
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.
13250
13251 2021-02-10 Martin Liska <mliska@suse.cz>
13252
13253 * config/nvptx/nvptx.c (nvptx_option_override): Use
13254 flag_patchable_function_entry instead of the removed
13255 function_entry_patch_area_size.
13256
13257 2021-02-10 Martin Liska <mliska@suse.cz>
13258
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
13264 release_clusters.
13265 (make_pass_lower_switch): Remove trailing whitespace.
13266 * tree-switch-conversion.h (release_clusters): New.
13267
13268 2021-02-10 Richard Biener <rguenther@suse.de>
13269
13270 PR rtl-optimization/99054
13271 * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
13272 (fixup_partitions): Adjust.
13273 (rtl_verify_edges): Likewise.
13274
13275 2021-02-10 Jakub Jelinek <jakub@redhat.com>
13276
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
13280 calls.
13281
13282 2021-02-10 Richard Biener <rguenther@suse.de>
13283
13284 PR ipa/99029
13285 * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
13286 for callees.
13287
13288 2021-02-10 Richard Biener <rguenther@suse.de>
13289
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.
13293
13294 2021-02-10 Martin Liska <mliska@suse.cz>
13295
13296 PR tree-optimization/99002
13297 * gimple-if-to-switch.cc (find_conditions): Fix memory leak
13298 in the function.
13299
13300 2021-02-10 Martin Liska <mliska@suse.cz>
13301
13302 PR ipa/99003
13303 * ipa-icf.c (sem_item::add_reference): Fix memory leak when
13304 a reference exists.
13305
13306 2021-02-10 Jakub Jelinek <jakub@redhat.com>
13307
13308 PR debug/98755
13309 * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
13310 at class scope for DWARF5+.
13311
13312 2021-02-09 Eric Botcazou <ebotcazou@adacore.com>
13313
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.
13319
13320 2021-02-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
13321
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.
13329
13330 2021-02-09 Richard Biener <rguenther@suse.de>
13331
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.
13340
13341 2021-02-09 Jakub Jelinek <jakub@redhat.com>
13342
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.
13346
13347 2021-02-09 Richard Biener <rguenther@suse.de>
13348
13349 PR tree-optimization/99017
13350 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
13351 zero vector cost entries.
13352
13353 2021-02-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
13354
13355 PR middle-end/98974
13356 * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
13357 parameter in vectorizable_condition.
13358
13359 2021-02-08 Richard Biener <rguenther@suse.de>
13360
13361 PR lto/96591
13362 * tree.c (walk_tree_1): Walk VECTOR_CST elements.
13363
13364 2021-02-08 Martin Liska <mliska@suse.cz>
13365
13366 PR lto/98971
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.
13376
13377 2021-02-08 Martin Sebor <msebor@redhat.com>
13378
13379 * doc/extend.texi (attribute malloc): Correct typos.
13380
13381 2021-02-05 Nathan Sidwell <nathan@acm.org>
13382
13383 PR driver/98943
13384 * gcc.c (driver::maybe_run_linker): Check for input file
13385 accessibility if not linking.
13386
13387 2021-02-05 Richard Biener <rguenther@suse.de>
13388
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.
13394
13395 2021-02-05 Tom de Vries <tdevries@suse.de>
13396
13397 PR debug/98656
13398 * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
13399 argument.
13400 (bit_test_cluster::emit): Reuse location_t for newly created
13401 gswitch statement.
13402 (switch_decision_tree::try_switch_expansion): Preserve
13403 location_t.
13404 * tree-switch-conversion.h: Change function signatures.
13405
13406 2021-02-05 Jakub Jelinek <jakub@redhat.com>
13407
13408 PR target/98957
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.
13413
13414 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13415
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.
13433
13434 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13435
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.
13453
13454 2021-02-05 Kito Cheng <kito.cheng@sifive.com>
13455
13456 * gcc.c (print_multilib_info): Check all required argument is provided
13457 by default arg.
13458
13459 2021-02-05 liuhongt <hongtao.liu@intel.com>
13460
13461 PR target/98537
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
13467 here.
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.
13474
13475 2021-02-05 liuhongt <hongtao.liu@intel.com>
13476
13477 PR target/98172
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.
13481
13482 2021-02-04 David Malcolm <dmalcolm@redhat.com>
13483
13484 PR c/97932
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.
13488
13489 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
13490
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.
13507
13508 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
13509
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.
13520
13521 2021-02-04 Richard Biener <rguenther@suse.de>
13522
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.
13529
13530 2021-02-04 Martin Liska <mliska@suse.cz>
13531
13532 * doc/extend.texi: Mention -mprefer-vector-width in target
13533 attributes.
13534
13535 2021-02-03 Martin Sebor <msebor@redhat.com>
13536
13537 PR tree-optimization/98937
13538 * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
13539 Flush pointer_query cache.
13540
13541 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
13542
13543 * config/rs6000/genfusion.pl (gen_2logical): Add missing
13544 fixes based on patch review.
13545 * config/rs6000/fusion.md: Regenerate file.
13546
13547 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
13548
13549 * config/rs6000/t-rs6000: Comment out auto generation of
13550 fusion.md for now.
13551
13552 2021-02-03 Andrew Stubbs <ams@codesourcery.com>
13553
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.
13563
13564 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
13565
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.
13583
13584 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
13585
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.
13602
13603 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
13604
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):
13608 Define.
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.
13615
13616 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
13617
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):
13621 Define.
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.
13628
13629 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
13630
13631 * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
13632 generator macros.
13633 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
13634 Rename to...
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.
13644
13645 2021-02-03 Ilya Leoshkevich <iii@linux.ibm.com>
13646
13647 * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
13648 after calling alter_subreg() on a (mem).
13649
13650 2021-02-03 Martin Liska <mliska@suse.cz>
13651
13652 PR lto/98912
13653 * lto-streamer-out.c (produce_lto_section): Fill up missing
13654 padding.
13655 * lto-streamer.h (struct lto_section): Add _padding field.
13656
13657 2021-02-03 Richard Biener <rguenther@suse.de>
13658
13659 * lto-streamer.c (lto_get_section_name): Free temporary
13660 buffer.
13661 * tree-loop-distribution.c
13662 (loop_distribution::merge_dep_scc_partitions): Free edge data.
13663
13664 2021-02-03 Jakub Jelinek <jakub@redhat.com>
13665
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.
13670
13671 2021-02-03 Jakub Jelinek <jakub@redhat.com>
13672
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.
13676
13677 2021-02-03 Jakub Jelinek <jakub@redhat.com>
13678
13679 PR tree-optimization/98287
13680 * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
13681 for V1DImode.
13682
13683 2021-02-03 Tamar Christina <tamar.christina@arm.com>
13684
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.
13691
13692 2021-02-02 Richard Biener <rguenther@suse.de>
13693
13694 * gimple-loop-interchange.cc (prepare_data_references):
13695 Release vectors.
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
13699 allocate vectors.
13700 (vectorizable_comparison): Likewise.
13701
13702 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13703
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.
13708
13709 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13710
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.
13719
13720 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13721
13722 * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
13723 AUTO_FP flags.
13724 (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
13725
13726 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13727
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.
13736
13737 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13738
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.
13742
13743 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13744
13745 * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
13746 uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
13747
13748 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13749
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.
13759
13760 2021-02-02 Jakub Jelinek <jakub@redhat.com>
13761
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.
13765
13766 2021-02-02 Kito Cheng <kito.cheng@sifive.com>
13767
13768 PR target/98743
13769 * expr.c: Check mode before calling store_expr.
13770
13771 2021-02-02 Christophe Lyon <christophe.lyon@linaro.org>
13772
13773 * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
13774 (VORNQ): Remove.
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.
13780
13781 2021-02-02 Alexandre Oliva <oliva@adacore.com>
13782
13783 * tree-nested.c (convert_nonlocal_reference_op): Move
13784 current_function_decl restore after re-gimplification.
13785 (convert_local_reference_op): Likewise.
13786
13787 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13788
13789 * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
13790 Define builtins.
13791 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
13792 Define.
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
13800 using builtin.
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.
13812
13813 2021-02-01 Sergei Trofimovich <siarheit@google.com>
13814
13815 PR tree-optimization/98499
13816 * ipa-modref.c (analyze_ssa_name_flags): treat RVO
13817 conservatively and assume all possible side-effects.
13818
13819 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13820
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
13824 builtin.
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.
13830
13831 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13832
13833 * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
13834 Define builtins.
13835 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
13836 pattern.
13837 * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
13838 UNSPEC_UABDL.
13839 * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
13840 builtin.
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.
13848
13849 2021-02-01 Martin Sebor <msebor@redhat.com>
13850
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.
13856
13857 2021-02-01 Martin Sebor <msebor@redhat.com>
13858
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.
13862
13863 2021-02-01 Richard Biener <rguenther@suse.de>
13864
13865 * vec.h (auto_vec::auto_vec): Add memory stat parameters
13866 and pass them on.
13867 * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
13868
13869 2021-02-01 Tamar Christina <tamar.christina@arm.com>
13870
13871 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
13872 aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
13873
13874 2021-02-01 Richard Biener <rguenther@suse.de>
13875
13876 PR rtl-optimization/98863
13877 * config/i386/i386-features.c (convert_scalars_to_vector):
13878 Set DF_RD_PRUNE_DEAD_DEFS.
13879
13880 2021-01-31 Eric Botcazou <ebotcazou@adacore.com>
13881
13882 * system.h (SIZE_MAX): Define if not already defined.
13883
13884 2021-01-30 Aaron Sawdey <acsawdey@linux.ibm.com>
13885
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.
13894
13895 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
13896
13897 * config/rs6000/rs6000.opt: Add periods to new AIX options.
13898
13899 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
13900
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
13906 extabi info.
13907 (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
13908 are non-volatile.
13909 * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
13910
13911 2021-01-30 Jakub Jelinek <jakub@redhat.com>
13912
13913 * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
13914 DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
13915
13916 2021-01-29 Vladimir N. Makarov <vmakarov@redhat.com>
13917
13918 PR target/97701
13919 * lra-constraints.c (in_class_p): Don't narrow class only for REG
13920 or MEM.
13921
13922 2021-01-29 Will Schmidt <will_schmidt@vnet.ibm.com>
13923
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.
13927
13928 2021-01-29 Andrew MacLeod <amacleod@redhat.com>
13929
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].
13940
13941 2021-01-29 Richard Biener <rguenther@suse.de>
13942
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
13947 TODO_df_finish.
13948
13949 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
13950
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>):
13954 Define.
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.
13960
13961 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13962
13963 * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
13964 Define builtins.
13965 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
13966 Rename to...
13967 (aarch64_<sur>abdl2<mode>): ... This.
13968 (<sur>sadv16qi): Adjust use of above.
13969 * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
13970 builtin.
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.
13976
13977 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13978
13979 * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
13980 builtin.
13981 (uabal2): Likewise.
13982 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
13983 pattern.
13984 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
13985 UNSPEC_UABAL2.
13986 * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
13987 builtin.
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.
13995
13996 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13997
13998 * config/aarch64/aarch64-simd-builtins.def (sabal): Define
13999 builtin.
14000 (uabal): Likewise.
14001 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
14002 Rename to...
14003 (aarch64_<sur>abal<mode>): ... This
14004 (<sur>sadv16qi): Adust use of the above.
14005 * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
14006 builtin.
14007 (vabal_s16): Likewise.
14008 (vabal_s32): Likewise.
14009 (vabal_u8): Likewise.
14010 (vabal_u16): Likewise.
14011 (vabal_u32): Likewise.
14012
14013 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14014
14015 * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
14016 Define builtins.
14017 * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
14018 Define.
14019 * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
14020 builtin.
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.
14035 (Vwsuf): Likewise.
14036 (VWIDE_S): Likewise.
14037 (USADDLV): New int iterator.
14038 (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
14039
14040 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
14041
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>):
14045 Define.
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.
14055
14056 2021-01-29 Richard Biener <rguenther@suse.de>
14057
14058 * doc/invoke.texi (--param max-gcse-memory): Document unit
14059 of size.
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.
14063
14064 2021-01-29 Richard Biener <rguenther@suse.de>
14065
14066 PR rtl-optimization/98863
14067 * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
14068 HOST_WIDE_INT for the memory estimate.
14069
14070 2021-01-29 Bin Cheng <bin.cheng@linux.alibaba.com>
14071 Richard Biener <rguenther@suse.de>
14072
14073 PR tree-optimization/97627
14074 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
14075 Do not analyze fake edges.
14076
14077 2021-01-29 Richard Biener <rguenther@suse.de>
14078
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.
14088
14089 2021-01-29 Jakub Jelinek <jakub@redhat.com>
14090
14091 PR target/98849
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.
14095
14096 2021-01-29 Jakub Jelinek <jakub@redhat.com>
14097
14098 PR debug/98331
14099 * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
14100 a BARRIER.
14101
14102 2021-01-28 Marek Polacek <polacek@redhat.com>
14103
14104 PR c++/94775
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.
14109
14110 2021-01-28 Christophe Lyon <christophe.lyon@linaro.org>
14111
14112 PR target/98730
14113 * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
14114 of constant zero for comparisons.
14115
14116 2021-01-28 Michael Meissner <meissner@linux.ibm.com>
14117
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.
14121
14122 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
14123
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>):
14127 Define.
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.
14133
14134 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
14135
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>):
14139 Define.
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.
14145
14146 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14147
14148 * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
14149 builtin.
14150 * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
14151 Define.
14152 (aarch64_shrn2<mode>_insn_be): Likewise.
14153 (aarch64_shrn2<mode>): Likewise.
14154 * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
14155 using builtins.
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.
14161
14162 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14163
14164 * config/aarch64/aarch64-simd-builtins.def (shrn): Define
14165 builtin.
14166 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
14167 Define.
14168 (aarch64_shrn<mode>_insn_be): Likewise.
14169 (aarch64_shrn<mode>): Likewise.
14170 * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
14171 builtins.
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.
14178
14179 2021-01-28 Richard Biener <rguenther@suse.de>
14180
14181 PR rtl-optimization/80960
14182 * dse.c (check_mem_read_rtx): Call get_addr on the
14183 offsetted address.
14184
14185 2021-01-28 Xionghu Luo <luoxhu@linux.ibm.com>
14186 David Edelsohn <dje.gcc@gmail.com>
14187
14188 PR target/98799
14189 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14190 Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
14191 when -m32.
14192 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
14193 Delete.
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
14197 directly.
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.
14201
14202 2021-01-28 Xing GUO <higuoxing@gmail.com>
14203
14204 * common/config/riscv/riscv-common.c
14205 (riscv_subset_list::parsing_subset_version): Fix -march option parsing
14206 when `p` extension exists.
14207
14208 2021-01-27 Vladimir N. Makarov <vmakarov@redhat.com>
14209
14210 PR rtl-optimization/97684
14211 * ira.c (ira): Call ira_set_pseudo_classes before
14212 update_equiv_regs when it is necessary.
14213
14214 2021-01-27 Jakub Jelinek <jakub@redhat.com>
14215
14216 PR target/98853
14217 * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
14218 %w0, %w1 and %2 instead of %0, %1 and %2.
14219
14220 2021-01-27 Aaron Sawdey <acsawdey@linux.ibm.com>
14221
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
14231 POWERPC_MASKS.
14232 * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
14233 prototype.
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.
14245
14246 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
14247
14248 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
14249 builtin generator macros.
14250 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
14251 Rename to...
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.
14260
14261 2021-01-27 Richard Biener <rguenther@suse.de>
14262
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.
14267
14268 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
14269
14270 * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
14271 generator macro.
14272 * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
14273 Rename to...
14274 (aarch64_mls_n<mode>): This.
14275 * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
14276 instead of asm.
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.
14284
14285 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
14286
14287 * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
14288 generator macro.
14289 * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
14290 than asm.
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.
14302
14303 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
14304
14305 * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
14306 generator macro.
14307 * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
14308 Rename to...
14309 (aarch64_mla_n<mode>): This.
14310 * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
14311 instead of asm.
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.
14319
14320 2021-01-27 liuhongt <hongtao.liu@intel.com>
14321
14322 PR target/98833
14323 * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
14324 (*sse2_eq<mode>3): Ditto.
14325
14326 2021-01-27 Jakub Jelinek <jakub@redhat.com>
14327
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.
14334
14335 2021-01-27 Jakub Jelinek <jakub@redhat.com>
14336
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.
14341
14342 2021-01-26 Paul Fee <paul.f.fee@gmail.com>
14343
14344 * doc/cpp.texi (__cplusplus): Document value for -std=c++23
14345 or -std=gnu++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.
14349
14350 2021-01-26 Jakub Jelinek <jakub@redhat.com>
14351
14352 PR bootstrap/98839
14353 * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
14354 in comparison.
14355
14356 2021-01-26 Jakub Jelinek <jakub@redhat.com>
14357
14358 PR target/98681
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.
14362
14363 2021-01-26 Richard Biener <rguenther@suse.de>
14364
14365 * gimple-pretty-print.c (dump_binary_rhs): Handle
14366 VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
14367
14368 2021-01-26 Richard Biener <rguenther@suse.de>
14369
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,
14373 make static.
14374
14375 2021-01-26 Andrew Stubbs <ams@codesourcery.com>
14376
14377 * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
14378 for V64DFmode min/max reductions.
14379
14380 2021-01-26 Jakub Jelinek <jakub@redhat.com>
14381
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.
14386
14387 2021-01-26 Alexandre Oliva <oliva@adacore.com>
14388
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.
14392
14393 2021-01-25 Martin Sebor <msebor@redhat.com>
14394
14395 PR c++/98646
14396 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
14397
14398 2021-01-25 Martin Liska <mliska@suse.cz>
14399
14400 * value-prof.c (get_nth_most_common_value): Use %s instead
14401 of %qs string.
14402
14403 2021-01-25 Jakub Jelinek <jakub@redhat.com>
14404
14405 PR debug/98811
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.
14409
14410 2021-01-25 Martin Liska <mliska@suse.cz>
14411
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.
14417
14418 2021-01-25 Richard Biener <rguenther@suse.de>
14419
14420 PR middle-end/98807
14421 * tree.c (vector_element_bits): Always use precision of
14422 the element type for boolean vectors.
14423
14424 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
14425
14426 * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
14427 (ENDFILE_SPEC): Evaluate qnolinkcmds.
14428
14429 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
14430
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
14438 evaluation.
14439
14440 2021-01-25 Jakub Jelinek <jakub@redhat.com>
14441
14442 PR testsuite/98771
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.
14450
14451 2021-01-25 Tamar Christina <tamar.christina@arm.com>
14452
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.
14461
14462 2021-01-23 Jakub Jelinek <jakub@redhat.com>
14463
14464 PR testsuite/97301
14465 * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
14466
14467 2021-01-22 Jonathan Wright <jonathan.wright@arm.com>
14468
14469 * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
14470 generator macro.
14471 * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
14472 than asm.
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.
14484
14485 2021-01-22 David Malcolm <dmalcolm@redhat.com>
14486
14487 * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
14488 directive.
14489
14490 2021-01-22 Jakub Jelinek <jakub@redhat.com>
14491
14492 PR debug/98796
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
14496 compilation unit.
14497
14498 2021-01-22 Marek Polacek <polacek@redhat.com>
14499
14500 PR c++/98545
14501 * doc/invoke.texi: Update C++ ABI Version 15 description.
14502
14503 2021-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14504
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.
14508
14509 2021-01-22 Richard Biener <rguenther@suse.de>
14510
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.
14514
14515 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
14516
14517 PR target/98093
14518 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14519 Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
14520 platforms.
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.
14525
14526 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
14527
14528 PR target/79251
14529 PR target/98065
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):
14534 New declaration.
14535 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
14536
14537 2021-01-22 Martin Liska <mliska@suse.cz>
14538
14539 PR gcov-profile/98739
14540 * profile.c (compute_value_histograms): Drop time profile for
14541 -fprofile-reproducible=multithreaded.
14542
14543 2021-01-22 Nathan Sidwell <nathan@acm.org>
14544
14545 * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
14546 existence here.
14547
14548 2021-01-22 Richard Biener <rguenther@suse.de>
14549
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.
14553
14554 2021-01-22 Jakub Jelinek <jakub@redhat.com>
14555
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
14559 simplifications.
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.
14562
14563 2021-01-22 Jakub Jelinek <jakub@redhat.com>
14564
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
14568 precision.
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.
14572
14573 2021-01-22 Richard Biener <rguenther@suse.de>
14574
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
14578 conversion.
14579
14580 2021-01-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14581
14582 PR target/98636
14583 * optc-save-gen.awk: Add arm_fp16_format to checked_options.
14584
14585 2021-01-22 liuhongt <hongtao.liu@intel.com>
14586
14587 PR target/96891
14588 PR target/98348
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):
14598 New predicate.
14599 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
14600 general NOT operator without UNSPEC_MASKOP.
14601
14602 2021-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
14603
14604 PR rtl-optimization/98777
14605 * lra-int.h (lra_pmode_pseudo): New extern.
14606 * lra.c (lra_pmode_pseudo): New global.
14607 (lra): Set it up.
14608 * lra-eliminations.c (eliminate_regs_in_insn): Use it.
14609
14610 2021-01-21 Ilya Leoshkevich <iii@linux.ibm.com>
14611
14612 * fwprop.c (fwprop_propagation::classify_result): Allow
14613 (subreg (mem)) simplifications.
14614
14615 2021-01-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14616
14617 * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
14618 Split into...
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.
14633
14634 2021-01-21 Christophe Lyon <christophe.lyon@linaro.org>
14635
14636 * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
14637
14638 2021-01-21 Andrea Corallo <andrea.corallo@arm.com>
14639
14640 PR target/96372
14641 * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
14642
14643 2021-01-21 liuhongt <hongtao.liu@intel.com>
14644
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
14649 backend).
14650
14651 2021-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14652
14653 * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
14654 Convert to define_insn_and_split. Split into simple move when moving
14655 bottom element.
14656
14657 2021-01-20 Segher Boessenkool <segher@kernel.crashing.org>
14658
14659 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
14660 Adjust comment. Simplify code.
14661
14662 2021-01-20 Jakub Jelinek <jakub@redhat.com>
14663
14664 PR debug/98765
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.
14672
14673 2021-01-20 Vladimir N. Makarov <vmakarov@redhat.com>
14674
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.
14678
14679 2021-01-20 Richard Biener <rguenther@suse.de>
14680
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.
14690
14691 2021-01-20 Eugene Rozenfeld <erozen@microsoft.com>
14692
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
14696
14697 2021-01-20 Richard Sandiford <richard.sandiford@arm.com>
14698
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.
14703
14704 2021-01-20 Jakub Jelinek <jakub@redhat.com>
14705
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.
14711
14712 2021-01-20 Richard Biener <rguenther@suse.de>
14713
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.
14719
14720 2021-01-20 David Malcolm <dmalcolm@redhat.com>
14721
14722 PR debug/98751
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.
14729
14730 2021-01-19 Martin Sebor <msebor@redhat.com>
14731
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.
14737
14738 2021-01-19 Richard Sandiford <richard.sandiford@arm.com>
14739
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
14747 into account.
14748
14749 2021-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14750
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.
14763
14764 2021-01-19 Richard Biener <rguenther@suse.de>
14765
14766 PR ipa/98330
14767 * ipa-modref.c (analyze_stmt): Only record a summary for a
14768 direct call.
14769
14770 2021-01-19 Richard Biener <rguenther@suse.de>
14771
14772 PR middle-end/98638
14773 * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
14774
14775 2021-01-19 Daniel Hellstrom <daniel@gaisler.com>
14776
14777 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
14778 built-in define __FIX_LEON3FT_TN0018.
14779
14780 2021-01-19 Richard Biener <rguenther@suse.de>
14781
14782 PR ipa/97673
14783 * tree-inline.c (tree_function_versioning): Set input_location
14784 to UNKNOWN_LOCATION throughout the function.
14785
14786 2021-01-19 Tobias Burnus <tobias@codesourcery.com>
14787
14788 PR fortran/98476
14789 * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
14790
14791 2021-01-19 Martin Jambor <mjambor@suse.cz>
14792
14793 PR ipa/98690
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.
14798
14799 2021-01-19 Geng Qi <gengqi@linux.alibaba.com>
14800
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
14808 to a multi-letter.
14809
14810 2021-01-18 Vladimir N. Makarov <vmakarov@redhat.com>
14811
14812 PR target/97847
14813 * ira.c (ira): Skip abnormal critical edge splitting.
14814
14815 2021-01-18 Jakub Jelinek <jakub@redhat.com>
14816
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.
14821
14822 2021-01-18 David Edelsohn <dje.gcc@gmail.com>
14823
14824 * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
14825 defaults to version 4.
14826
14827 2021-01-18 David Malcolm <dmalcolm@redhat.com>
14828
14829 * attribs.h (fndecl_dealloc_argno): New decl.
14830 * builtins.c (call_dealloc_argno): Split out second half of
14831 function into...
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.
14836
14837 2021-01-17 David Edelsohn <dje.gcc@gmail.com>
14838
14839 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
14840 dwarf_version to 4.
14841 * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
14842
14843 2021-01-17 Martin Jambor <mjambor@suse.cz>
14844
14845 PR ipa/98222
14846 * cgraph.c (clone_of_p): Check also former_clone_of as we climb
14847 the clone tree.
14848
14849 2021-01-17 Mark Wielaard <mark@klomp.org>
14850
14851 * common.opt (gdwarf-): Init(5).
14852 * doc/invoke.texi (-gdwarf): Document default to 5.
14853
14854 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
14855
14856 * builtin-types.def
14857 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
14858 to...
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
14869 call to GOMP_task.
14870 * omp-low.c (scan_sharing_clauses): Setup data environment for detach
14871 clause.
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
14875 ordering.
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.
14881 Fix ordering.
14882 (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix
14883 ordering.
14884 (walk_tree_1): Handle OMP_CLAUSE_DETACH.
14885
14886 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
14887
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.
14892
14893 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
14894
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
14899 variant.
14900
14901 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
14902
14903 * config/nios2/nios2.c (nios2_custom_check_insns): Remove
14904 custom instruction warnings.
14905
14906 2021-01-16 Jakub Jelinek <jakub@redhat.com>
14907
14908 PR tree-optimization/96669
14909 * match.pd ((CST << x) & 1 -> x == 0): New simplification.
14910
14911 2021-01-16 Jakub Jelinek <jakub@redhat.com>
14912
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
14918 initialize it.
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.
14922
14923 2021-01-15 Carl Love <cel@us.ibm.com>
14924
14925 * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
14926 New defines.
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.
14953
14954 2021-01-15 Eric Botcazou <ebotcazou@adacore.com>
14955
14956 * final.c (final_start_function_1): Reset force_source_line.
14957
14958 2021-01-15 Jakub Jelinek <jakub@redhat.com>
14959
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.
14964
14965 2021-01-15 Jakub Jelinek <jakub@redhat.com>
14966
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.
14972
14973 2021-01-15 Alexandre Oliva <oliva@adacore.com>
14974
14975 * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
14976
14977 2021-01-15 Tamar Christina <tamar.christina@arm.com>
14978
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.
14992
14993 2021-01-15 David Malcolm <dmalcolm@redhat.com>
14994
14995 PR bootstrap/98696
14996 * diagnostic.c
14997 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
14998 Escape the tempfile name when constructing the expected output.
14999
15000 2021-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15001
15002 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
15003 Rename to...
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.
15014
15015 2021-01-15 Uroš Bizjak <ubizjak@gmail.com>
15016
15017 * config/i386/i386-c.c (ix86_target_macros):
15018 Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
15019
15020 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
15021
15022 PR target/88836
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
15028 pass_combine.
15029 * config/aarch64/aarch64-cc-fusion.cc: New file.
15030
15031 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
15032
15033 * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
15034 calling cancel_changes for changes that no longer exist.
15035
15036 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
15037
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.
15042
15043 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
15044
15045 PR target/71233
15046 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
15047
15048 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
15049
15050 Revert:
15051 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
15052
15053 PR target/71233
15054 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
15055
15056 2021-01-15 Richard Biener <rguenther@suse.de>
15057
15058 PR tree-optimization/96376
15059 * tree-vect-stmts.c (get_load_store_type): Disregard alignment
15060 for VMAT_INVARIANT.
15061
15062 2021-01-15 Martin Liska <mliska@suse.cz>
15063
15064 * doc/install.texi: Document that some tests need pytest module.
15065 * doc/sourcebuild.texi: Likewise.
15066
15067 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
15068
15069 PR target/71233
15070 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
15071
15072 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
15073
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.
15078
15079 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
15080
15081 * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
15082 vec-commond.md.
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.
15086
15087 2021-01-15 Richard Biener <rguenther@suse.de>
15088
15089 PR tree-optimization/98685
15090 * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
15091 of vector extern defs.
15092
15093 2021-01-14 David Malcolm <dmalcolm@redhat.com>
15094
15095 PR jit/98586
15096 * diagnostic.c (diagnostic_kind_text): Break out this array
15097 from...
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.
15102
15103 2021-01-14 David Malcolm <dmalcolm@redhat.com>
15104
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):
15122 New.
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
15126 of...
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
15132 fields.
15133
15134 2021-01-14 Tamar Christina <tamar.christina@arm.com>
15135
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.
15141
15142 2021-01-14 Tamar Christina <tamar.christina@arm.com>
15143
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.
15150
15151 2021-01-14 Tamar Christina <tamar.christina@arm.com>
15152
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.
15160
15161 2021-01-14 Tamar Christina <tamar.christina@arm.com>
15162
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.
15171
15172 2021-01-14 Tamar Christina <tamar.christina@arm.com>
15173
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.
15177
15178 2021-01-14 Tamar Christina <tamar.christina@arm.com>
15179
15180 * tree-vect-slp-patterns.c (complex_add_pattern::build):
15181 Elide nodes.
15182
15183 2021-01-14 Thomas Schwinge <thomas@codesourcery.com>
15184
15185 * config/gcn/mkoffload.c (main): Create an offload image only in
15186 64-bit configurations.
15187
15188 2021-01-14 H.J. Lu <hjl.tools@gmail.com>
15189
15190 PR target/98667
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.
15194
15195 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
15196
15197 PR target/98671
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.
15206
15207 2021-01-14 Richard Biener <rguenther@suse.de>
15208
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.
15214
15215 2021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15216
15217 PR target/66791
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
15221 vcge and vcgeu.
15222
15223 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
15224
15225 PR target/98671
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.
15232
15233 2021-01-14 Jakub Jelinek <jakub@redhat.com>
15234
15235 PR target/98670
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.
15239
15240 2021-01-14 Jakub Jelinek <jakub@redhat.com>
15241
15242 PR tree-optimization/96688
15243 * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
15244 ~X can be simplified.
15245
15246 2021-01-14 Richard Sandiford <richard.sandiford@arm.com>
15247
15248 * tree-vect-stmts.c (vect_model_load_cost): Account for unused
15249 IFN_LOAD_LANES results.
15250
15251 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15252
15253 * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
15254 Define.
15255 (aarch64_xtn<mode>): Likewise.
15256 * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
15257 Define
15258 builtins.
15259 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
15260 builtin.
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.
15272
15273 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15274
15275 * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
15276 Define.
15277 (aarch64_<su>qxtn2<mode>_be): Likewise.
15278 (aarch64_<su>qxtn2<mode>): Likewise.
15279 * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
15280 Define builtins.
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
15284 builtin.
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.
15290
15291 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15292
15293 * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
15294 Define.
15295 (aarch64_xtn2<mode>_be): Likewise.
15296 (aarch64_xtn2<mode>): Likewise.
15297 * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
15298 builtins.
15299 * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
15300 builtins.
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.
15306
15307 2021-01-13 Stafford Horne <shorne@gmail.com>
15308
15309 * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
15310
15311 2021-01-13 Stafford Horne <shorne@gmail.com>
15312
15313 * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
15314
15315 2021-01-13 Stafford Horne <shorne@gmail.com>
15316
15317 * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
15318 define for __or1k_hard_float__.
15319
15320 2021-01-13 Stafford Horne <shorne@gmail.com>
15321
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.
15325
15326 2021-01-13 Jakub Jelinek <jakub@redhat.com>
15327
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.
15332
15333 2021-01-13 Richard Biener <rguenther@suse.de>
15334
15335 PR tree-optimization/92645
15336 * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
15337 until after vector lowering.
15338
15339 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
15340
15341 * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
15342 to SVE_I.
15343 (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
15344 (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
15345
15346 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
15347
15348 * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
15349 to SVE_I.
15350 (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
15351 (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
15352
15353 2021-01-13 Richard Biener <rguenther@suse.de>
15354
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.
15362
15363 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
15364
15365 * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
15366
15367 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
15368
15369 * config/sh/sh.md (movsf_ie): Remove operands[2] test.
15370
15371 2021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
15372
15373 * config.gcc [$target == *-*-gnu*]: Enable
15374 'default_gnu_indirect_function'.
15375
15376 2021-01-13 Jakub Jelinek <jakub@redhat.com>
15377
15378 PR target/95905
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
15381 that.
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
15393 into registers.
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.
15400
15401 2021-01-13 Martin Liska <mliska@suse.cz>
15402
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
15407 conditionally.
15408
15409 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
15410
15411 * doc/invoke.texi (C++ Modules): Fix typos.
15412
15413 2021-01-13 Richard Biener <rguenther@suse.de>
15414
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
15418 sign-extended.
15419
15420 2021-01-13 Jakub Jelinek <jakub@redhat.com>
15421
15422 PR target/96938
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.
15426
15427 2021-01-13 Martin Liska <mliska@suse.cz>
15428
15429 PR ipa/98652
15430 * cgraphunit.c (analyze_functions): Remove dead code.
15431
15432 2021-01-13 Qian Jianhua <qianjh@cn.fujitsu.com>
15433
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.
15438
15439 2021-01-13 Jakub Jelinek <jakub@redhat.com>
15440
15441 PR target/95905
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.
15447
15448 2021-01-13 Julian Brown <julian@codesourcery.com>
15449
15450 * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
15451 to fix v0 register.
15452
15453 2021-01-13 Julian Brown <julian@codesourcery.com>
15454
15455 * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
15456 on entry to a BB.
15457
15458 2021-01-13 Julian Brown <julian@codesourcery.com>
15459
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.
15465
15466 2021-01-13 Julian Brown <julian@codesourcery.com>
15467
15468 * config/gcn/gcn-valu.md (subdf): Rename to...
15469 (subdf3): This.
15470
15471 2021-01-12 Martin Liska <mliska@suse.cz>
15472
15473 * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
15474
15475 2021-01-12 Andrea Corallo <andrea.corallo@arm.com>
15476
15477 * function-abi.h: Fix typo.
15478
15479 2021-01-12 Christophe Lyon <christophe.lyon@linaro.org>
15480
15481 PR target/97875
15482 PR target/97875
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.
15501
15502 2021-01-12 Vladimir N. Makarov <vmakarov@redhat.com>
15503
15504 PR target/97969
15505 * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
15506 of pattern 'plus (plus (hard reg, const), pseudo)'.
15507
15508 2021-01-12 Richard Biener <rguenther@suse.de>
15509
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.
15516
15517 2021-01-12 Martin Liska <mliska@suse.cz>
15518
15519 PR c++/97284
15520 * optc-save-gen.awk: Compare also n_target_save vars with
15521 strcmp.
15522
15523 2021-01-12 Martin Liska <mliska@suse.cz>
15524
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
15532 instrumented.
15533
15534 2021-01-12 Jakub Jelinek <jakub@redhat.com>
15535
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.
15539
15540 2021-01-12 Jakub Jelinek <jakub@redhat.com>
15541
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.
15547
15548 2021-01-12 Jakub Jelinek <jakub@redhat.com>
15549
15550 * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
15551 * configure: Regenerated.
15552
15553 2021-01-12 liuhongt <hongtao.liu@intel.com>
15554
15555 PR target/98612
15556 * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
15557 Deleted.
15558 * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
15559 dead code.
15560
15561 2021-01-12 Alexandre Oliva <oliva@adacore.com>
15562
15563 * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
15564 declare.
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,
15568 along with uses...
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.
15578
15579 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15580
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.
15590
15591 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15592
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.
15596
15597 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15598
15599 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
15600 (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
15601 to SVE_I.
15602
15603 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15604
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.
15612
15613 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15614
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.
15618
15619 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15620
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
15623 to SVE_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.
15628
15629 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15630
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
15634 to SVE_I.
15635
15636 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
15637
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.
15641
15642 2021-01-11 Martin Liska <mliska@suse.cz>
15643
15644 PR jit/98615
15645 * symtab-clones.h (clone_info::release): Release
15646 symtab::m_clones with ggc_delete as it's a GGC memory.
15647
15648 2021-01-11 Matthias Klose <doko@ubuntu.com>
15649
15650 * Makefile.in (LINK_PROGRESS): Show the link target.
15651
15652 2021-01-11 Richard Biener <rguenther@suse.de>
15653
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.
15657
15658 2021-01-11 Richard Biener <rguenther@suse.de>
15659
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.
15665
15666 2021-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
15667
15668 * tree-ssa-forwprop.c (simplify_vector_constructor): For
15669 big-endian, use UNPACK[_FLOAT]_HI.
15670
15671 2021-01-11 Tamar Christina <tamar.christina@arm.com>
15672
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.
15678
15679 2021-01-11 Tamar Christina <tamar.christina@arm.com>
15680
15681 * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
15682
15683 2021-01-11 Tamar Christina <tamar.christina@arm.com>
15684
15685 * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
15686
15687 2021-01-11 Jakub Jelinek <jakub@redhat.com>
15688
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.
15699
15700 2021-01-11 Jakub Jelinek <jakub@redhat.com>
15701
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
15711 overflow checks.
15712
15713 2021-01-11 Jakub Jelinek <jakub@redhat.com>
15714
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.
15725
15726 2021-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15727
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.
15741
15742 2021-01-11 Martin Liska <mliska@suse.cz>
15743
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.
15749
15750 2021-01-11 Kewen Lin <linkw@linux.ibm.com>
15751
15752 * ira.c (move_unallocated_pseudos): Check other_reg and skip if
15753 it isn't set.
15754
15755 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
15756
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.
15763
15764 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
15765
15766 * config/vax/vax.md (subst_f<cc>): Add mode to operands and
15767 `const_double_zero'.
15768
15769 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
15770
15771 * config/pdp11/pdp11.md (PDPfp): New mode iterator.
15772 (fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and
15773 operands.
15774
15775 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
15776
15777 * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
15778 rtx.
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.
15782
15783 2021-01-09 Jakub Jelinek <jakub@redhat.com>
15784
15785 PR c++/98556
15786 * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
15787 POINTER_DIFF_EXPR to be any integral type.
15788
15789 2021-01-09 Jakub Jelinek <jakub@redhat.com>
15790
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.
15796
15797 2021-01-09 Alexandre Oliva <oliva@gnu.org>
15798
15799 PR debug/97714
15800 * final.c (notice_source_line): Narrow down the condition to
15801 skip a line-0 marker.
15802
15803 2021-01-08 Sergei Trofimovich <siarheit@google.com>
15804
15805 * ipa-modref.c (merge_call_side_effects): Fix
15806 linebreak split by reordering two print calls.
15807
15808 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
15809
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.
15814
15815 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
15816
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.
15822
15823 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
15824
15825 PR target/98482
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
15828 targets.
15829
15830 2021-01-08 Richard Biener <rguenther@suse.de>
15831
15832 * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
15833
15834 2021-01-08 Richard Biener <rguenther@suse.de>
15835
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.
15841
15842 2021-01-08 Richard Biener <rguenther@suse.de>
15843
15844 PR tree-optimization/98544
15845 * tree-vect-slp.c (vect_optimize_slp): Always materialize
15846 permutes at a permute node.
15847
15848 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
15849
15850 PR target/98482
15851 * config/i386/i386.c (x86_function_profiler): Use R10 to call
15852 mcount in large model. Sorry for large model with PIC.
15853
15854 2021-01-08 Jakub Jelinek <jakub@redhat.com>
15855
15856 PR target/98585
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.
15868
15869 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
15870
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.
15874
15875 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
15876
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.
15880
15881 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15882
15883 * config/aarch64/iterators.md (Vwhalf): New iterator.
15884 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
15885 Rename to...
15886 (aarch64_<sur>adalp<mode>): ... This. Make more
15887 builtin-friendly.
15888 (<sur>sadv16qi): Adjust callsite of the above.
15889 * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
15890 builtins.
15891 * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
15892 builtins.
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.
15902
15903 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15904
15905 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
15906 Rename to...
15907 (aarch64_<su>abd<mode>): ... This.
15908 (<sur>sadv16qi): Adjust callsite of the above.
15909 * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
15910 builtins.
15911 * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
15912 builtin.
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.
15924
15925 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15926
15927 * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
15928 builtins.
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.
15941
15942 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15943
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.
15947
15948 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
15949
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
15954 test macros.
15955 * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
15956 (riscv_subset_list::end): New.
15957 (riscv_current_subset_list): New.
15958
15959 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
15960
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
15970 dependency.
15971
15972 2021-01-07 Jakub Jelinek <jakub@redhat.com>
15973
15974 PR target/98567
15975 * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
15976 New define_insn patterns.
15977
15978 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
15979
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.
15983
15984 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
15985
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
15989 argument 1.
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
15998 convert optab.
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
16004 before using it.
16005
16006 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
16007
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.
16011
16012 2021-01-07 Uroš Bizjak <ubizjak@gmail.com>
16013
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.
16019
16020 2021-01-07 Jakub Jelinek <jakub@redhat.com>
16021
16022 PR tree-optimization/98568
16023 * gimple-ssa-store-merging.c (bswap_view_convert): New function.
16024 (bswap_replace): Use it.
16025
16026 2021-01-06 Vladimir N. Makarov <vmakarov@redhat.com>
16027
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.
16034
16035 2021-01-06 Martin Sebor <msebor@redhat.com>
16036
16037 PR c++/98305
16038 * builtins.c (new_delete_mismatch_p): New overload.
16039 (new_delete_mismatch_p (tree, tree)): Call it.
16040
16041 2021-01-06 Alexandre Oliva <oliva@adacore.com>
16042
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.
16047
16048 2021-01-06 Richard Biener <rguenther@suse.de>
16049
16050 PR tree-optimization/98513
16051 * value-range.cc (intersect_ranges): Compare the upper bounds
16052 for the expected relation.
16053
16054 2021-01-06 Gerald Pfeifer <gerald@pfeifer.com>
16055
16056 Revert:
16057 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com>
16058
16059 * doc/standards.texi (HSAIL): Remove section.
16060
16061 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
16062
16063 * configure: Re-generate.
16064
16065 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16066
16067 * doc/invoke.texi (-std=c++20): Adjust for the publication of
16068 ISO 14882:2020 standard.
16069 * doc/standards.texi: Likewise.
16070
16071 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16072
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.
16079
16080 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
16081
16082 * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
16083 * rtlanal.c (simple_regno_set): Tweak description to clarify the
16084 RMW condition.
16085
16086 2021-01-05 Richard Biener <rguenther@suse.de>
16087
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.
16092
16093 2021-01-05 Richard Biener <rguenther@suse.de>
16094
16095 * tree-vect-slp.c (vect_slp_region): Move debug counter
16096 to cover individual subgraphs.
16097
16098 2021-01-05 Richard Biener <rguenther@suse.de>
16099
16100 PR tree-optimization/98428
16101 * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
16102 vector lane extracts for loop vectorization.
16103
16104 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16105
16106 PR tree-optimization/98514
16107 * tree-ssa-reassoc.c (bb_rank): Change type from long * to
16108 int64_t *.
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
16113 int64_t.
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
16119 int64_t.
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.
16124
16125 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16126
16127 PR tree-optimization/96928
16128 * tree-ssa-phiopt.c (xor_replacement): New function.
16129 (tree_ssa_phiopt_worker): Call it.
16130
16131 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16132
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.
16137
16138 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16139
16140 PR tree-optimization/96239
16141 * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
16142 function.
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
16146 if possible.
16147
16148 2021-01-05 Richard Biener <rguenther@suse.de>
16149
16150 PR tree-optimization/98381
16151 * tree.c (vector_element_bits): Properly compute bool vector
16152 element size.
16153 * tree-vect-loop.c (vectorizable_live_operation): Properly
16154 compute the last lane bit offset.
16155
16156 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
16157
16158 PR target/98522
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.
16162
16163 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
16164
16165 PR target/98521
16166 * config/i386/xopintrin.h (_mm256_cmov_si256): New.
16167
16168 2021-01-05 H.J. Lu <hjl.tools@gmail.com>
16169
16170 PR target/98495
16171 * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
16172 short first.
16173
16174 2021-01-05 Claudiu Zissulescu <claziss@synopsys.com>
16175
16176 * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
16177 (umaddsidi4_split): Likewise.
16178
16179 2021-01-05 liuhongt <hongtao.liu@intel.com>
16180
16181 PR target/98461
16182 * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
16183 define_insn_and_split for zero_extend of subreg HI of pmovskb
16184 result.
16185 (*sse2_pmovskb_zexthisi): Add new combine splitters for
16186 zero_extend of not of subreg HI of pmovskb result.
16187
16188 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
16189
16190 PR target/97269
16191 * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
16192 nested in CONSTs.
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.
16196
16197 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
16198
16199 PR rtl-optimization/97144
16200 * recog.c (constrain_operands): Initialize matching_operand
16201 for each alternative, rather than only doing it once.
16202
16203 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
16204
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.
16210
16211 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
16212
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
16217 it as a main loop.
16218
16219 2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16220
16221 PR c++/98316
16222 * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
16223 * aclocal.m4, configure: Regenerate.
16224 * Makefile.in (NETLIBS): Define.
16225 (BACKEND): Remove $(CODYLIB).
16226
16227 2021-01-05 Jakub Jelinek <jakub@redhat.com>
16228
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.
16232
16233 2021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
16234
16235 * tree-inline.c (expand_call_inline): Restore input_location.
16236 Return result from recursive call.
16237
16238 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
16239
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.
16247
16248 2021-01-04 Richard Biener <rguenther@suse.de>
16249
16250 PR tree-optimization/98308
16251 * tree-vect-stmts.c (vectorizable_load): Set invariant mask
16252 SLP vectype.
16253
16254 2021-01-04 Jakub Jelinek <jakub@redhat.com>
16255
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.
16260
16261 2021-01-04 Richard Biener <rguenther@suse.de>
16262
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.
16267
16268 2021-01-04 Matthew Malcomson <matthew.malcomson@arm.com>
16269
16270 PR other/98437
16271 * doc/invoke.texi (-fsanitize=address): Fix wording describing
16272 clash with -fsanitize=hwaddress.
16273
16274 2021-01-04 Richard Biener <rguenther@suse.de>
16275
16276 PR tree-optimization/98282
16277 * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
16278 invariants as VN_NARY.
16279
16280 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
16281
16282 PR target/89057
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.
16286
16287 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
16288
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
16292 [-32, 31].
16293
16294 2021-01-04 Richard Biener <rguenther@suse.de>
16295
16296 PR tree-optimization/98393
16297 * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
16298 when hitting the limit.
16299
16300 2021-01-04 Richard Biener <rguenther@suse.de>
16301
16302 PR tree-optimization/98291
16303 * tree-vect-loop.c (vectorizable_reduction): Bypass
16304 associativity check for SLP reductions with VF 1.
16305
16306 2021-01-04 Jakub Jelinek <jakub@redhat.com>
16307
16308 PR tree-optimization/96782
16309 * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
16310
16311 2021-01-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
16312
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.
16321
16322 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16323
16324 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
16325 Amend handling for LD64_VERSION fallback defaults.
16326
16327 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16328
16329 * config.gcc: Compute default version information
16330 from the configured target. Likewise defaults for
16331 ld64.
16332 * config/darwin10.h: Removed.
16333 * config/darwin12.h: Removed.
16334 * config/darwin9.h: Removed.
16335 * config/rs6000/darwin8.h: Removed.
16336
16337 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16338
16339 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
16340
16341 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16342
16343 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
16344 * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
16345
16346 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16347
16348 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
16349 here...
16350 * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
16351
16352 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16353
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.
16357
16358 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
16359
16360 * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
16361 (ASM_DEBUG_SPEC):Only define if the assembler supports
16362 stabs.
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.
16371
16372 2021-01-02 Jan Hubicka <jh@suse.cz>
16373
16374 * cfg.c (free_block): ggc_free bb.
16375
16376 2021-01-01 Jakub Jelinek <jakub@redhat.com>
16377
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.
16390
16391 2021-01-01 Jakub Jelinek <jakub@redhat.com>
16392
16393 * ChangeLog-2020: Rotate ChangeLog. New file.
16394
16395 \f
16396 Copyright (C) 2021 Free Software Foundation, Inc.
16397
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.