Daily bump.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2021-08-30  David Malcolm  <dmalcolm@redhat.com>
2
3         PR analyzer/99260
4         * Makefile.in (ANALYZER_OBJS): Add analyzer/call-info.o.
5
6 2021-08-30  Jason Merrill  <jason@redhat.com>
7
8         * doc/invoke.texi: Document -Wmissing-requires.
9
10 2021-08-30  Bill Schmidt  <wschmidt@linux.ibm.com>
11
12         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove
13         TARGET_EXTRA_BUILTINS guard.
14
15 2021-08-30  Bill Schmidt  <wschmidt@linux.ibm.com>
16
17         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Change
18         initialization of V2DI_type_node and unsigned_V2DI_type_node.
19
20 2021-08-30  Bill Schmidt  <wschmidt@linux.ibm.com>
21
22         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Use the new
23         decl when new_builtins_are_live.
24         * config/rs6000/rs6000-builtin-new.def (__builtin_cfstring): New
25         built-in.
26
27 2021-08-30  Pat Haugen  <pthaugen@linux.ibm.com>
28
29         * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Add
30         OPTION_MASK_P10_FUSION_2STORE.
31         (POWERPC_MASKS): Likewise.
32         * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
33         store fusion for Power10.
34         (is_fusable_store): New.
35         (power10_sched_reorder): Likewise.
36         (rs6000_sched_reorder): Do Power10 specific reordering.
37         (rs6000_sched_reorder2): Likewise.
38         * config/rs6000/rs6000.opt: Add new option.
39
40 2021-08-30  Richard Biener  <rguenther@suse.de>
41
42         PR tree-optimization/102128
43         * tree-vect-slp.c (vect_bb_vectorization_profitable_p):
44         Move scanning for if-converted scalar code to the caller
45         and instead delay clearing the visited flag for profitable
46         subgraphs.
47         (vect_slp_region): Cost all subgraphs before scheduling.
48         For if-converted BB vectorization scan for scalar COND_EXPRs
49         and do not vectorize if any found and the cost model is
50         very-cheap.
51
52 2021-08-30  Richard Biener  <rguenther@suse.de>
53
54         * common.opt (fexceptions): Mark
55         EnabledBy(fnon-call-exceptions).
56         * doc/invoke.texi (fnon-call-exceptions): Document this
57         enables -fexceptions.
58
59 2021-08-30  Sebastian Huber  <sebastian.huber@embedded-brains.de>
60
61         * tsystem.h (abort): Define abort() if inhibit_libc is defined and it
62         is not already defined.
63
64 2021-08-30  liuhongt  <hongtao.liu@intel.com>
65
66         * expmed.c (extract_bit_field_1): Make sure we're playing with
67         integral modes before call extract_integral_bit_field.
68         (extract_integral_bit_field): Add a parameter of type
69         scalar_int_mode which corresponds to of tmode.
70         And call extract_and_convert_fixed_bit_field instead of
71         extract_fixed_bit_field and convert_extracted_bit_field.
72         (extract_and_convert_fixed_bit_field): New function, it's a
73         combination of extract_fixed_bit_field and
74         convert_extracted_bit_field.
75
76 2021-08-29  Iain Sandoe  <iain@sandoe.co.uk>
77
78         * config/darwin.c (darwin_libc_has_function): Do not run
79         the checks for x86 or modern Darwin.  Make sure that there
80         is a value set for darwin_macosx_version_min before testing.
81
82 2021-08-29  Iain Sandoe  <iain@sandoe.co.uk>
83
84         * config/i386/darwin.h (CLEAR_INSN_CACHE): New.
85
86 2021-08-28  Jan Hubicka  <hubicka@ucw.cz>
87
88         * ipa-modref-tree.h (modref_access_node::merge): Break out
89         logic combining offsets and logic merging ranges to ...
90         (modref_access_node::combined_offsets): ... here
91         (modref_access_node::update2): ... here
92         (modref_access_node::closer_pair_p): New member function.
93         (modref_access_node::forced_merge): New member function.
94         (modre_ref_node::insert): Do merging when table is full.
95
96 2021-08-28  YunQiang Su  <yunqiang.su@cipunited.com>
97
98         PR target/102089
99         * config.gcc: MIPS: use N64 ABI by default if the triple end
100           with -gnuabi64, which is used by Debian since 2013.
101
102 2021-08-28  Alexandre Oliva  <oliva@adacore.com>
103
104         * ipa-modref.c (analyze_function): Skip debug stmts.
105         * tree-inline.c (estimate_num_insn): Consider builtins even
106         without a cgraph_node.
107
108 2021-08-27  Jeff Law  <jlaw@localhost.localdomain>
109
110         * config/h8300/bitfield.md (cstore<mode>4): Remove expander.
111         * config/h8300/h8300.c (h8300_expand_branch): Remove function.
112         * config/h8300/h8300-protos.h (h8300_expadn_branch): Remove prototype.
113         * config/h8300/h8300.md (eqne): New code iterator.
114         (geultu, geultu_to_c): Similarly.
115         * config/h8300/testcompare.md (cstore<mode>4): Dummy expander.
116         (store_c_<mode>, store_c_i_<mode>): New define_insn_and_splits
117         (cmp<mode>_c): New pattern
118
119 2021-08-27  Jeff Law  <jlaw@localhost.localdomain>
120
121         * tree-ssa-dom.c (reduce_vector_comparison_to_scalar_comparison): New
122         function.
123         (dom_opt_dom_walker::optimize_stmt): Use it.
124
125 2021-08-27  Iain Sandoe  <iain@sandoe.co.uk>
126
127         * config/darwin.c (finalize_ctors): Add a section-start linker-
128         visible symbol.
129         (finalize_dtors): Likewise.
130         * config/darwin.h (MIN_LD64_INIT_TERM_START_LABELS): New.
131
132 2021-08-27  Bill Schmidt  <wschmidt@linux.ibm.com>
133
134         * config/rs6000/rs6000-call.c (rs6000-builtins.h): New #include.
135         (rs6000_init_builtins): Call rs6000_init_generated_builtins.  Skip the
136         old initialization logic when new builtins are enabled.
137         * config/rs6000/rs6000-gen-builtins.c (write_decls): Rename
138         rs6000_autoinit_builtins to rs6000_init_generated_builtins.
139         (write_init_file): Likewise.
140
141 2021-08-27  Iain Sandoe  <iain@sandoe.co.uk>
142
143         * configure.ac (darwin2[[0-9]]* | darwin19*): Alter use of
144         gcc_GAS_CHECK_FEATURE to remove an extraneous parameter.
145         (amdgcn-* | gcn-*) Likewise.
146
147 2021-08-27  Anthony Sharp  <anthonysharp15@gmail.com>
148
149         * symbol-summary.h: Added missing template keyword.
150
151 2021-08-27  Richard Biener  <rguenther@suse.de>
152
153         PR tree-optimization/45178
154         * tree-ssa-dce.c (find_obviously_necessary_stmts): For
155         infinite loops without exit do not mark control dependent
156         edges of the latch necessary.
157
158 2021-08-27  konglin1  <lingling.kong@intel.com>
159
160         PR target/101472
161         * config/i386/sse.md: (<avx512>scattersi<mode>): Add mask operand to
162         UNSPEC_VSIBADDR.
163         (<avx512>scattersi<mode>): Likewise.
164         (*avx512f_scattersi<VI48F:mode>): Merge mask operand to set_dest.
165         (*avx512f_scatterdi<VI48F:mode>): Likewise
166
167 2021-08-27  Kewen Lin  <linkw@linux.ibm.com>
168
169         * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function): Add
170         support for built-in functions MISC_BUILTIN_DIVWE, MISC_BUILTIN_DIVWEU,
171         MISC_BUILTIN_DIVDE, MISC_BUILTIN_DIVDEU, P10_BUILTIN_CFUGED,
172         P10_BUILTIN_CNTLZDM, P10_BUILTIN_CNTTZDM, P10_BUILTIN_PDEPD and
173         P10_BUILTIN_PEXTD on Power10.
174
175 2021-08-27  Kewen Lin  <linkw@linux.ibm.com>
176
177         * config/rs6000/rs6000-call.c (builtin_function_type): Add unsigned
178         signedness for some Power10 bifs.
179
180 2021-08-27  David Edelsohn  <dje.gcc@gmail.com>
181
182         PR target/102068
183         * config/rs6000/rs6000.c (rs6000_adjust_field_align): Use
184         computed alignment if the entire struct has attribute packed.
185
186 2021-08-27  liuhongt  <hongtao.liu@intel.com>
187
188         PR target/98167
189         PR target/43147
190         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold
191         IX86_BUILTIN_SHUFPD512, IX86_BUILTIN_SHUFPS512,
192         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS,
193         IX86_BUILTIN_SHUFPS256.
194         (ix86_masked_all_ones): New function.
195
196 2021-08-26  Uroš Bizjak  <ubizjak@gmail.com>
197
198         * config/i386/i386.md (*btr<mode>_1): Call force_reg unconditionally.
199         (conditional moves with memory inputs splitters): Ditto.
200         * config/i386/sse.md (one_cmpl<mode>2): Simplify.
201
202 2021-08-26  Jan Hubicka  <hubicka@ucw.cz>
203
204         * ipa-modref-tree.h (modref_access_node::try_merge_with): Restart
205         search after merging.
206
207 2021-08-26  Bill Schmidt  <wschmidt@linux.ibm.com>
208
209         * config/rs6000/rs6000-overload.def: Add remaining overloads.
210
211 2021-08-26  Bill Schmidt  <wschmidt@linux.ibm.com>
212
213         * config/rs6000/rs6000-builtin-new.def: Add cell stanza.
214
215 2021-08-26  Bill Schmidt  <wschmidt@linux.ibm.com>
216
217         * config/rs6000/rs6000-builtin-new.def: Add ieee128-hw, dfp,
218         crypto, and htm stanzas.
219
220 2021-08-26  Bill Schmidt  <wschmidt@linux.ibm.com>
221
222         * config/rs6000/rs6000-builtin-new.def: Add mma stanza.
223
224 2021-08-26  Martin Sebor  <msebor@redhat.com>
225
226         * tree-ssa-uninit.c (warn_uninit): Refactor and simplify.
227         (warn_uninit_phi_uses): Remove argument from calls to warn_uninit.
228         (warn_uninitialized_vars): Same.  Reduce visibility of locals.
229         (warn_uninitialized_phi): Same.
230
231 2021-08-26  Roger Sayle  <roger@nextmovesoftware.com>
232
233         * tree-ssa-ccp.c (get_individual_bits): Helper function to
234         extract the individual bits from a widest_int constant (mask).
235         (gray_code_bit_flips): New read-only table for effiently
236         enumerating permutations/combinations of bits.
237         (bit_value_binop) [LROTATE_EXPR, RROTATE_EXPR]: Handle rotates
238         by unknown counts that are guaranteed less than the target
239         precision and four or fewer unknown bits by enumeration.
240         [LSHIFT_EXPR, RSHIFT_EXPR]: Likewise, also handle shifts by
241         enumeration under the same conditions.  Handle remaining
242         shifts as a mask based upon the minimum possible shift value.
243
244 2021-08-26  Roger Sayle  <roger@nextmovesoftware.com>
245             Richard Biener  <rguenther@suse.de>
246
247         * match.pd (shift transformations): Remove a redundant
248         !POINTER_TYPE_P check.
249
250 2021-08-26  Uroš Bizjak  <ubizjak@gmail.com>
251
252         PR target/102057
253         * config/i386/i386.md (cmove reg-reg move elimination peephole2s):
254         Set all_regs to true in the call to replace_rtx.
255
256 2021-08-26  Jan Hubicka  <hubicka@ucw.cz>
257
258         * ipa-modref-tree.c (test_insert_search_collapse): Update test.
259         * ipa-modref-tree.h (modref_base_node::insert): Be smarter when
260         hiting --param modref-max-refs limit.
261         (modref_tree:insert_base): Be smarter when hitting
262         --param modref-max-bases limit. Add new parameter REF.
263         (modref_tree:insert): Update.
264         (modref_tree:merge): Update.
265         * ipa-modref.c (read_modref_records): Update.
266
267 2021-08-26  Jan Hubicka  <hubicka@ucw.cz>
268
269         * params.opt: (modref-max-adjustments): Add full stop.
270
271 2021-08-26  Jan Hubicka  <hubicka@ucw.cz>
272
273         * ipa-modref-tree.h (modref_ref_node::verify): New member
274         functoin.
275         (modref_ref_node::insert): Use it.
276         (modref_ref_node::try_mere_with): Fix off by one error.
277
278 2021-08-26  Martin Liska  <mliska@suse.cz>
279             Stefan Kneifel  <stefan.kneifel@bluewin.ch>
280
281         * cgraph.h (create_version_clone_with_body): Add new parameter.
282         * cgraphclones.c: Likewise.
283         * multiple_target.c (create_dispatcher_calls): Do not use
284         numbered suffixes.
285         (create_target_clone): Likewise here.
286
287 2021-08-26  Jonathan Yong  <10walls@gmail.com>
288
289         * doc/extend.texi: Add note about reserved priorities
290         to the constructor attribute.
291
292 2021-08-25  Martin Sebor  <msebor@redhat.com>
293
294         * gimple-range-cache.cc (ssa_global_cache::dump): Avoid printing
295         range table header alone.
296         * gimple-range.cc (gimple_ranger::export_global_ranges): Same.
297
298 2021-08-25  Jan Hubicka  <hubicka@ucw.cz>
299
300         * doc/invoke.texi: Document --param modref-max-adjustments.
301         * ipa-modref-tree.c (test_insert_search_collapse): Update.
302         (test_merge): Update.
303         * ipa-modref-tree.h (struct modref_access_node): Add adjustments;
304         (modref_access_node::operator==): Fix handling of access ranges.
305         (modref_access_node::contains): Constify parameter; handle also
306         mismatched parm offsets.
307         (modref_access_node::update): New function.
308         (modref_access_node::merge): New function.
309         (unspecified_modref_access_node): Update constructor.
310         (modref_ref_node::insert_access): Add record_adjustments parameter;
311         handle merging.
312         (modref_ref_node::try_merge_with): New private function.
313         (modref_tree::insert): New record_adjustments parameter.
314         (modref_tree::merge): New record_adjustments parameter.
315         (modref_tree::copy_from): Update.
316         * ipa-modref.c (dump_access): Dump adjustments field.
317         (get_access): Update constructor.
318         (record_access): Update call of insert.
319         (record_access_lto): Update call of insert.
320         (merge_call_side_effects): Add record_adjustments parameter.
321         (get_access_for_fnspec): Update.
322         (process_fnspec): Update.
323         (analyze_call): Update.
324         (analyze_function): Update.
325         (read_modref_records): Update.
326         (ipa_merge_modref_summary_after_inlining): Update.
327         (propagate_unknown_call): Update.
328         (modref_propagate_in_scc): Update.
329         * params.opt (param-max-modref-adjustments=): New.
330
331 2021-08-25  Michael Meissner  <meissner@linux.ibm.com>
332
333         * config/rs6000/vsx.md (UNSPEC_XXSPLTIDP): Rename from
334         UNSPEC_XXSPLTID.
335         (xxspltiw_v4si): Use vecperm type attribute.
336         (xxspltiw_v4si_inst): Use vecperm type attribute.
337         (xxspltiw_v4sf_inst): Likewise.
338         (xxspltidp_v2df): Use vecperm type attribute.  Use
339         UNSPEC_XXSPLTIDP instead of UNSPEC_XXSPLTID.
340         (xxspltidp_v2df_inst): Likewise.
341         (xxsplti32dx_v4si): Use vecperm type attribute.
342         (xxsplti32dx_v4si_inst): Likewise.
343         (xxsplti32dx_v4sf_inst): Likewise.
344         (xxblend_<mode>): Likewise.
345         (xxpermx): Likewise.
346         (xxpermx_inst): Likewise.
347         (xxeval): Likewise.
348
349 2021-08-25  Lewis Hyatt  <lhyatt@gmail.com>
350
351         PR other/93067
352         * coretypes.h (typedef diagnostic_input_charset_callback): Declare.
353         * diagnostic.c (diagnostic_initialize_input_context): New function.
354         * diagnostic.h (diagnostic_initialize_input_context): Declare.
355         * input.c (default_charset_callback): New function.
356         (file_cache::initialize_input_context): New function.
357         (file_cache_slot::create): Added ability to convert the input
358         according to the input context.
359         (file_cache::file_cache): Initialize the new input context.
360         (class file_cache_slot): Added new m_alloc_offset member.
361         (file_cache_slot::file_cache_slot): Initialize the new member.
362         (file_cache_slot::~file_cache_slot): Handle potentially offset buffer.
363         (file_cache_slot::maybe_grow): Likewise.
364         (file_cache_slot::needs_read_p): Handle NULL fp, which is now possible.
365         (file_cache_slot::get_next_line): Likewise.
366         * input.h (class file_cache): Added input context member.
367
368 2021-08-25  Richard Biener  <rguenther@suse.de>
369
370         PR tree-optimization/102046
371         * tree-vect-slp.c (vect_build_slp_tree_2): Conservatively
372         update ->any_pattern when swapping operands.
373
374 2021-08-25  Hongyu Wang  <hongyu.wang@intel.com>
375
376         PR target/101716
377         * config/i386/i386.c (ix86_live_on_entry): Adjust comment.
378         (ix86_decompose_address): Remove retval check for ASHIFT,
379         allow non-canonical zero extend if AND mask covers ASHIFT
380         count.
381         (ix86_legitimate_address_p): Adjust condition for decompose.
382         (ix86_rtx_costs): Adjust cost for lea with non-canonical
383         zero-extend.
384         Co-Authored by: Uros Bizjak <ubizjak@gmail.com>
385
386 2021-08-25  Jiufu Guo  <guojiufu@linux.ibm.com>
387
388         PR tree-optimization/101145
389         * tree-ssa-loop-niter.c (number_of_iterations_until_wrap):
390         New function.
391         (number_of_iterations_lt): Invoke above function.
392         (adjust_cond_for_loop_until_wrap):
393         Merge to number_of_iterations_until_wrap.
394         (number_of_iterations_cond): Update invokes for
395         adjust_cond_for_loop_until_wrap and number_of_iterations_lt.
396
397 2021-08-25  konglin1  <lingling.kong@intel.com>
398
399         PR target/101471
400         * config/i386/avx512dqintrin.h (_mm512_fpclass_ps_mask): Fix
401         macro define in O0.
402         (_mm512_mask_fpclass_ps_mask): Ditto.
403
404 2021-08-25  Kewen Lin  <linkw@linux.ibm.com>
405
406         * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Remove.
407         (vec_unpacku_hi_v8hi): Likewise.
408         (vec_unpacku_lo_v16qi): Likewise.
409         (vec_unpacku_lo_v8hi): Likewise.
410         (vec_unpacku_hi_<VP_small_lc>): New define_expand.
411         (vec_unpacku_lo_<VP_small_lc>): Likewise.
412
413 2021-08-24  David Edelsohn  <dje.gcc@gmail.com>
414
415         * config/rs6000/aix.h (SYSTEM_IMPLICIT_EXTERN_C): Delete.
416         * config/rs6000/aix71.h (SYSTEM_IMPLICIT_EXTERN_C): Define.
417         * config/rs6000/aix72.h (SYSTEM_IMPLICIT_EXTERN_C): Define.
418         * config/rs6000/aix73.h (TARGET_AIX_VERSION): Increase to 73.
419
420 2021-08-24  Roger Sayle  <roger@nextmovesoftware.com>
421
422         PR middle-end/102031
423         * simplify-rtx.c (simplify_truncation): When comparing precisions
424         use "subreg_prec" variable, not "subreg_mode".
425
426 2021-08-24  Bill Schmidt  <wschmidt@linux.ibm.com>
427
428         * config/rs6000/rs6000-builtin-new.def: Add power10 and power10-64
429         stanzas.
430
431 2021-08-24  Bill Schmidt  <wschmidt@linux.ibm.com>
432
433         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Initialize
434         various pointer type nodes.
435         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add enum
436         values for various pointer types.
437         (ptr_V16QI_type_node): New macro.
438         (ptr_V1TI_type_node): New macro.
439         (ptr_V2DI_type_node): New macro.
440         (ptr_V2DF_type_node): New macro.
441         (ptr_V4SI_type_node): New macro.
442         (ptr_V4SF_type_node): New macro.
443         (ptr_V8HI_type_node): New macro.
444         (ptr_unsigned_V16QI_type_node): New macro.
445         (ptr_unsigned_V1TI_type_node): New macro.
446         (ptr_unsigned_V8HI_type_node): New macro.
447         (ptr_unsigned_V4SI_type_node): New macro.
448         (ptr_unsigned_V2DI_type_node): New macro.
449         (ptr_bool_V16QI_type_node): New macro.
450         (ptr_bool_V8HI_type_node): New macro.
451         (ptr_bool_V4SI_type_node): New macro.
452         (ptr_bool_V2DI_type_node): New macro.
453         (ptr_bool_V1TI_type_node): New macro.
454         (ptr_pixel_type_node): New macro.
455         (ptr_intQI_type_node): New macro.
456         (ptr_uintQI_type_node): New macro.
457         (ptr_intHI_type_node): New macro.
458         (ptr_uintHI_type_node): New macro.
459         (ptr_intSI_type_node): New macro.
460         (ptr_uintSI_type_node): New macro.
461         (ptr_intDI_type_node): New macro.
462         (ptr_uintDI_type_node): New macro.
463         (ptr_intTI_type_node): New macro.
464         (ptr_uintTI_type_node): New macro.
465         (ptr_long_integer_type_node): New macro.
466         (ptr_long_unsigned_type_node): New macro.
467         (ptr_float_type_node): New macro.
468         (ptr_double_type_node): New macro.
469         (ptr_long_double_type_node): New macro.
470         (ptr_dfloat64_type_node): New macro.
471         (ptr_dfloat128_type_node): New macro.
472         (ptr_ieee128_type_node): New macro.
473         (ptr_ibm128_type_node): New macro.
474         (ptr_vector_pair_type_node): New macro.
475         (ptr_vector_quad_type_node): New macro.
476         (ptr_long_long_integer_type_node): New macro.
477         (ptr_long_long_unsigned_type_node): New macro.
478
479 2021-08-24  Bill Schmidt  <wschmidt@linux.ibm.com>
480
481         * config/rs6000/rs6000-builtin-new.def: Add power9-vector, power9,
482         and power9-64 stanzas.
483
484 2021-08-24  Roger Sayle  <roger@nextmovesoftware.com>
485             Tom de Vries  <tdevries@suse.de>
486
487         * config.gcc (nvptx-*-*): Define {c,c++}_target_objs.
488         * config/nvptx/nvptx-protos.h (nvptx_cpu_cpp_builtins): Prototype.
489         * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Implement with
490         a call to the new nvptx_cpu_cpp_builtins function in nvptx-c.c.
491         * config/nvptx/t-nvptx (nvptx-c.o): New rule.
492         * config/nvptx/nvptx-c.c: New source file.
493         (nvptx_cpu_cpp_builtins): Move implementation here.
494
495 2021-08-24  Martin Sebor  <msebor@redhat.com>
496
497         PR middle-end/101600
498         PR middle-end/101977
499         * gimple-ssa-warn-access.cc (maybe_warn_for_bound): Tighten up
500         the phrasing of a warning.
501         (check_access): Use the remaining size after subtracting any offset
502         rather than the whole object size.
503         * pointer-query.cc (access_ref::get_ref): Clear BASE0 flag if it's
504         clear for any nonnull PHI argument.
505         (compute_objsize): Clear argument.
506
507 2021-08-24  Bill Schmidt  <wschmidt@linux.ibm.com>
508
509         * config/rs6000/rs6000-builtin-new.def: Add power8-vector stanza.
510
511 2021-08-24  Bill Schmidt  <wschmidt@linux.ibm.com>
512
513         * config/rs6000/rs6000-builtin-new.def: Add power7 and power7-64
514         stanzas.
515
516 2021-08-24  Andrew MacLeod  <amacleod@redhat.com>
517
518         * value-relation.cc (rr_transitive_table): New.
519         (relation_transitive): New.
520         (value_relation::swap): Remove.
521         (value_relation::apply_transitive): New.
522         (relation_oracle::relation_oracle): Allocate a new tmp bitmap.
523         (relation_oracle::register_relation): Call register_transitives.
524         (relation_oracle::register_transitives): New.
525         * value-relation.h (relation_oracle): Add new temporary bitmap and
526         methods.
527
528 2021-08-24  H.J. Lu  <hjl.tools@gmail.com>
529
530         PR target/102021
531         * config/i386/i386-expand.c (ix86_expand_vector_move): Broadcast
532         from integer to a pseudo vector register.
533
534 2021-08-24  Richard Biener  <rguenther@suse.de>
535
536         PR tree-optimization/100089
537         * tree-vectorizer.h (vect_slp_bb): Rename to ...
538         (vect_slp_if_converted_bb): ... this and get the original
539         loop as new argument.
540         * tree-vectorizer.c (try_vectorize_loop_1): Revert previous fix,
541         pass original loop to vect_slp_if_converted_bb.
542         * tree-vect-slp.c (vect_bb_vectorization_profitable_p):
543         If orig_loop was passed scan the not vectorized stmts
544         for COND_EXPRs and force not profitable if found.
545         (vect_slp_region): Pass down all SLP instances to costing
546         if orig_loop was specified.
547         (vect_slp_bbs): Pass through orig_loop.
548         (vect_slp_bb): Rename to ...
549         (vect_slp_if_converted_bb): ... this and get the original
550         loop as new argument.
551         (vect_slp_function): Adjust.
552
553 2021-08-24  Richard Earnshaw  <rearnsha@arm.com>
554
555         PR target/102035
556         * config/arm/arm.md (attribute arch): Add fix_vlldm.
557         (arch_enabled): Use it.
558         * config/arm/vfp.md (lazy_store_multiple_insn): Add alternative to
559         use when erratum mitigation is needed.
560
561 2021-08-24  Richard Earnshaw  <rearnsha@arm.com>
562
563         PR target/102035
564         * config/arm/arm.opt (mfix-cmse-cve-2021-35465): New option.
565         * doc/invoke.texi (Arm Options): Document it.
566         * config/arm/arm-cpus.in (quirk_vlldm): New feature bit.
567         (ALL_QUIRKS): Add quirk_vlldm.
568         (cortex-m33): Add quirk_vlldm.
569         (cortex-m35p, cortex-m55): Likewise.
570         * config/arm/arm.c (arm_option_override): Enable fix_vlldm if
571         targetting an affected CPU and not explicitly controlled on
572         the command line.
573
574 2021-08-24  Richard Earnshaw  <rearnsha@arm.com>
575
576         * config/arm/vfp.md (lazy_store_multiple_insn): Rewrite as valid RTL.
577         (lazy_load_multiple_insn): Likewise.
578
579 2021-08-24  liuhongt  <hongtao.liu@intel.com>
580
581         PR target/101989
582         * config/i386/sse.md (<avx512>_vternlog<mode><sd_maskz_name>):
583         Enable avx512 embedded broadcast.
584         (*<avx512>_vternlog<mode>_all): Ditto.
585         (<avx512>_vternlog<mode>_mask): Ditto.
586
587 2021-08-24  liuhongt  <hongtao.liu@intel.com>
588
589         PR target/101989
590         * config/i386/i386.c (ix86_rtx_costs): Define cost for
591         UNSPEC_VTERNLOG.
592         * config/i386/i386.h (STRIP_UNARY): New macro.
593         * config/i386/predicates.md (reg_or_notreg_operand): New
594         predicate.
595         * config/i386/sse.md (*<avx512>_vternlog<mode>_all): New define_insn.
596         (*<avx512>_vternlog<mode>_1): New pre_reload
597         define_insn_and_split.
598         (*<avx512>_vternlog<mode>_2): Ditto.
599         (*<avx512>_vternlog<mode>_3): Ditto.
600         (any_logic1,any_logic2): New code iterator.
601         (logic_op): New code attribute.
602         (ternlogsuffix): Extend to VNxDF and VNxSF.
603
604 2021-08-24  Richard Biener  <rguenther@suse.de>
605
606         * doc/invoke.texi (vect-inner-loop-cost-factor): Adjust.
607         * params.opt (--param vect-inner-loop-cost-factor): Adjust
608         maximum value.
609         * tree-vect-loop.c (vect_analyze_loop_form): Initialize
610         inner_loop_cost_factor to the minimum of the estimated number
611         of iterations of the inner loop and vect-inner-loop-cost-factor.
612
613 2021-08-24  Roger Sayle  <roger@nextmovesoftware.com>
614             Richard Biener  <rguenther@suse.de>
615
616         * config/i386/i386-features.c (compute_convert_gain): Provide
617         more accurate values for CONST_INT, when optimizing for size.
618         * config/i386/i386.c (COSTS_N_BYTES): Move definition from here...
619         * config/i386/i386.h (COSTS_N_BYTES): to here.
620
621 2021-08-24  Roger Sayle  <roger@nextmovesoftware.com>
622             Jakub Jelinek  <jakub@redhat.com>
623
624         PR middle-end/102029
625         * match.pd (shift transformations): Add an additional check for
626         !POINTER_TYPE_P in the recently added left shift transformation.
627
628 2021-08-24  liuhongt  <hongtao.liu@intel.com>
629
630         PR tree-optimization/100089
631         * tree-vectorizer.c (try_vectorize_loop_1): Disable slp in
632         loop vectorizer when cost model is very-cheap.
633
634 2021-08-23  Bill Schmidt  <wschmidt@linux.ibm.com>
635
636         * config/rs6000/rs6000-gen-builtins.c (parse_bif_entry): Don't call
637         asprintf, which is not available on AIX.
638
639 2021-08-23  Bill Schmidt  <wschmidt@linux.ibm.com>
640
641         * config.gcc (target_gtfiles): Add ./rs6000-builtins.h.
642         * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Set.
643
644 2021-08-23  Bill Schmidt  <wschmidt@linux.ibm.com>
645
646         * config.gcc (powerpc*-*-*): Add rs6000-builtins.o to extra_objs.
647         * config/rs6000/rs6000-gen-builtins.c (main): Close init_file
648         last.
649         * config/rs6000/t-rs6000 (rs6000-gen-builtins.o): New target.
650         (rbtree.o): Likewise.
651         (rs6000-gen-builtins): Likewise.
652         (rs6000-builtins.c): Likewise.
653         (rs6000-builtins.h): Likewise.
654         (rs6000.o): Add dependency.
655         (EXTRA_HEADERS): Add rs6000-vecdefines.h.
656         (rs6000-vecdefines.h): New target.
657         (rs6000-builtins.o): Likewise.
658         (rs6000-call.o): Add rs6000-builtins.h as a dependency.
659         (rs6000-c.o): Likewise.
660
661 2021-08-23  Bill Schmidt  <wschmidt@linux.ibm.com>
662
663         PR target/101830
664         * config/rs6000/rs6000-gen-builtins.c (consume_whitespace):
665         Diagnose buffer overrun.
666         (safe_inc_pos): Fix overrun detection.
667         (match_identifier): Diagnose buffer overrun.
668         (match_integer): Likewise.
669         (match_to_right_bracket): Likewise.
670
671 2021-08-23  Jan Hubicka  <hubicka@ucw.cz>
672
673         * ipa-modref-tree.h (modref_access_node::range_info_useful_p):
674         Improve range compare.
675         (modref_access_node::contains): New member function.
676         (modref_access_node::search): Remove.
677         (modref_access_node::insert): Be smarter about subaccesses.
678
679 2021-08-23  Thomas Schwinge  <thomas@codesourcery.com>
680
681         * config/i386/i386-options.c (ix86_omp_device_kind_arch_isa)
682         <omp_device_arch> [ACCEL_COMPILER]: Match "intel_mic".
683         * config/i386/t-omp-device (omp-device-properties-i386) <arch>:
684         Add "intel_mic".
685
686 2021-08-23  Jeff Law  <jlaw@localhost.localdomain>
687
688         * config/h8300/h8300-protos.h (h8300_expand_epilogue): Add new
689         argument.
690         * config/h8300/jumpcall.md (call, call_value): Restrict to
691         !SIBLING_CALL_P cases.
692         (subcall, sibcall_value): New patterns & expanders.
693         * config/h8300/proepi.md (epilogue): Pass new argument to
694         h8300_expand_epilogue.
695         (sibcall_epilogue): New expander.
696         * config/h8300/h8300.c (h8300_expand_epilogue): Handle sibcall
697         epilogues too.
698         (h8300_ok_for_sibcall_p): New function.
699         (TARGET_FUNCTION_OK_FOR_SIBCALL): define.
700
701 2021-08-23  Roger Sayle  <roger@nextmovesoftware.com>
702
703         * simplify-rtx.c (simplify_unary_operation_1): [TRUNCATE]:
704         Handle case where the operand is already the desired mode.
705
706 2021-08-23  Richard Biener  <rguenther@suse.de>
707
708         PR ipa/97565
709         * tree-ssa-structalias.c (ipa_pta_execute): Check in_other_partition
710         in addition to has_gimple_body.
711
712 2021-08-23  Jan Hubicka  <hubicka@ucw.cz>
713
714         PR middle-end/101949
715         * ipa-modref.c (analyze_ssa_name_flags): Fix merging of
716         EAF_NOCLOBBER
717
718 2021-08-23  Martin Liska  <mliska@suse.cz>
719
720         * doc/invoke.texi: Put the option out of -mxl-mode-app-model
721         table.
722
723 2021-08-23  Richard Biener  <rguenther@suse.de>
724
725         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
726         Properly scale the inner loop cost only once.
727
728 2021-08-23  Roger Sayle  <roger@nextmovesoftware.com>
729
730         * tree-ssa-ccp.c (bit_value_binop) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]:
731         Provide bounds for unsigned (and signed with non-negative operands)
732         division and modulus.
733
734 2021-08-23  Roger Sayle  <roger@nextmovesoftware.com>
735
736         * simplify-rtx.c (simplify_truncation): Generalize simplification
737         of (truncate:A (subreg:B X)).
738         (simplify_unary_operation_1) [FLOAT_TRUNCATE, FLOAT_EXTEND,
739         SIGN_EXTEND, ZERO_EXTEND]: Handle cases where the operand
740         already has the desired machine mode.
741         (test_scalar_int_ops): Add tests that useless extensions and
742         truncations are optimized away.
743         (test_scalar_int_ext_ops): New self-test function to confirm
744         that truncations of extensions are correctly simplified.
745         (test_scalar_int_ext_ops2): New self-test function to check
746         truncations of truncations, extensions of extensions, and
747         truncations of extensions.
748         (test_scalar_ops): Call the above two functions with a
749         representative sampling of integer machine modes.
750
751 2021-08-23  Roger Sayle  <roger@nextmovesoftware.com>
752
753         * match.pd (shift transformations): Change the sign of an
754         LSHIFT_EXPR if it reduces the number of explicit conversions.
755
756 2021-08-23  Jakub Jelinek  <jakub@redhat.com>
757
758         PR tree-optimization/86723
759         * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Add
760         cast64_to_32 argument, set *cast64_to_32 to false, unless n is
761         non-memory permutation of 64-bit src which only has bytes of
762         0 or [5..8] and n->range is 4.
763         (find_bswap_or_nop): Add cast64_to_32 and mask arguments, adjust
764         find_bswap_or_nop_finalize caller, support bswap with some bytes
765         zeroed, as long as at least two bytes are not zeroed.
766         (bswap_replace): Add mask argument and handle masking of bswap
767         result.
768         (maybe_optimize_vector_constructor): Adjust find_bswap_or_nop
769         caller, punt if cast64_to_32 or mask is not all ones.
770         (pass_optimize_bswap::execute): Adjust find_bswap_or_nop_finalize
771         caller, for now punt if cast64_to_32.
772
773 2021-08-23  Richard Biener  <rguenther@suse.de>
774
775         PR tree-optimization/79334
776         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
777         a type also for COMPONENT_REFs.
778         (vn_reference_may_trap): Check ARRAY_REF with constant index
779         against the array domain.
780
781 2021-08-23  liuhongt  <hongtao.liu@intel.com>
782
783         PR target/102016
784         * config/i386/sse.md (*avx512f_pshufb_truncv8hiv8qi_1): Add
785         TARGET_AVX512BW to condition.
786
787 2021-08-23  Jakub Jelinek  <jakub@redhat.com>
788
789         PR debug/101905
790         * dwarf2out.c (gen_variable_die): Add DW_AT_location for global
791         register variables already during early_dwarf if possible.
792
793 2021-08-23  Christophe Lyon  <christophe.lyon@foss.st.com>
794
795         * config/arm/arm_mve.h: Fix __arm_vctp16q return type.
796
797 2021-08-23  Christophe Lyon  <christophe.lyon@foss.st.com>
798
799         PR target/100856
800         * config/arm/arm.opt: Fix typo.
801         * config/arm/t-rmprofile: Fix typo.
802
803 2021-08-23  Jakub Jelinek  <jakub@redhat.com>
804
805         * tree.h (OMP_CLAUSE_GRAINSIZE_STRICT): Define.
806         (OMP_CLAUSE_NUM_TASKS_STRICT): Define.
807         * tree-pretty-print.c (dump_omp_clause) <case OMP_CLAUSE_GRAINSIZE,
808         case OMP_CLAUSE_NUM_TASKS>: Print strict: modifier.
809         * omp-expand.c (expand_task_call): Use GOMP_TASK_FLAG_STRICT in iflags
810         if either grainsize or num_tasks clause has the strict modifier.
811
812 2021-08-23  Martin Liska  <mliska@suse.cz>
813
814         * dbgcnt.def (DEBUG_COUNTER): New counter.
815         * gimple.c (gimple_call_arg_flags): Use it in IPA PTA.
816
817 2021-08-23  Jan Hubicka  <hubicka@ucw.cz>
818
819         * ipa-modref.c (analyze_ssa_name_flags): Improve handling of return slot.
820
821 2021-08-23  Xi Ruoyao  <xry111@mengyan1223.wang>
822
823         PR target/101922
824         * config/mips/mips-protos.h (mips_msa_output_shift_immediate):
825           Declare.
826         * config/mips/mips.c (mips_msa_output_shift_immediate): New
827           function.
828         * config/mips/mips-msa.md (vashl<mode>3, vashr<mode>3,
829           vlshr<mode>3): Call it.
830
831 2021-08-22  Jan Hubicka  <hubicka@ucw.cz>
832             Martin Liska  <mliska@suse.cz>
833
834         PR middle-end/101949
835         * ipa-modref.c (analyze_ssa_name_flags): Indirect call implies
836         ~EAF_NOCLOBBER.
837
838 2021-08-21  Dragan Mladjenovic  <OT_Dragan.Mladjenovic@mediatek.com>
839
840         * config/mips/mips.c (mips_function_rodata_section,
841         TARGET_ASM_FUNCTION_RODATA_SECTION): Removed.
842
843 2021-08-21  John David Anglin  <danglin@gcc.gnu.org>
844
845         * config/pa/pa.c (pa_asm_output_aligned_common): Remove warning.
846
847 2021-08-20  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
848
849         * configure.ac (thread-local storage support): Remove tls_first_major
850         and tls_first_minor.  Use "$conftest_s" to check support.
851         * configure: Regenerate.
852
853 2021-08-20  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
854
855         * configure.ac: Fixup formatting.
856
857 2021-08-20  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
858
859         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Remove third argument and ...
860         * configure.ac: ... update all callers.
861
862 2021-08-20  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
863
864         PR target/91602
865         * acinclude.m4 (_gcc_COMPUTE_GAS_VERSION, _gcc_GAS_VERSION_GTE_IFELSE)
866         (gcc_GAS_VERSION_GTE_IFELSE): Remove.
867         (gcc_GAS_CHECK_FEATURE): Do not handle in-tree case specially.
868         * configure.ac: Remove gcc_cv_gas_major_version, gcc_cv_gas_minor_version.
869         Remove remaining checks for in-tree assembler.
870         * configure: Regenerate.
871
872 2021-08-20  Jeff Law  <jlaw@localhost.localdomain>
873
874         * config/h8300/h8300.c (shift_alg_hi): Improve arithmetic shift right
875         by 15 bits for H8/300H and H8/S.  Improve logical shifts by 12
876         bits for H8/S.
877         (shift_alg_si): Improve arithmetic right shift by 28-30 bits for
878         H8/300H.  Improve arithmetic shift right by 15 bits for H8/S.
879         Improve logical shifts by 27 bits for H8/S.
880         (get_shift_alg): Corresponding changes.
881         (h8300_option_override): Revert to loops for -Os when profitable.
882
883 2021-08-20  Richard Biener  <rguenther@suse.de>
884
885         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not compare
886         BBs.
887         (vect_analyze_data_ref_accesses): Likewise.  Assign the BB
888         index as group_id when dataref_groups were not computed.
889         * tree-vect-slp.c (vect_slp_bbs): Bump current_group when
890         we advace to the next BB.
891
892 2021-08-20  Jakub Jelinek  <jakub@redhat.com>
893
894         * omp-builtins.def (BUILT_IN_GOMP_WARNING, BUILT_IN_GOMP_ERROR): New
895         builtins.
896
897 2021-08-20  Martin Liska  <mliska@suse.cz>
898
899         PR gcov-profile/89961
900         * gcov.c (make_gcov_file_name): Rewrite using std::string.
901         (mangle_name): Simplify, do not used the second argument.
902         (strip_extention): New function.
903         (get_md5sum): Likewise.
904         (get_gcov_intermediate_filename): Handle properly -p and -x
905         options.
906         (output_gcov_file): Use string type.
907         (generate_results): Likewise.
908         (md5sum_to_hex): Remove.
909
910 2021-08-20  Michael Meissner  <meissner@linux.ibm.com>
911
912         * config/rs6000/altivec.md (UNSPEC_XXEVAL): Move to vsx.md.
913         (UNSPEC_XXSPLTIW): Move to vsx.md.
914         (UNSPEC_XXSPLTID): Move to vsx.md.
915         (UNSPEC_XXSPLTI32DX): Move to vsx.md.
916         (UNSPEC_XXBLEND): Move to vsx.md.
917         (UNSPEC_XXPERMX): Move to vsx.md.
918         (VM3): Move to vsx.md.
919         (VM3_char): Move to vsx.md.
920         (xxspltiw_v4si): Move to vsx.md.
921         (xxspltiw_v4sf): Move to vsx.md.
922         (xxspltiw_v4sf_inst): Move to vsx.md.
923         (xxspltidp_v2df): Move to vsx.md.
924         (xxspltidp_v2df_inst): Move to vsx.md.
925         (xxsplti32dx_v4si_inst): Move to vsx.md.
926         (xxsplti32dx_v4sf): Move to vsx.md.
927         (xxsplti32dx_v4sf_inst): Move to vsx.md.
928         (xxblend_<mode>): Move to vsx.md.
929         (xxpermx): Move to vsx.md.
930         (xxpermx_inst): Move to vsx.md.
931         * config/rs6000/vsx.md (UNSPEC_XXEVAL): Move from altivec.md.
932         (UNSPEC_XXSPLTIW): Move from altivec.md.
933         (UNSPEC_XXSPLTID): Move from altivec.md.
934         (UNSPEC_XXSPLTI32DX): Move from altivec.md.
935         (UNSPEC_XXBLEND): Move from altivec.md.
936         (UNSPEC_XXPERMX): Move from altivec.md.
937         (VM3): Move from altivec.md.
938         (VM3_char): Move from altivec.md.
939         (xxspltiw_v4si): Move from altivec.md.
940         (xxspltiw_v4sf): Move from altivec.md.
941         (xxspltiw_v4sf_inst): Move from altivec.md.
942         (xxspltidp_v2df): Move from altivec.md.
943         (xxspltidp_v2df_inst): Move from altivec.md.
944         (xxsplti32dx_v4si_inst): Move from altivec.md.
945         (xxsplti32dx_v4sf): Move from altivec.md.
946         (xxsplti32dx_v4sf_inst): Move from altivec.md.
947         (xxblend_<mode>): Move from altivec.md.
948         (xxpermx): Move from altivec.md.
949         (xxpermx_inst): Move from altivec.md.
950
951 2021-08-19  Roger Sayle  <roger@nextmovesoftware.com>
952
953         * tree-vect-generic.c (expand_vector_operations_1): Use either
954         gimplify_build1 or gimplify_build2 instead of gimple_build_assign
955         when constructing scalar splat expressions.
956
957 2021-08-19  Peter Bergner  <bergner@linux.ibm.com>
958
959         PR target/101849
960         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Cast
961         pointer to __vector_pair *.
962
963 2021-08-19  Martin Sebor  <msebor@redhat.com>
964
965         * gimple-range.cc: Add comments.
966         * gimple-range.h: Same.
967
968 2021-08-19  Martin Sebor  <msebor@redhat.com>
969
970         PR middle-end/101984
971         * gimple-ssa-warn-access.cc (pass_waccess::execute): Also call
972         disable_ranger.
973
974 2021-08-19  Jeff Law  <jlaw@localhost.localdomain>
975
976         * config.gcc (h8300-*-elf*): Do not include dbxelf.h.
977         (h8300-*-linux*, v850-*-rtems*, v850*-elf*): Likewise.
978         * config/v850/v850.h (DEFAULT_GDB_EXTENSIONS): Remove.
979
980 2021-08-19  Jakub Jelinek  <jakub@redhat.com>
981
982         PR middle-end/101950
983         * optabs.c (expand_clrsb_using_clz): New function.
984         (expand_unop): Use it as another clrsb expansion fallback.
985
986 2021-08-19  liuhongt  <hongtao.liu@intel.com>
987
988         Revert:
989         2021-07-28  liuhongt  <hongtao.liu@intel.com>
990
991         PR target/99881
992         * config/i386/i386.h (processor_costs): Add new member
993         integer_to_sse.
994         * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost,
995         i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost,
996         geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost,
997         bdver_cost, znver1_cost, znver2_cost, znver3_cost,
998         btver1_cost, btver2_cost, btver3_cost, pentium4_cost,
999         nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost,
1000         generic_cost, core_cost): Initialize integer_to_sse same value
1001         as sse_op.
1002         (skylake_cost): Initialize integer_to_sse twice as much as sse_op.
1003         * config/i386/i386.c (ix86_builtin_vectorization_cost):
1004         Use integer_to_sse instead of sse_op to calculate the cost of
1005         vec_construct.
1006
1007 2021-08-18  Iain Sandoe  <iain@sandoe.co.uk>
1008
1009         * config.gcc: Include rpath.opt for Darwin.
1010         * config/darwin.h (DRIVER_SELF_SPECS): Handle -rpath.
1011
1012 2021-08-18  Thomas Schwinge  <thomas@codesourcery.com>
1013
1014         PR bootstrap/101959
1015         * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor_expand):
1016         Use an 'int_hash'.
1017
1018 2021-08-18  Jonathan Wright  <jonathan.wright@arm.com>
1019
1020         * config/aarch64/arm_neon.h (vld3_lane_f64): Use float RTL
1021         pattern and type cast.
1022         (vld4_lane_f32): Use float RTL pattern.
1023         (vld4q_lane_f64): Use float type cast.
1024
1025 2021-08-18  Jan Hubicka  <hubicka@ucw.cz>
1026
1027         * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Check also
1028         EAF_NOREAD.
1029
1030 2021-08-18  Thomas Schwinge  <thomas@codesourcery.com>
1031
1032         * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): Extend.
1033         (test_map_of_type_with_ctor_and_dtor_expand): Add function.
1034         (hash_map_tests_c_tests): Call it.
1035
1036 2021-08-18  Thomas Schwinge  <thomas@codesourcery.com>
1037
1038         * ggc.h (enum ggc_collect): New.
1039         (ggc_collect): Use it.
1040         * ggc-page.c: Adjust.
1041         * ggc-common.c: Likewise.
1042         * ggc-tests.c: Likewise.
1043         * read-rtl-function.c: Likewise.
1044         * selftest-run-tests.c: Likewise.
1045         * doc/gty.texi (Invoking the garbage collector): Likewise.
1046
1047 2021-08-18  liuhongt  <hongtao.liu@intel.com>
1048
1049         PR target/97147
1050         * config/i386/i386.h (TARGET_V2DF_REDUCTION_PREFER_HADDPD):
1051         New macro.
1052         * config/i386/sse.md (*sse3_haddv2df3_low): Add
1053         TARGET_V2DF_REDUCTION_PREFER_HADDPD.
1054         (*sse3_hsubv2df3_low): Ditto.
1055         * config/i386/x86-tune.def
1056         (X86_TUNE_V2DF_REDUCTION_PREFER_HADDPD): New tune.
1057
1058 2021-08-17  Andrew MacLeod  <amacleod@redhat.com>
1059
1060         * gimple-range-gori.cc (gori_compute::gori_compute): Enable tracing.
1061         (gori_compute::compute_operand_range): Add tracing.
1062         (gori_compute::logical_combine): Ditto.
1063         (gori_compute::compute_logical_operands): Ditto.
1064         (gori_compute::compute_operand1_range): Ditto.
1065         (gori_compute::compute_operand2_range): Ditto.
1066         (gori_compute::outgoing_edge_range_p): Ditto.
1067         * gimple-range-gori.h (class gori_compute): Add range_tracer.
1068
1069 2021-08-17  Andrew MacLeod  <amacleod@redhat.com>
1070
1071         * flag-types.h (enum evrp_mode): Adjust evrp-mode values.
1072         * gimple-range-cache.cc (DEBUG_RANGE_CACHE): Relocate from.
1073         * gimple-range-trace.h (DEBUG_RANGE_CACHE): Here.
1074         * params.opt (--param=evrp-mode): Adjust options.
1075
1076 2021-08-17  Andrew MacLeod  <amacleod@redhat.com>
1077
1078         * Makefile.in (OBJS): Add gimple-range-trace.o.
1079         * gimple-range-cache.h (enable_new_values): Remove unused prototype.
1080         * gimple-range-fold.cc: Adjust headers.
1081         * gimple-range-trace.cc: New.
1082         * gimple-range-trace.h: New.
1083         * gimple-range.cc (gimple_ranger::gimple_ranger): Enable tracer.
1084         (gimple_ranger::range_of_expr): Add tracing.
1085         (gimple_ranger::range_on_entry): Ditto.
1086         (gimple_ranger::range_on_exit): Ditto.
1087         (gimple_ranger::range_on_edge): Ditto.
1088         (gimple_ranger::fold_range_internal): Ditto.
1089         (gimple_ranger::dump_bb): Do not calculate edge range twice.
1090         (trace_ranger::*): Remove.
1091         (enable_ranger): Never create a trace_ranger.
1092         (debug_seed_ranger): Move to gimple-range-trace.cc.
1093         (dump_ranger): Ditto.
1094         (debug_ranger): Ditto.
1095         * gimple-range.h: Include gimple-range-trace.h.
1096         (range_on_entry, range_on_exit): No longer virtual.
1097         (class trace_ranger): Remove.
1098         (DEBUG_RANGE_CACHE): Move to gimple-range-trace.h.
1099
1100 2021-08-17  Martin Sebor  <msebor@redhat.com>
1101
1102         PR middle-end/101854
1103         * builtins.c (expand_builtin_alloca): Move warning code to check_alloca
1104         in gimple-ssa-warn-access.cc.
1105         * calls.c (alloc_max_size): Move code to check_alloca.
1106         (get_size_range): Move to pointer-query.cc.
1107         (maybe_warn_alloc_args_overflow): Move to gimple-ssa-warn-access.cc.
1108         (get_attr_nonstring_decl): Move to tree.c.
1109         (fntype_argno_type): Move to gimple-ssa-warn-access.cc.
1110         (append_attrname): Same.
1111         (maybe_warn_rdwr_sizes): Same.
1112         (initialize_argument_information): Move code to
1113         gimple-ssa-warn-access.cc.
1114         * calls.h (maybe_warn_alloc_args_overflow): Move to
1115         gimple-ssa-warn-access.h.
1116         (get_attr_nonstring_decl): Move to tree.h.
1117         (maybe_warn_nonstring_arg):  Move to gimple-ssa-warn-access.h.
1118         (enum size_range_flags): Move to pointer-query.h.
1119         (get_size_range): Same.
1120         * gimple-ssa-warn-access.cc (has_location): Remove unused overload
1121         to avoid Clang -Wunused-function.
1122         (get_size_range): Declare static.
1123         (maybe_emit_free_warning): Rename...
1124         (maybe_check_dealloc_call): ...to this for consistency.
1125         (class pass_waccess): Add members.
1126         (pass_waccess::~pass_waccess): Defined.
1127         (alloc_max_size): Move here from calls.c.
1128         (maybe_warn_alloc_args_overflow): Same.
1129         (check_alloca): New function.
1130         (check_alloc_size_call): New function.
1131         (check_strncat): Handle another warning flag.
1132         (pass_waccess::check_builtin): Handle alloca.
1133         (fntype_argno_type): Move here from calls.c.
1134         (append_attrname): Same.
1135         (maybe_warn_rdwr_sizes): Same.
1136         (pass_waccess::check_call): Define.
1137         (check_nonstring_args): New function.
1138         (pass_waccess::check): Call new member functions.
1139         (pass_waccess::execute): Enable ranger.
1140         * gimple-ssa-warn-access.h (get_size_range): Move here from calls.h.
1141         (maybe_warn_nonstring_arg): Same.
1142         * gimple-ssa-warn-restrict.c: Remove #include.
1143         * pointer-query.cc (get_size_range): Move here from calls.c.
1144         * pointer-query.h (enum size_range_flags): Same.
1145         (get_size_range): Same.
1146         * tree.c (get_attr_nonstring_decl): Move here from calls.c.
1147         * tree.h (get_attr_nonstring_decl): Move here from calls.h.
1148
1149 2021-08-17  Thomas Schwinge  <thomas@codesourcery.com>
1150
1151         * ggc.h (ggc_collect): Add 'force_collect' parameter.
1152         * ggc-page.c (ggc_collect): Use that one instead of global
1153         'ggc_force_collect'.  Adjust all users.
1154         * doc/gty.texi (Invoking the garbage collector): Update.
1155         * ggc-internal.h (ggc_force_collect): Remove.
1156         * ggc-common.c (ggc_force_collect): Likewise.
1157         * selftest.h (forcibly_ggc_collect): Remove.
1158         * ggc-tests.c (selftest::forcibly_ggc_collect): Likewise.
1159         * read-rtl-function.c (test_loading_labels): Adjust.
1160         * selftest-run-tests.c (run_tests): Likewise.
1161
1162 2021-08-17  Iain Sandoe  <iain@sandoe.co.uk>
1163
1164         * config/darwin.c (darwin_file_end): Reset and reclaim the
1165         section names table at the end of compile.
1166
1167 2021-08-17  Iain Sandoe  <iain@sandoe.co.uk>
1168
1169         PR target/100340
1170         * config.in: Regenerate.
1171         * config/i386/darwin.h (EXTRA_ASM_OPTS): New
1172         (ASM_SPEC): Pass options to disable branch shortening where
1173         needed.
1174         * configure: Regenerate.
1175         * configure.ac: Detect versions of 'as' that support the
1176         optimisation which has the bug.
1177
1178 2021-08-17  Richard Biener  <rguenther@suse.de>
1179
1180         * optabs-query.c (supports_vec_gather_load_p): Also check
1181         for masked optabs.
1182         (supports_vec_scatter_store_p): Likewise.
1183         * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Fall
1184         back to masked variants if non-masked are not supported.
1185         * tree-vect-patterns.c (vect_recog_gather_scatter_pattern):
1186         When we need to use masked gather/scatter but do not have
1187         a mask set up a constant true one.
1188         * tree-vect-stmts.c (vect_check_scalar_mask): Also allow
1189         non-SSA_NAME masks.
1190
1191 2021-08-17  Roger Sayle  <roger@nextmovesoftware.com>
1192
1193         * tree-ssa-ccp.c (bit_value_binop) [MINUS_EXPR]: Use same
1194         algorithm as PLUS_EXPR to improve subtraction bit bounds.
1195         [POINTER_DIFF_EXPR]: Treat as synonymous with MINUS_EXPR.
1196
1197 2021-08-17  Roger Sayle  <roger@nextmovesoftware.com>
1198
1199         * tree-ssa-ccp.c (bit_value_mult_const): New helper function to
1200         calculate the mask-value pair result of a multiplication by an
1201         unsigned constant.
1202         (bit_value_binop) [MULT_EXPR]:  Call it from here for
1203         multiplications by (sparse) non-negative constants.
1204
1205 2021-08-17  Christophe Lyon  <christophe.lyon@foss.st.com>
1206
1207         PR target/100896
1208         * config.gcc (gcc_cv_initfini_array): Leave undefined for
1209         uclinuxfdpiceabi targets.
1210
1211 2021-08-17  Alexandre Oliva  <oliva@adacore.com>
1212
1213         * tree-inline.c (maybe_move_debug_stmts_to_successors): Don't
1214         reverse debug stmts.
1215
1216 2021-08-17  Alexandre Oliva  <oliva@adacore.com>
1217
1218         * tree-cfg.c (dump_function_to_file): Use fun, not cfun.
1219
1220 2021-08-17  Jonathan Wright  <jonathan.wright@arm.com>
1221
1222         * config/aarch64/arm_neon.h (__LD4_LANE_FUNC): Delete.
1223         (__LD4Q_LANE_FUNC): Likewise.
1224         (vld4_lane_u8): Define without macro.
1225         (vld4_lane_u16): Likewise.
1226         (vld4_lane_u32): Likewise.
1227         (vld4_lane_u64): Likewise.
1228         (vld4_lane_s8): Likewise.
1229         (vld4_lane_s16): Likewise.
1230         (vld4_lane_s32): Likewise.
1231         (vld4_lane_s64): Likewise.
1232         (vld4_lane_f16): Likewise.
1233         (vld4_lane_f32): Likewise.
1234         (vld4_lane_f64): Likewise.
1235         (vld4_lane_p8): Likewise.
1236         (vld4_lane_p16): Likewise.
1237         (vld4_lane_p64): Likewise.
1238         (vld4q_lane_u8): Likewise.
1239         (vld4q_lane_u16): Likewise.
1240         (vld4q_lane_u32): Likewise.
1241         (vld4q_lane_u64): Likewise.
1242         (vld4q_lane_s8): Likewise.
1243         (vld4q_lane_s16): Likewise.
1244         (vld4q_lane_s32): Likewise.
1245         (vld4q_lane_s64): Likewise.
1246         (vld4q_lane_f16): Likewise.
1247         (vld4q_lane_f32): Likewise.
1248         (vld4q_lane_f64): Likewise.
1249         (vld4q_lane_p8): Likewise.
1250         (vld4q_lane_p16): Likewise.
1251         (vld4q_lane_p64): Likewise.
1252         (vld4_lane_bf16): Likewise.
1253         (vld4q_lane_bf16): Likewise.
1254
1255 2021-08-17  Jonathan Wright  <jonathan.wright@arm.com>
1256
1257         * config/aarch64/arm_neon.h (__LD3_LANE_FUNC): Delete.
1258         (__LD3Q_LANE_FUNC): Delete.
1259         (vld3_lane_u8): Define without macro.
1260         (vld3_lane_u16): Likewise.
1261         (vld3_lane_u32): Likewise.
1262         (vld3_lane_u64): Likewise.
1263         (vld3_lane_s8): Likewise.
1264         (vld3_lane_s16): Likewise.
1265         (vld3_lane_s32): Likewise.
1266         (vld3_lane_s64): Likewise.
1267         (vld3_lane_f16): Likewise.
1268         (vld3_lane_f32): Likewise.
1269         (vld3_lane_f64): Likewise.
1270         (vld3_lane_p8): Likewise.
1271         (vld3_lane_p16): Likewise.
1272         (vld3_lane_p64): Likewise.
1273         (vld3q_lane_u8): Likewise.
1274         (vld3q_lane_u16): Likewise.
1275         (vld3q_lane_u32): Likewise.
1276         (vld3q_lane_u64): Likewise.
1277         (vld3q_lane_s8): Likewise.
1278         (vld3q_lane_s16): Likewise.
1279         (vld3q_lane_s32): Likewise.
1280         (vld3q_lane_s64): Likewise.
1281         (vld3q_lane_f16): Likewise.
1282         (vld3q_lane_f32): Likewise.
1283         (vld3q_lane_f64): Likewise.
1284         (vld3q_lane_p8): Likewise.
1285         (vld3q_lane_p16): Likewise.
1286         (vld3q_lane_p64): Likewise.
1287         (vld3_lane_bf16): Likewise.
1288         (vld3q_lane_bf16): Likewise.
1289
1290 2021-08-17  Jonathan Wright  <jonathan.wright@arm.com>
1291
1292         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Delete.
1293         (__LD2Q_LANE_FUNC): Likewise.
1294         (vld2_lane_u8): Define without macro.
1295         (vld2_lane_u16): Likewise.
1296         (vld2_lane_u32): Likewise.
1297         (vld2_lane_u64): Likewise.
1298         (vld2_lane_s8): Likewise.
1299         (vld2_lane_s16): Likewise.
1300         (vld2_lane_s32): Likewise.
1301         (vld2_lane_s64): Likewise.
1302         (vld2_lane_f16): Likewise.
1303         (vld2_lane_f32): Likewise.
1304         (vld2_lane_f64): Likewise.
1305         (vld2_lane_p8): Likewise.
1306         (vld2_lane_p16): Likewise.
1307         (vld2_lane_p64): Likewise.
1308         (vld2q_lane_u8): Likewise.
1309         (vld2q_lane_u16): Likewise.
1310         (vld2q_lane_u32): Likewise.
1311         (vld2q_lane_u64): Likewise.
1312         (vld2q_lane_s8): Likewise.
1313         (vld2q_lane_s16): Likewise.
1314         (vld2q_lane_s32): Likewise.
1315         (vld2q_lane_s64): Likewise.
1316         (vld2q_lane_f16): Likewise.
1317         (vld2q_lane_f32): Likewise.
1318         (vld2q_lane_f64): Likewise.
1319         (vld2q_lane_p8): Likewise.
1320         (vld2q_lane_p16): Likewise.
1321         (vld2q_lane_p64): Likewise.
1322         (vld2_lane_bf16): Likewise.
1323         (vld2q_lane_bf16): Likewise.
1324
1325 2021-08-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
1326
1327         * haifa-sched.c (advance_one_cycle): Output more context-synchronization
1328         lines for diff.
1329
1330 2021-08-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
1331
1332         * haifa-sched.c (enum rfs_decision, rfs_str): Add RFS_AUTOPREF.
1333         (rank_for_schedule): Use it.
1334
1335 2021-08-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
1336
1337         PR rtl-optimization/91598
1338         * haifa-sched.c (autopref_rank_for_schedule): Prioritize "irrelevant"
1339         insns after memory reads and before memory writes.
1340
1341 2021-08-17  Alistair_Lee  <alistair.lee@arm.com>
1342
1343         * rtl.h (CONST_VECTOR_P): New macro.
1344         * config/aarch64/aarch64.c (aarch64_get_sve_pred_bits): Use RTL
1345         code testing macros.
1346         (aarch64_ptrue_all_mode): Likewise.
1347         (aarch64_expand_mov_immediate): Likewise.
1348         (aarch64_const_vec_all_in_range_p): Likewise.
1349         (aarch64_rtx_costs): Likewise.
1350         (aarch64_legitimate_constant_p): Likewise.
1351         (aarch64_simd_valid_immediate): Likewise.
1352         (aarch64_simd_make_constant): Likewise.
1353         (aarch64_convert_mult_to_shift): Likewise.
1354         (aarch64_expand_sve_vec_perm): Likewise.
1355         (aarch64_vec_fpconst_pow_of_2): Likewise.
1356
1357 2021-08-17  Andrew MacLeod  <amacleod@redhat.com>
1358
1359         PR tree-optimization/101938
1360         * range-op.cc (operator_abs::op1_range): Special case
1361         -TYPE_MIN_VALUE for flag_wrapv.
1362
1363 2021-08-17  Kewen Lin  <linkw@linux.ibm.com>
1364
1365         * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Add the cost for
1366         value extraction.
1367
1368 2021-08-17  Jakub Jelinek  <jakub@redhat.com>
1369
1370         * tree.def (OMP_SCOPE): New tree code.
1371         * tree.h (OMP_SCOPE_BODY, OMP_SCOPE_CLAUSES): Define.
1372         * tree-nested.c (convert_nonlocal_reference_stmt,
1373         convert_local_reference_stmt, convert_gimple_call): Handle
1374         GIMPLE_OMP_SCOPE.
1375         * tree-pretty-print.c (dump_generic_node): Handle OMP_SCOPE.
1376         * gimple.def (GIMPLE_OMP_SCOPE): New gimple code.
1377         * gimple.c (gimple_build_omp_scope): New function.
1378         (gimple_copy): Handle GIMPLE_OMP_SCOPE.
1379         * gimple.h (gimple_build_omp_scope): Declare.
1380         (gimple_has_substatements): Handle GIMPLE_OMP_SCOPE.
1381         (gimple_omp_scope_clauses, gimple_omp_scope_clauses_ptr,
1382         gimple_omp_scope_set_clauses): New inline functions.
1383         (CASE_GIMPLE_OMP): Add GIMPLE_OMP_SCOPE.
1384         * gimple-pretty-print.c (dump_gimple_omp_scope): New function.
1385         (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCOPE.
1386         * gimple-walk.c (walk_gimple_stmt): Likewise.
1387         * gimple-low.c (lower_stmt): Likewise.
1388         * gimplify.c (is_gimple_stmt): Handle OMP_MASTER.
1389         (gimplify_scan_omp_clauses): For task reductions, handle OMP_SCOPE
1390         like ORT_WORKSHARE constructs.  Adjust diagnostics for %<scope%>
1391         allowing task reductions.  Reject inscan reductions on scope.
1392         (omp_find_stores_stmt): Handle GIMPLE_OMP_SCOPE.
1393         (gimplify_omp_workshare, gimplify_expr): Handle OMP_SCOPE.
1394         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_SCOPE.
1395         (estimate_num_insns): Likewise.
1396         * omp-low.c (build_outer_var_ref): Look through GIMPLE_OMP_SCOPE
1397         contexts if var isn't privatized there.
1398         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_SCOPE.
1399         (scan_omp_1_stmt): Likewise.
1400         (maybe_add_implicit_barrier_cancel): Look through outer
1401         scope constructs.
1402         (lower_omp_scope): New function.
1403         (lower_omp_task_reductions): Handle OMP_SCOPE.
1404         (lower_omp_1): Handle GIMPLE_OMP_SCOPE.
1405         (diagnose_sb_1, diagnose_sb_2): Likewise.
1406         * omp-expand.c (expand_omp_single): Support also GIMPLE_OMP_SCOPE.
1407         (expand_omp): Handle GIMPLE_OMP_SCOPE.
1408         (omp_make_gimple_edges): Likewise.
1409         * omp-builtins.def (BUILT_IN_GOMP_SCOPE_START): New built-in.
1410
1411 2021-08-17  Richard Biener  <rguenther@suse.de>
1412
1413         PR tree-optimization/101925
1414         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Set
1415         reverse on COMPONENT_REF and ARRAY_REF according to
1416         what reverse_storage_order_for_component_p does.
1417         (vn_reference_eq): Compare reversed on reference ops.
1418         (reverse_storage_order_for_component_p): New overload.
1419         (vn_reference_lookup_3): Check reverse_storage_order_for_component_p
1420         on the reference looked up.
1421
1422 2021-08-17  Jeff Law  <jlaw@localhost.localdomain>
1423
1424         * config/h8300/h8300.c (shift_alg_si): Avoid loops for most SImode
1425         shifts on the H8/S.
1426         (h8300_option_override): Use loops on H8/S more often when optimizing
1427         for size.
1428         (get_shift_alg): Handle new "special" cases on H8/S.  Simplify
1429         accordingly.  Handle various arithmetic right shifts with special
1430         sequences that we couldn't handle before.
1431
1432 2021-08-16  Jeff Law  <jlaw@localhost.localdomain>
1433
1434         * config.gcc (rl78-*-elf*): Do not include dbxelf.h.
1435
1436 2021-08-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1437
1438         * config/sparc/rtemself.h (SPARC_GCOV_TYPE_SIZE): Define.
1439         * config/sparc/sparc.c (sparc_gcov_type_size): New.
1440         (TARGET_GCOV_TYPE_SIZE): Redefine if SPARC_GCOV_TYPE_SIZE is defined.
1441         * coverage.c (get_gcov_type): Use targetm.gcov_type_size().
1442         * doc/tm.texi (TARGET_GCOV_TYPE_SIZE): Add hook under "Misc".
1443         * doc/tm.texi.in: Regenerate.
1444         * target.def (gcov_type_size): New target hook.
1445         * targhooks.c (default_gcov_type_size): New.
1446         * targhooks.h (default_gcov_type_size): Declare.
1447         * tree-profile.c (gimple_gen_edge_profiler): Use precision of
1448         gcov_type_node.
1449         (gimple_gen_time_profiler): Likewise.
1450
1451 2021-08-16  Eric Botcazou  <ebotcazou@gcc.gnu.org>
1452
1453         * dwarf2out.c (add_scalar_info): Deal with DW_AT_data_bit_offset.
1454
1455 2021-08-16  Tobias Burnus  <tobias@codesourcery.com>
1456
1457         PR middle-end/101931
1458         * omp-low.c (omp_runtime_api_call): Update for routines
1459         added in the meanwhile.
1460
1461 2021-08-16  Martin Liska  <mliska@suse.cz>
1462
1463         PR tree-optimization/100393
1464         * tree-switch-conversion.c (group_cluster::dump): Use
1465           get_comparison_count.
1466         (jump_table_cluster::find_jump_tables): Pre-compute number of
1467         comparisons and then decrement it. Cache also max_ratio.
1468         (jump_table_cluster::can_be_handled): Change signature.
1469         * tree-switch-conversion.h (get_comparison_count): New.
1470
1471 2021-08-16  Eric Botcazou  <ebotcazou@gcc.gnu.org>
1472
1473         * dwarf2out.c (add_data_member_location_attribute): Use GNAT
1474         encodings only when -fgnat-encodings=all is specified.
1475         (add_bound_info): Likewise.
1476         (add_byte_size_attribute): Likewise.
1477         (gen_member_die): Likewise.
1478
1479 2021-08-16  Thomas Schwinge  <thomas@codesourcery.com>
1480
1481         * omp-oacc-neuter-broadcast.cc
1482         (execute_omp_oacc_neuter_broadcast): Plug 'par' memory leak.
1483
1484 2021-08-16  Thomas Schwinge  <thomas@codesourcery.com>
1485
1486         * omp-oacc-neuter-broadcast.cc
1487         (execute_omp_oacc_neuter_broadcast): Clarify memory management for
1488         'prop_set'.
1489
1490 2021-08-16  Thomas Schwinge  <thomas@codesourcery.com>
1491
1492         * omp-oacc-neuter-broadcast.cc (field_map): Move variable into...
1493         (execute_omp_oacc_neuter_broadcast): ... here.
1494         (install_var_field, build_receiver_ref, build_sender_ref): Take
1495         'field_map_t *' parameter.  Adjust all users.
1496         (worker_single_copy, neuter_worker_single): Take a
1497         'record_field_map_t *' parameter.  Adjust all users.
1498
1499 2021-08-16  liuhongt  <hongtao.liu@intel.com>
1500
1501         PR target/101930
1502         * config/i386/i386.md (ldexp<mode>3): Force operands[1] to
1503         reg.
1504
1505 2021-08-16  Martin Liska  <mliska@suse.cz>
1506
1507         PR ipa/101726
1508         * multiple_target.c (create_dispatcher_calls): Make default
1509           function local only if it is a definition.
1510
1511 2021-08-16  Martin Liska  <mliska@suse.cz>
1512
1513         PR ipa/100600
1514         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Do not
1515           consider equal SSA_NAMEs when one is a param.
1516
1517 2021-08-16  liuhongt  <hongtao.liu@intel.com>
1518
1519         PR target/101846
1520         * config/i386/i386-expand.c (ix86_expand_vec_perm_vpermt2):
1521         Support vpermi2b for V32QI/V16QImode.
1522         (ix86_extract_perm_from_pool_constant): New function.
1523         (ix86_expand_vec_one_operand_perm_avx512): Support
1524         vpermw/vpermb under TARGET_AVX512BW/TARGET_AVX512VBMI.
1525         (expand_vec_perm_1): Adjust comments for upper.
1526         * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant):
1527         New declare.
1528         * config/i386/predicates.md (permvar_truncate_operand): New predicate.
1529         (pshufb_truncv4siv4hi_operand): Ditto.
1530         (pshufb_truncv8hiv8qi_operand): Ditto.
1531         * config/i386/sse.md (*avx512bw_permvar_truncv16siv16hi_1):
1532         New pre_reload define_insn_and_split.
1533         (*avx512f_permvar_truncv8siv8hi_1): Ditto.
1534         (*avx512f_vpermvar_truncv8div8si_1): Ditto.
1535         (*avx512f_permvar_truncv32hiv32qi_1): Ditto.
1536         (*avx512f_permvar_truncv16hiv16qi_1): Ditto.
1537         (*avx512f_permvar_truncv4div4si_1): Ditto.
1538         (*avx512f_pshufb_truncv8hiv8qi_1): Ditto.
1539         (*avx512f_pshufb_truncv4siv4hi_1): Ditto.
1540         (*avx512f_pshufd_truncv2div2si_1): Ditto.
1541
1542 2021-08-16  Kito Cheng  <kito.cheng@sifive.com>
1543
1544         * config/riscv/multilib-generator: Support code model option for
1545         multi-lib.
1546         * doc/install.texi: Add document of new option for
1547         --with-multilib-generator.
1548
1549 2021-08-15  Clément Chigot  <clement.chigot@atos.net>
1550
1551         * config/rs6000/rs6000.c (xcoff_tls_exec_model_detected): New.
1552         (rs6000_legitimize_tls_address_aix): Use it.
1553         (rs6000_xcoff_file_end): Add ".ref __tls_get_addr" when
1554         xcoff_tls_exec_model_detected is true.
1555
1556 2021-08-15  Jeff Law  <jlaw@localhost.localdomain>
1557
1558         * config/h8300/h8300.c (shift_alg_si): Retune H8/300H shifts
1559         to allow a bit more code growth, saving many dozens of cycles.
1560         (h8300_option_override): Adjus shift_alg_si if optimizing for
1561         code size.
1562         (get_shift_alg): Use special + inline shifts for residuals
1563         in more cases.
1564
1565 2021-08-14  Stafford Horne  <shorne@gmail.com>
1566
1567         PR target/99783
1568         * config/or1k/or1k-opts.h: New file.
1569         * config/or1k/or1k.c (or1k_legitimize_address_1, print_reloc):
1570         Support generating gotha relocations if -mcmodel=large is
1571         specified.
1572         * config/or1k/or1k.h (TARGET_CMODEL_SMALL, TARGET_CMODEL_LARGE):
1573         New macros.
1574         * config/or1k/or1k.opt (mcmodel=): New option.
1575         * doc/invoke.texi (OpenRISC Options): Document mcmodel.
1576
1577 2021-08-14  Martin Sebor  <msebor@redhat.com>
1578
1579         PR middle-end/101791
1580         * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Use new argument
1581         to valid_new_delete_pair_p.
1582         * tree.c (valid_new_delete_pair_p): Add argument.
1583         * tree.h (valid_new_delete_pair_p): Same.
1584
1585 2021-08-14  Jakub Jelinek  <jakub@redhat.com>
1586
1587         PR target/101896
1588         * config/i386/i386-expand.c (expand_vec_perm_broadcast_1)
1589         <case E_V64QImode>: For this mode assert
1590         !TARGET_AVX512BW || d->perm[0] rather than !TARGET_AVX2 || d->perm[0].
1591
1592 2021-08-13  Michael Meissner  <meissner@linux.ibm.com>
1593
1594         PR target/99921
1595         * config/rs6000/altivec.md (xxeval): Use register_predicate
1596         instead of altivec_register_predicate.
1597
1598 2021-08-13  Martin Sebor  <msebor@redhat.com>
1599
1600         PR middle-end/101734
1601         * tree-ssa-uninit.c (maybe_warn_read_write_only): New function.
1602         (maybe_warn_operand): Call it.
1603
1604 2021-08-13  Martin Liska  <mliska@suse.cz>
1605
1606         PR ipa/101354
1607         * attribs.c (decl_attributes): Make naked functions "noipa"
1608           functions.
1609
1610 2021-08-13  Martin Liska  <mliska@suse.cz>
1611
1612         PR ipa/101261
1613         * symtab.c (symtab_node::noninterposable_alias): Do not create
1614           local aliases for target_clone functions as the clonning pass
1615           rejects aliases.
1616
1617 2021-08-13  Martin Liska  <mliska@suse.cz>
1618
1619         * opts.c (LIVE_PATCHING_OPTION): Define.
1620         (control_options_for_live_patching): Use it in error messages.
1621
1622 2021-08-13  Jan Hubicka  <hubicka@ucw.cz>
1623
1624         * ipa-modref.c (dump_eaf_flags): Dump EAF_NOREAD.
1625         (implicit_const_eaf_flags, implicit_pure_eaf_flags,
1626          ignore_stores_eaf_flags): New constants.
1627         (remove_useless_eaf_flags): New function.
1628         (eaf_flags_useful_p): Use it.
1629         (deref_flags): Add EAF_NOT_RETURNED if flag is unused;
1630         handle EAF_NOREAD.
1631         (modref_lattice::init): Add EAF_NOREAD.
1632         (modref_lattice::add_escape_point): Do not reacord escape point if
1633         result is unused.
1634         (modref_lattice::merge): EAF_NOESCAPE implies EAF_NODIRECTESCAPE;
1635         use remove_useless_eaf_flags.
1636         (modref_lattice::merge_deref): Use ignore_stores_eaf_flags.
1637         (modref_lattice::merge_direct_load): Add EAF_NOREAD
1638         (analyze_ssa_name_flags): Fix handling EAF_NOT_RETURNED
1639         (analyze_parms): Use remove_useless_eaf_flags.
1640         (ipa_merge_modref_summary_after_inlining): Use ignore_stores_eaf_flags.
1641         (modref_merge_call_site_flags): Add caller and ecf_flags parameter;
1642         use remove_useless_eaf_flags.
1643         (modref_propagate_flags_in_scc): Update.
1644         * ipa-modref.h: Turn eaf_flags_t back to char.
1645         * tree-core.h (EAF_NOT_RETURNED): Fix.
1646         (EAF_NOREAD): New constant
1647         * tree-ssa-alias.c: (ref_maybe_used_by_call_p_1): Check for
1648         EAF_NOREAD.
1649         * tree-ssa-structalias.c (handle_rhs_call): Handle new flags.
1650         (handle_pure_call): Likewise.
1651
1652 2021-08-12  Jakub Jelinek  <jakub@redhat.com>
1653
1654         * tree.def (OMP_MASKED): New tree code.
1655         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_FILTER.
1656         * tree.h (OMP_MASKED_BODY, OMP_MASKED_CLAUSES, OMP_MASKED_COMBINED,
1657         OMP_CLAUSE_FILTER_EXPR): Define.
1658         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FILTER entry.
1659         (omp_clause_code_name): Likewise.
1660         (walk_tree_1): Handle OMP_CLAUSE_FILTER.
1661         * tree-nested.c (convert_nonlocal_omp_clauses,
1662         convert_local_omp_clauses): Handle OMP_CLAUSE_FILTER.
1663         (convert_nonlocal_reference_stmt, convert_local_reference_stmt,
1664         convert_gimple_call): Handle GIMPLE_OMP_MASTER.
1665         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FILTER.
1666         (dump_generic_node): Handle OMP_MASTER.
1667         * gimple.def (GIMPLE_OMP_MASKED): New gimple code.
1668         * gimple.c (gimple_build_omp_masked): New function.
1669         (gimple_copy): Handle GIMPLE_OMP_MASKED.
1670         * gimple.h (gimple_build_omp_masked): Declare.
1671         (gimple_has_substatements): Handle GIMPLE_OMP_MASKED.
1672         (gimple_omp_masked_clauses, gimple_omp_masked_clauses_ptr,
1673         gimple_omp_masked_set_clauses): New inline functions.
1674         (CASE_GIMPLE_OMP): Add GIMPLE_OMP_MASKED.
1675         * gimple-pretty-print.c (dump_gimple_omp_masked): New function.
1676         (pp_gimple_stmt_1): Handle GIMPLE_OMP_MASKED.
1677         * gimple-walk.c (walk_gimple_stmt): Likewise.
1678         * gimple-low.c (lower_stmt): Likewise.
1679         * gimplify.c (is_gimple_stmt): Handle OMP_MASTER.
1680         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_FILTER.  For clauses
1681         that take one expression rather than decl or constant, force
1682         gimplification of that into a SSA_NAME or temporary unless min
1683         invariant.
1684         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_FILTER.
1685         (gimplify_expr): Handle OMP_MASKED.
1686         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_MASKED.
1687         (estimate_num_insns): Likewise.
1688         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FILTER.
1689         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_MASKED.  Adjust
1690         diagnostics for existence of masked construct.
1691         (scan_omp_1_stmt, lower_omp_master, lower_omp_1, diagnose_sb_1,
1692         diagnose_sb_2): Handle GIMPLE_OMP_MASKED.
1693         * omp-expand.c (expand_omp_synch, expand_omp, omp_make_gimple_edges):
1694         Likewise.
1695
1696 2021-08-12  Uroš Bizjak  <ubizjak@gmail.com>
1697
1698         PR target/98309
1699         * config/i386/i386.md (avx512f_scalef<mode>2): New insn pattern.
1700         (ldexp<mode>3): Use avx512f_scalef<mode>2.
1701         (UNSPEC_SCALEF): Move from ...
1702         * config/i386/sse.md (UNSPEC_SCALEF): ... here.
1703
1704 2021-08-12  Jan Hubicka  <hubicka@ucw.cz>
1705
1706         * ipa-split.c (consider_split): Fix condition testing void functions.
1707
1708 2021-08-12  Aldy Hernandez  <aldyh@redhat.com>
1709
1710         * doc/invoke.texi: Remove docs for threader-mode param.
1711         * flag-types.h (enum threader_mode): Remove.
1712         * params.opt: Remove threader-mode param.
1713         * tree-ssa-threadbackward.c (class back_threader): Remove
1714         path_is_unreachable_p.
1715         Make find_paths private.
1716         Add maybe_thread and thread_through_all_blocks.
1717         Remove reference marker for m_registry.
1718         Remove reference marker for m_profit.
1719         (back_threader::back_threader): Adjust for registry and profit not
1720         being references.
1721         (dump_path): Move down.
1722         (debug): Move down.
1723         (class thread_jumps): Remove.
1724         (class back_threader_registry): Remove m_all_paths.
1725         Remove destructor.
1726         (thread_jumps::thread_through_all_blocks): Move to back_threader
1727         class.
1728         (fsm_find_thread_path): Remove
1729         (back_threader::maybe_thread): New.
1730         (back_threader::thread_through_all_blocks): Move from
1731         thread_jumps.
1732         (back_threader_registry::back_threader_registry): Remove
1733         m_all_paths.
1734         (back_threader_registry::~back_threader_registry): Remove.
1735         (thread_jumps::find_taken_edge): Remove.
1736         (thread_jumps::check_subpath_and_update_thread_path): Remove.
1737         (thread_jumps::maybe_register_path): Remove.
1738         (thread_jumps::handle_phi): Remove.
1739         (handle_assignment_p): Remove.
1740         (thread_jumps::handle_assignment): Remove.
1741         (thread_jumps::fsm_find_control_statement_thread_paths): Remove.
1742         (thread_jumps::find_jump_threads_backwards): Remove.
1743         (thread_jumps::find_jump_threads_backwards_with_ranger): Remove.
1744         (try_thread_blocks): Rename find_jump_threads_backwards to
1745         maybe_thread.
1746         (pass_early_thread_jumps::execute): Same.
1747
1748 2021-08-12  Tobias Burnus  <tobias@codesourcery.com>
1749
1750         * tree-core.h (omp_clause_proc_bind_kind): Add
1751         OMP_CLAUSE_PROC_BIND_PRIMARY.
1752         * tree-pretty-print.c (dump_omp_clause): Add TODO comment to
1753         change 'master' to 'primary' in proc_bind for OpenMP 5.1.
1754
1755 2021-08-12  Claudiu Zissulescu  <claziss@synopsys.com>
1756
1757         * common/config/arc/arc-common.c (arc_option_init_struct): Remove
1758         fno-common reference.
1759         * config/arc/arc.c (arc_override_options): Remove overriding of
1760         flag_no_common.
1761
1762 2021-08-12  Jakub Jelinek  <jakub@redhat.com>
1763
1764         PR target/101860
1765         * config/i386/i386-expand.c (ix86_expand_vec_one_operand_perm_avx512):
1766         If d->testing_p, return true after performing checks instead of
1767         actually expanding the insn.
1768         (expand_vec_perm_broadcast_1): Handle V32HImode - assert
1769         !TARGET_AVX512BW and return false.
1770
1771 2021-08-12  Eric Botcazou  <ebotcazou@gcc.gnu.org>
1772
1773         * configure.ac (PE linker --disable-dynamicbase support): New check.
1774         * configure: Regenerate.
1775         * config.in: Likewise.
1776         * config/i386/mingw32.h (LINK_SPEC_DISABLE_DYNAMICBASE): New define.
1777         (LINK_SPEC): Use it.
1778         * config/i386/mingw-w64.h (LINK_SPEC_DISABLE_DYNAMICBASE): Likewise.
1779         (LINK_SPEC): Likewise.
1780
1781 2021-08-12  liuhongt  <hongtao.liu@intel.com>
1782
1783         PR target/101846
1784         * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_2): New
1785         post_reload define_insn_and_split.
1786         (*avx512bw_zero_extendv32qiv32hi2_2): Ditto.
1787         (*sse4_1_zero_extendv8qiv8hi2_4): Ditto.
1788         (*avx512f_zero_extendv16hiv16si2_2): Ditto.
1789         (*avx2_zero_extendv8hiv8si2_2): Ditto.
1790         (*sse4_1_zero_extendv4hiv4si2_4): Ditto.
1791         (*avx512f_zero_extendv8siv8di2_2): Ditto.
1792         (*avx2_zero_extendv4siv4di2_2): Ditto.
1793         (*sse4_1_zero_extendv2siv2di2_4): Ditto.
1794         (VI248_256, VI248_512, VI148_512, VI148_256, VI148_128): New
1795         mode iterator.
1796
1797 2021-08-11  Bill Schmidt  <wschmidt@linux.ibm.com>
1798
1799         * config/rs6000/rs6000-builtin-new.def: Add always, power5, and
1800         power6 stanzas.
1801
1802 2021-08-11  Bill Schmidt  <wschmidt@linux.ibm.com>
1803
1804         * config/rs6000/rs6000-builtin-new.def: Add vsx stanza.
1805
1806 2021-08-11  Bill Schmidt  <wschmidt@linux.ibm.com>
1807
1808         * config/rs6000/rs6000-builtin-new.def: Finish altivec stanza.
1809         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Move
1810         initialization of pcvoid_type_node here...
1811         (altivec_init_builtins): ...from here.
1812         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add
1813         RS6000_BTI_const_ptr_void.
1814         (pcvoid_type_node): New macro.
1815
1816 2021-08-11  Richard Biener  <rguenther@suse.de>
1817
1818         PR target/101877
1819         * tree-ssa-forwprop.c (pass_forwprop::execute): Do not decompose
1820         hard-register accesses.
1821
1822 2021-08-11  Richard Biener  <rguenther@suse.de>
1823
1824         * tree-ssa-operands.c (operands_scanner::get_expr_operands):
1825         Do not look at COMPONENT_REF FIELD_DECLs TREE_THIS_VOLATILE
1826         to determine has_volatile_ops.
1827
1828 2021-08-11  Eric Botcazou  <ebotcazou@gcc.gnu.org>
1829
1830         * cfgexpand.c (expand_used_vars): Reuse attribs local variable.
1831
1832 2021-08-11  Jan Hubicka  <hubicka@ucw.cz>
1833             Alexandre Oliva  <oliva@adacore.com>
1834
1835         * ipa-modref.c (modref_lattice::dump): Fix escape_point's min_flags
1836         dumping.
1837         (modref_lattice::merge_deref): Fix handling of indirect scape points.
1838         (update_escape_summary_1): Likewise.
1839         (update_escape_summary): Likewise.
1840         (ipa_merge_modref_summary_after_inlining): Likewise.
1841
1842 2021-08-11  Richard Biener  <rguenther@suse.de>
1843
1844         PR middle-end/101858
1845         * fold-const.c (fold_binary_loc): Guard simplification
1846         of  X < (cast) (1 << Y) to integer types.
1847
1848 2021-08-11  Richard Biener  <rguenther@suse.de>
1849
1850         PR tree-optimization/101861
1851         * tree-vect-stmts.c (vectorizable_load): Fix error in
1852         previous change with regard to gather vectorization.
1853
1854 2021-08-11  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
1855
1856         PR target/66791
1857         * config/arm/arm_neon.h (vdup_n_s8): Replace call to builtin
1858         with constructor.
1859         (vdup_n_s16): Likewise.
1860         (vdup_n_s32): Likewise.
1861         (vdup_n_s64): Likewise.
1862         (vdup_n_u8): Likewise.
1863         (vdup_n_u16): Likewise.
1864         (vdup_n_u32): Likewise.
1865         (vdup_n_u64): Likewise.
1866         (vdup_n_p8): Likewise.
1867         (vdup_n_p16): Likewise.
1868         (vdup_n_p64): Likewise.
1869         (vdup_n_f16): Likewise.
1870         (vdup_n_f32): Likewise.
1871         (vdupq_n_s8): Likewise.
1872         (vdupq_n_s16): Likewise.
1873         (vdupq_n_s32): Likewise.
1874         (vdupq_n_s64): Likewise.
1875         (vdupq_n_u8): Likewise.
1876         (vdupq_n_u16): Likewise.
1877         (vdupq_n_u32): Likewise.
1878         (vdupq_n_u64): Likewise.
1879         (vdupq_n_p8): Likewise.
1880         (vdupq_n_p16): Likewise.
1881         (vdupq_n_p64): Likewise.
1882         (vdupq_n_f16): Likewise.
1883         (vdupq_n_f32): Likewise.
1884         (vmov_n_s8): Replace call to builtin with call to corresponding
1885         vdup_n intrinsic.
1886         (vmov_n_s16): Likewise.
1887         (vmov_n_s32): Likewise.
1888         (vmov_n_s64): Likewise.
1889         (vmov_n_u8): Likewise.
1890         (vmov_n_u16): Likewise.
1891         (vmov_n_u32): Likewise.
1892         (vmov_n_u64): Likewise.
1893         (vmov_n_p8): Likewise.
1894         (vmov_n_p16): Likewise.
1895         (vmov_n_f16): Likewise.
1896         (vmov_n_f32): Likewise.
1897         (vmovq_n_s8): Likewise.
1898         (vmovq_n_s16): Likewise.
1899         (vmovq_n_s32): Likewise.
1900         (vmovq_n_s64): Likewise.
1901         (vmovq_n_u8): Likewise.
1902         (vmovq_n_u16): Likewise.
1903         (vmovq_n_u32): Likewise.
1904         (vmovq_n_u64): Likewise.
1905         (vmovq_n_p8): Likewise.
1906         (vmovq_n_p16): Likewise.
1907         (vmovq_n_f16): Likewise.
1908         (vmovq_n_f32): Likewise.
1909         * config/arm/arm_neon_builtins.def: Remove entries for vdup_n.
1910
1911 2021-08-11  liuhongt  <hongtao.liu@intel.com>
1912
1913         PR target/98309
1914         * config/i386/i386.md (ldexp<mode>3): Extend to vscalefs[sd]
1915         when TARGET_AVX512F and TARGET_SSE_MATH.
1916
1917 2021-08-10  Jakub Jelinek  <jakub@redhat.com>
1918
1919         PR target/80355
1920         * config/i386/i386-expand.c (expand_vec_perm_even_odd): Return false
1921         for V32HImode if !TARGET_AVX512BW.
1922         (ix86_vectorize_vec_perm_const) <case E_V32HImode, case E_V64QImode>:
1923         If !TARGET_AVX512BW and TARGET_AVX512F and d.testing_p, don't fail
1924         early, but actually check the permutation.
1925
1926 2021-08-10  Richard Biener  <rguenther@suse.de>
1927
1928         PR tree-optimization/101809
1929         * tree-vect-stmts.c (get_load_store_type): Allow emulated
1930         gathers with offset vector nunits being a constant multiple
1931         of the data vector nunits.
1932         (vect_get_gather_scatter_ops): Use the appropriate nunits
1933         for the offset vector defs.
1934         (vectorizable_store): Adjust call to
1935         vect_get_gather_scatter_ops.
1936         (vectorizable_load): Likewise.  Handle the case of less
1937         offset vectors than data vectors.
1938
1939 2021-08-10  Jakub Jelinek  <jakub@redhat.com>
1940
1941         PR target/80355
1942         * config/i386/sse.md (*avx512f_shuf_<shuffletype>64x2_1<mask_name>_1,
1943         *avx512f_shuf_<shuffletype>32x4_1<mask_name>_1): New define_insn
1944         patterns.
1945
1946 2021-08-10  Richard Biener  <rguenther@suse.de>
1947
1948         PR tree-optimization/101801
1949         PR tree-optimization/101819
1950         * tree-vectorizer.h (vect_emulated_vector_p): Declare.
1951         * tree-vect-loop.c (vect_emulated_vector_p): New function.
1952         (vectorizable_reduction): Re-instantiate a check for emulated
1953         operations.
1954         * tree-vect-stmts.c (vectorizable_shift): Likewise.
1955         (vectorizable_operation): Likewise.  Cost emulated vector
1956         operations according to the scalar sequence synthesized by
1957         vector lowering.
1958
1959 2021-08-10  Richard Biener  <rguenther@suse.de>
1960
1961         PR middle-end/101824
1962         * tree-nested.c (get_frame_field): Mark the COMPONENT_REF as
1963         volatile in case the variable was.
1964
1965 2021-08-10  H.J. Lu  <hjl.tools@gmail.com>
1966
1967         PR target/101804
1968         * config/i386/constraints.md (BC): Document for integer SSE
1969         constant all bits set operand.
1970         (BF): New constraint for const floating-point all bits set
1971         vectors.
1972         * config/i386/i386.c (standard_sse_constant_p): Likewise.
1973         (standard_sse_constant_opcode): Likewise.
1974         * config/i386/sse.md (sseconstm1): New mode attribute.
1975         (mov<mode>_internal): Replace BC with <sseconstm1>.
1976
1977 2021-08-10  liuhongt  <hongtao.liu@intel.com>
1978
1979         * config/i386/sse.md (cond_<insn><mode>): New expander.
1980         (VI248_AVX512VLBW): New mode iterator.
1981         * config/i386/predicates.md
1982         (nonimmediate_or_const_vec_dup_operand): New predicate.
1983
1984 2021-08-09  Andrew MacLeod  <amacleod@redhat.com>
1985
1986         PR tree-optimization/101741
1987         * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Check
1988         type of parameter for toupper/tolower.
1989
1990 2021-08-09  Martin Jambor  <mjambor@suse.cz>
1991
1992         PR testsuite/101654
1993         * ipa-prop.c (propagate_controlled_uses): Removed a spurious space.
1994
1995 2021-08-09  Pat Haugen  <pthaugen@linux.ibm.com>
1996
1997         * config/rs6000/rs6000.c (is_load_insn1): Verify destination is a
1998         register.
1999         (is_store_insn1): Verify source is a register.
2000
2001 2021-08-09  Uroš Bizjak  <ubizjak@gmail.com>
2002
2003         PR target/101812
2004         * config/i386/mmx.md (<any_logic:code>v2sf3):
2005         Rename from *mmx_<any_logic:code>v2sf3
2006
2007 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
2008
2009         * config/nvptx/nvptx.c: Cross-reference parts adapted in
2010         'gcc/omp-oacc-neuter-broadcast.cc'.
2011         * omp-low.c: Likewise.
2012         * omp-oacc-neuter-broadcast.cc: Cross-reference parts adapted from
2013         the above files.
2014
2015 2021-08-09  Julian Brown  <julian@codesourcery.com>
2016             Kwok Cheung Yeung  <kcy@codesourcery.com>
2017             Thomas Schwinge  <thomas@codesourcery.com>
2018
2019         * config/gcn/gcn.c (gcn_init_builtins): Override decls for
2020         BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START,
2021         BUILT_IN_GOACC_SINGLE_COPY_END and BUILT_IN_GOACC_BARRIER.
2022         (gcn_goacc_validate_dims): Turn on worker partitioning unconditionally.
2023         (gcn_fork_join): Update comment.
2024         * config/gcn/gcn.opt (flag_worker_partitioning): Remove.
2025         (macc_experimental_workers): Remove unused option.
2026
2027 2021-08-09  Julian Brown  <julian@codesourcery.com>
2028             Nathan Sidwell  <nathan@codesourcery.com> (via 'gcc/config/nvptx/nvptx.c' master)
2029             Kwok Cheung Yeung  <kcy@codesourcery.com>
2030             Thomas Schwinge  <thomas@codesourcery.com>
2031
2032         * Makefile.in (OBJS): Add omp-oacc-neuter-broadcast.o.
2033         * doc/tm.texi.in (TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD):
2034         Add documentation hook.
2035         * doc/tm.texi: Regenerate.
2036         * omp-oacc-neuter-broadcast.cc: New file.
2037         * omp-builtins.def (BUILT_IN_GOACC_BARRIER)
2038         (BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START)
2039         (BUILT_IN_GOACC_SINGLE_COPY_END): New builtins.
2040         * passes.def (pass_omp_oacc_neuter_broadcast): Add pass.
2041         * target.def (goacc.create_worker_broadcast_record): Add target
2042         hook.
2043         * tree-pass.h (make_pass_omp_oacc_neuter_broadcast): Add
2044         prototype.
2045         * config/gcn/gcn-protos.h (gcn_goacc_adjust_propagation_record):
2046         Rename prototype to...
2047         (gcn_goacc_create_worker_broadcast_record): ... this.
2048         * config/gcn/gcn-tree.c (gcn_goacc_adjust_propagation_record): Rename
2049         function to...
2050         (gcn_goacc_create_worker_broadcast_record): ... this.
2051         * config/gcn/gcn.c (TARGET_GOACC_ADJUST_PROPAGATION_RECORD):
2052         Rename to...
2053         (TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD): ... this.
2054
2055 2021-08-09  Tejas Belagod  <tejas.belagod@arm.com>
2056
2057         PR target/101609
2058         * config/aarch64/aarch64-simd.md (vlshr<mode>3, vashr<mode>3): Use
2059         the right iterator.
2060
2061 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
2062
2063         * Makefile.in (GTFILES): Remove '$(srcdir)/omp-offload.c'.
2064
2065 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
2066
2067         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOMP_BUILTIN): Don't
2068         consider '-foffload-abi'.
2069         * common.opt (-foffload-abi): Remove 'Var', 'Init'.
2070         * opts.c (common_handle_option) <-foffload-abi> [ACCEL_COMPILER]:
2071         Ignore.
2072
2073 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
2074
2075         * optc-gen.awk: Sanity check that 'Init' doesn't appear without
2076         'Var'.
2077
2078 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
2079
2080         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE): Remove.
2081
2082 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
2083
2084         * doc/gty.texi (Files): Update.
2085
2086 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
2087
2088         * doc/gty.texi (Files): Fix GTY header file example.
2089
2090 2021-08-09  Roger Sayle  <roger@nextmovesoftware.com>
2091
2092         * tree-ssa-ccp.c (value_mask_to_min_max): Helper function to
2093         determine the upper and lower bounds from a mask-value pair.
2094         (bit_value_unop) [ABS_EXPR, ABSU_EXPR]: Add support for
2095         absolute value and unsigned absolute value expressions.
2096         (bit_value_binop):  Initialize *VAL's precision.
2097         [LT_EXPR, LE_EXPR]: Use value_mask_to_min_max to determine
2098         upper and lower bounds of operands.  Add LE_EXPR/GE_EXPR
2099         support when the operands are unknown but potentially equal.
2100         [MIN_EXPR, MAX_EXPR]: Support minimum/maximum expressions.
2101
2102 2021-08-09  Bin Cheng  <bin.cheng@linux.alibaba.com>
2103
2104         * config/aarch64/aarch64.md
2105         (*extend<SHORT:mode><GPI:mode>2_aarch64): Use %<GPI:w>0.
2106
2107 2021-08-08  Sergei Trofimovich  <siarheit@google.com>
2108
2109         * lra-constraints.c: Fix s/otput/output/ typo.
2110
2111 2021-08-06  Martin Sebor  <msebor@redhat.com>
2112
2113         * builtins.c (expand_builtin_memchr): Move to gimple-ssa-warn-access.cc.
2114         (expand_builtin_strcat): Same.
2115         (expand_builtin_stpncpy): Same.
2116         (expand_builtin_strncat): Same.
2117         (check_read_access): Same.
2118         (check_memop_access): Same.
2119         (expand_builtin_strlen): Move checks to gimple-ssa-warn-access.cc.
2120         (expand_builtin_strnlen): Same.
2121         (expand_builtin_memcpy): Same.
2122         (expand_builtin_memmove): Same.
2123         (expand_builtin_mempcpy): Same.
2124         (expand_builtin_strcpy): Same.
2125         (expand_builtin_strcpy_args): Same.
2126         (expand_builtin_stpcpy_1): Same.
2127         (expand_builtin_strncpy): Same.
2128         (expand_builtin_memset): Same.
2129         (expand_builtin_bzero): Same.
2130         (expand_builtin_strcmp): Same.
2131         (expand_builtin_strncmp): Same.
2132         (expand_builtin): Remove handlers.
2133         (fold_builtin_strlen): Add a comment.
2134         * builtins.h (check_access): Move to gimple-ssa-warn-access.cc.
2135         * calls.c (maybe_warn_nonstring_arg): Same.
2136         * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Add warning option.
2137         * gimple-fold.c (gimple_fold_builtin_strcpy): Pass argument to callee.
2138         (gimple_fold_builtin_stpcpy): Same.
2139         * gimple-ssa-warn-access.cc (has_location): New function.
2140         (get_location): Same.
2141         (get_callee_fndecl): Same.
2142         (call_nargs): Same.
2143         (call_arg): Same.
2144         (warn_string_no_nul): Define.
2145         (unterminated_array): Same.
2146         (check_nul_terminated_array): Same.
2147         (maybe_warn_nonstring_arg): Same.
2148         (maybe_warn_for_bound): Same.
2149         (warn_for_access): Same.
2150         (check_access): Same.
2151         (check_memop_access): Same.
2152         (check_read_access): Same.
2153         (warn_dealloc_offset): Use helper functions.
2154         (maybe_emit_free_warning): Same.
2155         (class pass_waccess): Add members.
2156         (check_strcat): New function.
2157         (check_strncat): New function.
2158         (check_stxcpy): New function.
2159         (check_stxncpy): New function.
2160         (check_strncmp): New function.
2161         (pass_waccess::check_builtin): New function.
2162         (pass_waccess::check): Call it.
2163         * gimple-ssa-warn-access.h (warn_string_no_nul): Move here from
2164         builtins.h.
2165         (maybe_warn_for_bound): Same.
2166         (check_access): Same.
2167         (check_memop_access): Same.
2168         (check_read_access): Same.
2169         * pointer-query.h (struct access_data): Define a ctor overload.
2170
2171 2021-08-06  Richard Biener  <rguenther@suse.de>
2172
2173         PR tree-optimization/101801
2174         * tree-vectorizer.h (vect_worthwhile_without_simd_p): Rename...
2175         (vect_can_vectorize_without_simd_p): ... to this.
2176         * tree-vect-loop.c (vect_worthwhile_without_simd_p): Rename...
2177         (vect_can_vectorize_without_simd_p): ... to this and fold
2178         in vect_min_worthwhile_factor.
2179         (vect_min_worthwhile_factor): Remove.
2180         (vectorizable_reduction): Adjust and remove the cost part.
2181         * tree-vect-stmts.c (vectorizable_shift): Likewise.
2182         (vectorizable_operation): Likewise.
2183
2184 2021-08-06  Uroš Bizjak  <ubizjak@gmail.com>
2185
2186         PR target/101797
2187         * config/i386/i386.md (cmove reg-to-reg move elimination peephole2s):
2188         Add general_gr_operand predicate to operand 3.
2189
2190 2021-08-06  Roger Sayle  <roger@nextmovesoftware.com>
2191
2192         * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern): Use
2193         CFN_BUILT_IN_CLRSB* instead of BUILT_IN_CLRSB* for consistency.
2194
2195 2021-08-06  Tamar Christina  <tamar.christina@arm.com>
2196
2197         * config/aarch64/aarch64-sve-builtins.cc (register_svpattern,
2198         register_svprfop): Pass vec<> by pointer.
2199         * langhooks-def.h (lhd_simulate_enum_decl): Likewise.
2200         * langhooks.c (lhd_simulate_enum_decl): Likewise.
2201         * langhooks.h (struct lang_hooks_for_types): Likewise.
2202
2203 2021-08-06  Jonathan Wright  <jonathan.wright@arm.com>
2204
2205         * config/aarch64/arm_neon.h (vst1_bf16_x2): Use
2206         __builtin_memcpy instead of constructing an additional
2207         __builtin_aarch64_simd_oi one vector at a time.
2208         (vst1q_bf16_x2): Likewise.
2209         (vst1_bf16_x3): Use __builtin_memcpy instead of constructing
2210         an additional __builtin_aarch64_simd_ci one vector at a time.
2211         (vst1q_bf16_x3): Likewise.
2212         (vst1_bf16_x4): Use __builtin_memcpy instead of a union.
2213         (vst1q_bf16_x4): Likewise.
2214         (vst2_bf16): Use __builtin_memcpy instead of constructing an
2215         additional __builtin_aarch64_simd_oi one vector at a time.
2216         (vst2q_bf16): Likewise.
2217         (vst3_bf16): Use __builtin_memcpy instead of constructing an
2218         additional __builtin_aarch64_simd_ci mode one vector at a
2219         time.
2220         (vst3q_bf16): Likewise.
2221         (vst4_bf16): Use __builtin_memcpy instead of constructing an
2222         additional __builtin_aarch64_simd_xi one vector at a time.
2223         (vst4q_bf16): Likewise.
2224
2225 2021-08-06  Jonathan Wright  <jonathan.wright@arm.com>
2226
2227         * config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Delete.
2228         (__ST2Q_LANE_FUNC): Delete.
2229         (vst2_lane_f16): Use __builtin_memcpy to copy vector
2230         structure instead of constructing __builtin_aarch64_simd_oi
2231         one vector at a time.
2232         (vst2_lane_f32): Likewise.
2233         (vst2_lane_f64): Likewise.
2234         (vst2_lane_p8): Likewise.
2235         (vst2_lane_p16): Likewise.
2236         (vst2_lane_p64): Likewise.
2237         (vst2_lane_s8): Likewise.
2238         (vst2_lane_s16): Likewise.
2239         (vst2_lane_s32): Likewise.
2240         (vst2_lane_s64): Likewise.
2241         (vst2_lane_u8): Likewise.
2242         (vst2_lane_u16): Likewise.
2243         (vst2_lane_u32): Likewise.
2244         (vst2_lane_u64): Likewise.
2245         (vst2_lane_bf16): Likewise.
2246         (vst2q_lane_f16): Use __builtin_memcpy to copy vector
2247         structure instead of using a union.
2248         (vst2q_lane_f32): Likewise.
2249         (vst2q_lane_f64): Likewise.
2250         (vst2q_lane_p8): Likewise.
2251         (vst2q_lane_p16): Likewise.
2252         (vst2q_lane_p64): Likewise.
2253         (vst2q_lane_s8): Likewise.
2254         (vst2q_lane_s16): Likewise.
2255         (vst2q_lane_s32): Likewise.
2256         (vst2q_lane_s64): Likewise.
2257         (vst2q_lane_u8): Likewise.
2258         (vst2q_lane_u16): Likewise.
2259         (vst2q_lane_u32): Likewise.
2260         (vst2q_lane_u64): Likewise.
2261         (vst2q_lane_bf16): Likewise.
2262
2263 2021-08-06  Jonathan Wright  <jonathan.wright@arm.com>
2264
2265         * config/aarch64/arm_neon.h (__ST3_LANE_FUNC): Delete.
2266         (__ST3Q_LANE_FUNC): Delete.
2267         (vst3_lane_f16): Use __builtin_memcpy to copy vector
2268         structure instead of constructing __builtin_aarch64_simd_ci
2269         one vector at a time.
2270         (vst3_lane_f32): Likewise.
2271         (vst3_lane_f64): Likewise.
2272         (vst3_lane_p8): Likewise.
2273         (vst3_lane_p16): Likewise.
2274         (vst3_lane_p64): Likewise.
2275         (vst3_lane_s8): Likewise.
2276         (vst3_lane_s16): Likewise.
2277         (vst3_lane_s32): Likewise.
2278         (vst3_lane_s64): Likewise.
2279         (vst3_lane_u8): Likewise.
2280         (vst3_lane_u16): Likewise.
2281         (vst3_lane_u32): Likewise.
2282         (vst3_lane_u64): Likewise.
2283         (vst3_lane_bf16): Likewise.
2284         (vst3q_lane_f16): Use __builtin_memcpy to copy vector
2285         structure instead of using a union.
2286         (vst3q_lane_f32): Likewise.
2287         (vst3q_lane_f64): Likewise.
2288         (vst3q_lane_p8): Likewise.
2289         (vst3q_lane_p16): Likewise.
2290         (vst3q_lane_p64): Likewise.
2291         (vst3q_lane_s8): Likewise.
2292         (vst3q_lane_s16): Likewise.
2293         (vst3q_lane_s32): Likewise.
2294         (vst3q_lane_s64): Likewise.
2295         (vst3q_lane_u8): Likewise.
2296         (vst3q_lane_u16): Likewise.
2297         (vst3q_lane_u32): Likewise.
2298         (vst3q_lane_u64): Likewise.
2299         (vst3q_lane_bf16): Likewise.
2300
2301 2021-08-06  Jonathan Wright  <jonathan.wright@arm.com>
2302
2303         * config/aarch64/arm_neon.h (__ST4_LANE_FUNC): Delete.
2304         (__ST4Q_LANE_FUNC): Delete.
2305         (vst4_lane_f16): Use __builtin_memcpy to copy vector
2306         structure instead of constructing __builtin_aarch64_simd_xi
2307         one vector at a time.
2308         (vst4_lane_f32): Likewise.
2309         (vst4_lane_f64): Likewise.
2310         (vst4_lane_p8): Likewise.
2311         (vst4_lane_p16): Likewise.
2312         (vst4_lane_p64): Likewise.
2313         (vst4_lane_s8): Likewise.
2314         (vst4_lane_s16): Likewise.
2315         (vst4_lane_s32): Likewise.
2316         (vst4_lane_s64): Likewise.
2317         (vst4_lane_u8): Likewise.
2318         (vst4_lane_u16): Likewise.
2319         (vst4_lane_u32): Likewise.
2320         (vst4_lane_u64): Likewise.
2321         (vst4_lane_bf16): Likewise.
2322         (vst4q_lane_f16): Use __builtin_memcpy to copy vector
2323         structure instead of using a union.
2324         (vst4q_lane_f32): Likewise.
2325         (vst4q_lane_f64): Likewise.
2326         (vst4q_lane_p8): Likewise.
2327         (vst4q_lane_p16): Likewise.
2328         (vst4q_lane_p64): Likewise.
2329         (vst4q_lane_s8): Likewise.
2330         (vst4q_lane_s16): Likewise.
2331         (vst4q_lane_s32): Likewise.
2332         (vst4q_lane_s64): Likewise.
2333         (vst4q_lane_u8): Likewise.
2334         (vst4q_lane_u16): Likewise.
2335         (vst4q_lane_u32): Likewise.
2336         (vst4q_lane_u64): Likewise.
2337         (vst4q_lane_bf16): Likewise.
2338
2339 2021-08-06  Martin Liska  <mliska@suse.cz>
2340
2341         * config/rs6000/rs6000.c (rs6000_option_override_internal): When
2342         a target option is restored, it can have
2343         rs6000_long_double_type_size set to FLOAT_PRECISION_TFmode
2344         and error should not be emitted.
2345
2346 2021-08-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2347
2348         * gcov-io.h (gcov_write): Declare.
2349         * gcov-io.c (gcov_write): New.
2350         (gcov_write_counter): Remove.
2351         (gcov_write_tag_length): Likewise.
2352         (gcov_write_summary): Replace gcov_write_tag_length() with calls to
2353         gcov_write_unsigned().
2354         * doc/invoke.texi (fprofile-info-section): Mention
2355         __gcov_info_to_gdca().
2356
2357 2021-08-06  Martin Sebor  <msebor@redhat.com>
2358
2359         * dominance.c (prune_bbs_to_update_dominators): Adjust by-value vec
2360         arguments to by-reference.
2361         (iterate_fix_dominators): Same.
2362         * dominance.h (iterate_fix_dominators): Same.
2363         * ipa-prop.h: Call auto_vec::to_vec_legacy.
2364         * tree-data-ref.c (dump_data_dependence_relation): Adjust by-value vec
2365         arguments to by-reference.
2366         (debug_data_dependence_relation): Same.
2367         (dump_data_dependence_relations): Same.
2368         * tree-data-ref.h (debug_data_dependence_relation): Same.
2369         (dump_data_dependence_relations): Same.
2370         * tree-predcom.c (dump_chains): Same.
2371         (initialize_root_vars_lm): Same.
2372         (determine_unroll_factor): Same.
2373         (replace_phis_by_defined_names): Same.
2374         (insert_init_seqs): Same.
2375         (pcom_worker::tree_predictive_commoning_loop): Call
2376          auto_vec::to_vec_legacy.
2377         * tree-ssa-pre.c (insert_into_preds_of_block): Adjust by-value vec
2378         arguments to by-reference.
2379         * tree-ssa-threadbackward.c (populate_worklist): Same.
2380         (back_threader::resolve_def): Same.
2381         * tree-vect-data-refs.c (vect_check_nonzero_value): Same.
2382         (vect_enhance_data_refs_alignment): Same.
2383         (vect_check_lower_bound): Same.
2384         (vect_prune_runtime_alias_test_list): Same.
2385         (vect_permute_store_chain): Same.
2386         * tree-vect-slp-patterns.c (vect_normalize_conj_loc): Same.
2387         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Same.
2388         * tree-vectorizer.h (vect_permute_store_chain): Same.
2389         * vec.c (test_init): New function.
2390         (vec_c_tests): Call new function.
2391         * vec.h (vec): Declare ctors, dtor, and assignment.
2392         (auto_vec::vec_to_legacy): New function.
2393         (vec::copy): Adjust initialization.
2394
2395 2021-08-05  H.J. Lu  <hjl.tools@gmail.com>
2396
2397         PR target/99744
2398         * config/i386/i386.c (ix86_can_inline_p): Ignore MASK_80387 if
2399         callee only uses GPRs.
2400         * config/i386/ia32intrin.h: Revert commit 5463cee2770.
2401         * config/i386/serializeintrin.h: Revert commit 71958f740f1.
2402         * config/i386/x86gprintrin.h: Add
2403         #pragma GCC target("general-regs-only") and #pragma GCC pop_options
2404         to disable non-GPR ISAs.
2405
2406 2021-08-05  Richard Sandiford  <richard.sandiford@arm.com>
2407
2408         PR middle-end/101787
2409         * doc/md.texi (cond_ashl, cond_ashr, cond_lshr): Document.
2410
2411 2021-08-05  Richard Sandiford  <richard.sandiford@arm.com>
2412
2413         * tree-vectorizer.h (vect_is_store_elt_extraction, vect_is_reduction)
2414         (vect_reduc_type, vect_embedded_comparison_type, vect_comparison_type)
2415         (vect_is_extending_load, vect_is_integer_truncation): New functions,
2416         moved from aarch64.c but given different names.
2417         * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction)
2418         (aarch64_is_reduction, aarch64_reduc_type)
2419         (aarch64_embedded_comparison_type, aarch64_comparison_type)
2420         (aarch64_extending_load_p, aarch64_integer_truncation_p): Delete
2421         in favor of the above.  Update callers accordingly.
2422
2423 2021-08-05  Richard Earnshaw  <rearnsha@arm.com>
2424
2425         PR target/101723
2426         * config/arm/arm-cpus.in (generic-armv7-a): Add quirk to suppress
2427         writing .cpu directive in asm output.
2428         * config/arm/arm.c (arm_identify_fpu_from_isa): New variable.
2429         (arm_last_printed_arch_string): Delete.
2430         (arm_last-printed_fpu_string): Delete.
2431         (arm_configure_build_target): If use of floating-point/SIMD is
2432         disabled, remove all fp/simd related features from the target ISA.
2433         (last_arm_targ_options): New variable.
2434         (arm_print_asm_arch_directives): Add new parameters.  Change order
2435         of emitted directives and handle all cases here.
2436         (arm_file_start): Always call arm_print_asm_arch_directives, move
2437         all generation of .arch/.arch_extension here.
2438         (arm_file_end): Call arm_print_asm_arch.
2439         (arm_declare_function_name): Call arm_print_asm_arch_directives
2440         instead of printing .arch/.fpu directives directly.
2441
2442 2021-08-05  Richard Earnshaw  <rearnsha@arm.com>
2443
2444         * config/arm/arm.c (arm_configure_build_target): Don't call
2445         arm_option_reconfigure_globals.
2446         (arm_option_restore): Call arm_option_reconfigure_globals after
2447         reconfiguring the target.
2448         * config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
2449
2450 2021-08-05  Richard Earnshaw  <rearnsha@arm.com>
2451
2452         * config/arm/arm.c (arm_configure_build_target): Ensure the target's
2453         arch_name is always set.
2454
2455 2021-08-05  Jonathan Wright  <jonathan.wright@arm.com>
2456
2457         * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost
2458         of vec_select high-half from being added into Neon subtract
2459         cost.
2460
2461 2021-08-05  Jonathan Wright  <jonathan.wright@arm.com>
2462
2463         * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost
2464         of vec_select high-half from being added into Neon add cost.
2465
2466 2021-08-05  Kewen Lin  <linkw@linux.ibm.com>
2467
2468         * cfgloop.h (loops_list::loops_list): Add one optional argument
2469         root and adjust accordingly, update loop tree walking and factor
2470         out to ...
2471         * cfgloop.c (loops_list::walk_loop_tree): ... this.  New function.
2472
2473 2021-08-05  Eric Botcazou  <ebotcazou@gcc.gnu.org>
2474
2475         PR tree-optimization/101626
2476         * tree-sra.c (propagate_subaccesses_from_rhs): Do not set the
2477         reverse scalar storage order on a pointer or vector component.
2478
2479 2021-08-05  liuhongt  <hongtao.liu@intel.com>
2480
2481         * config/i386/sse.md (cond_<code><mode>): New expander.
2482
2483 2021-08-05  liuhongt  <hongtao.liu@intel.com>
2484
2485         * config/i386/sse.md (cond_<code><mode>): New expander.
2486
2487 2021-08-05  liuhongt  <hongtao.liu@intel.com>
2488
2489         * config/i386/sse.md (cond_<code><mode>): New expander.
2490
2491 2021-08-04  David Malcolm  <dmalcolm@redhat.com>
2492
2493         PR analyzer/101570
2494         * Makefile.in (ANALYZER_OBJS): Add analyzer/region-model-asm.o.
2495
2496 2021-08-04  H.J. Lu  <hjl.tools@gmail.com>
2497
2498         PR target/101742
2499         * config/i386/i386.h (STORE_MAX_PIECES): Allow 16/32/64 bytes
2500         only if TARGET_INTER_UNIT_MOVES_TO_VEC is true.
2501
2502 2021-08-04  H.J. Lu  <hjl.tools@gmail.com>
2503
2504         PR target/101772
2505         * config/i386/i386-expand.c (ix86_expand_vector_move): Call
2506         ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy
2507         data with SSE register from one memory location to another.
2508
2509 2021-08-04  Andreas Krebbel  <krebbel@linux.ibm.com>
2510
2511         * config/s390/s390.c (expand_perm_with_vpdi): New function.
2512         (vectorize_vec_perm_const_1): Call expand_perm_with_vpdi.
2513         * config/s390/vector.md (*vpdi1<mode>, @vpdi1<mode>): Enable a
2514         parameterized expander.
2515         (*vpdi4<mode>, @vpdi4<mode>): Likewise.
2516
2517 2021-08-04  Andreas Krebbel  <krebbel@linux.ibm.com>
2518
2519         * config/s390/s390.c (MAX_VECT_LEN): Define macro.
2520         (struct expand_vec_perm_d): Define struct.
2521         (expand_perm_with_merge): New function.
2522         (vectorize_vec_perm_const_1): New function.
2523         (s390_vectorize_vec_perm_const): New function.
2524         (TARGET_VECTORIZE_VEC_PERM_CONST): Define target macro.
2525
2526 2021-08-04  Andreas Krebbel  <krebbel@linux.ibm.com>
2527
2528         * config/s390/vector.md (V_HW_64): Remove mode iterator.
2529         (*vec_load_pair<mode>): Use V_HW_2 instead of V_HW_64.
2530         * config/s390/vx-builtins.md
2531         (vec_scatter_element<V_HW_2:mode>_SI): Use V_HW_2 instead of
2532         V_HW_64.
2533
2534 2021-08-04  Andreas Krebbel  <krebbel@linux.ibm.com>
2535
2536         * config/s390/s390.md (UNSPEC_VEC_PERMI): Remove constant
2537         definition.
2538         * config/s390/vector.md (*vpdi1<mode>, *vpdi4<mode>): New pattern
2539         definitions.
2540         * config/s390/vx-builtins.md (*vec_permi<mode>): Emit generic rtx
2541         instead of an unspec.
2542
2543 2021-08-04  Andreas Krebbel  <krebbel@linux.ibm.com>
2544
2545         * config/s390/s390-modes.def: Add more vector modes to support
2546         concatenation of two vectors.
2547         * config/s390/s390-protos.h (s390_expand_merge_perm_const): Add
2548         prototype.
2549         (s390_expand_merge): Likewise.
2550         * config/s390/s390.c (s390_expand_merge_perm_const): New function.
2551         (s390_expand_merge): New function.
2552         * config/s390/s390.md (UNSPEC_VEC_MERGEH, UNSPEC_VEC_MERGEL):
2553         Remove constant definitions.
2554         * config/s390/vector.md (V_HW_2): Add mode iterators.
2555         (VI_HW_4, V_HW_4): Rename VI_HW_4 to V_HW_4.
2556         (vec_2x_nelts, vec_2x_wide): New mode attributes.
2557         (*vmrhb, *vmrlb, *vmrhh, *vmrlh, *vmrhf, *vmrlf, *vmrhg, *vmrlg):
2558         New pattern definitions.
2559         (vec_widen_umult_lo_<mode>, vec_widen_umult_hi_<mode>)
2560         (vec_widen_smult_lo_<mode>, vec_widen_smult_hi_<mode>)
2561         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf, vec_unpacks_lo_v2df)
2562         (vec_unpacks_hi_v2df): Adjust expanders to emit non-unspec RTX for
2563         vec merge.
2564         * config/s390/vx-builtins.md (V_HW_4): Remove mode iterator. Now
2565         in vector.md.
2566         (vec_mergeh<mode>, vec_mergel<mode>): Use s390_expand_merge to
2567         emit vec merge pattern.
2568
2569 2021-08-04  Jonathan Wright  <jonathan.wright@arm.com>
2570
2571         * config/aarch64/aarch64.c (aarch64_strip_extend_vec_half):
2572         Define.
2573         (aarch64_rtx_mult_cost): Traverse RTL tree to prevent cost of
2574         vec_select high-half from being added into Neon multiply
2575         cost.
2576         * rtlanal.c (vec_series_highpart_p): Define.
2577         * rtlanal.h (vec_series_highpart_p): Declare.
2578
2579 2021-08-04  Jonathan Wright  <jonathan.wright@arm.com>
2580
2581         * config/aarch64/aarch64.c (aarch64_strip_duplicate_vec_elt):
2582         Define.
2583         (aarch64_rtx_mult_cost): Traverse RTL tree to prevent
2584         vec_select cost from being added into Neon multiply cost.
2585
2586 2021-08-04  Richard Sandiford  <richard.sandiford@arm.com>
2587
2588         * tree-vect-loop.c (vect_better_loop_vinfo_p): Detect cases in
2589         which old_loop_vinfo is an epilogue loop that handles a constant
2590         number of iterations.
2591
2592 2021-08-04  Richard Sandiford  <richard.sandiford@arm.com>
2593
2594         * tree-vect-loop.c (vect_analyze_loop): Print a dump message
2595         when a reanalyzed loop fails to be cheaper than the current
2596         main loop.
2597
2598 2021-08-04  Richard Sandiford  <richard.sandiford@arm.com>
2599
2600         * config/aarch64/aarch64.c: Fix a typo.
2601
2602 2021-08-04  Vincent Lefèvre  <vincent-gcc@vinc17.net>
2603
2604         PR gcov-profile/101773
2605         * gcov-io.c (gcov_close): Check return code of a fclose.
2606
2607 2021-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2608
2609         PR ada/101575
2610         * dwarf2out.c (dwarf2out_assembly_start): Emit a dummy
2611         .file statement when needed.
2612
2613 2021-08-04  Richard Biener  <rguenther@suse.de>
2614
2615         * tree-vect-data-refs.c (vect_check_gather_scatter):
2616         Include widening conversions only when the result is
2617         still handed by native gather or the current offset
2618         size not already matches the data size.
2619         Also succeed analysis in case there's no native support,
2620         noted by a IFN_LAST ifn and a NULL decl.
2621         (vect_analyze_data_refs): Always consider gathers.
2622         * tree-vect-patterns.c (vect_recog_gather_scatter_pattern):
2623         Test for no IFN gather rather than decl gather.
2624         * tree-vect-stmts.c (vect_model_load_cost): Pass in the
2625         gather-scatter info and cost emulated gathers accordingly.
2626         (vect_truncate_gather_scatter_offset): Properly test for
2627         no IFN gather.
2628         (vect_use_strided_gather_scatters_p): Likewise.
2629         (get_load_store_type): Handle emulated gathers and its
2630         restrictions.
2631         (vectorizable_load): Likewise.  Emulate them by extracting
2632         scalar offsets, doing scalar loads and a vector construct.
2633
2634 2021-08-04  H.J. Lu  <hjl.tools@gmail.com>
2635
2636         PR target/101742
2637         * expr.c (op_by_pieces_d::op_by_pieces_d): Add a max_pieces
2638         argument to set m_max_size.
2639         (move_by_pieces_d): Pass MOVE_MAX_PIECES to op_by_pieces_d.
2640         (store_by_pieces_d): Pass STORE_MAX_PIECES to op_by_pieces_d.
2641         (compare_by_pieces_d): Pass COMPARE_MAX_PIECES to op_by_pieces_d.
2642
2643 2021-08-04  Roger Sayle  <roger@nextmovesoftware.com>
2644             Marc Glisse  <marc.glisse@inria.fr>
2645
2646         * match.pd (bit_ior, bit_xor): Canonicalize (X*C1)|(X*C2) and
2647         (X*C1)^(X*C2) as X*(C1+C2), and related variants, using
2648         tree_nonzero_bits to ensure that operands are bit-wise disjoint.
2649
2650 2021-08-04  Richard Biener  <rguenther@suse.de>
2651
2652         * tree-ssa-forwprop.c (pass_forwprop::execute): Split
2653         out code to decompose vector loads ...
2654         (optimize_vector_load): ... here.  Generalize it to
2655         handle intermediate widening and TARGET_MEM_REF loads
2656         and apply it to loads with a supported vector mode as well.
2657
2658 2021-08-04  Richard Biener  <rguenther@suse.de>
2659
2660         PR tree-optimization/101756
2661         * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Make sure
2662         the result of the reduction epilogue is compatible to the original
2663         scalar result.
2664
2665 2021-08-04  liuhongt  <hongtao.liu@intel.com>
2666
2667         PR target/101743
2668         * config/i386/i386.md (peephole2): Refine predicate from
2669         register_operand to general_reg_operand.
2670
2671 2021-08-04  Aldy Hernandez  <aldyh@redhat.com>
2672
2673         * gimple-range-path.h (path_range_query::dump): Mark override.
2674
2675 2021-08-04  Richard Biener  <rguenther@suse.de>
2676
2677         PR tree-optimization/101769
2678         * tree-tailcall.c (eliminate_tail_call): Add the created loop
2679         for the first recursion and return it via the new output parameter.
2680         (optimize_tail_call): Pass through new output param.
2681         (tree_optimize_tail_calls_1): After creating all latches,
2682         add the created loop to the loop tree.  Do not mark loops for fixup.
2683
2684 2021-08-04  Martin Liska  <mliska@suse.cz>
2685
2686         * doc/invoke.texi: Document threader-mode param.
2687
2688 2021-08-04  liuhongt  <hongtao.liu@intel.com>
2689
2690         * config/i386/sse.md (cond_fma<mode>): New expander.
2691         (cond_fms<mode>): Ditto.
2692         (cond_fnma<mode>): Ditto.
2693         (cond_fnms<mode>): Ditto.
2694
2695 2021-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
2696
2697         * config/rs6000/vsx.md (*vsx_le_perm_store_<mode>): Use && instead of &.
2698
2699 2021-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
2700
2701         * config/rs6000/constraints.md: Remove "e" from the list of available
2702         constraint characters.
2703
2704 2021-08-03  Eugene Rozenfeld  <erozen@microsoft.com>
2705
2706         PR gcov-profile/71672
2707         * auto-profile.c (afdo_indirect_call): Fix setup of the historgram value for indirect calls.
2708
2709 2021-08-03  Paul A. Clarke  <pc@us.ibm.com>
2710
2711         * config/rs6000/smmintrin.h (_mm_minpos_epu16): New.
2712
2713 2021-08-03  H.J. Lu  <hjl.tools@gmail.com>
2714
2715         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): In 64-bit mode,
2716         try XMM31 to avoid vzeroupper.
2717
2718 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
2719
2720         * doc/invoke.texi: Document -mtune=neoverse-512tvb and
2721         -mcpu=neoverse-512tvb.
2722         * config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry.
2723         * config/aarch64/aarch64-tune.md: Regenerate.
2724         * config/aarch64/aarch64.c (neoverse512tvb_sve_vector_cost)
2725         (neoverse512tvb_sve_issue_info, neoverse512tvb_vec_issue_info)
2726         (neoverse512tvb_vector_cost, neoverse512tvb_tunings): New structures.
2727         (aarch64_adjust_body_cost_sve): Handle -mtune=neoverse-512tvb.
2728         (aarch64_adjust_body_cost): Likewise.
2729
2730 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
2731
2732         * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Only
2733         record issue information for operations that occur in the
2734         innermost loop.
2735
2736 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
2737
2738         * config/aarch64/aarch64.c (aarch64_multiply_add_p): Add a vec_flags
2739         parameter.  Detect cases in which an Advanced SIMD MLA would almost
2740         certainly require a MOV.
2741         (aarch64_count_ops): Update accordingly.
2742
2743 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
2744
2745         * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction): New
2746         function, split out from...
2747         (aarch64_detect_vector_stmt_subtype): ...here.
2748         (aarch64_add_stmt_cost): Treat extracting element 0 as free.
2749
2750 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
2751
2752         * config/aarch64/aarch64-protos.h (sve_vec_cost):
2753         Add gather_load_x32_cost and gather_load_x64_cost.
2754         * config/aarch64/aarch64.c (generic_sve_vector_cost)
2755         (a64fx_sve_vector_cost, neoversev1_sve_vector_cost): Update
2756         accordingly, using the values given by the scalar_load * number
2757         of elements calculation that we used previously.
2758         (aarch64_detect_vector_stmt_subtype): Use the new fields.
2759
2760 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
2761
2762         * config/aarch64/aarch64.c (aarch64_adjust_body_cost_sve): New
2763         function, split out from...
2764         (aarch64_adjust_body_cost): ...here.
2765
2766 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
2767
2768         * config/aarch64/fractional-cost.h: New file.
2769         * config/aarch64/aarch64.c: Include <algorithm> (indirectly)
2770         and cost_fraction.h.
2771         (vec_cost_fraction): New typedef.
2772         (aarch64_detect_scalar_stmt_subtype): Use it for statement costs.
2773         (aarch64_detect_vector_stmt_subtype): Likewise.
2774         (aarch64_sve_adjust_stmt_cost, aarch64_adjust_stmt_cost): Likewise.
2775         (aarch64_estimate_min_cycles_per_iter): Use vec_cost_fraction
2776         for cycle counts.
2777         (aarch64_adjust_body_cost): Likewise.
2778         (aarch64_test_cost_fraction): New function.
2779         (aarch64_run_selftests): Call it.
2780
2781 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
2782
2783         * config/aarch64/aarch64-protos.h (tune_params::sve_width): Turn
2784         into a bitmask.
2785         * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Update
2786         accordingly.
2787         (aarch64_estimated_poly_value): Likewise.  Use the least significant
2788         set bit for the minimum and likely values.  Use the most significant
2789         set bit for the maximum value.
2790
2791 2021-08-03  liuhongt  <hongtao.liu@intel.com>
2792
2793         * config/i386/sse.md (cond_<insn><mode>): New expander.
2794         (cond_mul<mode>): Ditto.
2795
2796 2021-08-03  Kewen Lin  <linkw@linux.ibm.com>
2797
2798         * tree-cfg.c (move_sese_region_to_fn): Fix typos on dloop.
2799
2800 2021-08-03  liuhongt  <hongtao.liu@intel.com>
2801
2802         * config/i386/sse.md (cond_<insn><mode>):New expander.
2803         (cond_mul<mode>): Ditto.
2804         (cond_div<mode>): Ditto.
2805
2806 2021-08-02  H.J. Lu  <hjl.tools@gmail.com>
2807
2808         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Also
2809         check stack_realign_needed for stack realignment.
2810         (ix86_legitimate_constant_p): Always allow CONST_WIDE_INT smaller
2811         than the largest integer supported by vector register.
2812         * config/i386/i386.h (MAX_MOVE_MAX): New.  Set to 64.
2813         (MOVE_MAX): Set to bytes of the largest integer supported by
2814         vector register.
2815         (STORE_MAX_PIECES): New.
2816
2817 2021-08-02  H.J. Lu  <hjl.tools@gmail.com>
2818
2819         * config/i386/i386-expand.c (ix86_expand_vector_move): Call
2820         ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy
2821         data from one memory location to another.
2822
2823 2021-08-02  H.J. Lu  <hjl.tools@gmail.com>
2824
2825         PR middle-end/90773
2826         * config/i386/i386.c (TARGET_GEN_MEMSET_SCRATCH_RTX): New.
2827
2828 2021-08-02  Aldy Hernandez  <aldyh@redhat.com>
2829
2830         PR tree-optimization/101724
2831         * params.opt: Remove --param=threader-iterative.
2832         * tree-ssa-threadbackward.c (pass_thread_jumps::execute): Remove
2833         iterative mode.
2834
2835 2021-08-02  Tom de Vries  <tdevries@suse.de>
2836
2837         PR middle-end/101665
2838         * doc/extend.texi (nonnull attribute): Improve documentation.
2839
2840 2021-08-02  Andrew Pinski  <apinski@marvell.com>
2841
2842         PR rtl-optimization/101683
2843         * rtlanal.c (may_trap_p_1): Handle UNSIGNED_FIX.
2844
2845 2021-08-02  Roger Sayle  <roger@nextmovesoftware.com>
2846
2847         * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern):
2848         Renamed from cond_removal_in_popcount_clz_ctz_pattern.
2849         Add support for BSWAP, FFS, PARITY and CLRSB builtins.
2850         (tree_ssa_phiop_worker): Update call to function above.
2851
2852 2021-08-01  H.J. Lu  <hjl.tools@gmail.com>
2853
2854         PR target/78103
2855         * config/i386/i386.md (bsr_rex64_1_zext): New.
2856         (combine splitter for constant - clzll): Replace gen_bsr_rex64_1
2857         with gen_bsr_rex64_1_zext.
2858
2859 2021-07-31  Jakub Jelinek  <jakub@redhat.com>
2860
2861         PR target/78103
2862         * config/i386/i386.md (bsr_rex64_1, bsr_1, bsr_zext_1): New
2863         define_insn patterns.
2864         (*bsr_rex64_2, *bsr_2): New define_insn_and_split patterns.
2865         Add combine splitters for constant - clz.
2866         (clz<mode>2): Use a temporary pseudo for bsr result.
2867
2868 2021-07-30  Paul A. Clarke  <pc@us.ibm.com>
2869
2870         * config/rs6000/smmintrin.h (_mm_floor_pd, _mm_floor_ps,
2871         _mm_floor_sd, _mm_floor_ss): New.
2872
2873 2021-07-30  Paul A. Clarke  <pc@us.ibm.com>
2874
2875         * config/rs6000/smmintrin.h (_mm_ceil_pd, _mm_ceil_ps,
2876         _mm_ceil_sd, _mm_ceil_ss): New.
2877
2878 2021-07-30  Paul A. Clarke  <pc@us.ibm.com>
2879
2880         * config/rs6000/smmintrin.h (_mm_blend_pd, _mm_blendv_pd,
2881         _mm_blend_ps, _mm_blendv_ps): New.
2882
2883 2021-07-30  Roger Sayle  <roger@nextmovesoftware.com>
2884             Uroš Bizjak  <ubizjak@gmail.com>
2885
2886         * config/i386/i386.md (*dec_cmov<mode>): New define_insn_and_split
2887         to generate a conditional move using the carry flag after sub $1.
2888         (peephole2): Eliminate a register-to-register move by inverting
2889         the condition of a conditional move.
2890
2891 2021-07-30  Hans-Peter Nilsson  <hp@bitrange.com>
2892
2893         * config/mmix/mmix.md ("call", "call_value", "*call_real")
2894         ("*call_value_real"): Don't generate rtx mentioning the generic
2895         operands 1 and 2 to "call", and similarly for "call_value".
2896         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p)
2897         (mmix_print_operand): Use '!' instead of 'p'.
2898
2899 2021-07-30  Hans-Peter Nilsson  <hp@bitrange.com>
2900
2901         * doc/md.texi (call): Correct information about operand 2.
2902         * config/mmix/mmix.md ("call", "call_value"): Remove fixed FIXMEs.
2903
2904 2021-07-30  Andrew MacLeod  <amacleod@redhat.com>
2905
2906         * range-op.cc (operator_trunc_mod::wi_fold): Fold constants.
2907
2908 2021-07-30  Andrew MacLeod  <amacleod@redhat.com>
2909
2910         * range-op.cc (operator_div::wi_fold): Return UNDEFINED for [0, 0] divisor.
2911
2912 2021-07-30  Andrew MacLeod  <amacleod@redhat.com>
2913
2914         * gimple-range-cache.cc (*::set_bb_range): Change const basic_block to
2915         const_basic_block..
2916         (*::get_bb_range): Ditto.
2917         (*::bb_range_p): Ditto.
2918         * gimple-range-cache.h: Change prototypes.
2919
2920 2021-07-30  H.J. Lu  <hjl.tools@gmail.com>
2921
2922         PR middle-end/90773
2923         * builtins.c (builtin_memcpy_read_str): Change the mode argument
2924         from scalar_int_mode to fixed_size_mode.
2925         (builtin_strncpy_read_str): Likewise.
2926         (gen_memset_value_from_prev): New function.
2927         (builtin_memset_read_str): Change the mode argument from
2928         scalar_int_mode to fixed_size_mode.  Use gen_memset_value_from_prev
2929         and support CONST_VECTOR.
2930         (builtin_memset_gen_str): Likewise.
2931         (try_store_by_multiple_pieces): Use by_pieces_constfn to declare
2932         constfun.
2933         * builtins.h (builtin_strncpy_read_str): Replace scalar_int_mode
2934         with fixed_size_mode.
2935         (builtin_memset_read_str): Likewise.
2936         * expr.c (widest_int_mode_for_size): Renamed to ...
2937         (widest_fixed_size_mode_for_size): Add a bool argument to
2938         indicate if QI vector mode can be used.
2939         (by_pieces_ninsns): Call widest_fixed_size_mode_for_size
2940         instead of widest_int_mode_for_size.
2941         (pieces_addr::adjust): Change the mode argument from
2942         scalar_int_mode to fixed_size_mode.
2943         (op_by_pieces_d): Make m_len read-only.  Add a bool member,
2944         m_qi_vector_mode, to indicate that QI vector mode can be used.
2945         (op_by_pieces_d::op_by_pieces_d): Add a bool argument to
2946         initialize m_qi_vector_mode.  Call widest_fixed_size_mode_for_size
2947         instead of widest_int_mode_for_size.
2948         (op_by_pieces_d::get_usable_mode): Change the mode argument from
2949         scalar_int_mode to fixed_size_mode.  Call
2950         widest_fixed_size_mode_for_size instead of
2951         widest_int_mode_for_size.
2952         (op_by_pieces_d::smallest_fixed_size_mode_for_size): New member
2953         function to return the smallest integer or QI vector mode.
2954         (op_by_pieces_d::run): Call widest_fixed_size_mode_for_size
2955         instead of widest_int_mode_for_size.  Call
2956         smallest_fixed_size_mode_for_size instead of
2957         smallest_int_mode_for_size.
2958         (store_by_pieces_d::store_by_pieces_d): Add a bool argument to
2959         indicate that QI vector mode can be used and pass it to
2960         op_by_pieces_d::op_by_pieces_d.
2961         (can_store_by_pieces): Call widest_fixed_size_mode_for_size
2962         instead of widest_int_mode_for_size.  Pass memsetp to
2963         widest_fixed_size_mode_for_size to support QI vector mode.
2964         Allow all CONST_VECTORs for memset if vec_duplicate is supported.
2965         (store_by_pieces): Pass memsetp to
2966         store_by_pieces_d::store_by_pieces_d.
2967         (clear_by_pieces_1): Removed.
2968         (clear_by_pieces): Replace clear_by_pieces_1 with
2969         builtin_memset_read_str and pass true to store_by_pieces_d to
2970         support vector mode broadcast.
2971         (string_cst_read_str): Change the mode argument from
2972         scalar_int_mode to fixed_size_mode.
2973         * expr.h (by_pieces_constfn): Change scalar_int_mode to
2974         fixed_size_mode.
2975         (by_pieces_prev): Likewise.
2976         * rtl.h (lowpart_subreg_regno): New.
2977         * rtlanal.c (lowpart_subreg_regno): New.  A wrapper around
2978         simplify_subreg_regno.
2979         * target.def (gen_memset_scratch_rtx): New hook.
2980         * doc/tm.texi.in: Add TARGET_GEN_MEMSET_SCRATCH_RTX.
2981         * doc/tm.texi: Regenerated.
2982
2983 2021-07-30  Xi Ruoyao  <xry111@mengyan1223.wang>
2984
2985         PR target/94780
2986         * config/mips/mips.c (mips_atomic_assign_expand_fenv): Use
2987           TARGET_EXPR instead of MODIFY_EXPR.
2988
2989 2021-07-30  Xi Ruoyao  <xry111@mengyan1223.wang>
2990
2991         PR target/101132
2992         * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Declare.
2993         * config/mips/mips.c (mips_expand_vec_cmp_expr): New function.
2994         * config/mips/mips-msa.md (vec_cmp<MSA:mode><mode_i>): New
2995           expander.
2996           (vec_cmpu<IMSA:mode><mode_i>): New expander.
2997
2998 2021-07-30  H.J. Lu  <hjl.tools@gmail.com>
2999
3000         PR target/101685
3001         * config/i386/i386-options.c (ix86_option_override_internal):
3002         Don't enable LZCNT/POPCNT if they have been disabled explicitly.
3003
3004 2021-07-30  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
3005
3006         PR target/66791
3007         * config/arm/arm_neon.h (vld1_p64): Replace call to builtin by
3008         explicitly dereferencing __a.
3009         (vld1_s64): Likewise.
3010         (vld1_u64): Likewise.
3011         * config/arm/arm_neon_builtins.def (vld1): Remove entry for di
3012         and change to VAR13.
3013
3014 2021-07-30  Aldy Hernandez  <aldyh@redhat.com>
3015
3016         * gimple-loop-versioning.cc (lv_dom_walker::lv_dom_walker): Remove
3017         use of m_range_analyzer.
3018         (loop_versioning::lv_dom_walker::before_dom_children): Same.
3019         (loop_versioning::lv_dom_walker::after_dom_children): Remove.
3020         (loop_versioning::prune_loop_conditions): Replace vr_values use
3021         with range_query interface.
3022         (pass_loop_versioning::execute): Use ranger.
3023
3024 2021-07-30  Xi Ruoyao  <xry111@mengyan1223.wang>
3025
3026         PR ipa/101396
3027         * ipa-devirt.c (ipa_odr_read_section): Compare the precision of
3028           enum values, and emit a warning if they mismatch.
3029
3030 2021-07-30  Kewen Lin  <linkw@linux.ibm.com>
3031
3032         * cfgloop.h (as_const): New function.
3033         (class loop_iterator): Rename to ...
3034         (class loops_list): ... this.
3035         (loop_iterator::next): Rename to ...
3036         (loops_list::Iter::fill_curr_loop): ... this and adjust.
3037         (loop_iterator::loop_iterator): Rename to ...
3038         (loops_list::loops_list): ... this and adjust.
3039         (loops_list::Iter): New class.
3040         (loops_list::iterator): New type.
3041         (loops_list::const_iterator): New type.
3042         (loops_list::begin): New function.
3043         (loops_list::end): Likewise.
3044         (loops_list::begin const): Likewise.
3045         (loops_list::end const): Likewise.
3046         (FOR_EACH_LOOP): Remove.
3047         (FOR_EACH_LOOP_FN): Remove.
3048         * cfgloop.c (flow_loops_dump): Adjust FOR_EACH_LOOP* with range-based
3049         for loop with loops_list instance.
3050         (sort_sibling_loops): Likewise.
3051         (disambiguate_loops_with_multiple_latches): Likewise.
3052         (verify_loop_structure): Likewise.
3053         * cfgloopmanip.c (create_preheaders): Likewise.
3054         (force_single_succ_latches): Likewise.
3055         * config/aarch64/falkor-tag-collision-avoidance.c
3056         (execute_tag_collision_avoidance): Likewise.
3057         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Likewise.
3058         * config/s390/s390.c (s390_adjust_loops): Likewise.
3059         * doc/loop.texi: Likewise.
3060         * gimple-loop-interchange.cc (pass_linterchange::execute): Likewise.
3061         * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
3062         * gimple-loop-versioning.cc (loop_versioning::analyze_blocks): Likewise.
3063         (loop_versioning::make_versioning_decisions): Likewise.
3064         * gimple-ssa-split-paths.c (split_paths): Likewise.
3065         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Likewise.
3066         * graphite.c (canonicalize_loop_form): Likewise.
3067         (graphite_transform_loops): Likewise.
3068         * ipa-fnsummary.c (analyze_function_body): Likewise.
3069         * ipa-pure-const.c (analyze_function): Likewise.
3070         * loop-doloop.c (doloop_optimize_loops): Likewise.
3071         * loop-init.c (loop_optimizer_finalize): Likewise.
3072         (fix_loop_structure): Likewise.
3073         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
3074         (move_loop_invariants): Likewise.
3075         * loop-unroll.c (decide_unrolling): Likewise.
3076         (unroll_loops): Likewise.
3077         * modulo-sched.c (sms_schedule): Likewise.
3078         * predict.c (predict_loops): Likewise.
3079         (pass_profile::execute): Likewise.
3080         * profile.c (branch_prob): Likewise.
3081         * sel-sched-ir.c (sel_finish_pipelining): Likewise.
3082         (sel_find_rgns): Likewise.
3083         * tree-cfg.c (replace_loop_annotate): Likewise.
3084         (replace_uses_by): Likewise.
3085         (move_sese_region_to_fn): Likewise.
3086         * tree-if-conv.c (pass_if_conversion::execute): Likewise.
3087         * tree-loop-distribution.c (loop_distribution::execute): Likewise.
3088         * tree-parloops.c (parallelize_loops): Likewise.
3089         * tree-predcom.c (tree_predictive_commoning): Likewise.
3090         * tree-scalar-evolution.c (scev_initialize): Likewise.
3091         (scev_reset): Likewise.
3092         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
3093         * tree-ssa-live.c (remove_unused_locals): Likewise.
3094         * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise.
3095         * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
3096         (tree_ssa_lim_initialize): Likewise.
3097         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
3098         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Likewise.
3099         * tree-ssa-loop-manip.c (get_loops_exits): Likewise.
3100         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): Likewise.
3101         (free_numbers_of_iterations_estimates): Likewise.
3102         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
3103         * tree-ssa-loop-split.c (tree_ssa_split_loops): Likewise.
3104         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Likewise.
3105         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
3106         (pass_scev_cprop::execute): Likewise.
3107         * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
3108         * tree-ssa-sccvn.c (do_rpo_vn): Likewise.
3109         * tree-ssa-threadupdate.c
3110         (jump_thread_path_registry::thread_through_all_blocks): Likewise.
3111         * tree-vectorizer.c (vectorize_loops): Likewise.
3112         * tree-vrp.c (vrp_asserts::find_assert_locations): Likewise.
3113
3114 2021-07-29  Hans-Peter Nilsson  <hp@bitrange.com>
3115
3116         * config/mmix/mmix.c (mmix_function_arg_1): Avoid
3117         generating a VOIDmode register for e.g the
3118         function_arg_info::end_marker.
3119
3120 2021-07-29  Jeff Law  <jeffreyalaw@gmail.com>
3121
3122         * config/h8300/h8300-modes.def: Add CCZ, CCV and CCC, drop CCZNV.
3123         * config/h8300/h8300.md (H8cc mode iterator): Add CCZ.
3124         (cc mode_attr): Similarly.
3125         (ccz subst_attr): Similarly.
3126         * config/h8300/jumpcall.md: Add new patterns for branch-on-bit.
3127         * config/h8300/testcompare.md: Remove various cc0 based patterns
3128         that had been commented out.  Add pattern to set CCZ from a bit
3129         test.
3130
3131 2021-07-29  Thomas Schwinge  <thomas@codesourcery.com>
3132             Julian Brown  <julian@codesourcery.com>
3133             Kwok Cheung Yeung  <kcy@codesourcery.com>
3134
3135         * omp-offload.c (oacc_loop_xform_head_tail, oacc_loop_process):
3136         'update_stmt' after modification.
3137         (pass_oacc_loop_designation): New function, extracted out of...
3138         (pass_oacc_device_lower): ... this.
3139         (pass_data_oacc_loop_designation, pass_oacc_loop_designation)
3140         (make_pass_oacc_loop_designation): New
3141         * passes.def: Add it.
3142         * tree-parloops.c (create_parallel_loop): Adjust.
3143         * tree-pass.h (make_pass_oacc_loop_designation): New.
3144
3145 2021-07-29  Aldy Hernandez  <aldyh@redhat.com>
3146
3147         * flag-types.h (enum threader_mode): New.
3148         * params.opt: Add entry for --param=threader-mode.
3149         * tree-ssa-threadbackward.c (THREADER_ITERATIVE_MODE): New.
3150         (class back_threader): New.
3151         (back_threader::back_threader): New.
3152         (back_threader::~back_threader): New.
3153         (back_threader::maybe_register_path): New.
3154         (back_threader::find_taken_edge): New.
3155         (back_threader::find_taken_edge_switch): New.
3156         (back_threader::find_taken_edge_cond): New.
3157         (back_threader::resolve_def): New.
3158         (back_threader::resolve_phi): New.
3159         (back_threader::find_paths_to_names): New.
3160         (back_threader::find_paths): New.
3161         (dump_path): New.
3162         (debug): New.
3163         (thread_jumps::find_jump_threads_backwards): Call ranger threader.
3164         (thread_jumps::find_jump_threads_backwards_with_ranger): New.
3165         (pass_thread_jumps::execute): Abstract out code...
3166         (try_thread_blocks): ...here.
3167         * tree-ssa-threadedge.c (jump_threader::thread_outgoing_edges):
3168         Abstract out threading candidate code to...
3169         (single_succ_to_potentially_threadable_block): ...here.
3170         * tree-ssa-threadedge.h (single_succ_to_potentially_threadable_block):
3171         New.
3172         * tree-ssa-threadupdate.c (register_jump_thread): Return boolean.
3173         * tree-ssa-threadupdate.h (class jump_thread_path_registry):
3174         Return bool from register_jump_thread.
3175
3176 2021-07-29  Andreas Krebbel  <krebbel@linux.ibm.com>
3177
3178         * target.def: in0 and in1 do not need to be registers.
3179         * doc/tm.texi: Regenerate.
3180
3181 2021-07-29  liuhongt  <hongtao.liu@intel.com>
3182
3183         PR target/39821
3184         * config/i386/i386.c (ix86_widen_mult_cost): New function.
3185         (ix86_add_stmt_cost): Use ix86_widen_mult_cost for
3186         WIDEN_MULT_EXPR.
3187
3188 2021-07-29  Jiufu Guo  <guojiufu@linux.ibm.com>
3189
3190         PR target/61837
3191         * config/rs6000/rs6000.c (TARGET_PREFERRED_DOLOOP_MODE): New hook.
3192         (rs6000_preferred_doloop_mode): New hook.
3193         * doc/tm.texi: Regenerate.
3194         * doc/tm.texi.in: Add hook preferred_doloop_mode.
3195         * target.def (preferred_doloop_mode): New hook.
3196         * targhooks.c (default_preferred_doloop_mode): New hook.
3197         * targhooks.h (default_preferred_doloop_mode): New hook.
3198         * tree-ssa-loop-ivopts.c (compute_doloop_base_on_mode): New function.
3199         (add_iv_candidate_for_doloop): Call targetm.preferred_doloop_mode
3200         and compute_doloop_base_on_mode.
3201
3202 2021-07-28  Martin Sebor  <msebor@redhat.com>
3203
3204         PR middle-end/101494
3205         * tree-ssa-uninit.c (maybe_warn_operand): Correct object offset
3206         and size computation.
3207
3208 2021-07-28  Martin Sebor  <msebor@redhat.com>
3209
3210         PR middle-end/101601
3211         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Remove
3212         a pointless test.
3213         Handle pointers to functions.
3214
3215 2021-07-28  Martin Sebor  <msebor@redhat.com>
3216
3217         * Makefile.in (OBJS): Add gimple-ssa-warn-access.o and pointer-query.o.
3218         * attribs.h (fndecl_dealloc_argno): Move fndecl_dealloc_argno to tree.h.
3219         * builtins.c (compute_objsize_r): Move to pointer-query.cc.
3220         (access_ref::access_ref): Same.
3221         (access_ref::phi): Same.
3222         (access_ref::get_ref): Same.
3223         (access_ref::size_remaining): Same.
3224         (access_ref::offset_in_range): Same.
3225         (access_ref::add_offset): Same.
3226         (access_ref::inform_access): Same.
3227         (ssa_name_limit_t::visit_phi): Same.
3228         (ssa_name_limit_t::leave_phi): Same.
3229         (ssa_name_limit_t::next): Same.
3230         (ssa_name_limit_t::next_phi): Same.
3231         (ssa_name_limit_t::~ssa_name_limit_t): Same.
3232         (pointer_query::pointer_query): Same.
3233         (pointer_query::get_ref): Same.
3234         (pointer_query::put_ref): Same.
3235         (pointer_query::flush_cache): Same.
3236         (warn_string_no_nul): Move to gimple-ssa-warn-access.cc.
3237         (check_nul_terminated_array): Same.
3238         (unterminated_array): Same.
3239         (maybe_warn_for_bound): Same.
3240         (check_read_access): Same.
3241         (warn_for_access): Same.
3242         (get_size_range): Same.
3243         (check_access): Same.
3244         (gimple_call_alloc_size): Move to tree.c.
3245         (gimple_parm_array_size): Move to pointer-query.cc.
3246         (get_offset_range): Same.
3247         (gimple_call_return_array): Same.
3248         (handle_min_max_size): Same.
3249         (handle_array_ref): Same.
3250         (handle_mem_ref): Same.
3251         (compute_objsize): Same.
3252         (gimple_call_alloc_p): Move to gimple-ssa-warn-access.cc.
3253         (call_dealloc_argno): Same.
3254         (fndecl_dealloc_argno): Same.
3255         (new_delete_mismatch_p): Same.
3256         (matching_alloc_calls_p): Same.
3257         (warn_dealloc_offset): Same.
3258         (maybe_emit_free_warning): Same.
3259         * builtins.h (check_nul_terminated_array): Move to
3260         gimple-ssa-warn-access.h.
3261         (check_nul_terminated_array): Same.
3262         (warn_string_no_nul): Same.
3263         (unterminated_array): Same.
3264         (class ssa_name_limit_t): Same.
3265         (class pointer_query): Same.
3266         (struct access_ref): Same.
3267         (class range_query): Same.
3268         (struct access_data): Same.
3269         (gimple_call_alloc_size): Same.
3270         (gimple_parm_array_size): Same.
3271         (compute_objsize): Same.
3272         (class access_data): Same.
3273         (maybe_emit_free_warning): Same.
3274         * calls.c (initialize_argument_information): Remove call to
3275         maybe_emit_free_warning.
3276         * gimple-array-bounds.cc: Include new header..
3277         * gimple-fold.c: Same.
3278         * gimple-ssa-sprintf.c: Same.
3279         * gimple-ssa-warn-restrict.c: Same.
3280         * passes.def: Add pass_warn_access.
3281         * tree-pass.h (make_pass_warn_access): Declare.
3282         * tree-ssa-strlen.c: Include new headers.
3283         * tree.c (fndecl_dealloc_argno): Move here from builtins.c.
3284         * tree.h (fndecl_dealloc_argno): Move here from attribs.h.
3285         * gimple-ssa-warn-access.cc: New file.
3286         * gimple-ssa-warn-access.h: New file.
3287         * pointer-query.cc: New file.
3288         * pointer-query.h: New file.
3289
3290 2021-07-28  Jakub Jelinek  <jakub@redhat.com>
3291
3292         PR middle-end/101624
3293         * ubsan.c (maybe_instrument_pointer_overflow,
3294         instrument_object_size): Only test DECL_REGISTER on VAR_DECLs,
3295         PARM_DECLs or RESULT_DECLs.
3296         * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise.
3297
3298 2021-07-28  Jakub Jelinek  <jakub@redhat.com>
3299
3300         PR middle-end/101642
3301         * match.pd (bswap16 (x) == bswap16 (y)): Cast both operands
3302         to type of bswap16 for comparison.
3303         (bswap16 (x) == cst): Cast bswap16 operand to type of cst.
3304
3305 2021-07-28  Richard Biener  <rguenther@suse.de>
3306
3307         PR tree-optimization/101615
3308         * tree-vect-slp.c (vect_optimize_slp): Materialize permutes
3309         at CTOR SLP graph entries.
3310
3311 2021-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3312
3313         * config/aarch64/aarch64.md (*extend<SHORT:mode><GPI:mode>2_aarch64):
3314         Add "r,w" alternative.
3315
3316 2021-07-28  H.J. Lu  <hjl.tools@gmail.com>
3317
3318         PR target/101456
3319         * config/i386/i386.c (ix86_avx_u128_mode_needed): Don't set
3320         AVX_U128_DIRTY when all bits are zero.
3321
3322 2021-07-28  Richard Biener  <rguenther@suse.de>
3323
3324         PR tree-optimization/101615
3325         * tree-vect-slp.c (vect_optimize_slp): Pre-existing vector
3326         external nodes cannot be permuted so make them perm_out 0.
3327
3328 2021-07-28  Andrew Stubbs  <ams@codesourcery.com>
3329
3330         PR target/100208
3331         * config.in: Regenerate.
3332         * config/gcn/gcn-hsa.h (A_FIJI): New define.
3333         (A_900): New define.
3334         (A_906): New define.
3335         (A_908): New define.
3336         (ASM_SPEC): Use A_FIJI, A_900, A_906 and A_908.
3337         * config/gcn/gcn.c (output_file_start): Adjust attributes according
3338         to the assembler capabilities.
3339         * config/gcn/mkoffload.c (main): Likewise.
3340         * configure: Regenerate.
3341         * configure.ac: Add tests for LLVM assembler attribute features.
3342
3343 2021-07-28  Andrew MacLeod  <amacleod@redhat.com>
3344
3345         * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Check for
3346         cond_false and cond_true on branches.
3347
3348 2021-07-28  Bin Cheng  <bin.cheng@linux.alibaba.com>
3349
3350         * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): use
3351         gcc_stablesort.
3352
3353 2021-07-28  Bin Cheng  <bin.cheng@linux.alibaba.com>
3354
3355         * alias.c (init_alias_analysis): Don't skip prologue/epilogue.
3356
3357 2021-07-28  Jakub Jelinek  <jakub@redhat.com>
3358
3359         PR target/101611
3360         * config/i386/sse.md (vashr<mode>3): Split into vashrv8di3 expander
3361         and vashrv4di3 expander, where the latter requires just TARGET_AVX2
3362         and has special !TARGET_AVX512VL expansion.
3363         (vashrv2di3<mask_name>): Rename to ...
3364         (vashrv2di3): ... this.  Change condition to TARGET_XOP || TARGET_AVX2
3365         and add special !TARGET_XOP && !TARGET_AVX512VL expansion.
3366
3367 2021-07-28  Martin Uecker  <muecker@gwdg.de>
3368
3369         * calls.c (maybe_warn_rdwr_sizes): Correct argument
3370         numbers in warning that were switched.
3371
3372 2021-07-28  Kewen Lin  <linkw@linux.ibm.com>
3373
3374         PR tree-optimization/101596
3375         * tree-vect-patterns.c (vect_recog_mulhs_pattern): Fix wrong check
3376         by using new_type's precision instead.
3377
3378 2021-07-28  liuhongt  <hongtao.liu@intel.com>
3379
3380         PR target/99881
3381         * config/i386/i386.h (processor_costs): Add new member
3382         integer_to_sse.
3383         * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost,
3384         i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost,
3385         geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost,
3386         bdver_cost, znver1_cost, znver2_cost, znver3_cost,
3387         btver1_cost, btver2_cost, btver3_cost, pentium4_cost,
3388         nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost,
3389         generic_cost, core_cost): Initialize integer_to_sse same value
3390         as sse_op.
3391         (skylake_cost): Initialize integer_to_sse twice as much as sse_op.
3392         * config/i386/i386.c (ix86_builtin_vectorization_cost):
3393         Use integer_to_sse instead of sse_op to calculate the cost of
3394         vec_construct.
3395
3396 2021-07-27  Bill Schmidt  <wschmidt@linux.ibm.com>
3397
3398         * config/rs6000/rs6000-gen-builtins.c (write_ovld_static_init): New
3399         function.
3400         (write_init_file): Call write_ovld_static_init.
3401
3402 2021-07-27  Bill Schmidt  <wschmidt@linux.ibm.com>
3403
3404         * config/rs6000/rs6000-gen-builtins.c (write_bif_static_init): New
3405         function.
3406         (write_init_file): Call write_bif_static_init.
3407
3408 2021-07-27  Bill Schmidt  <wschmidt@linux.ibm.com>
3409
3410         * config/rs6000/rs6000-gen-builtins.c (typemap): New struct.
3411         (TYPE_MAP_SIZE): New macro.
3412         (type_map): New initialized variable.
3413         (typemap_cmp): New function.
3414         (write_type_node): Likewise.
3415         (write_fntype_init): Implement.
3416
3417 2021-07-27  Martin Sebor  <msebor@redhat.com>
3418
3419         PR tree-optimization/101584
3420         * tree-ssa-uninit.c (builtin_call_nomodifying_p): New function.
3421         (check_defs): Call it.
3422
3423 2021-07-27  Aldy Hernandez  <aldyh@redhat.com>
3424
3425         * tree-ssa-dom.c (dom_jump_threader_simplifier):
3426         Put avail_exprs_stack in the class, instead of passing it to
3427         jump_threader_simplifier.
3428         (dom_jump_threader_simplifier::simplify): Add state argument.
3429         (dom_opt_dom_walker): Add state.
3430         (pass_dominator::execute): Pass state to threader.
3431         (dom_opt_dom_walker::before_dom_children): Use state.
3432         * tree-ssa-threadedge.c (jump_threader::jump_threader): Replace
3433         arguments by state.
3434         (jump_threader::record_temporary_equivalences_from_phis):
3435         Register equivalences through the state variable.
3436         (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
3437         Record ranges in a statement through the state variable.
3438         (jump_threader::simplify_control_stmt_condition): Pass state to
3439         simplify.
3440         (jump_threader::simplify_control_stmt_condition_1): Same.
3441         (jump_threader::thread_around_empty_blocks): Remove obsolete
3442         comment.
3443         (jump_threader::thread_through_normal_block): Record equivalences
3444         on edge through the state variable.
3445         (jump_threader::thread_across_edge): Abstract state pushing.
3446         (jt_state::jt_state): New.
3447         (jt_state::push): New.
3448         (jt_state::pop): New.
3449         (jt_state::register_equiv): New.
3450         (jt_state::record_ranges_from_stmt): New.
3451         (jt_state::register_equivs_on_edge): New.
3452         (jump_threader_simplifier::jump_threader_simplifier): Move from
3453         header.
3454         (jump_threader_simplifier::simplify): Add state argument.
3455         * tree-ssa-threadedge.h (class jt_state): New.
3456         (class jump_threader): Add state to constructor.
3457         (class jump_threader_simplifier): Add state to simplify.  Remove
3458         avail_exprs_stack from class.
3459         * tree-vrp.c (vrp_jump_threader_simplifier::simplify): Add state
3460         argument.
3461         (vrp_jump_threader::vrp_jump_threader): Add state.
3462         (vrp_jump_threader::~vrp_jump_threader): Cleanup state.
3463
3464 2021-07-27  Aldy Hernandez  <aldyh@redhat.com>
3465
3466         * Makefile.in (OBJS): Add gimple-range-path.o.
3467         * gimple-range-path.cc: New file.
3468         * gimple-range-path.h: New file.
3469
3470 2021-07-27  Jonathan Wright  <jonathan.wright@arm.com>
3471
3472         * config/aarch64/aarch64-simd.md: Push sign/zero-extension
3473         inside vec_duplicate for all patterns.
3474         * simplify-rtx.c (simplify_context::simplify_unary_operation_1):
3475         Push sign/zero-extension inside vec_duplicate.
3476
3477 2021-07-27  Richard Biener  <rguenther@suse.de>
3478
3479         PR tree-optimization/101573
3480         * tree-ssa-uninit.c (warn_uninit_phi_uses): New function
3481         looking at uninitialized PHI arg defs in some constrained cases.
3482         (warn_uninitialized_vars): Call it.
3483         (execute_early_warn_uninitialized): Calculate dominators.
3484
3485 2021-07-27  Richard Biener  <rguenther@suse.de>
3486
3487         PR tree-optimization/39821
3488         * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Use
3489         vector_stmt for widening arithmetic.
3490         (vectorizable_conversion): Adjust.
3491
3492 2021-07-27  Martin Jambor  <mjambor@suse.cz>
3493
3494         * cgraph.h (ipa_replace_map): New field force_load_ref.
3495         * ipa-prop.h (ipa_param_descriptor): Reduce precision of move_cost,
3496         aded new flag load_dereferenced, adjusted comments.
3497         (ipa_get_param_dereferenced): New function.
3498         (ipa_set_param_dereferenced): Likewise.
3499         * cgraphclones.c (cgraph_node::create_virtual_clone): Follow it.
3500         * ipa-cp.c: Include gimple.h.
3501         (ipcp_discover_new_direct_edges): Take into account dereferenced flag.
3502         (get_replacement_map): New parameter force_load_ref, set the
3503         appropriate flag in ipa_replace_map if set.
3504         (struct symbol_and_index_together): New type.
3505         (adjust_refs_in_act_callers): New function.
3506         (adjust_references_in_caller): Likewise.
3507         (create_specialized_node): When appropriate, call
3508         adjust_references_in_caller and force only load references.
3509         * ipa-prop.c (load_from_dereferenced_name): New function.
3510         (ipa_analyze_controlled_uses): Also detect loads from a
3511         dereference, harden testing of call statements.
3512         (ipa_write_node_info): Stream the dereferenced flag.
3513         (ipa_read_node_info): Likewise.
3514         (ipa_set_jf_constant): Also create refdesc when jump function
3515         references a variable.
3516         (cgraph_node_for_jfunc): Rename to symtab_node_for_jfunc, work
3517         also on references of variables and return a symtab_node.  Adjust
3518         all callers.
3519         (propagate_controlled_uses): Also remove references to VAR_DECLs.
3520
3521 2021-07-27  Jakub Jelinek  <jakub@redhat.com>
3522
3523         PR middle-end/101586
3524         * gimple-fold.c (clear_padding_type): Ignore FIELD_DECLs with byte
3525         positions above or equal to sz except for diagnostics of flexible
3526         array members.
3527
3528 2021-07-26  Andrew MacLeod  <amacleod@redhat.com>
3529
3530         PR tree-optimization/78888
3531         * gimple-range-fold.cc (get_letter_range): New.
3532         (fold_using_range::range_of_builtin_call): Call get_letter_range.
3533
3534 2021-07-26  Andrew MacLeod  <amacleod@redhat.com>
3535
3536         PR tree-optimization/78888
3537         * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Add cases
3538         for CFN_BUILT_IN_TOUPPER and CFN_BUILT_IN_TOLOWER.
3539
3540 2021-07-26  Roger Sayle  <roger@nextmovesoftware.com>
3541             Marc Glisse  <marc.glisse@inria.fr>
3542
3543         * match.pd (rotate): Simplify equality/inequality of rotations.
3544         (bswap): Simplify equality/inequality tests of byte swapping.
3545
3546 2021-07-26  Aldy Hernandez  <aldyh@redhat.com>
3547
3548         * range-op.cc (operator_bitwise_xor::op1_op2_relation_effect):
3549         New.
3550
3551 2021-07-26  Aldy Hernandez  <aldyh@redhat.com>
3552
3553         * range-op.cc (operator_lshift::fold_range): Pass rel to
3554         base class fold_range.
3555         (operator_rshift::fold_range): Same.
3556
3557 2021-07-26  Ashimida  <ashimida@linux.alibaba.com>
3558
3559         PR driver/101447
3560         * toplev.h (min_align_loops_log): Remove declaration.
3561         (min_align_jumps_log, min_align_labels_log): Likewise.
3562         (min_align_functions_log): Likewise.
3563
3564 2021-07-26  Aldy Hernandez  <aldyh@redhat.com>
3565
3566         * tree-vrp.c (vrp_simplify_cond_using_ranges): Rename vr_values
3567         with range_query.
3568         (execute_vrp): Abstract out simplification of conditionals...
3569         (simplify_casted_conds): ...here.
3570
3571 2021-07-26  Aldy Hernandez  <aldyh@redhat.com>
3572
3573         * gimple-array-bounds.cc (array_bounds_checker::get_value_range):
3574         Add gimple argument.
3575         (array_bounds_checker::check_array_ref): Same.
3576         (array_bounds_checker::check_addr_expr): Same.
3577         (array_bounds_checker::check_array_bounds): Pass statement to
3578         check_array_bounds and check_addr_expr.
3579         * gimple-array-bounds.h (check_array_bounds): Add gimple argument.
3580         (check_addr_expr): Same.
3581         (get_value_range): Same.
3582
3583 2021-07-26  Tamar Christina  <tamar.christina@arm.com>
3584
3585         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): Rename to..
3586         (sdot_prod, udot_prod): ... This.
3587         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): Merged
3588         into...
3589         (<sur>dot_prod<vsi2qi>): ... this.
3590         (aarch64_<sur>dot_lane<vsi2qi>, aarch64_<sur>dot_laneq<vsi2qi>):
3591         Change operands order.
3592         (<sur>sadv16qi): Use new operands order.
3593         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32,
3594         vdotq_s32): Use new RTL ordering.
3595
3596 2021-07-26  Tamar Christina  <tamar.christina@arm.com>
3597
3598         * config/aarch64/aarch64-builtins.c (TYPES_TERNOP_SUSS,
3599         aarch64_types_ternop_suss_qualifiers): New.
3600         * config/aarch64/aarch64-simd-builtins.def (usdot_prod): Use it.
3601         * config/aarch64/aarch64-simd.md (usdot_prod<vsi2qi>): Re-organize RTL.
3602         * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Use it.
3603
3604 2021-07-23  Jakub Jelinek  <jakub@redhat.com>
3605
3606         PR rtl-optimization/101562
3607         * expmed.c (store_integral_bit_field): Only use movstrict_optab
3608         if the operand isn't paradoxical.
3609
3610 2021-07-23  Aldy Hernandez  <aldyh@redhat.com>
3611
3612         * gimple-array-bounds.h (class array_bounds_checker): Change
3613         ranges type to range_query.
3614
3615 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
3616
3617         * config/aarch64/arm_neon.h (vst1_s64_x2): Use
3618         __builtin_memcpy instead of constructing
3619         __builtin_aarch64_simd_oi one vector at a time.
3620         (vst1_u64_x2): Likewise.
3621         (vst1_f64_x2): Likewise.
3622         (vst1_s8_x2): Likewise.
3623         (vst1_p8_x2): Likewise.
3624         (vst1_s16_x2): Likewise.
3625         (vst1_p16_x2): Likewise.
3626         (vst1_s32_x2): Likewise.
3627         (vst1_u8_x2): Likewise.
3628         (vst1_u16_x2): Likewise.
3629         (vst1_u32_x2): Likewise.
3630         (vst1_f16_x2): Likewise.
3631         (vst1_f32_x2): Likewise.
3632         (vst1_p64_x2): Likewise.
3633         (vst1q_s8_x2): Likewise.
3634         (vst1q_p8_x2): Likewise.
3635         (vst1q_s16_x2): Likewise.
3636         (vst1q_p16_x2): Likewise.
3637         (vst1q_s32_x2): Likewise.
3638         (vst1q_s64_x2): Likewise.
3639         (vst1q_u8_x2): Likewise.
3640         (vst1q_u16_x2): Likewise.
3641         (vst1q_u32_x2): Likewise.
3642         (vst1q_u64_x2): Likewise.
3643         (vst1q_f16_x2): Likewise.
3644         (vst1q_f32_x2): Likewise.
3645         (vst1q_f64_x2): Likewise.
3646         (vst1q_p64_x2): Likewise.
3647
3648 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
3649
3650         * config/aarch64/arm_neon.h (vst1_s64_x3): Use
3651         __builtin_memcpy instead of constructing
3652         __builtin_aarch64_simd_ci one vector at a time.
3653         (vst1_u64_x3): Likewise.
3654         (vst1_f64_x3): Likewise.
3655         (vst1_s8_x3): Likewise.
3656         (vst1_p8_x3): Likewise.
3657         (vst1_s16_x3): Likewise.
3658         (vst1_p16_x3): Likewise.
3659         (vst1_s32_x3): Likewise.
3660         (vst1_u8_x3): Likewise.
3661         (vst1_u16_x3): Likewise.
3662         (vst1_u32_x3): Likewise.
3663         (vst1_f16_x3): Likewise.
3664         (vst1_f32_x3): Likewise.
3665         (vst1_p64_x3): Likewise.
3666         (vst1q_s8_x3): Likewise.
3667         (vst1q_p8_x3): Likewise.
3668         (vst1q_s16_x3): Likewise.
3669         (vst1q_p16_x3): Likewise.
3670         (vst1q_s32_x3): Likewise.
3671         (vst1q_s64_x3): Likewise.
3672         (vst1q_u8_x3): Likewise.
3673         (vst1q_u16_x3): Likewise.
3674         (vst1q_u32_x3): Likewise.
3675         (vst1q_u64_x3): Likewise.
3676         (vst1q_f16_x3): Likewise.
3677         (vst1q_f32_x3): Likewise.
3678         (vst1q_f64_x3): Likewise.
3679         (vst1q_p64_x3): Likewise.
3680
3681 2021-07-23  H.J. Lu  <hjl.tools@gmail.com>
3682
3683         PR target/101504
3684         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): Don't return
3685         hard register when LRA is in progress.
3686
3687 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
3688
3689         * config/aarch64/arm_neon.h (vst1_s8_x4): Use
3690         __builtin_memcpy instead of using a union.
3691         (vst1q_s8_x4): Likewise.
3692         (vst1_s16_x4): Likewise.
3693         (vst1q_s16_x4): Likewise.
3694         (vst1_s32_x4): Likewise.
3695         (vst1q_s32_x4): Likewise.
3696         (vst1_u8_x4): Likewise.
3697         (vst1q_u8_x4): Likewise.
3698         (vst1_u16_x4): Likewise.
3699         (vst1q_u16_x4): Likewise.
3700         (vst1_u32_x4): Likewise.
3701         (vst1q_u32_x4): Likewise.
3702         (vst1_f16_x4): Likewise.
3703         (vst1q_f16_x4): Likewise.
3704         (vst1_f32_x4): Likewise.
3705         (vst1q_f32_x4): Likewise.
3706         (vst1_p8_x4): Likewise.
3707         (vst1q_p8_x4): Likewise.
3708         (vst1_p16_x4): Likewise.
3709         (vst1q_p16_x4): Likewise.
3710         (vst1_s64_x4): Likewise.
3711         (vst1_u64_x4): Likewise.
3712         (vst1_p64_x4): Likewise.
3713         (vst1q_s64_x4): Likewise.
3714         (vst1q_u64_x4): Likewise.
3715         (vst1q_p64_x4): Likewise.
3716         (vst1_f64_x4): Likewise.
3717         (vst1q_f64_x4): Likewise.
3718
3719 2021-07-23  Jonathan Wrightt  <jonathan.wright@arm.com>
3720
3721         * config/aarch64/arm_neon.h (vst2_s64): Use __builtin_memcpy
3722         instead of constructing __builtin_aarch64_simd_oi one vector
3723         at a time.
3724         (vst2_u64): Likewise.
3725         (vst2_f64): Likewise.
3726         (vst2_s8): Likewise.
3727         (vst2_p8): Likewise.
3728         (vst2_s16): Likewise.
3729         (vst2_p16): Likewise.
3730         (vst2_s32): Likewise.
3731         (vst2_u8): Likewise.
3732         (vst2_u16): Likewise.
3733         (vst2_u32): Likewise.
3734         (vst2_f16): Likewise.
3735         (vst2_f32): Likewise.
3736         (vst2_p64): Likewise.
3737         (vst2q_s8): Likewise.
3738         (vst2q_p8): Likewise.
3739         (vst2q_s16): Likewise.
3740         (vst2q_p16): Likewise.
3741         (vst2q_s32): Likewise.
3742         (vst2q_s64): Likewise.
3743         (vst2q_u8): Likewise.
3744         (vst2q_u16): Likewise.
3745         (vst2q_u32): Likewise.
3746         (vst2q_u64): Likewise.
3747         (vst2q_f16): Likewise.
3748         (vst2q_f32): Likewise.
3749         (vst2q_f64): Likewise.
3750         (vst2q_p64): Likewise.
3751
3752 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
3753
3754         * config/aarch64/arm_neon.h (vst3_s64): Use __builtin_memcpy
3755         instead of constructing __builtin_aarch64_simd_ci one vector
3756         at a time.
3757         (vst3_u64): Likewise.
3758         (vst3_f64): Likewise.
3759         (vst3_s8): Likewise.
3760         (vst3_p8): Likewise.
3761         (vst3_s16): Likewise.
3762         (vst3_p16): Likewise.
3763         (vst3_s32): Likewise.
3764         (vst3_u8): Likewise.
3765         (vst3_u16): Likewise.
3766         (vst3_u32): Likewise.
3767         (vst3_f16): Likewise.
3768         (vst3_f32): Likewise.
3769         (vst3_p64): Likewise.
3770         (vst3q_s8): Likewise.
3771         (vst3q_p8): Likewise.
3772         (vst3q_s16): Likewise.
3773         (vst3q_p16): Likewise.
3774         (vst3q_s32): Likewise.
3775         (vst3q_s64): Likewise.
3776         (vst3q_u8): Likewise.
3777         (vst3q_u16): Likewise.
3778         (vst3q_u32): Likewise.
3779         (vst3q_u64): Likewise.
3780         (vst3q_f16): Likewise.
3781         (vst3q_f32): Likewise.
3782         (vst3q_f64): Likewise.
3783         (vst3q_p64): Likewise.
3784
3785 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
3786
3787         * config/aarch64/arm_neon.h (vst4_s64): Use __builtin_memcpy
3788         instead of constructing __builtin_aarch64_simd_xi one vector
3789         at a time.
3790         (vst4_u64): Likewise.
3791         (vst4_f64): Likewise.
3792         (vst4_s8): Likewise.
3793         (vst4_p8): Likewise.
3794         (vst4_s16): Likewise.
3795         (vst4_p16): Likewise.
3796         (vst4_s32): Likewise.
3797         (vst4_u8): Likewise.
3798         (vst4_u16): Likewise.
3799         (vst4_u32): Likewise.
3800         (vst4_f16): Likewise.
3801         (vst4_f32): Likewise.
3802         (vst4_p64): Likewise.
3803         (vst4q_s8): Likewise.
3804         (vst4q_p8): Likewise.
3805         (vst4q_s16): Likewise.
3806         (vst4q_p16): Likewise.
3807         (vst4q_s32): Likewise.
3808         (vst4q_s64): Likewise.
3809         (vst4q_u8): Likewise.
3810         (vst4q_u16): Likewise.
3811         (vst4q_u32): Likewise.
3812         (vst4q_u64): Likewise.
3813         (vst4q_f16): Likewise.
3814         (vst4q_f32): Likewise.
3815         (vst4q_f64): Likewise.
3816         (vst4q_p64): Likewise.
3817
3818 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
3819
3820         * config/aarch64/arm_neon.h (vtbx4_s8): Use __builtin_memcpy
3821         instead of constructing __builtin_aarch64_simd_oi one vector
3822         at a time.
3823         (vtbx4_u8): Likewise.
3824         (vtbx4_p8): Likewise.
3825
3826 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
3827
3828         * config/aarch64/arm_neon.h (vtbl3_s8): Use __builtin_memcpy
3829         instead of constructing __builtin_aarch64_simd_oi one vector
3830         at a time.
3831         (vtbl3_u8): Likewise.
3832         (vtbl3_p8): Likewise.
3833         (vtbl4_s8): Likewise.
3834         (vtbl4_u8): Likewise.
3835         (vtbl4_p8): Likewise.
3836
3837 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
3838
3839         * config/aarch64/arm_neon.h (vqtbx2_s8): Use __builtin_memcpy
3840         instead of constructing __builtin_aarch64_simd_oi one vector
3841         at a time.
3842         (vqtbx2_u8): Likewise.
3843         (vqtbx2_p8): Likewise.
3844         (vqtbx2q_s8): Likewise.
3845         (vqtbx2q_u8): Likewise.
3846         (vqtbx2q_p8): Likewise.
3847         (vqtbx3_s8): Use __builtin_memcpy instead of constructing
3848         __builtin_aarch64_simd_ci one vector at a time.
3849         (vqtbx3_u8): Likewise.
3850         (vqtbx3_p8): Likewise.
3851         (vqtbx3q_s8): Likewise.
3852         (vqtbx3q_u8): Likewise.
3853         (vqtbx3q_p8): Likewise.
3854         (vqtbx4_s8): Use __builtin_memcpy instead of constructing
3855         __builtin_aarch64_simd_xi one vector at a time.
3856         (vqtbx4_u8): Likewise.
3857         (vqtbx4_p8): Likewise.
3858         (vqtbx4q_s8): Likewise.
3859         (vqtbx4q_u8): Likewise.
3860         (vqtbx4q_p8): Likewise.
3861
3862 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
3863
3864         * config/aarch64/arm_neon.h (vqtbl2_s8): Use __builtin_memcpy
3865         instead of constructing __builtin_aarch64_simd_oi one vector
3866         at a time.
3867         (vqtbl2_u8): Likewise.
3868         (vqtbl2_p8): Likewise.
3869         (vqtbl2q_s8): Likewise.
3870         (vqtbl2q_u8): Likewise.
3871         (vqtbl2q_p8): Likewise.
3872         (vqtbl3_s8): Use __builtin_memcpy instead of constructing
3873         __builtin_aarch64_simd_ci one vector at a time.
3874         (vqtbl3_u8): Likewise.
3875         (vqtbl3_p8): Likewise.
3876         (vqtbl3q_s8): Likewise.
3877         (vqtbl3q_u8): Likewise.
3878         (vqtbl3q_p8): Likewise.
3879         (vqtbl4_s8): Use __builtin_memcpy instead of constructing
3880         __builtin_aarch64_simd_xi one vector at a time.
3881         (vqtbl4_u8): Likewise.
3882         (vqtbl4_p8): Likewise.
3883         (vqtbl4q_s8): Likewise.
3884         (vqtbl4q_u8): Likewise.
3885         (vqtbl4q_p8): Likewise.
3886
3887 2021-07-23  Haochen Gui  <guihaoc@gcc.gnu.org>
3888
3889         PR target/100952
3890         * config/rs6000/rs6000.md (cstore<mode>4): Fix wrong fall through.
3891
3892 2021-07-22  Andrew Pinski  <apinski@marvell.com>
3893
3894         PR tree-optimization/10153
3895         * tree-tailcall.c (create_tailcall_accumulator):
3896         Don't call fold_convert as the type should be correct already.
3897         (tree_optimize_tail_calls_1): Use build_{one,zero}_cst instead
3898         of integer_{one,zero}_node for the call of create_tailcall_accumulator.
3899
3900 2021-07-22  Aldy Hernandez  <aldyh@redhat.com>
3901
3902         * gimple-range-cache.cc (non_null_ref::adjust_range): Replace
3903         varying_p check for null/non-null check.
3904
3905 2021-07-22  Andrew MacLeod  <amacleod@redhat.com>
3906
3907         PR tree-optimization/101511
3908         * value-relation.cc (relation_oracle::query_relation): Check if ssa1
3909         is in ssa2's equiv set, and don't trap if so.
3910
3911 2021-07-22  Andrew MacLeod  <amacleod@redhat.com>
3912
3913         PR tree-optimization/101497
3914         * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Check
3915         for undefined.
3916
3917 2021-07-22  Andrew MacLeod  <amacleod@redhat.com>
3918
3919         PR tree-optimization/101496
3920         * vr-values.c (simplify_using_ranges::fold_cond): Call range_of_stmt
3921         first, then vrp_visit_cond_Stmt.
3922
3923 2021-07-22  liuhongt  <hongtao.liu@intel.com>
3924
3925         * config/i386/i386-expand.c
3926         (ix86_broadcast_from_integer_constant): Rename to ..
3927         (ix86_broadcast_from_constant): .. this, and extend it to
3928         handle float mode.
3929         (ix86_expand_vector_move): Extend to float mode.
3930         * config/i386/i386-features.c
3931         (replace_constant_pool_with_broadcast): Remove.
3932         (remove_partial_avx_dependency_gate): Ditto.
3933         (constant_pool_broadcast): Ditto.
3934         (class pass_constant_pool_broadcast): Ditto.
3935         (make_pass_constant_pool_broadcast): Ditto.
3936         (remove_partial_avx_dependency): Adjust gate.
3937         * config/i386/i386-passes.def: Remove pass_constant_pool_broadcast.
3938         * config/i386/i386-protos.h
3939         (make_pass_constant_pool_broadcast): Remove.
3940
3941 2021-07-22  liuhongt  <hongtao.liu@intel.com>
3942
3943         * config/i386/constraints.md (Wb): New constraint.
3944         (Ww): Ditto.
3945         * config/i386/i386.md (*ashlhi3_1): Extend to avx512 mask
3946         shift.
3947         (*ashlqi3_1): Ditto.
3948         (*<insn><mode>3_1): Split to ..
3949         (*ashr<mode>3_1): this, ...
3950         (*lshr<mode>3_1): and this, also extend this pattern to avx512
3951         mask registers.
3952         (*<insn><mode>3_1): Split to ..
3953         (*ashr<mode>3_1): this, ...
3954         (*lshrqi3_1): and this, also extend this pattern to avx512
3955         mask registers.
3956         (*lshrhi3_1): And this, also extend this pattern to avx512
3957         mask registers.
3958         * config/i386/sse.md (k<code><mode>): New define_split after
3959         it to convert generic shift pattern to mask shift ones.
3960
3961 2021-07-21  Thomas Schwinge  <thomas@codesourcery.com>
3962             Joseph Myers  <joseph@codesourcery.com>
3963             Cesar Philippidis  <cesar@codesourcery.com>
3964
3965         * tree-core.h (omp_clause_code): Add 'OMP_CLAUSE_NOHOST'.
3966         * tree.c (omp_clause_num_ops, omp_clause_code_name, walk_tree_1):
3967         Handle it.
3968         * tree-pretty-print.c (dump_omp_clause): Likewise.
3969         * omp-general.c (oacc_verify_routine_clauses): Likewise.
3970         * gimplify.c (gimplify_scan_omp_clauses)
3971         (gimplify_adjust_omp_clauses): Likewise.
3972         * tree-nested.c (convert_nonlocal_omp_clauses)
3973         (convert_local_omp_clauses): Likewise.
3974         * omp-low.c (scan_sharing_clauses): Likewise.
3975         * omp-offload.c (execute_oacc_device_lower): Update.
3976
3977 2021-07-21  Martin Sebor  <msebor@redhat.com>
3978
3979         * tree-ssa-alias.c (walk_aliased_vdefs_1): Fix typos in a comment.
3980
3981 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
3982
3983         * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table):
3984         Implement.
3985
3986 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
3987
3988         * config/rs6000/rs6000-gen-builtins.c (write_fntype): New
3989         callback function.
3990         (write_fntype_init): New stub function.
3991         (write_init_bif_table): Likewise.
3992         (write_init_ovld_table): New function.
3993         (write_init_file): Implement.
3994
3995 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
3996
3997         * config/rs6000/rs6000-gen-builtins.c
3998         (write_autogenerated_header): New function.
3999         (write_decls): Likewise.
4000         (write_extern_fntype): New callback function.
4001         (write_header_file): Implement.
4002
4003 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
4004
4005         * config/rs6000/rs6000-gen-builtins.c (write_defines_file):
4006         Implement.
4007
4008 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
4009
4010         * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New
4011         function.
4012         (complete_base_type): Likewise.
4013         (construct_fntype_id): Likewise.
4014         (parse_bif_entry): Call contruct_fntype_id.
4015         (parse_ovld_entry): Likewise.
4016
4017 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
4018
4019         * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct.
4020         (MAXOVLDSTANZAS): New macro.
4021         (ovld_stanzas): New variable.
4022         (curr_ovld_stanza): Likewise.
4023         (MAXOVLDS): New macro.
4024         (ovlddata): New struct.
4025         (ovlds): New variable.
4026         (curr_ovld): Likewise.
4027         (max_ovld_args): Likewise.
4028         (parse_ovld_entry): New function.
4029         (parse_ovld_stanza): Likewise.
4030         (parse_ovld): Implement.
4031
4032 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
4033
4034         * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs):
4035         Implement.
4036
4037 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
4038
4039         * config/rs6000/rs6000-gen-builtins.c (parse_args): New function.
4040         (parse_prototype): Implement.
4041
4042 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
4043
4044         * config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum.
4045         (curr_bif_stanza): New variable.
4046         (stanza_entry): New struct.
4047         (stanza_map): New initialized variable.
4048         (enable_string): Likewise.
4049         (fnkinds): New enum.
4050         (typelist): New struct.
4051         (attrinfo): Likewise.
4052         (MAXRESTROPNDS): New macro.
4053         (prototype): New struct.
4054         (MAXBIFS): New macro.
4055         (bifdata): New struct.
4056         (bifs): New variable.
4057         (curr_bif): Likewise.
4058         (bif_order): Likewise.
4059         (bif_index): Likewise.
4060         (fatal): New function.
4061         (stanza_name_to_stanza): Likewise.
4062         (parse_bif_attrs): New stub function.
4063         (parse_prototype): Likewise.
4064         (parse_bif_entry): New function.
4065         (parse_bif_stanza): Likewise.
4066         (parse_bif): Implement.
4067         (set_bif_order): New function.
4068         (create_bif_order): Implement.
4069
4070 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
4071
4072         * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include.
4073         (num_bifs): New variable.
4074         (num_ovld_stanzas): Likewise.
4075         (num_ovlds): Likewise.
4076         (parse_codes): New enum.
4077         (bif_rbt): New variable.
4078         (ovld_rbt): Likewise.
4079         (fntype_rbt): Likewise.
4080         (bifo_rbt): Likewise.
4081         (parse_bif): New stub function.
4082         (create_bif_order): Likewise.
4083         (parse_ovld): Likewise.
4084         (write_header_file): Likewise.
4085         (write_init_file): Likewise.
4086         (write_defines_file): Likewise.
4087         (delete_output_files): New function.
4088         (main): Likewise.
4089
4090 2021-07-21  H.J. Lu  <hjl.tools@gmail.com>
4091
4092         PR target/101549
4093         * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2
4094         from CRC32 _builtin functions.
4095
4096 2021-07-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4097
4098         * coverage.c (build_gcov_info_var_registration): Mark the object placed
4099         in the linker set as referenced so that it does not get optimized away.
4100
4101 2021-07-21  Kito Cheng  <kito.cheng@sifive.com>
4102
4103         Revert:
4104         2021-07-20  Kito Cheng  <kito.cheng@sifive.com>
4105
4106         * config.gcc (riscv*-*-*): Detect which python is available.
4107
4108 2021-07-21  Jakub Jelinek  <jakub@redhat.com>
4109
4110         PR middle-end/101535
4111         * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA
4112         contexts in which decl isn't privatized and for ORT_TARGET return
4113         false if decl is mapped.
4114
4115 2021-07-21  Richard Sandiford  <richard.sandiford@arm.com>
4116
4117         * gimple-loop-jam.c: Include tree-ssa-sccvn.h.
4118         (tree_loop_unroll_and_jam): Run value-numbering on a loop that
4119         has been successfully unrolled.
4120
4121 2021-07-21  Richard Sandiford  <richard.sandiford@arm.com>
4122
4123         * tree-ssa-loop-manip.c (determine_exit_conditions): Return a null
4124         exit condition if no tail loop is needed, and if the original exit
4125         condition should therefore be kept as-is.
4126         (tree_transform_and_unroll_loop): Handle that case here too.
4127
4128 2021-07-21  Kewen Lin  <linkw@linux.ibm.com>
4129
4130         * tree-data-ref.c (free_dependence_relations): Adjust to pass vec
4131         by reference.
4132         (free_data_refs): Likewise.
4133         * tree-data-ref.h (free_dependence_relations): Likewise.
4134         (free_data_refs): Likewise.
4135         * tree-predcom.c (struct chain): Use auto_vec instead of vec for
4136         members.
4137         (struct component): Likewise.
4138         (pcom_worker::pcom_worker): Adjust for auto_vec and renaming changes.
4139         (pcom_worker::~pcom_worker): Likewise.
4140         (pcom_worker::release_chain): Adjust as auto_vec changes.
4141         (pcom_worker::loop): Rename to ...
4142         (pcom_worker::m_loop): ... this.
4143         (pcom_worker::datarefs): Rename to ...
4144         (pcom_worker::m_datarefs): ... this.  Use auto_vec instead of vec.
4145         (pcom_worker::dependences): Rename to ...
4146         (pcom_worker::m_dependences): ... this.  Use auto_vec instead of vec.
4147         (pcom_worker::chains): Rename to ...
4148         (pcom_worker::m_chains): ... this.  Use auto_vec instead of vec.
4149         (pcom_worker::looparound_phis): Rename to ...
4150         (pcom_worker::m_looparound_phis): ... this.  Use auto_vec instead of
4151         vec.
4152         (pcom_worker::cache): Rename to ...
4153         (pcom_worker::m_cache): ... this.  Use auto_vec instead of vec.
4154         (pcom_worker::release_chain): Adjust for auto_vec changes.
4155         (pcom_worker::release_chains): Adjust for auto_vec and renaming
4156         changes.
4157         (release_component): Remove.
4158         (release_components): Adjust for release_component removal.
4159         (component_of): Adjust to use vec.
4160         (merge_comps): Likewise.
4161         (pcom_worker::aff_combination_dr_offset): Adjust for renaming changes.
4162         (pcom_worker::determine_offset): Likewise.
4163         (class comp_ptrs): Remove.
4164         (pcom_worker::split_data_refs_to_components): Adjust for renaming
4165         changes, for comp_ptrs removal with auto_vec.
4166         (pcom_worker::suitable_component_p): Adjust for renaming changes.
4167         (pcom_worker::filter_suitable_components): Adjust for release_component
4168         removal.
4169         (pcom_worker::valid_initializer_p): Adjust for renaming changes.
4170         (pcom_worker::find_looparound_phi): Likewise.
4171         (pcom_worker::add_looparound_copies): Likewise.
4172         (pcom_worker::determine_roots_comp): Likewise.
4173         (pcom_worker::single_nonlooparound_use): Likewise.
4174         (pcom_worker::execute_pred_commoning_chain): Likewise.
4175         (pcom_worker::execute_pred_commoning): Likewise.
4176         (pcom_worker::try_combine_chains): Likewise.
4177         (pcom_worker::prepare_initializers_chain): Likewise.
4178         (pcom_worker::prepare_initializers): Likewise.
4179         (pcom_worker::prepare_finalizers_chain): Likewise.
4180         (pcom_worker::prepare_finalizers): Likewise.
4181         (pcom_worker::tree_predictive_commoning_loop): Likewise.
4182
4183 2021-07-20  Martin Sebor  <msebor@redhat.com>
4184
4185         PR middle-end/101397
4186         * builtins.c (gimple_call_return_array): Add argument.  Correct
4187         offsets for memchr, mempcpy, stpcpy, and stpncpy.
4188         (compute_objsize_r): Adjust offset computation for argument returning
4189         built-ins.
4190
4191 2021-07-20  Martin Sebor  <msebor@redhat.com>
4192
4193         PR middle-end/101300
4194         * tree-ssa-uninit.c (check_defs): Handle UBSAN built-ins.
4195
4196 2021-07-20  Jeff Law  <jlaw@localhost.localdomain>
4197
4198         * function.c (assign_parm_setup_block): Use adjust_address instead
4199         of change_address to preserve MEM_EXPR and friends.
4200
4201 2021-07-20  Martin Sebor  <msebor@redhat.com>
4202
4203         * cfgloop.h (single_likely_exit): Adjust by-value argument to
4204         by-const-reference.
4205         * cfgloopanal.c (single_likely_exit): Same.
4206         * cgraph.h (struct cgraph_node): Same.
4207         * cgraphclones.c (cgraph_node::create_virtual_clone): Same.
4208         * genautomata.c (merge_states): Same.
4209         * genextract.c (VEC_char_to_string): Same.
4210         * genmatch.c (dt_node::gen_kids_1): Same.
4211         (walk_captures): Adjust by-value argument to by-reference.
4212         * gimple-ssa-store-merging.c (check_no_overlap): Adjust by-value argument
4213         to by-const-reference.
4214         * gimple.c (gimple_build_call_vec): Same.
4215         (gimple_build_call_internal_vec): Same.
4216         (gimple_build_switch): Same.
4217         (sort_case_labels): Same.
4218         (preprocess_case_label_vec_for_gimple): Adjust by-value argument to
4219         by-reference.
4220         * gimple.h (gimple_build_call_vec): Adjust by-value argument to
4221         by-const-reference.
4222         (gimple_build_call_internal_vec): Same.
4223         (gimple_build_switch): Same.
4224         (sort_case_labels): Same.
4225         (preprocess_case_label_vec_for_gimple): Adjust by-value argument to
4226         by-reference.
4227         * haifa-sched.c (calc_priorities): Adjust by-value argument to
4228         by-const-reference.
4229         (sched_init_luids): Same.
4230         (haifa_init_h_i_d): Same.
4231         * ipa-cp.c (ipa_get_indirect_edge_target_1): Same.
4232         (adjust_callers_for_value_intersection): Adjust by-value argument to
4233         by-reference.
4234         (find_more_scalar_values_for_callers_subset): Adjust by-value argument to
4235         by-const-reference.
4236         (find_more_contexts_for_caller_subset): Same.
4237         (find_aggregate_values_for_callers_subset): Same.
4238         (copy_useful_known_contexts): Same.
4239         * ipa-fnsummary.c (remap_edge_summaries): Same.
4240         (remap_freqcounting_predicate): Same.
4241         * ipa-inline.c (add_new_edges_to_heap): Adjust by-value argument to
4242         by-reference.
4243         * ipa-predicate.c (predicate::remap_after_inlining): Adjust by-value argument
4244         to by-const-reference.
4245         * ipa-predicate.h (predicate::remap_after_inlining): Same.
4246         * ipa-prop.c (ipa_find_agg_cst_for_param): Same.
4247         * ipa-prop.h (ipa_find_agg_cst_for_param): Same.
4248         * ira-build.c (ira_loop_tree_body_rev_postorder): Same.
4249         * read-rtl.c (add_overload_instance): Same.
4250         * rtl.h (native_decode_rtx): Same.
4251         (native_decode_vector_rtx): Same.
4252         * sched-int.h (sched_init_luids): Same.
4253         (haifa_init_h_i_d): Same.
4254         * simplify-rtx.c (native_decode_vector_rtx): Same.
4255         (native_decode_rtx): Same.
4256         * tree-call-cdce.c (gen_shrink_wrap_conditions): Same.
4257         (shrink_wrap_one_built_in_call_with_conds): Same.
4258         (shrink_wrap_conditional_dead_built_in_calls): Same.
4259         * tree-data-ref.c (create_runtime_alias_checks): Same.
4260         (compute_all_dependences): Same.
4261         * tree-data-ref.h (compute_all_dependences): Same.
4262         (create_runtime_alias_checks): Same.
4263         (index_in_loop_nest): Same.
4264         * tree-if-conv.c (mask_exists): Same.
4265         * tree-loop-distribution.c (class loop_distribution): Same.
4266         (loop_distribution::create_rdg_vertices): Same.
4267         (dump_rdg_partitions): Same.
4268         (debug_rdg_partitions): Same.
4269         (partition_contains_all_rw): Same.
4270         (loop_distribution::distribute_loop): Same.
4271         * tree-parloops.c (oacc_entry_exit_ok_1): Same.
4272         (oacc_entry_exit_single_gang): Same.
4273         * tree-ssa-loop-im.c (hoist_memory_references): Same.
4274         (loop_suitable_for_sm): Same.
4275         * tree-ssa-loop-niter.c (bound_index): Same.
4276         * tree-ssa-reassoc.c (update_ops): Same.
4277         (swap_ops_for_binary_stmt): Same.
4278         (rewrite_expr_tree): Same.
4279         (rewrite_expr_tree_parallel): Same.
4280         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Same.
4281         * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Same.
4282         * tree-ssa-structalias.c (process_all_all_constraints): Same.
4283         (make_constraints_to): Same.
4284         (handle_lhs_call): Same.
4285         (find_func_aliases_for_builtin_call): Same.
4286         (sort_fieldstack): Same.
4287         (check_for_overlaps): Same.
4288         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Same.
4289         (vect_create_cond_for_unequal_addrs): Same.
4290         (vect_create_cond_for_lower_bounds): Same.
4291         (vect_create_cond_for_alias_checks): Same.
4292         * tree-vect-slp-patterns.c (vect_validate_multiplication): Same.
4293         * tree-vect-slp.c (vect_analyze_slp_instance): Same.
4294         (vect_make_slp_decision): Same.
4295         (vect_slp_bbs): Same.
4296         (duplicate_and_interleave): Same.
4297         (vect_transform_slp_perm_load): Same.
4298         (vect_schedule_slp): Same.
4299         * tree-vectorizer.h (vect_transform_slp_perm_load): Same.
4300         (vect_schedule_slp): Same.
4301         (duplicate_and_interleave): Same.
4302         * tree.c (build_vector_from_ctor): Same.
4303         (build_vector): Same.
4304         (check_vector_cst): Same.
4305         (check_vector_cst_duplicate): Same.
4306         (check_vector_cst_fill): Same.
4307         (check_vector_cst_stepped): Same.
4308         * tree.h (build_vector_from_ctor): Same.
4309
4310 2021-07-20  Jakub Jelinek  <jakub@redhat.com>
4311
4312         PR target/101384
4313         * config/rs6000/rs6000-protos.h (easy_altivec_constant): Change return
4314         type from bool to int.
4315         * config/rs6000/rs6000.c (vspltis_constant): Fix up handling the
4316         EASY_VECTOR_MSB case if either step or copies is not 1.
4317         (vspltis_shifted): Fix comment typo.
4318         (easy_altivec_constant): Change return type from bool to int, instead
4319         of returning true return byte size of the element mode that should be
4320         used to synthetize the constant.
4321         * config/rs6000/predicates.md (easy_vector_constant_msb): Require
4322         that vspltis_shifted is 0, handle the case where easy_altivec_constant
4323         assumes using different vector mode from CONST_VECTOR's mode.
4324         * config/rs6000/altivec.md (easy_vector_constant_msb splitter): Use
4325         easy_altivec_constant to determine mode in which -1 >> -1 should be
4326         performed, use rs6000_expand_vector_init instead of gen_vec_initv4sisi.
4327
4328 2021-07-20  Richard Biener  <rguenther@suse.de>
4329
4330         PR debug/101473
4331         * dwarf2out.h (dwarf_file_data): Add key member.
4332         * dwarf2out.c (dwarf_file_hasher::equal): Compare key.
4333         (dwarf_file_hasher::hash): Hash key.
4334         (lookup_filename): Remap the filename and store it in the
4335         filename member of dwarf_file_data when creating a new
4336         dwarf_file_data.
4337         (file_name_acquire): Do not remap the filename again.
4338         (maybe_emit_file): Likewise.
4339
4340 2021-07-20  Jonathan Wright  <jonathan.wright@arm.com>
4341
4342         * config/aarch64/aarch64-simd-builtins.def: Use two variant
4343         generators for all TBL/TBX intrinsics and rename to
4344         consistent forms: qtbl[1234] or qtbx[1234].
4345         * config/aarch64/aarch64-simd.md (aarch64_tbl1<mode>):
4346         Rename to...
4347         (aarch64_qtbl1<mode>): This.
4348         (aarch64_tbx1<mode>): Rename to...
4349         (aarch64_qtbx1<mode>): This.
4350         (aarch64_tbl2v16qi): Delete.
4351         (aarch64_tbl3<mode>): Rename to...
4352         (aarch64_qtbl2<mode>): This.
4353         (aarch64_tbx4<mode>): Rename to...
4354         (aarch64_qtbx2<mode>): This.
4355         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Use
4356         renamed qtbl1 and qtbl2 RTL patterns.
4357         * config/aarch64/arm_neon.h (vqtbl1_p8): Use renamed qtbl1
4358         RTL pattern.
4359         (vqtbl1_s8): Likewise.
4360         (vqtbl1_u8): Likewise.
4361         (vqtbl1q_p8): Likewise.
4362         (vqtbl1q_s8): Likewise.
4363         (vqtbl1q_u8): Likewise.
4364         (vqtbx1_s8): Use renamed qtbx1 RTL pattern.
4365         (vqtbx1_u8): Likewise.
4366         (vqtbx1_p8): Likewise.
4367         (vqtbx1q_s8): Likewise.
4368         (vqtbx1q_u8): Likewise.
4369         (vqtbx1q_p8): Likewise.
4370         (vtbl1_s8): Use renamed qtbl1 RTL pattern.
4371         (vtbl1_u8): Likewise.
4372         (vtbl1_p8): Likewise.
4373         (vtbl2_s8): Likewise
4374         (vtbl2_u8): Likewise.
4375         (vtbl2_p8): Likewise.
4376         (vtbl3_s8): Use renamed qtbl2 RTL pattern.
4377         (vtbl3_u8): Likewise.
4378         (vtbl3_p8): Likewise.
4379         (vtbl4_s8): Likewise.
4380         (vtbl4_u8): Likewise.
4381         (vtbl4_p8): Likewise.
4382         (vtbx2_s8): Use renamed qtbx2 RTL pattern.
4383         (vtbx2_u8): Likewise.
4384         (vtbx2_p8): Likewise.
4385         (vqtbl2_s8): Use renamed qtbl2 RTL pattern.
4386         (vqtbl2_u8): Likewise.
4387         (vqtbl2_p8): Likewise.
4388         (vqtbl2q_s8): Likewise.
4389         (vqtbl2q_u8): Likewise.
4390         (vqtbl2q_p8): Likewise.
4391         (vqtbx2_s8): Use renamed qtbx2 RTL pattern.
4392         (vqtbx2_u8): Likewise.
4393         (vqtbx2_p8): Likewise.
4394         (vqtbx2q_s8): Likewise.
4395         (vqtbx2q_u8): Likewise.
4396         (vqtbx2q_p8): Likewise.
4397         (vtbx4_s8): Likewise.
4398         (vtbx4_u8): Likewise.
4399         (vtbx4_p8): Likewise.
4400
4401 2021-07-20  Uroš Bizjak  <ubizjak@gmail.com>
4402
4403         PR target/100182
4404         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
4405         Remove.
4406         (define_peephole2 atomic_loaddi_fpu): Ditto.
4407
4408 2021-07-20  Kito Cheng  <kito.cheng@sifive.com>
4409
4410         * config.gcc (riscv*-*-*): Detect which python is available.
4411
4412 2021-07-20  Kewen Lin  <linkw@linux.ibm.com>
4413
4414         * config/rs6000/vsx.md (mulhs_<mode>): Rename to...
4415         (smul<mode>3_highpart): ... this.
4416         (mulhu_<mode>): Rename to...
4417         (umul<mode>3_highpart): ... this.
4418         * config/rs6000/rs6000-builtin.def (MULHS_V2DI, MULHS_V4SI,
4419         MULHU_V2DI, MULHU_V4SI): Adjust.
4420
4421 2021-07-20  Kewen Lin  <linkw@linux.ibm.com>
4422
4423         PR tree-optimization/100696
4424         * internal-fn.c (first_commutative_argument): Add info for IFN_MULH.
4425         * internal-fn.def (IFN_MULH): New internal function.
4426         * tree-vect-patterns.c (vect_recog_mulhs_pattern): Add support to
4427         recog normal multiply highpart as IFN_MULH.
4428         * config/i386/i386.c (ix86_add_stmt_cost): Adjust for combined
4429         function CFN_MULH.
4430
4431 2021-07-19  Indu Bhagat  <indu.bhagat@oracle.com>
4432
4433         * config/elfos.h (CTF_DEBUGGING_INFO): New definition.
4434         (BTF_DEBUGGING_INFO): Likewise.
4435         * doc/tm.texi.in: Document the new macros.
4436         * doc/tm.texi: Regenerated.
4437         * toplev.c: Guard initialization of debug hooks.
4438
4439 2021-07-19  Indu Bhagat  <indu.bhagat@oracle.com>
4440
4441         * flags.h (ctf_debuginfo_p): New function declaration.
4442         * opts.c (ctf_debuginfo_p): New function definition.
4443
4444 2021-07-19  Andrew Stubbs  <ams@codesourcery.com>
4445
4446         PR target/100208
4447         * config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New.
4448         (ASM_SPEC): Set -mattr for xnack and sram-ecc.
4449         * config/gcn/gcn-opts.h (enum sram_ecc_type): New.
4450         * config/gcn/gcn-valu.md: Add a warning comment.
4451         * config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack.
4452         (output_file_start): Add xnack and sram-ecc state to ".amdgcn_target".
4453         * config/gcn/gcn.md: Add a warning comment.
4454         * config/gcn/gcn.opt: Add -mxnack and -msram-ecc.
4455         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove
4456         SRAM-ECC flag.
4457         (EF_AMDGPU_XNACK): New.
4458         (EF_AMDGPU_SRAM_ECC): New.
4459         (elf_flags): New.
4460         (copy_early_debug_info): Use elf_flags.
4461         (main): Handle -mxnack and -msram-ecc options.
4462         * doc/invoke.texi: Document -mxnack and -msram-ecc.
4463
4464 2021-07-19  Andrew Pinski  <apinski@marvell.com>
4465
4466         PR target/101205
4467         * config/aarch64/aarch64.md (csneg3_uxtw_insn): Rename to ...
4468         (*cs<neg_not_cs>3_uxtw_insn4): and extend to NEG_NOT.
4469
4470 2021-07-19  Richard Biener  <rguenther@suse.de>
4471
4472         PR tree-optimization/101505
4473         * tree-vect-patterns.c (vect_determine_precisions): Walk
4474         PHIs also for loop vectorization.
4475
4476 2021-07-19  Richard Biener  <rguenther@suse.de>
4477
4478         * gimple.h (gimple_expr_type): Remove.
4479         * doc/gimple.texi: Remove gimple_expr_type documentation.
4480
4481 2021-07-19  Richard Biener  <rguenther@suse.de>
4482
4483         * tree-ssa-sccvn.c (vn_reference_eq): Handle NULL vr->type.
4484         (ao_ref_init_from_vn_reference): Likewise.
4485         (fully_constant_reference): Likewise.
4486         (vn_reference_lookup_call): Do not set vr->type to random
4487         values.
4488         * tree-ssa-pre.c (compute_avail): Do not try to PRE calls
4489         without a value.
4490         * tree-vect-generic.c (expand_vector_piecewise): Pass in
4491         whether we expanded parallel.
4492         (expand_vector_parallel): Adjust.
4493         (expand_vector_addition): Likewise.
4494         (expand_vector_comparison): Likewise.
4495         (expand_vector_operation): Likewise.
4496         (expand_vector_scalar_condition): Likewise.
4497         (expand_vector_conversion): Likewise.
4498
4499 2021-07-19  Richard Biener  <rguenther@suse.de>
4500
4501         * tree-vrp.c (register_edge_assert_for_2): Use the
4502         type from the LHS.
4503         (vrp_folder::fold_predicate_in): Likewise.
4504         * vr-values.c (gimple_assign_nonzero_p): Likewise.
4505         (vr_values::extract_range_from_comparison): Likewise.
4506         (vr_values::extract_range_from_ubsan_builtin): Use the
4507         type of the first operand.
4508         (vr_values::extract_range_basic): Push down type
4509         computation, use the appropriate LHS.
4510         (vr_values::extract_range_from_assignment): Use the
4511         type of the LHS.
4512
4513 2021-07-18  H.J. Lu  <hjl.tools@gmail.com>
4514
4515         PR target/101492
4516         * common/config/i386/i386-common.c (ix86_handle_option): For
4517         -mgeneral-regs-only, enable the GPR only instructions which are
4518         enabled implicitly by SSE ISAs unless they have been disabled
4519         explicitly.
4520
4521 2021-07-18  H.J. Lu  <hjl.tools@gmail.com>
4522
4523         PR target/101495
4524         * config/i386/i386.c (ix86_check_avx_upper_stores): Moved before
4525         ix86_avx_u128_mode_needed.
4526         (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY if callee
4527         returns AVX register.
4528
4529 2021-07-17  Jan Hubicka  <hubicka@ucw.cz>
4530
4531         * tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED.
4532         (handle_const_call): Liekise
4533         (handle_pure_call): Liekise
4534
4535 2021-07-17  Andrew MacLeod  <amacleod@redhat.com>
4536
4537         PR tree-optimization/96542
4538         * range-op.cc (range_operator::wi_fold_in_parts): New.
4539         (range_operator::fold_range): Call wi_fold_in_parts.
4540         (operator_lshift::wi_fold): Fix broken lshift by [0,0].
4541         * range-op.h (wi_fold_in_parts): Add prototype.
4542
4543 2021-07-16  David Malcolm  <dmalcolm@redhat.com>
4544
4545         * doc/analyzer.texi: Add __analyzer_dump_state.
4546
4547 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
4548
4549         * config/rs6000/rbtree.c: New file.
4550         * config/rs6000/rbtree.h: New file.
4551
4552 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
4553
4554         * config/rs6000/rs6000-gen-builtins.c (restriction): New enum.
4555         (typeinfo): Add restr field.
4556         (match_bracketed_pair): New function.
4557         (match_const_restriction): Implement.
4558
4559 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
4560
4561         * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement.
4562
4563 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
4564
4565         * config/rs6000/rs6000-gen-builtins.c (void_status): New enum.
4566         (basetype): Likewise.
4567         (typeinfo): Likewise.
4568         (handle_pointer): New function.
4569         (match_basetype): New stub function.
4570         (match_const_restriction): Likewise.
4571         (match_type): New function.
4572
4573 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
4574
4575         * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New
4576         function.
4577         (advance_line): Likewise.
4578         (safe_inc_pos): Likewise.
4579         (match_identifier): Likewise.
4580         (match_integer): Likewise.
4581         (match_to_right_bracket): Likewise.
4582
4583 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
4584
4585         * config/rs6000/rs6000-gen-builtins.c (bif_file): New variable.
4586         (ovld_file): Likewise.
4587         (header_file): Likewise.
4588         (init_file): Likewise.
4589         (defines_file): Likewise.
4590         (pgm_path): Likewise.
4591         (bif_path): Likewise.
4592         (ovld_path): Likewise.
4593         (header_path): Likewise.
4594         (init_path): Likewise.
4595         (defines_path): Likewise.
4596         (LINELEN): New macro.
4597         (linebuf): New variable.
4598         (line): Likewise.
4599         (pos): Likewise.
4600         (diag): Likewise.
4601         (bif_diag): New function.
4602         (ovld_diag): Likewise.
4603
4604 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
4605
4606         * config/rs6000/rs6000-builtin-new.def: New.
4607         * config/rs6000/rs6000-overload.def: New.
4608
4609 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
4610
4611         * config/rs6000/rs6000-gen-builtins.c: New.
4612
4613 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
4614
4615         * Makefile.in (EXTRA_GTYPE_DEPS): New variable.
4616         (s-gtype): Depend on EXTRA_GTYPE_DEPS.
4617         * gengtype-state.c (state_writer::write_state_file_list): Add a
4618         parameter to the fileslist expression for the number of build
4619         headers to scan.
4620         (read_state_files_list): Detect build headers and strip the
4621         initial "./" or ".\" from their names.
4622         * gengtype.c (build_headers): New global variable.
4623         (num_build_headers): Likewise.
4624         (open_base_files): Emit #include for each build header.
4625         (main): Detect and count build headers.
4626         * gengtype.h (build_headers): New extern variable.
4627         (num_build_headers): Likewise.
4628
4629 2021-07-16  Richard Biener   <rguenther@suse.de>
4630
4631         * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use
4632         the type of the LHS.
4633         (find_bswap_or_nop_1): Likewise.
4634         (find_bswap_or_nop): Likewise.
4635         * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust
4636         prototype.
4637         * tree-vect-data-refs.c (vect_get_smallest_scalar_type):
4638         Remove unused parameters, pass in the scalar type.  Fix
4639         internal store function handling.
4640         * tree-vect-stmts.c (vect_analyze_stmt): Remove assert.
4641         (vect_get_vector_types_for_stmt): Move down check for
4642         existing vector stmt after we've determined a scalar type.
4643         Pass down the used scalar type to vect_get_smallest_scalar_type.
4644         * tree-vect-generic.c (expand_vector_condition): Use
4645         the type of the LHS.
4646         (expand_vector_scalar_condition): Likewise.
4647         (expand_vector_operations_1): Likewise.
4648         * tree-vect-patterns.c (vect_widened_op_tree): Likewise.
4649         (vect_recog_dot_prod_pattern): Likewise.
4650         (vect_recog_sad_pattern): Likewise.
4651         (vect_recog_widen_op_pattern): Likewise.
4652         (vect_recog_widen_sum_pattern): Likewise.
4653         (vect_recog_mixed_size_cond_pattern): Likewise.
4654
4655 2021-07-16  Jan Hubicka  <hubicka@ucw.cz>
4656
4657         * ipa-modref.c (struct escape_entry): Use eaf_fleags_t.
4658         (dump_eaf_flags): Dump EAF_NOT_RETURNED
4659         (eaf_flags_useful_p): Use eaf_fleags_t; handle const functions
4660         and EAF_NOT_RETURNED.
4661         (modref_summary::useful_p): Likewise.
4662         (modref_summary_lto::useful_p): Likewise.
4663         (struct) modref_summary_lto: Use eaf_fleags_t.
4664         (deref_flags): Handle EAF_NOT_RETURNED.
4665         (struct escape_point): Use min_flags.
4666         (modref_lattice::init): Add EAF_NOT_RETURNED.
4667         (merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions
4668         (analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return;
4669         handle call flags.
4670         (analyze_parms): Also analyze const functions; update conition on
4671         flags usefulness.
4672         (modref_write): Update streaming.
4673         (read_section): Update streaming.
4674         (remap_arg_flags): Use eaf_flags_t.
4675         (modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED.
4676         * ipa-modref.h: (eaf_flags_t): New typedef.
4677         (struct modref_summary): Use eaf_flags_t.
4678         * tree-core.h (EAF_NOT_RETURNED): New constant.
4679
4680 2021-07-16  Richard Biener  <rguenther@suse.de>
4681
4682         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use
4683         the type of the LHS.
4684         (gimple_assign_nonnegative_warnv_p): Likewise.
4685         (gimple_call_nonnegative_warnv_p): Likewise.  Return false
4686         if the call has no LHS.
4687         * gimple.c (gimple_could_trap_p_1): Use the type of the LHS.
4688         * tree-eh.c (stmt_could_throw_1_p): Likewise.
4689         * tree-inline.c (insert_init_stmt): Likewise.
4690         * tree-ssa-loop-niter.c (get_val_for): Likewise.
4691         * tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of
4692         the def.
4693         * tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a
4694         gassign *.  Use the type of the lhs.
4695         (vn_nary_op_lookup_stmt): Adjust.
4696         (vn_nary_op_insert_stmt): Likewise.
4697
4698 2021-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>
4699
4700         * config/s390/predicates.md (bras_sym_operand): Accept all
4701         functions in 64-bit mode, use UNSPEC_PLT31.
4702         (larl_operand): Use UNSPEC_PLT31.
4703         * config/s390/s390.c (s390_loadrelative_operand_p): Likewise.
4704         (legitimize_pic_address): Likewise.
4705         (s390_emit_tls_call_insn): Mark __tls_get_offset as function,
4706         use UNSPEC_PLT31.
4707         (s390_delegitimize_address): Use UNSPEC_PLT31.
4708         (s390_output_addr_const_extra): Likewise.
4709         (print_operand): Add @PLT to TLS calls, handle %K.
4710         (s390_function_profiler): Mark __fentry__/_mcount as function,
4711         use %K, use UNSPEC_PLT31.
4712         (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K.
4713         (s390_emit_call): Use UNSPEC_PLT31.
4714         (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function.
4715         * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT.
4716         (*movdi_64): Use %K.
4717         (reload_base_64): Likewise.
4718         (*sibcall_brc): Likewise.
4719         (*sibcall_brcl): Likewise.
4720         (*sibcall_value_brc): Likewise.
4721         (*sibcall_value_brcl): Likewise.
4722         (*bras): Likewise.
4723         (*brasl): Likewise.
4724         (*bras_r): Likewise.
4725         (*brasl_r): Likewise.
4726         (*bras_tls): Likewise.
4727         (*brasl_tls): Likewise.
4728         (main_base_64): Likewise.
4729         (reload_base_64): Likewise.
4730         (@split_stack_call<mode>): Likewise.
4731
4732 2021-07-16  Richard Biener  <rguenther@suse.de>
4733
4734         PR tree-optimization/101467
4735         * tree-vect-stmts.c (vect_gen_while): Properly guard
4736         make_temp_ssa_name usage.
4737
4738 2021-07-16  Cooper Qu  <cooper.qu@linux.alibaba.com>
4739
4740         * config.gcc: Don't use forked print-sysroot-suffix.sh and
4741         t-sysroot-suffix for C-SKY.
4742         * config/csky/print-sysroot-suffix.sh: Delete.
4743         * config/csky/t-csky-linux: Delete.
4744         * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES
4745         instead of CSKY_MULTILIB_DIRNAMES.
4746
4747 2021-07-16  Richard Biener  <rguenther@suse.de>
4748
4749         * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign
4750         conversion issues with the partial reduction of the reused
4751         vector accumulator.
4752
4753 2021-07-16  Richard Biener  <rguenther@suse.de>
4754
4755         * config/i386/i386-options.c (ix86_option_override_internal): Set
4756         param_vect_partial_vector_usage to zero if not set.
4757
4758 2021-07-15  Uroš Bizjak  <ubizjak@gmail.com>
4759
4760         PR target/101346
4761         * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode.
4762         (VALID_INT_MODE_P): Add SDmode and DDmode.
4763         Add TDmode for TARGET_64BIT.
4764         (VALID_DFP_MODE_P): Remove.
4765         * config/i386/i386.c (ix86_hard_regno_mode_ok):
4766         Do not use VALID_DFP_MODE_P.
4767
4768 2021-07-15  Andrew MacLeod  <amacleod@redhat.com>
4769
4770         * gimple-range-fold.cc (adjust_pointer_diff_expr): Use
4771         gimple_range_type.
4772         (fold_using_range::fold_stmt): Ditto.
4773         (fold_using_range::range_of_range_op): Ditto.
4774         (fold_using_range::range_of_phi): Ditto.
4775         (fold_using_range::range_of_call): Ditto.
4776         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
4777         (fold_using_range::range_of_builtin_call): Ditto.
4778         (fold_using_range::range_of_cond_expr): Ditto.
4779         * gimple-range-fold.h (gimple_range_type): New.
4780
4781 2021-07-15  Martin Sebor  <msebor@redhat.com>
4782
4783         PR middle-end/97027
4784         * tree-ssa-strlen.c (handle_assign): New function.
4785         (maybe_warn_overflow): Add argument.
4786         (nonzero_bytes_for_type): New function.
4787         (count_nonzero_bytes): Handle more tree types.  Call
4788         nonzero_bytes_for_tye.
4789         (count_nonzero_bytes): Handle types.
4790         (handle_store): Handle stores from function calls.
4791         (strlen_check_and_optimize_call): Move code to handle_assign.  Call
4792         it for assignments from function calls.
4793
4794 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
4795
4796         PR analyzer/95006
4797         PR analyzer/94713
4798         PR analyzer/94714
4799         * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value.
4800
4801 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
4802
4803         * doc/invoke.texi (-fdump-analyzer-exploded-paths): New.
4804
4805 2021-07-15  Martin Sebor  <msebor@redhat.com>
4806
4807         PR c/101289
4808         PR c/97548
4809         * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME.
4810         (operand_compare::verify_hash_value): Same.
4811         * tree-core.h (OEP_DECL_NAME): New.
4812
4813 2021-07-15  Martin Jambor  <mjambor@suse.cz>
4814
4815         * profile-count.h (profile_count::value): Change the return type to
4816         uint64_t.
4817         * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print
4818         statement.
4819         * tree-cfg.c (dump_function_to_file): Likewise.
4820
4821 2021-07-15  Bill Schmidt  <wschmidt@linux.ibm.com>
4822
4823         PR target/101129
4824         * config/rs6000/rs6000-p8swap.c (has_part_mult): New.
4825         (rs6000_analyze_swaps): Insns containing a subreg of a mult are
4826         not swappable.
4827
4828 2021-07-15  Richard Biener  <rguenther@suse.de>
4829
4830         * tree-vectorizer.h (vect_gen_while): Match up with
4831         vect_gen_while_not.
4832         * tree-vect-stmts.c (vect_gen_while): Adjust API to that
4833         of vect_gen_while_not.
4834         (vect_gen_while_not): Adjust.
4835         * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise.
4836
4837 2021-07-15  Aldy Hernandez  <aldyh@redhat.com>
4838
4839         * gimple-range-cache.cc (non_null_ref::adjust_range): New.
4840         (ranger_cache::range_of_def): Call adjust_range.
4841         (ranger_cache::entry_range): Same.
4842         * gimple-range-cache.h (non_null_ref::adjust_range): New.
4843         * gimple-range.cc (gimple_ranger::range_of_expr): Call
4844         adjust_range.
4845         (gimple_ranger::range_on_entry): Same.
4846
4847 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
4848
4849         Revert:
4850         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
4851
4852         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
4853
4854 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
4855
4856         Revert:
4857         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
4858
4859         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
4860         (sdot_prod, udot_prod): ...These.
4861         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
4862         (aarch64_<sur>dot<vsi2qi>): Rename to...
4863         (<sur>dot_prod<vsi2qi>): ...This.
4864         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
4865         Update builtins.
4866
4867 2021-07-15  Jakub Jelinek  <jakub@redhat.com>
4868
4869         PR middle-end/101437
4870         * gimplify.c (gimplify_expr): Throw away volatile reads from empty
4871         types even if they have non-BLKmode TYPE_MODE.
4872
4873 2021-07-15  Richard Biener  <rguenther@suse.de>
4874
4875         PR driver/101383
4876         * gcc.c (process_command): Process -gtoggle like process_options
4877         would after parsing options.
4878
4879 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
4880
4881         * cfgexpand.c (expand_asm_loc): Adjust.
4882         (expand_asm_stmt): Likewise.
4883         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise.
4884         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
4885         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
4886         * config/avr/avr.c (avr_md_asm_adjust): Likewise.
4887         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
4888         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
4889         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
4890         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
4891         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
4892         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
4893         * config/s390/s390.c (s390_md_asm_adjust): Likewise.
4894         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
4895         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
4896         * doc/tm.texi: Regenerate.
4897         * target.def: Add location argument to md_asm_adjust.
4898
4899 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
4900
4901         * tree-diagnostic.c (diagnostic_report_current_function): Use the
4902         diagnostic's location, not input_location.
4903
4904 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
4905
4906         * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to
4907         diagnostics.
4908         (expand_asm_stmt): Likewise.
4909
4910 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
4911
4912         * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower
4913         addressed memory rtx, if any.
4914         (rs6000_split_multireg_move): Fix code formatting.
4915         Handle MMA build built-ins with operands in adjacent memory locations.
4916
4917 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
4918
4919         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later
4920         in the file.
4921
4922 2021-07-14  Jason Merrill  <jason@redhat.com>
4923
4924         * sel-sched-ir.h (get_all_loop_exits): Use auto_vec.
4925
4926 2021-07-14  Jason Merrill  <jason@redhat.com>
4927
4928         * doc/invoke.texi: -fdelete-dead-exceptions is on by default for
4929         C++.
4930
4931 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
4932
4933         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
4934         Remove erroneous line.
4935
4936 2021-07-14  Andrew MacLeod  <amacleod@redhat.com>
4937
4938         * params.opt (param_evrp_mode): Change default.
4939
4940 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
4941
4942         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
4943         (sdot_prod, udot_prod): ...These.
4944         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
4945         (aarch64_<sur>dot<vsi2qi>): Rename to...
4946         (<sur>dot_prod<vsi2qi>): ...This.
4947         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
4948         Update builtins.
4949
4950 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
4951
4952         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
4953
4954 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
4955
4956         * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document.
4957
4958 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
4959
4960         * config/arm/neon.md (usdot_prod<vsi2qi>): New.
4961
4962 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
4963
4964         * config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to...
4965         (usdot_prod<vsi2qi>): ... This.
4966         * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to...
4967         (usdot_prod): ...This.
4968         * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise.
4969         * config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>):
4970         Rename to...
4971         (@<sur>dot_prod<vsi2qi>): ...This.
4972         * config/aarch64/aarch64-sve-builtins-base.cc
4973         (svusdot_impl::expand): Use it.
4974
4975 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
4976
4977         * optabs.def (usdot_prod_optab): New.
4978         * doc/md.texi: Document it and clarify other dot prod optabs.
4979         * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign.
4980         * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab.
4981         * optabs.c (expand_widen_pattern_expr): Likewise.
4982         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
4983         * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind.
4984         * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional
4985         optab subtype.
4986         (vect_widened_op_tree): Optionally ignore
4987         mismatch types.
4988         (vect_recog_dot_prod_pattern): Support usdot_prod_optab.
4989
4990 2021-07-14  H.J. Lu  <hjl.tools@gmail.com>
4991
4992         PR target/101395
4993         * config/i386/driver-i386.c (host_detect_local_cpu): Check
4994         "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen.
4995         Enable UINTR only for 64-bit codegen.
4996         * config/i386/i386-options.c
4997         (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not
4998         in 64-bit mode.
4999         * config/i386/i386.h (ARCH_ARG): New.
5000         (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and
5001         "[arch|tune] 64" for 64-bit codegen.
5002
5003 2021-07-14  Richard Biener  <rguenther@suse.de>
5004
5005         PR tree-optimization/101445
5006         * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment
5007         of the IV in the correct direction for negative stride
5008         accesses.
5009
5010 2021-07-14  Jakub Jelinek  <jakub@redhat.com>
5011
5012         PR go/101407
5013         * godump.c (godump_str_hash): New type.
5014         (godump_container::pot_dummy_types): Use string_hash instead of
5015         ptr_hash in the hash_set.
5016
5017 2021-07-14  Richard Biener  <rguenther@suse.de>
5018
5019         * tree-vect-loop.c (vect_find_reusable_accumulator): Handle
5020         vector types where the old vector type has a multiple of
5021         the new vector type elements.
5022         (vect_create_partial_epilog): New function, split out from...
5023         (vect_create_epilog_for_reduction): ... here.
5024         (vect_transform_cycle_phi): Reduce the re-used accumulator
5025         to the new vector type.
5026
5027 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
5028
5029         * tree-ssa-alias.c (attr_fnspec::verify): Fix index in
5030         non-'t'-sized arg check.
5031
5032 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
5033
5034         * tree-cfg.c (cleanup_dead_labels_eh): Update
5035         post_landing_pad label upon change of landing pad block's
5036         primary label.
5037         (cleanup_dead_labels): Check that a removed label is not that
5038         of a landing pad.
5039
5040 2021-07-13  Jonathan Wright  <jonathan.wright@arm.com>
5041
5042         * combine.c (combine_simplify_rtx): Add vec_select -> subreg
5043         simplification.
5044         * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64):
5045         Add Neon to general purpose register case for zero-extend
5046         pattern.
5047         * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r
5048         case to prevent some cases opting to go through memory.
5049         * cse.c (fold_rtx): Add vec_select -> subreg simplification.
5050         * rtl.c (rtvec_series_p): Define predicate to determine
5051         whether a vector contains a linear series of integers.
5052         * rtl.h (rtvec_series_p): Define.
5053         * rtlanal.c (vec_series_lowpart_p): Define predicate to
5054         determine if a vector selection is equivalent to the low part
5055         of the vector.
5056         * rtlanal.h (vec_series_lowpart_p): Define.
5057         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
5058         Add vec_select -> subreg simplification.
5059
5060 2021-07-13  Paul A. Clarke  <pc@us.ibm.com>
5061
5062         * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128,
5063         _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros,
5064         _mm_test_mix_ones_zeros): New.
5065
5066 2021-07-13  Roger Sayle  <roger@nextmovesoftware.com>
5067             Richard Biener  <rguenther@suse.de>
5068
5069         * gimple.c (gimple_could_trap_p_1):  Make S argument a
5070         "const gimple*".  Preserve constness in call to
5071         gimple_asm_volatile_p.
5072         (gimple_could_trap_p): Make S argument a "const gimple*".
5073         * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p):
5074         Update function prototypes.
5075
5076 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
5077
5078         * tree-vectorizer.h (vect_reusable_accumulator): New structure.
5079         (_loop_vec_info::main_loop_edge): New field.
5080         (_loop_vec_info::skip_main_loop_edge): Likewise.
5081         (_loop_vec_info::skip_this_loop_edge): Likewise.
5082         (_loop_vec_info::reusable_accumulators): Likewise.
5083         (_stmt_vec_info::reduc_scalar_results): Likewise.
5084         (_stmt_vec_info::reused_accumulator): Likewise.
5085         (vect_get_main_loop_result): Declare.
5086         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
5087         reduc_scalar_inputs.
5088         (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs.
5089         * tree-vect-loop-manip.c (vect_get_main_loop_result): New function.
5090         (vect_do_peeling): Fill an epilogue loop's main_loop_edge,
5091         skip_main_loop_edge and skip_this_loop_edge fields.
5092         * tree-vect-loop.c (INCLUDE_ALGORITHM): Define.
5093         (vect_emit_reduction_init_stmts): New function.
5094         (get_initial_def_for_reduction): Use it.
5095         (get_initial_defs_for_reduction): Likewise.  Change the vinfo
5096         parameter to a loop_vec_info.
5097         (vect_create_epilog_for_reduction): Store the scalar results
5098         in the reduc_info.  If an epilogue loop is reusing an accumulator
5099         from the main loop, and if the epilogue loop can also be skipped,
5100         try to place the reduction code in the join block.  Record
5101         accumulators that could potentially be reused by epilogue loops.
5102         (vect_transform_cycle_phi): When vectorizing epilogue loops,
5103         try to reuse accumulators from the main loop.  Record the initial
5104         value in reduc_info for non-SLP reductions too.
5105
5106 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
5107
5108         * tree-vect-loop.c (get_initial_def_for_reduction): Remove
5109         adjustment handling.  Take the neutral value as an argument,
5110         in place of the code argument.
5111         (vect_transform_cycle_phi): Update accordingly.  Handle the
5112         initial values of cond reductions separately from code reductions.
5113         Choose the adjustment here rather than in
5114         get_initial_def_for_reduction.  Sink the splat of vec_initial_def.
5115
5116 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
5117
5118         * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with...
5119         (neutral_op_for_reduction): ...this, providing a more general
5120         interface.
5121         (vect_create_epilog_for_reduction): Update accordingly.
5122         (vectorizable_reduction): Likewise.
5123         (vect_transform_cycle_phi): Likewise.
5124
5125 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
5126
5127         * tree-vect-loop.c (get_initial_def_for_reduction): Take the
5128         reduc_info instead of the original stmt_vec_info.
5129         (vect_transform_cycle_phi): Update accordingly.
5130
5131 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
5132
5133         * tree-vect-loop.c (get_initial_defs_for_reduction): Take the
5134         reduc_info as an additional parameter.
5135         (vect_transform_cycle_phi): Update accordingly.
5136
5137 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
5138
5139         * tree-vectorizer.h: Include tree-ssa-operands.h.
5140         (vect_phi_initial_value): New function.
5141         * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it.
5142         (get_initial_defs_for_reduction, info_for_reduction): Likewise.
5143         (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise.
5144         (vect_transform_cycle_phi, vectorizable_induction): Likewise.
5145
5146 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
5147
5148         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
5149         the phi results to vectype after creating them.  Remove later
5150         conversion code that thus becomes redundant.
5151
5152 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
5153
5154         * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace
5155         the new_phis vector with a reduc_inputs vector.  Combine handling
5156         of reduction chains and ncopies > 1.
5157
5158 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
5159
5160         * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate
5161         scalar_results to group_size elements after reducing down from
5162         N*group_size elements.  Construct an array_slice of the live-out
5163         stmts and assert that there is one stmt per scalar result.
5164
5165 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
5166
5167         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
5168         nested_in_vect_loop and use double_reduc everywhere.  Remove dead
5169         assignment to "loop".
5170
5171 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
5172
5173         * internal-fn.c (vectorized_internal_fn_supported_p): Handle
5174         vector types first.  For scalar types, consider both the preferred
5175         vector mode and the alternative vector modes.
5176         * optabs-query.c (can_vec_mask_load_store_p): Use the same
5177         structure as above, in particular using related_vector_mode
5178         for modes provided by autovectorize_vector_modes.
5179
5180 2021-07-13  Jakub Jelinek  <jakub@redhat.com>
5181             Richard Biener  <rguenther@suse.de>
5182
5183         PR tree-optimization/101419
5184         * tree-pass.h (PROP_objsz): Define.
5185         (make_pass_early_object_sizes): Declare.
5186         * passes.def (pass_all_early_optimizations): Rename pass_object_sizes
5187         there to pass_early_object_sizes, drop parameter.
5188         (pass_all_optimizations): Move pass_object_sizes right after pass_ccp,
5189         drop parameter, move pass_post_ipa_warn right after that.
5190         * tree-object-size.c (pass_object_sizes::execute): Rename to...
5191         (object_sizes_execute): ... this.  Add insert_min_max_p argument.
5192         (pass_data_object_sizes): Move after object_sizes_execute.
5193         (pass_object_sizes): Likewise.  In execute method call
5194         object_sizes_execute, drop set_pass_param method and insert_min_max_p
5195         non-static data member and its initializer in the ctor.
5196         (pass_data_early_object_sizes, pass_early_object_sizes,
5197         make_pass_early_object_sizes): New.
5198         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use
5199         (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining.
5200
5201 2021-07-13  Kito Cheng  <kito.cheng@sifive.com>
5202
5203         PR target/101275
5204         * config/riscv/constraints.md ("S"): Update description and remove
5205         @internal.
5206         * doc/md.texi (Machine Constraints): Document the 'S' constraints
5207         for RISC-V.
5208
5209 2021-07-13  Richard Biener  <rguenther@suse.de>
5210
5211         Revert:
5212         2021-07-12  Richard Biener  <rguenther@suse.de>
5213
5214         * tree-vect-slp.c (vect_slp_region): Show the number of
5215         SLP graph entries in the optimization message.
5216
5217 2021-07-13  Michael Meissner  <meissner@linux.ibm.com>
5218
5219         * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable
5220         value to to long.
5221         * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change
5222         return type to long.
5223         * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return
5224         type to long.
5225
5226 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
5227
5228         * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call):
5229         Query relation between the 2 operands and use it.
5230
5231 2021-07-12  Sergei Trofimovich  <siarheit@google.com>
5232
5233         * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo.
5234
5235 2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>
5236
5237         PR target/101424
5238         * config/i386/predicates.md (vec_setm_sse41_operand):
5239         Rename from vec_setm_operand.
5240         (vec_setm_avx2_operand): New predicate.
5241         * config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator.
5242         Use vec_setm_sse41_operand as operand 2 predicate.
5243         (vec_set<V_256_512:mode): New expander.
5244         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand
5245         as operand 2 predicate.
5246
5247 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
5248
5249         PR tree-optimization/101335
5250         * range-op.cc (operator_cast::lhs_op1_relation): Delete.
5251
5252 2021-07-12  Andrew Pinski  <apinski@marvell.com>
5253
5254         * tree-ssa-phiopt.c (match_simplify_replacement): Move
5255         insert of the sequence before the movement of the
5256         statement. Check if to see if the statement is used
5257         outside of the original phi to see if we should move it.
5258
5259 2021-07-12  Richard Biener  <rguenther@suse.de>
5260
5261         * dump-context.h (debug_dump_context::debug_dump_context):
5262         Add FILE * parameter defaulted to stderr.
5263         * dumpfile.c (debug_dump_context::debug_dump_context): Adjust.
5264         * tree-vect-slp.c (dot_slp_tree): New functions.
5265
5266 2021-07-12  Richard Biener  <rguenther@suse.de>
5267
5268         PR tree-optimization/101373
5269         * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping
5270         references when the BB may not return.
5271         (compute_avail): Pass in the function we're working on and
5272         replace cfun references with it.  Externally throwing
5273         const calls also possibly terminate the function.
5274         (pass_pre::execute): Pass down the function we're working on.
5275         * gcse.c (compute_hash_table_work): Externally throwing
5276         const/pure calls also need record_last_mem_set_info.
5277         * postreload-gcse.c (record_opr_changes): Looping or externally
5278         throwing const/pure calls also need record_last_mem_set_info.
5279
5280 2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>
5281
5282         * recog.c (memory_address_addr_space_p): Change the type to bool.
5283         Return true/false instead of 1/0.
5284         (offsettable_memref_p): Ditto.
5285         (offsettable_nonstrict_memref_p): Ditto.
5286         (offsettable_address_addr_space_p): Ditto.
5287         Change the type of addressp indirect function to bool.
5288         * recog.h (memory_address_addr_space_p): Change the type to bool.
5289         (strict_memory_address_addr_space_p): Ditto.
5290         (offsettable_memref_p): Ditto.
5291         (offsettable_nonstrict_memref_p): Ditto.
5292         (offsettable_address_addr_space_p): Ditto.
5293         * reload.c (maybe_memory_address_addr_space_p): Ditto.
5294         (strict_memory_address_addr_space_p): Change the type to bool.
5295         Return true/false instead of 1/0.
5296         (maybe_memory_address_addr_space_p): Change the type to bool.
5297
5298 2021-07-12  Richard Biener  <rguenther@suse.de>
5299
5300         * tree-vect-slp.c (vect_slp_region): Show the number of
5301         SLP graph entries in the optimization message.
5302
5303 2021-07-12  Richard Biener  <rguenther@suse.de>
5304
5305         PR tree-optimization/101394
5306         * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting
5307         copies from abnormals for a full redundancy.
5308
5309 2021-07-12  Richard Biener  <rguenther@suse.de>
5310
5311         PR middle-end/101423
5312         * gimple.c (gimple_could_trap_p_1): Internal function calls
5313         do not trap.
5314         * tree-eh.c (tree_could_trap_p): Likewise.
5315
5316 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
5317
5318         PR target/66791
5319         * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with
5320         __a * __b.
5321         (vmulq_n_u32): Likewise.
5322         (vmul_n_f32): Gate __a * __b on __FAST_MATH__.
5323         (vmulq_n_f32): Likewise.
5324         (vmul_n_f16): Likewise.
5325         (vmulq_n_f16): Likewise.
5326
5327 2021-07-12  Martin Liska  <mliska@suse.cz>
5328
5329         PR sanitizer/101425
5330         * gcc.c (check_offload_target_name): Call
5331           candidates_list_and_hint only if we have a candidate.
5332
5333 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
5334
5335         PR target/98435
5336         * config/arm/neon.md (vec_init): Move to ...
5337         * config/arm/vec-common.md (vec_init): ... here.
5338         Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE.
5339
5340 2021-07-12  Roger Sayle  <roger@nextmovesoftware.com>
5341
5342         PR tree-optimization/101403
5343         * match.pd ((T)bswap(X)>>C): Correctly handle cases where
5344         signedness of the shift is not the same as the signedness of
5345         the type extension.
5346
5347 2021-07-09  Roger Sayle  <roger@nextmovesoftware.com>
5348             Uroš Bizjak  <ubizjak@gmail.com>
5349
5350         * config/i386/i386.md (*divmodsi4_const): Optimize SImode
5351         divmod of a constant numerator with new define_insn_and_split.
5352
5353 2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>
5354
5355         PR target/100152
5356         * config/i386/i386-expand.c (ix86_expand_call): If a call is
5357         to a non-local-binding, or local but to a public symbol, then
5358         assume that it might be indirected via the lazy symbol binder.
5359         Mark R10 and R10 as clobbered in that case.
5360
5361 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
5362
5363         PR target/101377
5364         * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in
5365         the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined
5366         and HAVE_LD_BROKEN_PE_DWARF5 is defined.
5367
5368 2021-07-09  Uroš Bizjak  <ubizjak@gmail.com>
5369
5370         * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the
5371         log2 range of operands[3] to [1,31].
5372         (*udivmodsi4_pow2_zext_2): Ditto.  Correct insn RTX pattern.
5373
5374 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
5375
5376         * doc/md.texi: Don't split @smallexample in multiple @groups.
5377
5378 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
5379
5380         * doc/md.texi: Add missing 'see' word.
5381
5382 2021-07-09  Andrew Pinski  <apinski@marvell.com>
5383
5384         * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments
5385         to take sequence and gimple_match_op.  Accept the case where
5386         op is a SSA_NAME and one statement in the sequence.
5387         Also allow constants.
5388         (gimple_simplify_phiopt): Always pass a sequence to resimplify.
5389         Update call to phiopt_early_allow.  Discard the sequence if not
5390         used.
5391
5392 2021-07-09  Xi Ruoyao  <xry111@mengyan1223.wang>
5393
5394         PR target/100760
5395         PR target/100761
5396         PR target/100762
5397         * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P
5398         instead of ISA_HAS_MSA.
5399         (mips_expand_vec_unpack): Likewise.
5400         (mips_expand_vector_init): Likewise.
5401
5402 2021-07-09  Kewen Lin  <linkw@linux.ibm.com>
5403
5404         * config/rs6000/vsx.md (mods_<mode>): Rename to...
5405         (mod<mode>3): ... this.
5406         (modu_<mode>): Rename to...
5407         (umod<mode>3): ... this.
5408         * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI,
5409         MODU_V4SI): Adjust.
5410
5411 2021-07-08  Jeff Law  <jeffreyalaw@gmail.com>
5412
5413         * config/h8300/shiftrotate.md (variable shifts): Expose condition
5414         code handling for the test before the loop.
5415
5416 2021-07-08  Martin Jambor  <mjambor@suse.cz>
5417
5418         PR ipa/101066
5419         * ipa-sra.c (class isra_call_summary): New member
5420         m_before_any_store, initialize it in the constructor.
5421         (isra_call_summary::dump): Dump the new field.
5422         (ipa_sra_call_summaries::duplicate): Copy it.
5423         (process_scan_results): Set it.
5424         (isra_write_edge_summary): Stream it.
5425         (isra_read_edge_summary): Likewise.
5426         (param_splitting_across_edge): Only override
5427         safe_to_import_accesses if m_before_any_store is set.
5428
5429 2021-07-08  Martin Sebor  <msebor@redhat.com>
5430
5431         PR bootstrap/101374
5432         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
5433         Use Object Size Type 0 instead of 1.
5434
5435 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
5436
5437         * tree-vect-loop.c (vectorizable_reduction): Remove always-true
5438         if condition.
5439
5440 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
5441
5442         * match.pd: Simplify an extend-operate-truncate sequence involving
5443         a POLY_INT_CST.
5444
5445 2021-07-08  Roger Sayle  <roger@nextmovesoftware.com>
5446             Richard Biener  <rguenther@suse.de>
5447
5448         PR tree-optimization/40210
5449         * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as
5450         (x>>C3)&C2 when possible.  Simplify bswap(x)>>C1 as ((T)x)>>C2
5451         when possible.  Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255.
5452
5453 2021-07-08  Uroš Bizjak  <ubizjak@gmail.com>
5454
5455         PR target/100637
5456         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
5457         Handle V4QI mode.
5458         * config/i386/mmx.md (V_32): New mode iterator.
5459         (mov<V_32:mode>): Use V_32 mode iterator.
5460         (*mov<V_32:mode>_internal): Ditto.
5461         (*push<V_32:mode>2_rex64): Ditto.
5462         (*push<V_32:mode>2): Ditto.
5463         (movmisalign<V_32:mode>): Ditto.
5464         (mmx_<any_shiftrt:insn>v1si3): New insn pattern.
5465         (sse4_1_<any_extend:code>v2qiv2hi2): Ditto.
5466         (vec_unpacks_lo_v4qi): New expander.
5467         (vec_unpacks_hi_v4qi): Ditto.
5468         (vec_unpacku_lo_v4qi): Ditto.
5469         (vec_unpacku_hi_v4qi): Ditto.
5470         * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode.
5471         (VALID_INT_MODE_P): Ditto.
5472
5473 2021-07-08  Michael Meissner  <meissner@linux.ibm.com>
5474
5475         PR target/100809
5476         * config/rs6000/rs6000.md (udivti3): New insn.
5477         (divti3): New insn.
5478         (umodti3): New insn.
5479         (modti3): New insn.
5480
5481 2021-07-07  Martin Sebor  <msebor@redhat.com>
5482
5483         PR tree-optimization/100137
5484         PR tree-optimization/99121
5485         PR tree-optimization/97027
5486         * builtins.c (access_ref::access_ref): Also set offmax.
5487         (access_ref::offset_in_range): Define new function.
5488         (access_ref::add_offset): Set offmax.
5489         (access_ref::inform_access): Handle access_none.
5490         (handle_mem_ref): Clear ostype.
5491         (compute_objsize_r): Handle ASSERT_EXPR.
5492         * builtins.h (struct access_ref): Add offmax member.
5493         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use
5494         compute_objsize() and simplify.
5495
5496 2021-07-07  Peter Bergner  <bergner@linux.ibm.com>
5497
5498         * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP
5499         and VSX_BUILTIN_STXVP.
5500
5501 2021-07-07  Martin Sebor  <msebor@redhat.com>
5502
5503         PR target/101363
5504         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove
5505         a stray %K from error_at() missed in r12-2088.
5506
5507 2021-07-07  Richard Biener  <rguenther@suse.de>
5508
5509         PR tree-optimization/99728
5510         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record
5511         aggregate copies.
5512         (mem_refs_may_alias_p): Add assert we handled aggregate
5513         copies elsewhere.
5514         (sm_seq_valid_bb): Give up when running into aggregate copies.
5515         (ref_indep_loop_p): Handle aggregate copies as never
5516         being invariant themselves but allow other refs to be
5517         disambiguated against them.
5518         (can_sm_ref_p): Do not try to apply store-motion to aggregate
5519         copies.
5520
5521 2021-07-06  Indu Bhagat  <indu.bhagat@oracle.com>
5522
5523         PR debug/101283
5524         * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get
5525         number of bits.
5526
5527 2021-07-06  Martin Sebor  <msebor@redhat.com>
5528
5529         * gimple-pretty-print.c (percent_G_format): Remove.
5530         * tree-diagnostic.c (default_tree_printer): Remove calls.
5531         * tree-pretty-print.c (percent_K_format): Remove.
5532         * tree-pretty-print.h (percent_K_format): Remove.
5533
5534 2021-07-06  Martin Sebor  <msebor@redhat.com>
5535
5536         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
5537         Remove %K and use error_at.
5538         (aarch64_expand_fcmla_builtin): Same.
5539         (aarch64_expand_builtin_tme): Same.
5540         (aarch64_expand_builtin_memtag): Same.
5541         * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same.
5542         (arm_expand_builtin): Same.
5543         * config/arm/arm.c (bounds_check): Same.
5544
5545 2021-07-06  Martin Sebor  <msebor@redhat.com>
5546
5547         * builtins.c (warn_string_no_nul): Remove %G.
5548         (maybe_warn_for_bound): Same.
5549         (warn_for_access): Same.
5550         (check_access): Same.
5551         (check_strncat_sizes): Same.
5552         (expand_builtin_strncat): Same.
5553         (expand_builtin_strncmp): Same.
5554         (expand_builtin): Same.
5555         (expand_builtin_object_size): Same.
5556         (warn_dealloc_offset): Same.
5557         (maybe_emit_free_warning): Same.
5558         * calls.c (maybe_warn_alloc_args_overflow): Same.
5559         (maybe_warn_nonstring_arg): Same.
5560         (maybe_warn_rdwr_sizes): Same.
5561         * expr.c (expand_expr_real_1): Remove %K.
5562         * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G.
5563         (gimple_fold_builtin_strncat): Same.
5564         * gimple-ssa-sprintf.c (format_directive): Same.
5565         (handle_printf_call): Same.
5566         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same.
5567         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
5568         (maybe_diag_access_bounds): Same.  Call gimple_location.
5569         (check_bounds_or_overlap): Same.
5570         * trans-mem.c (ipa_tm_scan_irr_block): Remove %K.  Simplify.
5571         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G.
5572         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
5573         (maybe_diag_stxncpy_trunc): Same.
5574         (handle_builtin_stxncpy_strncat): Same.
5575         (maybe_warn_pointless_strcmp): Same.
5576         * tree-ssa-uninit.c (maybe_warn_operand): Same.
5577
5578 2021-07-06  Uroš Bizjak  <ubizjak@gmail.com>
5579
5580         PR target/97194
5581         * config/i386/predicates.md (vec_setm_operand): Enable
5582         register_operand for TARGET_SSE4_1.
5583         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand
5584         as operand 2 predicate.  Call ix86_expand_vector_set_var
5585         for non-constant index operand.
5586         (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate.
5587         Call ix86_expand_vector_set_var for non-constant index operand.
5588
5589 2021-07-06  Jeff Law  <jeffreyalaw@gmail.com>
5590
5591         * config/h8300/jumpcall.md (*branch): When possible, generate
5592         the comparison in CCZN mode.
5593         * config/h8300/predicates.md (simple_memory_operand): Reject all
5594         auto-increment addressing modes.
5595
5596 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
5597
5598         PR bootstrap/100246
5599         * config/i386/i386.h (struct stringop_algs): Define a CTOR for
5600         this type.
5601
5602 2021-07-06  Richard Biener  <rguenther@suse.de>
5603
5604         * doc/md.texi (vec_fmaddsub<mode>4): Document.
5605         (vec_fmsubadd<mode>4): Likewise.
5606         * optabs.def (vec_fmaddsub$a4): Add.
5607         (vec_fmsubadd$a4): Likewise.
5608         * internal-fn.def (IFN_VEC_FMADDSUB): Add.
5609         (IFN_VEC_FMSUBADD): Likewise.
5610         * tree-vect-slp-patterns.c (addsub_pattern::recognize):
5611         Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD.
5612         (addsub_pattern::build): Likewise.
5613         * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB
5614         and CFN_VEC_FMSUBADD are not transparent for permutes.
5615         * config/i386/sse.md (vec_fmaddsub<mode>4): New expander.
5616         (vec_fmsubadd<mode>4): Likewise.
5617
5618 2021-07-06  Richard Biener  <rguenther@suse.de>
5619
5620         * doc/invoke.texi (fmove-loop-stores): Document.
5621         * common.opt (fmove-loop-stores): New option.
5622         * opts.c (default_options_table): Enable -fmove-loop-stores
5623         at -O1 but not -Og.
5624         * tree-ssa-loop-im.c (pass_lim::execute): Pass
5625         flag_move_loop_stores instead of true to
5626         loop_invariant_motion_in_fun.
5627
5628 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
5629
5630         * doc/install.texi: Document --with-dsymutil.
5631
5632 2021-07-06  Andrew Pinski  <apinski@marvell.com>
5633
5634         PR tree-optimization/101256
5635         * dbgcnt.def (phiopt_edge_range): New counter.
5636         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
5637         Check to make sure the new name is defined in the same
5638         bb as the conditional before duplicating range info.
5639         Also add debug counter.
5640
5641 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
5642
5643         PR rtl-optimization/100328
5644         * config/i386/i386-options.c (ix86_option_override_internal):
5645         Set param_ira_consider_dup_in_all_alts to 0.
5646
5647 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
5648
5649         PR rtl-optimization/100328
5650         * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new
5651         parameter.
5652         * ira.c (ira_get_dup_out_num): Adjust as parameter
5653         param_ira_consider_dup_in_all_alts.
5654         * params.opt (ira-consider-dup-in-all-alts): New.
5655         * ira-conflicts.c (process_regs_for_copy): Add one parameter
5656         single_input_op_has_cstr_p.
5657         (get_freq_for_shuffle_copy): New function.
5658         (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p.
5659         * ira-int.h (ira_get_dup_out_num): Add one bool parameter.
5660
5661 2021-07-05  Jeff Law  <jeffreyalaw@gmail.com>
5662
5663         * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to
5664         generate condition code aware RTL directly.
5665
5666 2021-07-05  Andrew Pinski  <apinski@marvell.com>
5667
5668         PR tree-optimization/101039
5669         * match.pd (A CMP 0 ? A : -A): New patterns.
5670         * tree-ssa-phiopt.c (abs_replacement): Delete function.
5671         (tree_ssa_phiopt_worker): Don't call abs_replacement.
5672         Update comment about abs_replacement.
5673
5674 2021-07-05  Andrew Pinski  <apinski@marvell.com>
5675
5676         * tree-ssa-phiopt.c (gimple_simplify_phiopt):
5677         If "A ? B : C" fails to simplify, try "(!A) ? C : B".
5678
5679 2021-07-05  Andrew Pinski  <apinski@marvell.com>
5680
5681         * tree-ssa-phiopt.c (match_simplify_replacement):
5682         Add early_p argument. Call gimple_simplify_phiopt
5683         instead of gimple_simplify.
5684         (tree_ssa_phiopt_worker): Update call to
5685         match_simplify_replacement and allow unconditionally.
5686         (phiopt_early_allow): New function.
5687         (gimple_simplify_phiopt): New function.
5688
5689 2021-07-05  Andrew Pinski  <apinski@marvell.com>
5690
5691         PR middle-end/101237
5692         * fold-const.c (negate_expr_p): Remove call to element_mode
5693         and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS,
5694         HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS.
5695         (fold_negate_expr_1): Likewise.
5696         (const_unop): Likewise.
5697         (fold_cond_expr_with_comparison): Likewise.
5698         (fold_binary_loc): Likewise.
5699         (fold_ternary_loc): Likewise.
5700         (tree_call_nonnegative_warnv_p): Likewise.
5701         * match.pd (-(A + B) -> (-B) - A): Likewise.
5702
5703 2021-07-05  Iain Sandoe  <iain@sandoe.co.uk>
5704
5705         * configure.ac: Handle --with-dsymutil in the same way as we
5706         do for the assembler and linker.  (DEFAULT_DSYMUTIL): New.
5707         Extract the type and version for the dsymutil configured or
5708         found by the default searches.
5709         * config.in: Regenerated.
5710         * configure: Regenerated.
5711         * collect2.c (do_dsymutil): Handle locating dsymutil in the
5712         same way as for the assembler and  linker.
5713         * config/darwin.h (DSYMUTIL): Delete.
5714         * gcc.c: Report a configured dsymutil correctly.
5715         * exec-tool.in: Allow for dsymutil.
5716
5717 2021-07-05  Uroš Bizjak  <ubizjak@gmail.com>
5718
5719         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
5720         Handle V4QI and V2HI modes.
5721         (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1.
5722         Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes.
5723         (expand_vec_perm_pshufb): Rewrite to use switch statemets.
5724         Handle 4-byte dual operands with TARGET_XOP and single operands
5725         with TARGET_SSSE3.  Emit mmx_ppermv32 for TARGET_XOP and
5726         mmx_pshufbv4qi3 for TARGET_SSSE3.
5727         (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1.
5728         (expand_vec_perm_interleave2): Allow 4-byte vector modes.
5729         (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3.
5730         (expand_vec_perm_even_odd_1): Handle V4QI mode.
5731         (expand_vec_perm_broadcast_1): Handle V4QI mode.
5732         (ix86_vectorize_vec_perm_const): Handle V4QI mode.
5733         * config/i386/mmx.md (mmx_ppermv32): New insn pattern.
5734         (mmx_pshufbv4qi3): Ditto.
5735         (*mmx_pblendw32): Ditto.
5736         (*mmx_pblendw64): Rename from *mmx_pblendw.
5737         (mmx_punpckhbw_low): New insn_and_split pattern.
5738         (mmx_punpcklbw_low): Ditto.
5739
5740 2021-07-05  Richard Biener  <rguenther@suse.de>
5741
5742         * tree-vect-loop-manip.c (vect_loop_versioning): Do not
5743         set LOOP_C_INFINITE on the vectorized loop.
5744
5745 2021-07-05  Richard Biener  <rguenther@suse.de>
5746
5747         PR middle-end/101291
5748         * cfgloopmanip.c (loop_version): Set the loop copy of the
5749         versioned loop to the new loop.
5750
5751 2021-07-04  Iain Sandoe  <iain@sandoe.co.uk>
5752
5753         PR target/100269
5754         * config.gcc: Ensure that Darwin biarch definitions are
5755         added before i386.h.
5756         * config/i386/darwin.h (TARGET_64BIT): Remove.
5757         (PR80556_WORKAROUND): New.
5758         (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND.
5759         (DARWIN_SUBARCH_SPEC): New.
5760         * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT,
5761         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
5762         (REAL_LIBGCC_SPEC): Remove.
5763         * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT,
5764         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
5765         (REAL_LIBGCC_SPEC): Remove.
5766
5767 2021-07-03  H.J. Lu  <hjl.tools@gmail.com>
5768
5769         PR middle-end/101294
5770         * expr.c (store_constructor): Don't use vec_duplicate on vector.
5771
5772 2021-07-02  Martin Sebor  <msebor@redhat.com>
5773
5774         PR middle-end/98871
5775         PR middle-end/98512
5776         * diagnostic.c (get_any_inlining_info): New.
5777         (update_effective_level_from_pragmas): Handle inlining context.
5778         (diagnostic_enabled): Same.
5779         (diagnostic_report_diagnostic): Same.
5780         * diagnostic.h (struct diagnostic_info): Add ctor.
5781         (struct diagnostic_context): Add new member.
5782         * tree-diagnostic.c (set_inlining_locations): New.
5783         (tree_diagnostics_defaults): Set new callback pointer.
5784
5785 2021-07-02  Peter Bergner  <bergner@linux.ibm.com>
5786
5787         * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
5788         New macros.
5789         (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins.
5790         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand
5791         lxvp and stxvp built-ins.
5792         (mma_init_builtins): Handle lxvp and stxvp built-ins.
5793         (builtin_function_type): Likewise.
5794         * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document.
5795
5796 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
5797
5798         * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept
5799         additional argument for the code.
5800         * config/h8300/h8300.c (compute_a_shift_cc): Accept additional
5801         argument for the code.  Just return if the ZN bits are useful or
5802         not rather than the old style CC_* enums.
5803         * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before
5804         more generic shiftqi patterns.
5805         (shifthi_noscratch, shiftsi_noscratch): Similarly.
5806         (shiftqi_noscratch_set_flags): New pattern.
5807         (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise.
5808
5809 2021-07-02  Andrew MacLeod  <amacleod@redhat.com>
5810
5811         PR tree-optimization/101223
5812         * range-op.cc (build_lt): Add -1 for signed values.
5813         (built_gt): Subtract -1 for signed values.
5814
5815 2021-07-02  David Faust  <david.faust@oracle.com>
5816
5817         * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT.
5818         (btf_asm_type): Likewise.
5819
5820 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
5821
5822         * config/h8300/h8300-protos.h (output_a_shift): Make first argument
5823         an array of rtx rather than a pointer to rtx.  Add code argument.
5824         (compute_a_shift_length): Similarly.
5825         * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the
5826         shift itself isn't an operand.  Create dummy operand[0] to carry
5827         a mode and pass a suitable rtx code to compute_a_shift_length.
5828         (get_shift_alg): Adjust operand number of clobber in output templates.
5829         (output_a_shift): Make first argument an array of rtx rather than
5830         a pointer to rtx.  Add code argument for the type of shift.
5831         Adjust now that the shift itself is no longer an operand.
5832         (compute_a_shift_length): Similarly.
5833         * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an
5834         iterator rather than nshift_operator.
5835         (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise.
5836         (shiftqi_clobber_flags): Adjust to API changes in output_a_shift
5837         and compute_a_shift_length.
5838         (shiftqi_noscratch_clobber_flags): Likewise.
5839         (shifthi_noscratch_clobber_flags): Likewise.
5840         (shiftsi_noscratch_clobber_flags): Likewise.
5841
5842 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
5843
5844         PR debug/101283
5845         * config/darwin.h (DSYMUTIL_SPEC): Do not try to run
5846         dsymutil for BTF/CTF.
5847
5848 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
5849
5850         PR debug/101283
5851         * config/darwin.h (CTF_INFO_SECTION_NAME): Update the
5852         segment to include BTF.
5853         (BTF_INFO_SECTION_NAME): New.
5854
5855 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
5856
5857         * config/m32r/m32r-protos.h (call_operand): Adjust return type.
5858         (small_data_operand, memreg_operand, small_insn_p): Likewise.
5859         * config/m32r/m32r.c (call_operand): Adjust return type.
5860         (small_data_operand, memreg_operand): Likewise.
5861
5862 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
5863
5864         * config/frv/frv-protos.h  (integer_register_operand): Adjust return
5865         type.
5866         (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise.
5867         (fpr_or_int6_operand, gpr_or_int_operand); Likewise.
5868         (gpr_or_int12_operand, gpr_or_int10_operand); Likewise.
5869         (move_source_operand, move_destination_operand): Likewise.
5870         (condexec_source_operand, condexec_dest_operand): Likewise.
5871         (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise.
5872         (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise.
5873         (fcr_operand, icr_operand, cr_operand, call_operand): Likewise.
5874         (fpr_operand, even_reg_operand, odd_reg_operand): Likewise.
5875         (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise.
5876         (even_fpr_operand, odd_fpr_operand): Likewise.
5877         (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise.
5878         (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise.
5879         (uint4_operand, uint1_operand, int_2word_operand): Likewise
5880         (upper_int16_operand, uint16_operand, symbolic_operand): Likewise.
5881         (relational_operator, float_relational_operator): Likewise.
5882         (ccr_eqne_operator, minmax_operator): Likewise.
5883         (condexec_si_binary_operator, condexec_si_media_operator): Likewise.
5884         (condexec_si_divide_operator, condexec_si_unary_operator): Likewise.
5885         (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise.
5886         (intop_compare_operator, acc_operand, even_acc_operand): Likewise.
5887         (quad_acc_operand, accg_operand): Likewise.
5888
5889 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
5890
5891         * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change
5892         return type to a bool.
5893         (nonimmediate_nonstack_operand): Likewise.
5894         (xstormy16_splittable_below100_operand): Likewise.
5895         * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix
5896         return type.
5897         (xstormy16_splittable_below100_operand): Likewise.
5898
5899 2021-07-02  Richard Biener  <rguenther@suse.de>
5900
5901         PR tree-optimization/101293
5902         * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases
5903         with combined offsets.
5904         (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were
5905         combined with the rest of the offset.
5906
5907 2021-07-02  Eric Botcazou  <ebotcazou@adacore.com>
5908
5909         * config/i386/i386.c (asm_preferred_eh_data_format): Always use the
5910         PIC encodings for PE-COFF targets.
5911
5912 2021-07-02  Jakub Jelinek  <jakub@redhat.com>
5913
5914         PR target/101286
5915         * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant):
5916         Return nullptr for TImode inner mode.
5917
5918 2021-07-02  Richard Biener  <rguenther@suse.de>
5919
5920         PR tree-optimization/101280
5921         PR tree-optimization/101173
5922         * gimple-loop-interchange.cc
5923         (tree_loop_interchange::valid_data_dependences): Properly
5924         guard all dependence checks with DDR_REVERSED_P or its
5925         inverse.
5926
5927 2021-07-02  Hongyu Wang  <hongyu.wang@intel.com>
5928
5929         * config/i386/i386-expand.c (ix86_expand_builtin):
5930         Add branch to clear odata when ZF is set for asedecenc_expand
5931         and wideaesdecenc_expand.
5932
5933 2021-07-02  Eugene Rozenfeld  <erozen@microsoft.com>
5934
5935         * config/i386/gcc-auto-profile: regenerate
5936
5937 2021-07-02  liuhongt  <hongtao.liu@intel.com>
5938
5939         * config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to ..
5940         (trunc<mode><pmov_dst_4_lower>2): this.
5941
5942 2021-07-01  David Malcolm  <dmalcolm@redhat.com>
5943
5944         * diagnostic.h (diagnostic_context::m_file_cache): New field.
5945         * input.c (class fcache): Rename to...
5946         (class file_cache_slot): ...this, making most members private and
5947         prefixing fields with "m_".
5948         (file_cache_slot::get_file_path): New accessor.
5949         (file_cache_slot::get_use_count): New accessor.
5950         (file_cache_slot::missing_trailing_newline_p): New accessor.
5951         (file_cache_slot::inc_use_count): New.
5952         (fcache_buffer_size): Move to...
5953         (file_cache_slot::buffer_size): ...here.
5954         (fcache_line_record_size): Move to...
5955         (file_cache_slot::line_record_size): ...here.
5956         (fcache_tab): Delete, in favor of global_dc->m_file_cache.
5957         (fcache_tab_size): Move to file_cache::num_file_slots.
5958         (diagnostic_file_cache_init): Update for move of fcache_tab
5959         to global_dc->m_file_cache.
5960         (diagnostic_file_cache_fini): Likewise.
5961         (lookup_file_in_cache_tab): Convert to...
5962         (file_cache::lookup_file): ...this.
5963         (diagnostics_file_cache_forcibly_evict_file): Update for move of
5964         fcache_tab to global_dc->m_file_cache, moving most of
5965         implementation to...
5966         (file_cache::forcibly_evict_file): ...this new function and...
5967         (file_cache_slot::evict): ...this new function.
5968         (evicted_cache_tab_entry): Convert to...
5969         (file_cache::evicted_cache_tab_entry): ...this.
5970         (add_file_to_cache_tab): Convert to...
5971         (file_cache::add_file): ...this, moving bulk of implementation
5972         to...
5973         (file_cache_slot::create): ..this new function.
5974         (file_cache::file_cache): New.
5975         (file_cache::~file_cache): New.
5976         (lookup_or_add_file_to_cache_tab): Convert to...
5977         (file_cache::lookup_or_add_file): ..this new function.
5978         (fcache::fcache): Rename to...
5979         (file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes
5980         to fields.
5981         (fcache::~fcache): Rename to...
5982         (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes
5983         to fields.
5984         (needs_read): Convert to...
5985         (file_cache_slot::needs_read_p): ...this.
5986         (needs_grow): Convert to...
5987         (file_cache_slot::needs_grow_p): ...this.
5988         (maybe_grow): Convert to...
5989         (file_cache_slot::maybe_grow): ...this.
5990         (read_data): Convert to...
5991         (file_cache_slot::read_data): ...this.
5992         (maybe_read_data): Convert to...
5993         (file_cache_slot::maybe_read_data): ...this.
5994         (get_next_line): Convert to...
5995         (file_cache_slot::get_next_line): ...this.
5996         (goto_next_line): Convert to...
5997         (file_cache_slot::goto_next_line): ...this.
5998         (read_line_num): Convert to...
5999         (file_cache_slot::read_line_num): ...this.
6000         (location_get_source_line): Update for moving of globals to
6001         global_dc->m_file_cache.
6002         (location_missing_trailing_newline): Likewise.
6003         * input.h (class file_cache_slot): New forward decl.
6004         (class file_cache): New.
6005
6006 2021-07-01  Michael Meissner  <meissner@linux.ibm.com>
6007
6008         * config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE
6009         128-bit floating point conditional move support.
6010         (have_compare_and_set_mask): Add IEEE 128-bit floating point
6011         types.
6012         * config/rs6000/rs6000.md (mov<mode>cc, IEEE128 iterator): New insn.
6013         (mov<mode>cc_p10, IEEE128 iterator): New insn.
6014         (mov<mode>cc_invert_p10, IEEE128 iterator): New insn.
6015         (fpmask<mode>, IEEE128 iterator): New insn.
6016         (xxsel<mode>, IEEE128 iterator): New insn.
6017
6018 2021-07-01  Iain Sandoe  <iain@sandoe.co.uk>
6019
6020         PR debug/101283
6021         * config/darwin.h (CTF_INFO_SECTION_NAME): New.
6022
6023 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
6024
6025         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
6026         Make it global.
6027         * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate):
6028         New prototype.
6029         * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator.
6030         (vec_duplicate<mode>): New expander.
6031
6032 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
6033
6034         PR target/100865
6035         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
6036         New prototype.
6037         (ix86_byte_broadcast): New function.
6038         (ix86_convert_const_wide_int_to_broadcast): Likewise.
6039         (ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode
6040         size is 16 bytes or bigger.
6041         (ix86_broadcast_from_integer_constant): New function.
6042         (ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR
6043         to broadcast if mode size is 16 bytes or bigger.
6044         * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New
6045         prototype.
6046         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function.
6047
6048 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
6049
6050         * config/i386/predicates.md (ix86_endbr_immediate_operand):
6051         Return true/false instead of 1/0.
6052         (movq_parallel): Ditto.
6053
6054 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
6055
6056         * recog.c (general_operand): Return true/false instead of 1/0.
6057         (register_operand): Ditto.
6058         (immediate_operand): Ditto.
6059         (const_int_operand): Ditto.
6060         (const_scalar_int_operand): Ditto.
6061         (const_double_operand): Ditto.
6062         (push_operand): Ditto.
6063         (pop_operand): Ditto.
6064         (memory_operand): Ditto.
6065         (indirect_operand): Ditto.
6066
6067 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
6068
6069         * genpreds.c (write_predicate_subfunction):
6070         Change the type of written subfunction to bool.
6071         (write_one_predicate_function):
6072         Change the type of written function to bool.
6073         (write_tm_preds_h): Ditto.
6074         * recog.h (*insn_operand_predicate_fn): Change the type to bool.
6075         * recog.c (general_operand): Change the type to bool.
6076         (address_operand): Ditto.
6077         (register_operand): Ditto.
6078         (pmode_register_operand): Ditto.
6079         (scratch_operand): Ditto.
6080         (immediate_operand): Ditto.
6081         (const_int_operand): Ditto.
6082         (const_scalar_int_operand): Ditto.
6083         (const_double_operand): Ditto.
6084         (nonimmediate_operand): Ditto.
6085         (nonmemory_operand): Ditto.
6086         (push_operand): Ditto.
6087         (pop_operand): Ditto.
6088         (memory_operand): Ditto.
6089         (indirect_operand): Ditto.
6090         (ordered_comparison_operator): Ditto.
6091         (comparison_operator): Ditto.
6092         * config/i386/i386-expand.c (ix86_expand_sse_cmp):
6093         Change the type of indirect predicate function to bool.
6094         * config/rs6000/rs6000.c (easy_vector_constant):
6095         Change the type to bool.
6096         * config/mips/mips-protos.h (m16_based_address_p):
6097         Change the type of operand 3 to bool.
6098
6099 2021-07-01  Richard Biener  <rguenther@suse.de>
6100
6101         PR tree-optimization/101280
6102         PR tree-optimization/101173
6103         * gimple-loop-interchange.cc
6104         (tree_loop_interchange::valid_data_dependences): Revert
6105         previous change and instead correctly handle DDR_REVERSED_P
6106         dependence.
6107
6108 2021-07-01  Richard Biener  <rguenther@suse.de>
6109
6110         PR tree-optimization/101278
6111         * tree-ssa-dse.c (dse_classify_store): First check for
6112         uses, then ignore stmt for chaining purposes.
6113
6114 2021-07-01  Richard Biener  <rguenther@suse.de>
6115
6116         PR tree-optimization/100778
6117         * tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping
6118         vectorized ops ahead of their scalar BB.
6119
6120 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
6121
6122         PR target/101044
6123         * config/i386/i386.md (*nabs<dwi>2_doubleword):
6124         New insn_and_split pattern.
6125         (*nabs<dwi>2_1): Ditto.
6126         * config/i386/i386-features.c
6127         (general_scalar_chain::compute_convert_gain):
6128         Handle (NEG (ABS (...))) RTX.  Rewrite src code
6129         scanner as switch statement.
6130         (general_scalar_chain::convert_insn):
6131         Handle (NEG (ABS (...))) RTX.
6132         (general_scalar_to_vector_candidate_p):
6133         Detect  (NEG (ABS (...))) RTX.  Reorder case statements
6134         for (AND (NOT (...) ...)) fallthrough.
6135
6136 2021-07-01  Richard Biener  <rguenther@suse.de>
6137
6138         PR tree-optimization/101178
6139         * tree-vect-slp.c (slpg_vertex::materialize): Remove.
6140         (slpg::perm_in): Add.
6141         (slpg::get_perm_in): Remove.
6142         (slpg::get_perm_materialized): Add.
6143         (vect_optimize_slp): Handle VEC_PERM nodes more optimally
6144         during permute propagation and materialization.
6145
6146 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
6147
6148         PR debug/101266
6149         * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR.
6150
6151 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
6152
6153         PR middle-end/94366
6154         * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to
6155         is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type,
6156         use boolean_type_node instead of integer_type_node as NE_EXPR type.
6157         (lower_reduction_clauses): Likewise.
6158
6159 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
6160
6161         * config/gcn/gcn.c: Include dwarf2.h.
6162         (gcn_addr_space_debug): New function.
6163         (TARGET_ADDR_SPACE_DEBUG): New hook.
6164
6165 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
6166
6167         * common/config/gcn/gcn-common.c
6168         (gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3.
6169         * config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer
6170         when emitting CFI.
6171         (gcn_expand_prologue): Prefer the frame pointer when emitting CFI.
6172         (gcn_frame_pointer_rqd): New function.
6173         (TARGET_FRAME_POINTER_REQUIRED): New hook.
6174
6175 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
6176
6177         * config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for
6178         prologue register saves.
6179         (gcn_debug_unwind_info): Use UI_DWARF2.
6180         (gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC.
6181         (gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span.
6182         * config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define.
6183         (DWARF_LINK_REGISTER): New define.
6184         (FIRST_PSEUDO_REGISTER): Increment.
6185         (FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER.
6186         (CALL_USED_REGISTERS): Likewise.
6187         (REGISTER_NAMES): Likewise.
6188
6189 2021-06-30  Richard Biener  <rguenther@suse.de>
6190
6191         PR tree-optimization/101267
6192         * tree-vect-stmts.c (vect_check_scalar_mask): Adjust
6193         API and use SLP compatible interface of vect_is_simple_use.
6194         Reject not vectorized SLP defs for callers that do not support
6195         that.
6196         (vect_check_store_rhs): Handle masked stores and pass down
6197         the appropriate operator index.
6198         (vectorizable_call): Adjust.
6199         (vectorizable_store): Likewise.
6200         (vectorizable_load): Likewise.  Handle SLP pecularity of
6201         masked loads.
6202         (vect_is_simple_use): Remove special-casing of masked stores.
6203
6204 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
6205
6206         * common.opt (foffload): Remove help as Driver only.
6207         * gcc.c (display_help): Add -foffload.
6208
6209 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
6210
6211         * gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC.
6212         (check_offload_target_name): Fix splitting OFFLOAD_TARGETS into
6213         a candidate list; better inform no offload target is configured
6214         and fix hint extraction when passed target is not '\0' at [len].
6215         * common.opt (foffload): Add tailing '.'.
6216         (foffload-options): Likewise; fix flag name in the help string.
6217
6218 2021-06-30  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
6219
6220         PR target/66791
6221         * config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32.
6222         (vcage_f32): Gate comparison on __FAST_MATH__.
6223         (vcageq_f32): Likewise.
6224         (vcale_f32): Likewise.
6225         (vcaleq_f32): Likewise.
6226         (vcagt_f32): Likewise.
6227         (vcagtq_f32): Likewise.
6228         (vcalt_f32): Likewise.
6229         (vcaltq_f32): Likewise.
6230         (vcage_f16): Likewise.
6231         (vcageq_f16): Likewise.
6232         (vcale_f16): Likewise.
6233         (vcaleq_f16): Likewise.
6234         (vcagt_f16): Likewise.
6235         (vcagtq_f16): Likewise.
6236         (vcalt_f16): Likewise.
6237         (vcaltq_f16): Likewise.
6238
6239 2021-06-30  Richard Biener  <rguenther@suse.de>
6240
6241         PR tree-optimization/101264
6242         * tree-vect-slp.c (vect_optimize_slp): Propagate the
6243         computed perm_in to all "any" permute successors
6244         we cannot de-duplicate immediately.
6245
6246 2021-06-30  liuhongt  <hongtao.liu@intel.com>
6247
6248         PR target/101248
6249         * config/i386/sse.md
6250         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>):
6251         Refined to ..
6252         (avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>):
6253         this.
6254         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>"): Refined.
6255         * config/i386/subst.md (maskz_scalar): New define_subst.
6256         (maskz_scalar_name): New subst_attr.
6257         (maskz_scalar_op5): Ditto.
6258         (round_saeonly_maskz_scalar_op5): Ditto.
6259         (round_saeonly_maskz_scalar_operand5): Ditto.
6260
6261 2021-06-30  David Edelsohn  <dje.gcc@gmail.com>
6262
6263         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
6264         Increase code CSECT alignment to at least 32 bytes.
6265         * config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte
6266         alignment designation.
6267
6268 2021-06-29  Sergei Trofimovich  <siarheit@google.com>
6269
6270         * doc/generic.texi: Fix s/net yet/not yet/ typo.
6271
6272 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
6273
6274         PR tree-optimization/101254
6275         * range-op.cc (operator_minus::op1_op2_relation_effect): Check for
6276         wrapping/non-wrapping when setting the result range.
6277
6278 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
6279
6280         * value-query.cc (gimple_range_global): Allow phis.
6281
6282 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
6283
6284         * vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt.
6285         (simplify_using_ranges::op_with_boolean_value_range_p): Add a
6286         statement for location context.
6287         (check_for_binary_op_overflow): Ditto.
6288         (simplify_using_ranges::get_vr_for_comparison): Ditto.
6289         (simplify_using_ranges::compare_name_with_value): Ditto.
6290         (simplify_using_ranges::compare_names): Ditto.
6291         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto.
6292         (simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto.
6293         (simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto.
6294         (simplify_using_ranges::simplify_internal_call_using_ranges): Ditto.
6295         (simplify_using_ranges::two_valued_val_range_p): Ditto.
6296         (simplify_using_ranges::simplify): Ditto.
6297         * vr-values.h: Adjust prototypes.
6298
6299 2021-06-29  Uroš Bizjak  <ubizjak@gmail.com>
6300
6301         PR target/95046
6302         * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern.
6303
6304 2021-06-29  Julian Brown  <julian@codesourcery.com>
6305
6306         * config/gcn/gcn.c (gcn_init_libfuncs): New function.
6307         (TARGET_INIT_LIBFUNCS): Define target hook using above function.
6308         * config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4
6309         otherwise.
6310         (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions.
6311         (MAX_FIXED_MODE_SIZE): Change to 128.
6312
6313 2021-06-29  Julian Brown  <julian@codesourcery.com>
6314
6315         * config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant.
6316         (s_mnemonic): Add clrsb.
6317         (gcn_flbit<mode>_int): Add insn pattern for SImode/DImode.
6318         (clrsb<mode>2): Add expander for SImode/DImode.
6319
6320 2021-06-29  Julian Brown  <julian@codesourcery.com>
6321
6322         * config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm,
6323         muldi3): Add patterns.
6324
6325 2021-06-29  Julian Brown  <julian@codesourcery.com>
6326
6327         * config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander.
6328         (<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns.
6329
6330 2021-06-29  Julian Brown  <julian@codesourcery.com>
6331
6332         * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.
6333
6334 2021-06-29  Joseph Myers  <joseph@codesourcery.com>
6335
6336         * btfout.c, ctfout.c: Include "memmodel.h".
6337
6338 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
6339
6340         * gcc.c (check_offload_target_name): Cast len argument to
6341         %q.*s to 'int'; avoid -Wstringop-truncation warning.
6342
6343 2021-06-29  Richard Biener  <rguenther@suse.de>
6344
6345         * tree-vect-slp.c (vect_optimize_slp): Forward propagate
6346         to "any" permute nodes and relax "any" permute proapgation
6347         during iterative backward propagation.
6348
6349 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
6350
6351         PR other/67300
6352         * common.opt (-foffload=): Update description.
6353         (-foffload-options=): New.
6354         * doc/invoke.texi (C Language Options): Document
6355         -foffload and -foffload-options.
6356         * gcc.c (check_offload_target_name): New, split off from
6357         handle_foffload_option.
6358         (check_foffload_target_names): New.
6359         (handle_foffload_option): Handle -foffload=default.
6360         (driver_handle_option): Update for -foffload-options.
6361         * lto-opts.c (lto_write_options): Use -foffload-options
6362         instead of -foffload.
6363         * lto-wrapper.c (merge_and_complain, append_offload_options):
6364         Likewise.
6365         * opts.c (common_handle_option): Likewise.
6366
6367 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
6368
6369         * doc/invoke.texi (C Language Options): Sort options
6370         alphabetically in optlist and also the description itself.
6371         Remove leftover -fallow-single-precision from and add missing
6372         -fgnu-tm to the optlist.
6373
6374 2021-06-29  Richard Biener  <rguenther@suse.de>
6375
6376         * tree-vect-slp.c (slpg_vertex::visited): Remove.
6377         (vect_slp_perms_eq): Handle -1 permutes.
6378         (vect_optimize_slp): Rewrite permute propagation.
6379
6380 2021-06-29  Jakub Jelinek  <jakub@redhat.com>
6381
6382         PR c++/101210
6383         * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't
6384         perform the optimization in GENERIC when sanitizing and x has a
6385         reference type.
6386
6387 2021-06-29  Richard Biener  <rguenther@suse.de>
6388
6389         PR tree-optimization/101242
6390         * tree-vect-slp.c (vect_slp_build_vertices): Force-add
6391         PHIs with not represented initial values as leafs.
6392
6393 2021-06-29  Jan-Benedict Glaw  <jbglaw@getslash.de>
6394
6395         * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning.
6396         * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove
6397         "register" keyword.
6398         (pdp11_initial_elimination_offset) Remove unused variable.
6399         (pdp11_cmp_length) Ditto.
6400         (pdp11_insn_cost): Ditto, and fix signedness warning.
6401
6402 2021-06-29  David Edelsohn  <dje.gcc@gmail.com>
6403
6404         * btfout.c: Include tm_p.h.
6405         * ctfout.c: Same.
6406
6407 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
6408
6409         * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as
6410         frame related.
6411         (bpf_expand_epilogue): Likewise.
6412         * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0.
6413         Do not define DBX_DEBUGGING_INFO.
6414
6415 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
6416
6417         * doc/invoke.texi: Document the CTF and BTF debug info options.
6418
6419 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
6420             David Faust  <david.faust@oracle.com>
6421             Jose E. Marchesi  <jose.marchesi@oracle.com>
6422             Weimin Pan  <weimin.pan@oracle.com>
6423
6424         * Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to
6425         GTFILES.  Add new object files.
6426         * common.opt: Add CTF and BTF debug info options.
6427         * btfout.c: New file.
6428         * ctfc.c: Likewise.
6429         * ctfc.h: Likewise.
6430         * ctfout.c: Likewise.
6431         * dwarf2ctf.c: Likewise.
6432         * dwarf2ctf.h: Likewise.
6433         * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and
6434         BTF_DEBUG.
6435         * dwarf2out.c (dwarf2out_source_line): Likewise.
6436         (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to
6437         be generated.
6438         (debug_format_do_cu): New function.
6439         (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for
6440         them if requested.
6441         Include dwarf2ctf.c.
6442         * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug
6443         formats.
6444         * flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG.
6445         (CTF_DEBUG): New bitmask.
6446         (BTF_DEBUG): Likewise.
6447         (enum ctf_debug_info_levels): New enum.
6448         * gengtype.c (open_base_files): Handle ctfc.h.
6449         (main): Handle uint32_t type.
6450         * flags.h (btf_debuginfo_p): New definition.
6451         (dwarf_based_debuginfo_p): Likewise.
6452         * opts.c (debug_type_names): Add entries for CTF and BTF.
6453         (btf_debuginfo_p): New function.
6454         (dwarf_based_debuginfo_p): Likewise.
6455         (common_handle_option): Handle -gctfN and -gbtf options.
6456         (set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate.
6457         * toplev.c (process_options): Inform the user and ignore -gctfLEVEL if
6458         frontend is not C.
6459
6460 2021-06-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
6461
6462         * dwarf2out.c (AT_class): Function is no longer static.
6463         (AT_int): Likewise.
6464         (AT_unsigned): Likewise.
6465         (AT_loc): Likewise.
6466         (get_AT): Likewise.
6467         (get_AT_string): Likewise.
6468         (get_AT_flag): Likewise.
6469         (get_AT_unsigned): Likewise.
6470         (get_AT_ref): Likewise.
6471         (new_die_raw): Likewise.
6472         (lookup_decl_die): Likewise.
6473         (base_type_die): Likewise.
6474         (add_name_attribute): Likewise.
6475         (add_AT_int): Likewise.
6476         (add_AT_unsigned): Likewise.
6477         (add_AT_loc): Likewise.
6478         (dw_get_die_tag): New function.
6479         (dw_get_die_child): Likewise.
6480         (dw_get_die_sib): Likewise.
6481         (struct dwarf_file_data): Move from here to dwarf2out.h
6482         (struct dw_attr_struct): Likewise.
6483         * dwarf2out.h: Analogous changes.
6484
6485 2021-06-28  Martin Jambor  <mjambor@suse.cz>
6486
6487         PR ipa/93385
6488         * ipa-param-manipulation.h (class ipa_param_body_adjustments): New
6489         members m_dead_stmts and m_dead_ssas.
6490         * ipa-param-manipulation.c
6491         (ipa_param_body_adjustments::mark_dead_statements): New function.
6492         (ipa_param_body_adjustments::common_initialization): Call it on
6493         all removed but not split parameters.
6494         (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
6495         new mwmbers.
6496         (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that
6497         are dead.
6498         * tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset
6499         dead debug statements.
6500         (copy_phis_for_bb): Do not copy dead PHI nodes.
6501
6502 2021-06-28  Martin Jambor  <mjambor@suse.cz>
6503
6504         PR ipa/93385
6505         * symtab-clones.h (clone_info): Removed member param_adjustments.
6506         * ipa-param-manipulation.h: Adjust initial comment to reflect how we
6507         deal with pass-through splits now.
6508         (ipa_param_performed_split): Removed.
6509         (ipa_param_adjustments::modify_call): Adjusted parameters.
6510         (class ipa_param_body_adjustments): Adjusted parameters of
6511         register_replacement, modify_gimple_stmt and modify_call_stmt.
6512         (ipa_verify_edge_has_no_modifications): Declare.
6513         (ipa_edge_modifications_finalize): Declare.
6514         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove
6515         performed_splits processing, pas only edge to padjs->modify_call,
6516         check that call arguments were not modified if they should not have
6517         been.
6518         * cgraphclones.c (cgraph_node::create_clone): Do not copy performed
6519         splits.
6520         * ipa-param-manipulation.c (struct pass_through_split_map): New type.
6521         (ipa_edge_modification_info): Likewise.
6522         (ipa_edge_modification_sum): Likewise.
6523         (ipa_edge_modifications): New edge summary.
6524         (ipa_verify_edge_has_no_modifications): New function.
6525         (transitive_split_p): Removed.
6526         (transitive_split_map): Likewise.
6527         (init_transitive_splits): Likewise.
6528         (ipa_param_adjustments::modify_call): Adjusted to use the new edge
6529         summary instead of performed_splits.
6530         (ipa_param_body_adjustments::register_replacement): Drop dummy
6531         parameter, set base_index of the created ipa_param_body_replacement.
6532         (phi_arg_will_live_p): New function.
6533         (ipa_param_body_adjustments::common_initialization): Do not create
6534         IPA_SRA dummy decls.
6535         (simple_tree_swap_info): Removed.
6536         (remap_split_decl_to_dummy): Likewise.
6537         (record_argument_state_1): New function.
6538         (record_argument_state): Likewise.
6539         (ipa_param_body_adjustments::modify_call_stmt): New parameter
6540         orig_stmt.  Do not work with dummy decls, save necessary info about
6541         changes to ipa_edge_modifications.
6542         (ipa_param_body_adjustments::modify_gimple_stmt): New parameter
6543         orig_stmt, pass it to modify_call_stmt.
6544         (ipa_param_body_adjustments::modify_cfun_body): Adjust call to
6545         modify_gimple_stmt.
6546         (ipa_edge_modifications_finalize): New function.
6547         * tree-inline.c (remap_gimple_stmt): Pass original statement to
6548         modify_gimple_stmt.
6549         (copy_phis_for_bb): Do not copy dead PHI nodes.
6550         (expand_call_inline): Do not remap performed_splits.
6551         (update_clone_info): Likewise.
6552         * toplev.c: Include ipa-param-manipulation.h.
6553         (toplev::finalize): Call ipa_edge_modifications_finalize.
6554
6555 2021-06-28  Andrew Pinski  <apinski@marvell.com>
6556
6557         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range
6558         info if we're the only things setting the target PHI.
6559         (value_replacement): Don't duplicate range here.
6560         (minmax_replacement): Likewise.
6561
6562 2021-06-28  Richard Biener  <rguenther@suse.de>
6563
6564         PR tree-optimization/101229
6565         * gimple-walk.c (gimple_walk_op): Handle PHIs.
6566
6567 2021-06-28  Martin Liska  <mliska@suse.cz>
6568
6569         * config/v850/v850.c (construct_dispose_instruction): Allocate
6570         a bigger buffer.
6571         (construct_prepare_instruction): Likewise.
6572
6573 2021-06-28  Martin Liska  <mliska@suse.cz>
6574
6575         * config/v850/v850.c (v850_option_override): Build default
6576         target node.
6577         (v850_can_inline_p): New.  Allow MASK_PROLOG_FUNCTION to be
6578         ignored for inlining.
6579         (TARGET_CAN_INLINE_P): New.
6580
6581 2021-06-28  Richard Biener  <rguenther@suse.de>
6582
6583         PR tree-optimization/101207
6584         * tree-vect-slp.c (vect_optimize_slp): Do BB reduction
6585         permute eliding for load permutations properly.
6586
6587 2021-06-28  Richard Biener  <rguenther@suse.de>
6588
6589         PR tree-optimization/101173
6590         * gimple-loop-interchange.cc
6591         (tree_loop_interchange::valid_data_dependences): Disallow outer
6592         loop dependence distance of zero.
6593
6594 2021-06-28  liuhongt  <hongtao.liu@intel.com>
6595
6596         PR target/100648
6597         * config/i386/sse.md (*avx_cmp<mode>3_lt): New
6598         define_insn_and_split.
6599         (*avx_cmp<mode>3_ltint): Ditto.
6600         (*avx2_pcmp<mode>3_3): Ditto.
6601         (*avx2_pcmp<mode>3_4): Ditto.
6602         (*avx2_pcmp<mode>3_5): Ditto.
6603
6604 2021-06-28  liuhongt  <hongtao.liu@intel.com>
6605
6606         * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256,
6607         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256,
6608         IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS,
6609         IX86_BUILTIN_PBLENDVB128): Replace icode with
6610         CODE_FOR_nothing.
6611         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv
6612         builtins.
6613         * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not):
6614         New pre_reload splitter.
6615
6616 2021-06-27  Andrew Pinski  <apinski@marvell.com>
6617
6618         PR middle-end/101230
6619         * fold-const.c (fold_ternary_loc): Check
6620         the return value of invert_tree_comparison.
6621
6622 2021-06-27  David Edelsohn  <dje.gcc@gmail.com>
6623
6624         * config.gcc: Add SPDX License Identifier.
6625         (powerpc-ibm-aix789): Default to aix73.h.
6626         (powerpc-ibm-aix7.2.*.*): New stanza.
6627         * config/rs6000/aix72.h: Add SPDX License Identifier.
6628         * config/rs6000/aix73.h: New file.
6629
6630 2021-06-26  Jason Merrill  <jason@redhat.com>
6631
6632         * except.c: #include "dwarf2.h" instead of "dwarf2out.h".
6633
6634 2021-06-26  Andrew Pinski  <apinski@marvell.com>
6635
6636         * genmatch.c (lower_cond): Copy for_subst_vec
6637         for the simplify also.
6638         (lower): Swap the order for lower_for and lower_cond.
6639
6640 2021-06-26  Andrew Pinski  <apinski@marvell.com>
6641
6642         * tree-ssa-phiopt.c (match_simplify_replacement): Reset
6643         flow senatitive info on the moved ssa set.
6644
6645 2021-06-26  Andrew Pinski  <apinski@marvell.com>
6646
6647         * fold-const.c (fold_cond_expr_with_comparison):
6648         Exand arg0 into comp_code, arg00, and arg01.
6649         (fold_ternary_loc): Use invert_tree_comparison
6650         instead of fold_invert_truthvalue for the case
6651         where we have A CMP B ? C : A.
6652
6653 2021-06-25  Martin Sebor  <msebor@redhat.com>
6654
6655         PR middle-end/101216
6656         * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant.
6657
6658 2021-06-25  Jeff Law  <jeffreyalaw@gmail.com>
6659
6660         * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT.
6661
6662 2021-06-25  Richard Biener  <rguenther@suse.de>
6663
6664         PR tree-optimization/101202
6665         * tree-vect-slp.c (vect_optimize_slp): Explicitely handle
6666         failed nodes.
6667
6668 2021-06-25  Richard Biener  <rguenther@suse.de>
6669
6670         * tree-vect-slp-patterns.c (addsub_pattern::build): Copy
6671         STMT_VINFO_REDUC_DEF from the original representative.
6672
6673 2021-06-25  Martin Sebor  <msebor@redhat.com>
6674
6675         * builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING,
6676         gimple_no_warning_p and gimple_set_no_warning with
6677         warning_suppressed_p, and suppress_warning.
6678         (c_strlen): Same.
6679         (maybe_warn_for_bound): Same.
6680         (warn_for_access): Same.
6681         (check_access): Same.
6682         (expand_builtin_strncmp): Same.
6683         (fold_builtin_varargs): Same.
6684         * calls.c (maybe_warn_nonstring_arg): Same.
6685         (maybe_warn_rdwr_sizes): Same.
6686         * cfgexpand.c (expand_call_stmt): Same.
6687         * cgraphunit.c (check_global_declaration): Same.
6688         * fold-const.c (fold_undefer_overflow_warnings): Same.
6689         (fold_truth_not_expr): Same.
6690         (fold_unary_loc): Same.
6691         (fold_checksum_tree): Same.
6692         * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same.
6693         (array_bounds_checker::check_mem_ref): Same.
6694         (array_bounds_checker::check_addr_expr): Same.
6695         (array_bounds_checker::check_array_bounds): Same.
6696         * gimple-expr.c (copy_var_decl): Same.
6697         * gimple-fold.c (gimple_fold_builtin_strcpy): Same.
6698         (gimple_fold_builtin_strncat): Same.
6699         (gimple_fold_builtin_stxcpy_chk): Same.
6700         (gimple_fold_builtin_stpcpy): Same.
6701         (gimple_fold_builtin_sprintf): Same.
6702         (fold_stmt_1): Same.
6703         * gimple-ssa-isolate-paths.c (diag_returned_locals): Same.
6704         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
6705         * gimple-ssa-sprintf.c (handle_printf_call): Same.
6706         * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same.
6707         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
6708         * gimple-ssa-warn-restrict.h: Adjust declarations.
6709         (maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING,
6710         gimple_no_warning_p and gimple_set_no_warning with
6711         warning_suppressed_p, and suppress_warning.
6712         (check_call): Same.
6713         (check_bounds_or_overlap): Same.
6714         * gimple.c (gimple_build_call_from_tree): Same.
6715         * gimplify.c (gimplify_return_expr): Same.
6716         (gimplify_cond_expr): Same.
6717         (gimplify_modify_expr_complex_part): Same.
6718         (gimplify_modify_expr): Same.
6719         (gimple_push_cleanup): Same.
6720         (gimplify_expr): Same.
6721         * omp-expand.c (expand_omp_for_generic): Same.
6722         (expand_omp_taskloop_for_outer): Same.
6723         * omp-low.c (lower_rec_input_clauses): Same.
6724         (lower_lastprivate_clauses): Same.
6725         (lower_send_clauses): Same.
6726         (lower_omp_target): Same.
6727         * tree-cfg.c (pass_warn_function_return::execute): Same.
6728         * tree-complex.c (create_one_component_var): Same.
6729         * tree-inline.c (remap_gimple_op_r): Same.
6730         (copy_tree_body_r): Same.
6731         (declare_return_variable): Same.
6732         (expand_call_inline): Same.
6733         * tree-nested.c (lookup_field_for_decl): Same.
6734         * tree-sra.c (create_access_replacement): Same.
6735         (generate_subtree_copies): Same.
6736         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same.
6737         * tree-ssa-forwprop.c (combine_cond_expr_cond): Same.
6738         * tree-ssa-loop-ch.c (ch_base::copy_headers): Same.
6739         * tree-ssa-loop-im.c (execute_sm): Same.
6740         * tree-ssa-phiopt.c (cond_store_replacement): Same.
6741         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
6742         (handle_builtin_strcpy): Same.
6743         (maybe_diag_stxncpy_trunc): Same.
6744         (handle_builtin_stxncpy_strncat): Same.
6745         (handle_builtin_strcat): Same.
6746         * tree-ssa-uninit.c (get_no_uninit_warning): Same.
6747         (set_no_uninit_warning): Same.
6748         (uninit_undefined_value_p): Same.
6749         (warn_uninit): Same.
6750         (maybe_warn_operand): Same.
6751         * tree-vrp.c (compare_values_warnv): Same.
6752         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same.
6753         (test_for_singularity): Same.
6754         * gimple.h (warning_suppressed_p): New function.
6755         (suppress_warning): Same.
6756         (copy_no_warning): Same.
6757         (gimple_set_block): Call gimple_set_location.
6758         (gimple_set_location): Call copy_warning.
6759
6760 2021-06-25  Martin Sebor  <msebor@redhat.com>
6761
6762         * tree.h (warning_suppressed_at, copy_warning,
6763         warning_suppressed_p, suppress_warning): New functions.
6764
6765 2021-06-25  Martin Sebor  <msebor@redhat.com>
6766
6767         * Makefile.in (OBJS-libcommon): Add diagnostic-spec.o.
6768         * gengtype.c (open_base_files): Add diagnostic-spec.h.
6769         * diagnostic-spec.c: New file.
6770         * diagnostic-spec.h: New file.
6771         * tree.h (no_warning, all_warnings, suppress_warning_at): New
6772         declarations.
6773         * warning-control.cc: New file.
6774
6775 2021-06-25  liuhongt  <hongtao.liu@intel.com>
6776
6777         PR target/101185
6778         * config/i386/i386.c (x86_order_regs_for_local_alloc):
6779         Revert r12-1669.
6780
6781 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
6782
6783         PR tree-optimization/101189
6784         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass
6785         LHS range of condition to postfold routine.
6786         (fold_using_range::postfold_gcond_edges): Only process the TRUE or
6787         FALSE edge if the LHS range supports it being taken.
6788         * gimple-range-fold.h (postfold_gcond_edges): Add range parameter.
6789
6790 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
6791
6792         * value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks.
6793         (relation_oracle::find_relation_block): Check correct bitmap.
6794         (relation_oracle::dump): Do not dump NULL blocks.
6795
6796 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
6797
6798         * gimple-range-cache.cc (ranger_cache::propagate_cache): Call
6799         range_on_edge instead of manually calculating.
6800
6801 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
6802
6803         * range-op.cc: Fix comment.
6804
6805 2021-06-24  Uroš Bizjak  <ubizjak@gmail.com>
6806
6807         PR target/89021
6808         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
6809         Handle V8QI and V4HI modes.
6810         * config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2):
6811         New insn pattern.
6812         (sse4_1_<any_extend:code>v4qiv4hi2): Ditto.
6813         (mmxpackmode): New mode attribute.
6814         (vec_pack_trunc_<mmxpackmode:mode>): New expander.
6815         (mmxunpackmode): New mode attribute.
6816         (vec_unpacks_lo_<mmxunpackmode:mode>): New expander.
6817         (vec_unpacks_hi_<mmxunpackmode:mode>): Ditto.
6818         (vec_unpacku_lo_<mmxunpackmode:mode>): Ditto.
6819         (vec_unpacku_hi_<mmxunpackmode:mode>): Ditto.
6820         * config/i386/i386.md (extsuffix): Move from ...
6821         * config/i386/sse.md: ... here.
6822
6823 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
6824
6825         * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here..
6826         (dwarf2out_finish): ...instead of here.
6827
6828 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
6829
6830         * configure.ac (--gdwarf-5 option): Use objdump instead of readelf.
6831         (working --gdwarf-4/--gdwarf-5 for all sources): Likewise.
6832         (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows.
6833         * configure: Regenerate.
6834
6835 2021-06-24  Richard Biener  <rguenther@suse.de>
6836
6837         * config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3,
6838         vec_addsubv8sf3, vec_addsubv4sf3): Merge into ...
6839         (vec_addsub<mode>3): ... using a new addsub_cst mode attribute.
6840
6841 2021-06-24  Richard Biener  <rguenther@suse.de>
6842
6843         * config/i386/sse.md (avx_addsubv4df3): Rename to
6844         vec_addsubv4df3.
6845         (avx_addsubv8sf3): Rename to vec_addsubv8sf3.
6846         (sse3_addsubv2df3): Rename to vec_addsubv2df3.
6847         (sse3_addsubv4sf3): Rename to vec_addsubv4sf3.
6848         * config/i386/i386-builtin.def: Adjust.
6849         * internal-fn.def (VEC_ADDSUB): New internal optab fn.
6850         * optabs.def (vec_addsub_optab): New optab.
6851         * tree-vect-slp-patterns.c (class addsub_pattern): New.
6852         (slp_patterns): Add addsub_pattern.
6853         * tree-vect-slp.c (vect_optimize_slp): Disable propagation
6854         across CFN_VEC_ADDSUB.
6855         * tree-vectorizer.h (vect_pattern::vect_pattern): Make
6856         m_ops optional.
6857         * doc/md.texi (vec_addsub<mode>3): Document.
6858
6859 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
6860
6861         PR middle-end/101170
6862         * df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs
6863         where regno + subreg_regno_offset wraps around use 0 as starting
6864         regno.
6865
6866 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
6867
6868         PR middle-end/101172
6869         * stor-layout.c (finish_bitfield_representative): If nextf has
6870         error_mark_node type, set repr type to error_mark_node too.
6871
6872 2021-06-24  Ilya Leoshkevich  <iii@linux.ibm.com>
6873
6874         * config/s390/s390.c (s390_function_profiler): Ignore labelno
6875         parameter.
6876         * config/s390/s390.h (NO_PROFILE_COUNTERS): Define.
6877
6878 2021-06-24  Richard Biener  <rguenther@suse.de>
6879
6880         * tree-vect-slp.c (vect_optimize_slp): Do not propagate
6881         across operations that have different semantics on different
6882         lanes.
6883
6884 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
6885
6886         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP.
6887         * gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses
6888         with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification
6889         of non-decl OMP_CLAUSE_DECL.  For OMP_CLAUSE_IN_REDUCTION on
6890         OMP_TARGET user outer_ctx instead of ctx for placeholders and
6891         initializer/combiner gimplification.
6892         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION
6893         on target constructs.
6894         (lower_rec_input_clauses): Likewise.
6895         (lower_omp_target): Likewise.
6896         * omp-expand.c (expand_omp_target): Temporarily ignore nowait clause
6897         on target if in_reduction is present.
6898
6899 2021-06-24  Kewen Lin  <linkw@linux.ibm.com>
6900
6901         * tree-predcom.c (class pcom_worker): New class.
6902         (release_chain): Renamed to...
6903         (pcom_worker::release_chain): ...this.
6904         (release_chains): Renamed to...
6905         (pcom_worker::release_chains): ...this.
6906         (aff_combination_dr_offset): Renamed to...
6907         (pcom_worker::aff_combination_dr_offset): ...this.
6908         (determine_offset): Renamed to...
6909         (pcom_worker::determine_offset): ...this.
6910         (class comp_ptrs): New class.
6911         (split_data_refs_to_components): Renamed to...
6912         (pcom_worker::split_data_refs_to_components): ...this,
6913         and update with class comp_ptrs.
6914         (suitable_component_p): Renamed to...
6915         (pcom_worker::suitable_component_p): ...this.
6916         (filter_suitable_components): Renamed to...
6917         (pcom_worker::filter_suitable_components): ...this.
6918         (valid_initializer_p): Renamed to...
6919         (pcom_worker::valid_initializer_p): ...this.
6920         (find_looparound_phi): Renamed to...
6921         (pcom_worker::find_looparound_phi): ...this.
6922         (add_looparound_copies): Renamed to...
6923         (pcom_worker::add_looparound_copies): ...this.
6924         (determine_roots_comp): Renamed to...
6925         (pcom_worker::determine_roots_comp): ...this.
6926         (determine_roots): Renamed to...
6927         (pcom_worker::determine_roots): ...this.
6928         (single_nonlooparound_use): Renamed to...
6929         (pcom_worker::single_nonlooparound_use): ...this.
6930         (remove_stmt): Renamed to...
6931         (pcom_worker::remove_stmt): ...this.
6932         (execute_pred_commoning_chain): Renamed to...
6933         (pcom_worker::execute_pred_commoning_chain): ...this.
6934         (execute_pred_commoning): Renamed to...
6935         (pcom_worker::execute_pred_commoning): ...this.
6936         (struct epcc_data): New member worker.
6937         (execute_pred_commoning_cbck): Call execute_pred_commoning
6938         with pcom_worker pointer.
6939         (find_use_stmt): Renamed to...
6940         (pcom_worker::find_use_stmt): ...this.
6941         (find_associative_operation_root): Renamed to...
6942         (pcom_worker::find_associative_operation_root): ...this.
6943         (find_common_use_stmt): Renamed to...
6944         (pcom_worker::find_common_use_stmt): ...this.
6945         (combinable_refs_p): Renamed to...
6946         (pcom_worker::combinable_refs_p): ...this.
6947         (reassociate_to_the_same_stmt): Renamed to...
6948         (pcom_worker::reassociate_to_the_same_stmt): ...this.
6949         (stmt_combining_refs): Renamed to...
6950         (pcom_worker::stmt_combining_refs): ...this.
6951         (combine_chains): Renamed to...
6952         (pcom_worker::combine_chains): ...this.
6953         (try_combine_chains): Renamed to...
6954         (pcom_worker::try_combine_chains): ...this.
6955         (prepare_initializers_chain): Renamed to...
6956         (pcom_worker::prepare_initializers_chain): ...this.
6957         (prepare_initializers): Renamed to...
6958         (pcom_worker::prepare_initializers): ...this.
6959         (prepare_finalizers_chain): Renamed to...
6960         (pcom_worker::prepare_finalizers_chain): ...this.
6961         (prepare_finalizers): Renamed to...
6962         (pcom_worker::prepare_finalizers): ...this.
6963         (tree_predictive_commoning_loop): Renamed to...
6964         (pcom_worker::tree_predictive_commoning_loop): ...this, adjust
6965         some calls and remove some cleanup code.
6966         (tree_predictive_commoning): Adjusted to use pcom_worker instance.
6967         (static variable looparound_phis): Remove.
6968         (static variable name_expansions): Remove.
6969
6970 2021-06-24  Richard Biener  <rguenther@suse.de>
6971
6972         * tree-vect-slp.c (slpg_vertex): New struct.
6973         (vect_slp_build_vertices): Adjust.
6974         (vect_optimize_slp): Likewise.  Maintain an outgoing permute
6975         and a materialized one.
6976
6977 2021-06-24  Richard Biener  <rguenther@suse.de>
6978
6979         PR tree-optimization/101105
6980         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
6981         Only ignore steps when they are equal or scalar order is preserved.
6982
6983 2021-06-24  liuhongt  <hongtao.liu@intel.com>
6984
6985         PR target/98434
6986         * config/i386/i386-expand.c (ix86_expand_vec_interleave):
6987         Adjust comments for ix86_expand_vecop_qihi2.
6988         (ix86_expand_vecmul_qihi): Renamed to ..
6989         (ix86_expand_vecop_qihi2): Adjust function prototype to
6990         support shift operation, add static to definition.
6991         (ix86_expand_vec_shift_qihi_constant): Add static to definition.
6992         (ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and
6993         ix86_expand_vec_shift_qihi_constant.
6994         * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted.
6995         (ix86_expand_vec_shift_qihi_constant): Deleted.
6996         * config/i386/sse.md (VI12_256_512_AVX512VL): New mode
6997         iterator.
6998         (mulv8qi3): Call ix86_expand_vecop_qihi directly, add
6999         condition TARGET_64BIT.
7000         (mul<mode>3): Ditto.
7001         (<insn><mode>3): Ditto.
7002         (vlshr<mode>3): Extend to support avx512 vlshr.
7003         (v<insn><mode>3): New expander for
7004         vashr/vlshr/vashl.
7005         (v<insn>v8qi3): Ditto.
7006         (vashrv8hi3<mask_name>): Renamed to ..
7007         (vashr<mode>3): And extend to support V16QImode for avx512.
7008         (vashrv16qi3): Deleted.
7009         (vashrv2di3<mask_name>): Extend expander to support avx512
7010         instruction.
7011
7012 2021-06-23  Dimitar Dimitrov  <dimitar@dinux.eu>
7013
7014         * doc/lto.texi (Design Overview): Update that slim objects are
7015         the default.
7016
7017 2021-06-23  Aaron Sawdey  <acsawdey@linux.ibm.com>
7018
7019         * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out
7020         of OTHER_POWER10_MASKS so it will not be enabled by default.
7021
7022 2021-06-23  Richard Biener  <rguenther@suse.de>
7023             Martin Jambor  <mjambor@suse.cz>
7024
7025         * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the
7026         param replacement unconditionally.  Adjust comment.
7027
7028 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
7029
7030         * Makefile.in (OBJS): Add gimple-range-fold.o
7031         * gimple-range-fold.cc: New.
7032         * gimple-range-fold.h: New.
7033         * gimple-range-gori.cc (gimple_range_calc_op1): Move to here.
7034         (gimple_range_calc_op2): Ditto.
7035         * gimple-range-gori.h: Move prototypes to here.
7036         * gimple-range.cc: Adjust include files.
7037         (fur_source:fur_source): Relocate to gimple-range-fold.cc.
7038         (fur_source::get_operand): Ditto.
7039         (fur_source::get_phi_operand): Ditto.
7040         (fur_source::query_relation): Ditto.
7041         (fur_source::register_relation): Ditto.
7042         (class fur_edge): Ditto.
7043         (fur_edge::fur_edge): Ditto.
7044         (fur_edge::get_operand): Ditto.
7045         (fur_edge::get_phi_operand): Ditto.
7046         (fur_stmt::fur_stmt): Ditto.
7047         (fur_stmt::get_operand): Ditto.
7048         (fur_stmt::get_phi_operand): Ditto.
7049         (fur_stmt::query_relation): Ditto.
7050         (class fur_depend): Relocate to gimple-range-fold.h.
7051         (fur_depend::fur_depend): Relocate to gimple-range-fold.cc.
7052         (fur_depend::register_relation): Ditto.
7053         (fur_depend::register_relation): Ditto.
7054         (class fur_list): Ditto.
7055         (fur_list::fur_list): Ditto.
7056         (fur_list::get_operand): Ditto.
7057         (fur_list::get_phi_operand): Ditto.
7058         (fold_range): Ditto.
7059         (adjust_pointer_diff_expr): Ditto.
7060         (gimple_range_adjustment): Ditto.
7061         (gimple_range_base_of_assignment): Ditto.
7062         (gimple_range_operand1): Ditto.
7063         (gimple_range_operand2): Ditto.
7064         (gimple_range_calc_op1): Relocate to gimple-range-gori.cc.
7065         (gimple_range_calc_op2): Ditto.
7066         (fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc.
7067         (fold_using_range::range_of_range_op): Ditto.
7068         (fold_using_range::range_of_address): Ditto.
7069         (fold_using_range::range_of_phi): Ditto.
7070         (fold_using_range::range_of_call): Ditto.
7071         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
7072         (fold_using_range::range_of_builtin_call): Ditto.
7073         (fold_using_range::range_of_cond_expr): Ditto.
7074         (fold_using_range::range_of_ssa_name_with_loop_info): Ditto.
7075         (fold_using_range::relation_fold_and_or): Ditto.
7076         (fold_using_range::postfold_gcond_edges): Ditto.
7077         * gimple-range.h: Add gimple-range-fold.h to include files. Change
7078         GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H.
7079         (gimple_range_handler): Relocate to gimple-range-fold.h.
7080         (gimple_range_ssa_p): Ditto.
7081         (range_compatible_p): Ditto.
7082         (class fur_source): Ditto.
7083         (class fur_stmt): Ditto.
7084         (class fold_using_range): Ditto.
7085         (gimple_range_calc_op1): Relocate to gimple-range-gori.h
7086         (gimple_range_calc_op2): Ditto.
7087
7088 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
7089
7090         PR tree-optimization/101148
7091         PR tree-optimization/101014
7092         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
7093         (ranger_cache::~ranger_cache): Adjust.
7094         (ranger_cache::block_range): Check if propagation disallowed.
7095         (ranger_cache::propagate_cache): Disallow propagation if new value
7096         can't be stored properly.
7097         * gimple-range-cache.h (ranger_cache::m_propfail): New member.
7098
7099 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
7100
7101         * gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype.
7102         (sbr_vector::set_bb_range): Return true.
7103         (class sbr_sparse_bitmap): Adjust.
7104         (sbr_sparse_bitmap::set_bb_range): Return value.
7105         (block_range_cache::set_bb_range): Return value.
7106         (ranger_cache::propagate_cache): Use return value to print msg.
7107         * gimple-range-cache.h (class block_range_cache): Adjust.
7108
7109 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
7110
7111         * gimple-range.cc (dump_bb): Use range_on_edge from the cache.
7112
7113 2021-06-23  Jeff Law  <jeffreyalaw@gmail.com>
7114
7115         * config/h8300/logical.md (<code><mode>3<ccnz>): Use <cczn>
7116         so this pattern can be used for test/compare removal.  Pass
7117         current insn to compute_logical_op_length and output_logical_op.
7118         * config/h8300/h8300.c (compute_logical_op_cc): Remove.
7119         (h8300_and_costs): Add argument to compute_logical_op_length.
7120         (output_logical_op): Add new argument.  Use it to determine if the
7121         condition codes are used and adjust the output accordingly.
7122         (compute_logical_op_length): Add new argument and update length
7123         computations when condition codes are used.
7124         * config/h8300/h8300-protos.h (compute_logical_op_length): Update
7125         prototype.
7126         (output_logical_op): Likewise.
7127
7128 2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>
7129
7130         PR target/89021
7131         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
7132         Handle 64bit modes for TARGET_XOP.  Use indirect gen_* functions.
7133         * config/i386/mmx.md (mmx_ppermv64): New insn pattern.
7134         * config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ...
7135         * config/i386/sse.md (unspec): ... here.
7136
7137 2021-06-23  Martin Liska  <mliska@suse.cz>
7138
7139         PR target/98636
7140         * optc-save-gen.awk: Put back arm_fp16_format to
7141         checked_options.
7142
7143 2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>
7144
7145         PR target/101175
7146         * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX.
7147         (bsr): Ditto.
7148         (*bsrhi): Remove.
7149         (clz<mode>2): Update RTX pattern for additions.
7150
7151 2021-06-23  Jakub Jelinek  <jakub@redhat.com>
7152
7153         PR middle-end/101167
7154         * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs
7155         and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set.
7156
7157 2021-06-22  Sergei Trofimovich  <siarheit@google.com>
7158
7159         * doc/rtl.texi: drop unbalanced parenthesis.
7160
7161 2021-06-22  Richard Biener  <rguenther@suse.de>
7162
7163         PR middle-end/101156
7164         * gimplify.c (gimplify_expr): Remove premature incorrect
7165         optimization.
7166
7167 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
7168
7169         PR tree-optimization/101159
7170         * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some
7171         comment typos.
7172
7173 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
7174
7175         PR middle-end/101160
7176         * function.c (assign_parms): For decl_result with TYPE_EMPTY_P type
7177         clear crtl->return_rtx instead of keeping it referencing a pseudo.
7178
7179 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
7180             Andrew Pinski  <apinski@marvell.com>
7181
7182         PR tree-optimization/101162
7183         * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer
7184         types.
7185
7186 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
7187
7188         * range-op.cc (range_relational_tests): New.
7189         (range_op_tests): Call range_relational_tests.
7190
7191 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
7192
7193         * range-op.cc (operator_cast::lhs_op1_relation): New.
7194         (operator_identity::lhs_op1_relation): Mew.
7195
7196 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
7197
7198         * range-op.cc (operator_minus::op1_op2_relation_effect): New.
7199
7200 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
7201
7202         * range-op.cc (operator_plus::lhs_op1_relation): New.
7203         (operator_plus::lhs_op2_relation): New.
7204
7205 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
7206
7207         * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a
7208         relation_oracle if dominators exist.
7209         (ranger_cache::~ranger_cache): Dispose of oracle.
7210         (ranger_cache::dump_bb): Dump oracle.
7211         * gimple-range.cc (fur_source::fur_source): New.
7212         (fur_source::get_operand): Use mmeber query.
7213         (fur_source::get_phi_operand): Use member_query.
7214         (fur_source::query_relation): New.
7215         (fur_source::register_dependency): Delete.
7216         (fur_source::register_relation): New.
7217         (fur_edge::fur_edge): Adjust.
7218         (fur_edge::get_phi_operand): Fix comment.
7219         (fur_edge::query): Delete.
7220         (fur_stmt::fur_stmt): Adjust.
7221         (fur_stmt::query): Delete.
7222         (fur_depend::fur_depend): Adjust.
7223         (fur_depend::register_relation): New.
7224         (fur_depend::register_relation): New.
7225         (fur_list::fur_list): Adjust.
7226         (fur_list::get_operand): Use member query.
7227         (fold_using_range::range_of_range_op): Process and query relations.
7228         (fold_using_range::range_of_address): Adjust dependency call.
7229         (fold_using_range::range_of_phi): Ditto.
7230         (gimple_ranger::gimple_ranger): New.  Use ranger_ache oracle.
7231         (fold_using_range::relation_fold_and_or): New.
7232         (fold_using_range::postfold_gcond_edges): New.
7233         * gimple-range.h (class gimple_ranger): Adjust.
7234         (class fur_source): Adjust members.
7235         (class fur_stmt): Ditto.
7236         (class fold_using_range): Ditto.
7237
7238 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
7239
7240         * range-op.cc (range_operator::wi_fold): Apply relation effect.
7241         (range_operator::fold_range): Adjust and apply relation effect.
7242         (*::fold_range): Add relation parameters.
7243         (*::op1_range): Ditto.
7244         (*::op2_range): Ditto.
7245         (range_operator::lhs_op1_relation): New.
7246         (range_operator::lhs_op2_relation): New.
7247         (range_operator::op1_op2_relation): New.
7248         (range_operator::op1_op2_relation_effect): New.
7249         (relop_early_resolve): New.
7250         (operator_equal::op1_op2_relation): New.
7251         (operator_equal::fold_range): Call relop_early_resolve.
7252         (operator_not_equal::op1_op2_relation): New.
7253         (operator_not_equal::fold_range): Call relop_early_resolve.
7254         (operator_lt::op1_op2_relation): New.
7255         (operator_lt::fold_range): Call relop_early_resolve.
7256         (operator_le::op1_op2_relation): New.
7257         (operator_le::fold_range): Call relop_early_resolve.
7258         (operator_gt::op1_op2_relation): New.
7259         (operator_gt::fold_range): Call relop_early_resolve.
7260         (operator_ge::op1_op2_relation): New.
7261         (operator_ge::fold_range): Call relop_early_resolve.
7262         * range-op.h (class range_operator): Adjust parameters and methods.
7263
7264 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
7265
7266         * Makefile.in (OBJS): Add value-relation.o.
7267         * gimple-range.h: Adjust include files.
7268         * tree-data-ref.c: Adjust include file order.
7269         * value-query.cc (range_query::get_value_range): Default to no oracle.
7270         (range_query::query_relation): New.
7271         (range_query::query_relation): New.
7272         * value-query.h (class range_query): Adjust.
7273         * value-relation.cc: New.
7274         * value-relation.h: New.
7275
7276 2021-06-22  Richard Biener  <rguenther@suse.de>
7277
7278         PR tree-optimization/101151
7279         * tree-ssa-sink.c (statement_sink_location): Expand irreducible
7280         region check.
7281
7282 2021-06-22  Jojo R  <rjiejie@linux.alibaba.com>
7283
7284         * config/riscv/riscv.c (thead_c906_tune_info): New.
7285         (riscv_tune_info_table): Use new tune.
7286
7287 2021-06-22  Richard Biener  <rguenther@suse.de>
7288
7289         PR tree-optimization/101158
7290         * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand
7291         checking after checking for matching operation.
7292
7293 2021-06-22  Richard Biener  <rguenther@suse.de>
7294
7295         PR tree-optimization/101159
7296         * tree-vect-patterns.c (vect_recog_popcount_pattern): Add
7297         missing NULL vectype check.
7298
7299 2021-06-22  Richard Biener  <rguenther@suse.de>
7300
7301         PR tree-optimization/101154
7302         * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access.
7303
7304 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
7305
7306         PR target/11877
7307         * config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare.
7308         * config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable.
7309         * config/i386/i386.c (ix86_expand_prologue): Clear it.
7310         * config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx):
7311         Remove "" from match_operand.  Emit new insns using emit_move_insn and
7312         set ix86_last_zero_store_uid to INSN_UID of the last store.
7313         Add peephole2s for 1/2/4 stores of const0_rtx following previous
7314         successful peep2s.
7315
7316 2021-06-22  Martin Liska  <mliska@suse.cz>
7317
7318         * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format
7319         was changed.
7320
7321 2021-06-22  Martin Liska  <mliska@suse.cz>
7322
7323         * gcov-io.h: Remove padding entries.
7324
7325 2021-06-22  liuhongt  <hongtao.liu@intel.com>
7326
7327         PR tree-optimization/97770
7328         * tree-vect-patterns.c (vect_recog_popcount_pattern):
7329         New.
7330         (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern.
7331
7332 2021-06-22  liuhongt  <hongtao.liu@intel.com>
7333
7334         PR target/100267
7335         * config/i386/i386-builtin.def (BDESC): Adjust builtin name.
7336         * config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to ..
7337         (expand<mode>_mask): this ..
7338         (*expand<mode>_mask): New pre_reload splitter to transform
7339         v{,p}expand* to vmov* when mask is zero, all ones, or has all
7340         ones in it's lower part, otherwise still generate
7341         v{,p}expand*.
7342
7343 2021-06-22  liuhongt  <hongtao.liu@intel.com>
7344
7345         PR target/100310
7346         * config/i386/i386-expand.c
7347         (ix86_expand_special_args_builtin): Keep constm1_operand only
7348         if it satisfies insn's operand predicate.
7349
7350 2021-06-21  Jason Merrill  <jason@redhat.com>
7351
7352         PR target/88529
7353         * df-scan.c (df_ref_record): Check that regno < endregno.
7354         * function.c (assign_parms, expand_function_end): Do nothing with a
7355         TYPE_EMPTY_P result.
7356
7357 2021-06-21  Richard Biener  <rguenther@suse.de>
7358
7359         PR tree-optimization/101120
7360         * tree-vect-data-refs.c (bump_vector_ptr): Fold the
7361         built increment.
7362         * tree-vect-slp.c (vect_transform_slp_perm_load): Add
7363         DR chain DCE capability.
7364         * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
7365         * tree-vect-stmts.c (vectorizable_load): Remove unused
7366         loads in the DR chain for SLP.
7367
7368 2021-06-21  Jakub Jelinek  <jakub@redhat.com>
7369
7370         PR inline-asm/100785
7371         * gimplify.c (gimplify_asm_expr): Don't diagnose errors if
7372         output or input operands were already error_mark_node.
7373         * cfgexpand.c (expand_asm_stmt): If errors are emitted,
7374         remove all inputs, outputs and clobbers from the asm and
7375         set template to "".
7376
7377 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
7378
7379         * config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b.
7380         (vceq_s16): Likewise.
7381         (vceq_s32): Likewise.
7382         (vceq_u8): Likewise.
7383         (vceq_u16): Likewise.
7384         (vceq_u32): Likewise.
7385         (vceq_p8): Likewise.
7386         (vceqq_s8): Likewise.
7387         (vceqq_s16): Likewise.
7388         (vceqq_s32): Likewise.
7389         (vceqq_u8): Likewise.
7390         (vceqq_u16): Likewise.
7391         (vceqq_u32): Likewise.
7392         (vceqq_p8): Likewise.
7393         (vceq_f32): Gate __a == __b on __FAST_MATH__.
7394         (vceqq_f32): Likewise.
7395         (vceq_f16): Likewise.
7396         (vceqq_f16): Likewise.
7397
7398 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
7399
7400         PR target/97906
7401         * config/arm/iterators.md (NEON_VACMP): Remove.
7402         * config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE
7403         iterator.
7404         (neon_vca<cmp_op><mode>_insn): Likewise.
7405         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of
7406         NEON_VACMP.
7407
7408 2021-06-21  Richard Biener  <rguenther@suse.de>
7409
7410         PR tree-optimization/101121
7411         * tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally
7412         when we just lack a stmt with the desired op when doing permutation.
7413         (vect_build_slp_tree): When caching a failed SLP build attempt
7414         assert that at least one lane is marked as not matching.
7415
7416 2021-06-21  liuhongt  <hongtao.liu@intel.com>
7417
7418         PR target/101142
7419         * config/i386/i386.md: (*anddi_1): Disparage slightly the mask
7420         register alternative.
7421         (*and<mode>_1): Ditto.
7422         (*andqi_1): Ditto.
7423         (*andn<mode>_1): Ditto.
7424         (*<code><mode>_1): Ditto.
7425         (*<code>qi_1): Ditto.
7426         (*one_cmpl<mode>2_1): Ditto.
7427         (*one_cmplsi2_1_zext): Ditto.
7428         (*one_cmplqi2_1): Ditto.
7429         * config/i386/i386.c (x86_order_regs_for_local_alloc): Change
7430         the order of mask registers to be before general registers.
7431
7432 2021-06-21  Roger Sayle  <roger@nextmovesoftware.com>
7433
7434         PR target/11877
7435         * config/i386/i386.md: New define_peephole2s to shrink writing
7436         1, 2 or 4 consecutive zeros to memory when optimizing for size.
7437
7438 2021-06-18  Jeff Law  <jeffreyalaw@gmail.com>
7439
7440         * config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF.
7441         * config/h8300/logical.md (<code><mode>3 logcial expander): Generate
7442         more efficient code when the source can be trivially simplified.
7443
7444 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
7445
7446         * gimple-range-cache.cc (ranger_cache::range_of_def):  Calculate
7447         a range if global is not available.
7448         (ranger_cache::entry_range): Fallback to range_of_def.
7449         * gimple-range-cache.h (range_of_def): Adjust prototype.
7450
7451 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
7452
7453         PR tree-optimization/101014
7454         * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor
7455         value list.
7456         (ranger_cache::~ranger_cache): Ditto.
7457         (ranger_cache::enable_new_values): Delete.
7458         (ranger_cache::push_poor_value): Delete.
7459         (ranger_cache::range_of_def): Remove poor value processing.
7460         (ranger_cache::entry_range): Ditto.
7461         (ranger_cache::fill_block_cache): Ditto.
7462         * gimple-range-cache.h (class ranger_cache): Remove poor value members.
7463         * gimple-range.cc (gimple_ranger::range_of_expr): Remove call.
7464         * gimple-range.h (class gimple_ranger): Adjust.
7465
7466 2021-06-18  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
7467
7468         PR target/100856
7469         * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function
7470         derived from arm_canon_arch.
7471         (arm_canon_arch_option): Call it.
7472         (arm_canon_arch_multilib_option): New function.
7473         * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup.
7474         * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype.
7475         (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro.
7476         (MULTILIB_ARCH_CANONICAL_SPECS): New macro.
7477         (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS.
7478         * config/arm/arm.opt (mlibarch): New option.
7479         * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use
7480         of march on RHS with mlibarch.
7481
7482 2021-06-18  Marcel Vollweiler  <marcel@codesourcery.com>
7483
7484         * config.in: Regenerate.
7485         * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
7486         functions.
7487         * configure: Regenerate.
7488         * configure.ac: Fix for global_load assembler functions.
7489
7490 2021-06-18  Richard Biener  <rguenther@suse.de>
7491
7492         PR tree-optimization/101112
7493         * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition
7494         to lookup a pattern stmt def.
7495
7496 2021-06-18  Jakub Jelinek  <jakub@redhat.com>
7497
7498         PR middle-end/101062
7499         * stor-layout.c (finish_bitfield_layout): Don't add bitfield
7500         representatives in QUAL_UNION_TYPE.
7501
7502 2021-06-18  Andrew Pinski  <apinski@marvell.com>
7503
7504         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
7505         Add counting of how many times it is done.
7506         (factor_out_conditional_conversion): Likewise.
7507         (match_simplify_replacement): Likewise.
7508         (value_replacement): Likewise.
7509         (spaceship_replacement): Likewise.
7510         (cond_store_replacement): Likewise.
7511         (cond_if_else_store_replacement_1): Likewise.
7512         (hoist_adjacent_loads): Likewise.
7513
7514 2021-06-18  Andrew Pinski  <apinski@marvell.com>
7515
7516         * tree-cfg.c (verify_gimple_assign_unary): Reject point and offset
7517         types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR.
7518         (verify_gimple_assign_binary): Reject point and offset types on
7519         MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR,
7520         FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR,
7521         FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR.
7522
7523 2021-06-18  Michael Meissner  <meissner@linux.ibm.com>
7524
7525         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA
7526         3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions.
7527         * config/rs6000/rs6000.md (s<minmax><mode>3, IEEE128 iterator):
7528         New insns.
7529
7530 2021-06-17  Aaron Sawdey  <acsawdey@linux.ibm.com>
7531
7532         * config/rs6000/genfusion.pl (gen_logical_addsubf): Add
7533         earlyclobber to alts 0/1.
7534         (gen_addadd): Add earlyclobber to alts 0/1.
7535         * config/rs6000/fusion.md: Regenerate file.
7536
7537 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
7538
7539         * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec.
7540
7541 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
7542
7543         * gimple-range-cache.cc: Comment cleanups.
7544         * gimple-range-gori.cc: Comment cleanups.
7545         * gimple-range.cc: Comment/spacing cleanups
7546         * value-range.h: Comment cleanups.
7547
7548 2021-06-17  H.J. Lu  <hjl.tools@gmail.com>
7549
7550         PR target/100704
7551         * calls.c (expand_call): Replace PUSH_ARGS with
7552         targetm.calls.push_argument (0).
7553         (emit_library_call_value_1): Likewise.
7554         * defaults.h (PUSH_ARGS): Removed.
7555         (PUSH_ARGS_REVERSED): Replace PUSH_ARGS with
7556         targetm.calls.push_argument (0).
7557         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
7558         (emit_push_insn): Pass the number bytes to push to
7559         targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0.
7560         * hooks.c (hook_bool_uint_true): New.
7561         * hooks.h (hook_bool_uint_true): Likewise.
7562         * rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with
7563         targetm.calls.push_argument (0).
7564         * target.def (push_argument): Add a targetm.calls hook.
7565         * targhooks.c (default_push_argument): New.
7566         * targhooks.h (default_push_argument): Likewise.
7567         * config/bpf/bpf.h (PUSH_ARGS): Removed.
7568         * config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New.
7569         * config/cr16/cr16.h (PUSH_ARGS): Removed.
7570         * config/i386/i386.c (ix86_push_argument): New.
7571         (TARGET_PUSH_ARGUMENT): Likewise.
7572         * config/i386/i386.h (PUSH_ARGS): Removed.
7573         * config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New.
7574         * config/m32c/m32c.h (PUSH_ARGS): Removed.
7575         * config/nios2/nios2.h (PUSH_ARGS): Likewise.
7576         * config/pru/pru.h (PUSH_ARGS): Likewise.
7577         * doc/tm.texi.in: Remove PUSH_ARGS documentation.  Add
7578         TARGET_PUSH_ARGUMENT hook.
7579         * doc/tm.texi: Regenerated.
7580
7581 2021-06-17  Uroš Bizjak  <ubizjak@gmail.com>
7582
7583         PR target/97194
7584         * config/i386/i386-expand.c (expand_vector_set_var):
7585         Handle V2FS mode remapping.  Pass TARGET_MMX_WITH_SSE to
7586         ix86_expand_vector_init_duplicate.
7587         (ix86_expand_vector_init_duplicate): Emit insv_1 for
7588         QImode for !TARGET_PARTIAL_REG_STALL.
7589         * config/i386/predicates.md (vec_setm_mmx_operand): New predicate.
7590         * config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand
7591         as operand 2 predicate.  Call ix86_expand_vector_set_var
7592         for non-constant index operand.
7593         (vec_setv2si): Ditto.
7594         (vec_setv4hi): Ditto.
7595         (vec_setv8qi): ditto.
7596
7597 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
7598
7599         PR tree-optimization/100790
7600         * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz
7601         code.
7602
7603 2021-06-17  Martin Liska  <mliska@suse.cz>
7604
7605         * doc/invoke.texi: Use consistently -O1 instead of -O.
7606
7607 2021-06-17  Martin Liska  <mliska@suse.cz>
7608
7609         * gcov-io.h: Update documentation entry about string format.
7610
7611 2021-06-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
7612
7613         PR target/100871
7614         * config/s390/vecintrin.h (vec_doublee): Fix to use
7615           __builtin_s390_vflls.
7616         (vec_floate): Fix to use __builtin_s390_vflrd.
7617
7618 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
7619
7620         * dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>.
7621         * dominance.h (get_dominated_to_depth): Likewise.
7622         (get_all_dominated_blocks): Likewise.
7623         * cfgcleanup.c (delete_unreachable_blocks): Adjust.
7624         * gcse.c (hoist_code): Likewise.
7625         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
7626         * tree-parloops.c (oacc_entry_exit_ok): Likewise.
7627         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
7628         * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise.
7629
7630 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
7631
7632         * dominance.c (get_dominated_by_region): Return auto_vec<basic_block>.
7633         * dominance.h (get_dominated_by_region): Likewise.
7634         * tree-cfg.c (gimple_duplicate_sese_region): Adjust.
7635         (gimple_duplicate_sese_tail): Likewise.
7636         (move_sese_region_to_fn): Likewise.
7637
7638 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
7639
7640         * dominance.c (get_dominated_by): Return auto_vec<basic_block>.
7641         * dominance.h (get_dominated_by): Likewise.
7642         * auto-profile.c (afdo_find_equiv_class): Adjust.
7643         * cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise.
7644         * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
7645         * tree-cfg.c (test_linear_chain): Likewise.
7646         (test_diamond): Likewise.
7647
7648 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
7649
7650         * cfgloop.h (get_loop_hot_path): Return auto_vec<basic_block>.
7651         * cfgloopanal.c (get_loop_hot_path): Likewise.
7652         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
7653
7654 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
7655
7656         * cgraph.c (cgraph_node::collect_callers): Return
7657         auto_vec<cgraph_edge *>.
7658         * cgraph.h (cgraph_node::collect_callers): Likewise.
7659         * ipa-cp.c (create_specialized_node): Adjust.
7660         (decide_about_value): Likewise.
7661         (decide_whether_version_node): Likewise.
7662         * ipa-sra.c (process_isra_node_results): Likewise.
7663
7664 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
7665
7666         * vec.h (vl_ptr>::using_auto_storage): Handle null m_vec.
7667         (auto_vec<T, 0>::auto_vec): Define move constructor, and delete copy
7668         constructor.
7669         (auto_vec<T, 0>::operator=): Define move assignment and delete copy
7670         assignment.
7671
7672 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
7673
7674         * gimple-range.cc (debug_seed_ranger): New.
7675         (dump_ranger): New.
7676         (debug_ranger): New.
7677
7678 2021-06-17  Richard Biener   <rguenther@suse.de>
7679
7680         PR tree-optimization/54400
7681         * tree-vectorizer.h (enum slp_instance_kind): Add
7682         slp_inst_kind_bb_reduc.
7683         (reduction_fn_for_scalar_code): Declare.
7684         * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
7685         Check SLP_INSTANCE_KIND instead of looking at the
7686         representative.
7687         (vect_slp_analyze_instance_alignment): Likewise.
7688         * tree-vect-loop.c (reduction_fn_for_scalar_code): Export.
7689         * tree-vect-slp.c (vect_slp_linearize_chain): Split out
7690         chain linearization from vect_build_slp_tree_2 and generalize
7691         for the use of BB reduction vectorization.
7692         (vect_build_slp_tree_2): Adjust accordingly.
7693         (vect_optimize_slp): Elide permutes at the root of BB reduction
7694         instances.
7695         (vectorizable_bb_reduc_epilogue): New function.
7696         (vect_slp_prune_covered_roots): Likewise.
7697         (vect_slp_analyze_operations): Use them.
7698         (vect_slp_check_for_constructors): Recognize associatable
7699         chains for BB reduction vectorization.
7700         (vectorize_slp_instance_root_stmt): Generate code for the
7701         BB reduction epilogue.
7702
7703 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
7704
7705         * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with
7706         may_recompute_p.
7707         (gori_compute::may_recompute_p): New.
7708         (gori_compute::outgoing_edge_range_p): Perform recomputations.
7709         * gimple-range-gori.h (class gori_compute): Add prototype.
7710
7711 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
7712
7713         * gimple-range-cache.cc (ranger_cache::range_on_edge): Always return
7714         true when a range can be calculated.
7715         * gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p.
7716
7717 2021-06-16  Martin Sebor  <msebor@redhat.com>
7718
7719         * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete):
7720         Correct documented defaults.
7721
7722 2021-06-16  Andrew MacLeod  <amacleod@redhat.com>
7723
7724         * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize
7725         m_new_value_p directly.
7726
7727 2021-06-16  Uroš Bizjak  <ubizjak@gmail.com>
7728
7729         PR target/89021
7730         * config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv):
7731         Handle 64bit modes for TARGET_SSE4_1.
7732         (expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3.
7733         (expand_vec_perm_even_odd_pack): Handle V4HI mode.
7734         (expand_vec_perm_even_odd_1) <case E_V4HImode>: Expand via
7735         expand_vec_perm_pshufb2 for TARGET_SSSE3 and via
7736         expand_vec_perm_even_odd_pack for TARGET_SSE4_1.
7737         * config/i386/mmx.md (mmx_packusdw): New insn pattern.
7738
7739 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
7740
7741         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>):
7742         Change to an expander that emits the correct instruction
7743         depending on endianness.
7744         (aarch64_<sur><addsub>hn<mode>_insn_le): Define.
7745         (aarch64_<sur><addsub>hn<mode>_insn_be): Define.
7746
7747 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
7748
7749         * config/aarch64/aarch64-simd-builtins.def: Split generator
7750         for aarch64_<su>qmovn builtins into scalar and vector
7751         variants.
7752         * config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le):
7753         Define.
7754         (aarch64_<su>qmovn<mode>_insn_be): Define.
7755         (aarch64_<su>qmovn<mode>): Split into scalar and vector
7756         variants. Change vector variant to an expander that emits the
7757         correct instruction depending on endianness.
7758
7759 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
7760
7761         * config/aarch64/aarch64-simd-builtins.def: Split generator
7762         for aarch64_sqmovun builtins into scalar and vector variants.
7763         * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>):
7764         Split into scalar and vector variants. Change vector variant
7765         to an expander that emits the correct instruction depending
7766         on endianness.
7767         (aarch64_sqmovun<mode>_insn_le): Define.
7768         (aarch64_sqmovun<mode>_insn_be): Define.
7769
7770 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
7771
7772         * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le):
7773         Define - modeling zero-high-half semantics.
7774         (aarch64_xtn<mode>): Change to an expander that emits the
7775         appropriate instruction depending on endianness.
7776         (aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half
7777         semantics.
7778         (aarch64_xtn2<mode>_le): Rename to...
7779         (aarch64_xtn2<mode>_insn_le): This.
7780         (aarch64_xtn2<mode>_be): Rename to...
7781         (aarch64_xtn2<mode>_insn_be): This.
7782         (vec_pack_trunc_<mode>): Emit truncation instruction instead
7783         of aarch64_xtn.
7784         * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode
7785         attribute iterator.
7786
7787 2021-06-16  Martin Jambor  <mjambor@suse.cz>
7788
7789         PR tree-optimization/100453
7790         * tree-sra.c (create_access): Disqualify any const candidates
7791         which are written to.
7792         (sra_modify_expr): Do not store sub-replacements back to a const base.
7793         (handle_unscalarized_data_in_subtree): Likewise.
7794         (sra_modify_assign): Likewise.  Earlier, use TREE_READONLy test
7795         instead of constant_decl_p.
7796
7797 2021-06-16  Jakub Jelinek  <jakub@redhat.com>
7798
7799         PR middle-end/101062
7800         * stor-layout.c (finish_bitfield_representative): For fields in unions
7801         assume nextf is always NULL.
7802         (finish_bitfield_layout): Compute bit field representatives also in
7803         unions, but handle it as if each bitfield was the only field in the
7804         aggregate.
7805
7806 2021-06-16  Richard Biener  <rguenther@suse.de>
7807
7808         PR tree-optimization/101088
7809         * tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for
7810         supported refs on edges.  Do not assert same ref but
7811         different kind stores are unsuported but mark them so.
7812         (hoist_memory_references): Only look for supported refs
7813         on exits.
7814
7815 2021-06-16  Roger Sayle  <roger@nextmovesoftware.com>
7816
7817         PR rtl-optimization/46235
7818         * config/i386/i386.md: New define_split for bt followed by cmov.
7819         (*bt<mode>_setcqi): New define_insn_and_split for bt followed by setc.
7820         (*bt<mode>_setncqi): New define_insn_and_split for bt then setnc.
7821         (*bt<mode>_setnc<mode>): New define_insn_and_split for bt followed
7822         by setnc with zero extension.
7823
7824 2021-06-16  Richard Biener  <rguenther@suse.de>
7825
7826         PR tree-optimization/101083
7827         * tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get
7828         vectype as argument.
7829         (vect_build_slp_tree_2): Adjust.
7830
7831 2021-06-15  Martin Sebor  <msebor@redhat.com>
7832
7833         PR middle-end/100876
7834         * builtins.c: (gimple_call_return_array): Account for size_t
7835         mangling as either unsigned int or unsigned long
7836
7837 2021-06-15  Jeff Law  <jeffreyalaw@gmail.com>
7838
7839         * compare-elim.c (try_eliminate_compare): Run DCE to clean things
7840         up before eliminating comparisons.
7841
7842 2021-06-15  Aldy Hernandez  <aldyh@redhat.com>
7843
7844         * range-op.cc (operator_bitwise_or::wi_fold): Make sure
7845         nonzero|X is nonzero.
7846         (range_op_bitwise_and_tests): Add tests for above.
7847
7848 2021-06-15  Carl Love  <cel@us.ibm.com>
7849
7850         PR target/101022
7851         * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the
7852         enum definition.
7853         (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2
7854         definitions.
7855
7856 2021-06-15  Tobias Burnus  <tobias@codesourcery.com>
7857
7858         PR fortran/92568
7859         * gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET.
7860         (struct gimplify_omp_ctx): Extend defaultmap array by one.
7861         (new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET].
7862         (omp_notice_variable): Update type classification for Fortran.
7863         (gimplify_scan_omp_clauses): Update calls for new argument; handle
7864         GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY.
7865         * langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument.
7866         * langhooks.c (lhd_omp_scalar_p): Likewise.
7867         (LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
7868         (LANG_HOOKS_DECLS): Add them.
7869         * langhooks.h (struct lang_hooks_for_decls): Add new hooks, update
7870         omp_scalar_p pointer type to include the new bool argument.
7871
7872 2021-06-15  David Malcolm  <dmalcolm@redhat.com>
7873
7874         * doc/analyzer.texi
7875         (Special Functions for Debugging the Analyzer): Add
7876         __analyzer_dump_capacity.
7877
7878 2021-06-15  Jakub Jelinek  <jakub@redhat.com>
7879
7880         PR target/101046
7881         * expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR,
7882         case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode.
7883
7884 2021-06-15  Richard Biener  <rguenther@suse.de>
7885
7886         * cfgloopanal.c (mark_irreducible_loops): Use a dominance
7887         check to identify loop latches.
7888         * cfgloop.c (verify_loop_structure): Likewise.
7889         * loop-init.c (apply_loop_flags): Allow marked irreducible
7890         regions even with multiple latches.
7891         * predict.c (rebuild_frequencies): Simplify.
7892
7893 2021-06-15  Richard Biener  <rguenther@suse.de>
7894
7895         * tree-ssa-threadupdate.c
7896         (jump_thread_path_registry::mark_threaded_blocks): Assert we
7897         have marked irreducible regions.
7898
7899 2021-06-14  Martin Sebor  <msebor@redhat.com>
7900
7901         PR c++/100876
7902         * builtins.c (gimple_call_return_array): Check for attribute fn spec.
7903         Handle calls to placement new.
7904         (ndecl_dealloc_argno): Avoid placement delete.
7905
7906 2021-06-14  Peter Bergner  <bergner@linux.ibm.com>
7907
7908         PR target/100777
7909         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use
7910         create_tmp_reg_or_ssa_name().
7911
7912 2021-06-14  Andrew MacLeod  <amacleod@redhat.com>
7913
7914         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
7915         (ranger_cache::enable_new_values): Set to specified value and
7916         return the old value.
7917         (ranger_cache::disable_new_values): Delete.
7918         (ranger_cache::fill_block_cache): Disable non 1st order derived
7919         poor values.
7920         * gimple-range-cache.h (ranger_cache): Adjust prototypes.
7921         * gimple-range.cc (gimple_ranger::range_of_expr): Adjust.
7922
7923 2021-06-14  Uroš Bizjak  <ubizjak@gmail.com>
7924
7925         PR target/101058
7926         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
7927         Return true early when testing with V2HImode.
7928         * config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1.
7929
7930 2021-06-14  Christophe Lyon  <christophe.lyon@linaro.org>
7931
7932         * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): New pattern.
7933         (mve_vec_unpack<US>_hi_<mode>): New pattern.
7934         (@mve_vec_pack_trunc_lo_<mode>): New pattern.
7935         (mve_vmovntq_<supf><mode>): Prefix with '@'.
7936         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move to
7937         vec-common.md.
7938         (vec_unpack<US>_lo_<mode>): Likewise.
7939         (vec_pack_trunc_<mode>): Rename to
7940         neon_quad_vec_pack_trunc_<mode>.
7941         * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): New
7942         pattern.
7943         (vec_unpack<US>_lo_<mode>): New.
7944         (vec_pack_trunc_<mode>): New.
7945
7946 2021-06-14  Richard Biener  <rguenther@suse.de>
7947
7948         PR tree-optimization/100934
7949         * tree-ssa-dom.c (pass_dominator::execute): Properly
7950         mark irreducible regions.
7951
7952 2021-06-14  Martin Liska  <mliska@suse.cz>
7953
7954         * doc/invoke.texi: Put r{...} on the same line as @item.
7955
7956 2021-06-14  Martin Liska  <mliska@suse.cz>
7957
7958         * doc/invoke.texi: Add missing newline.
7959
7960 2021-06-14  Martin Liska  <mliska@suse.cz>
7961
7962         * doc/invoke.texi: Remove '+' charasters.
7963
7964 2021-06-14  Claudiu Zissulescu  <claziss@synopsys.com>
7965
7966         * config.gcc (arc): Add support for with_cpu option.
7967         * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu.
7968
7969 2021-06-14  Richard Biener  <rguenther@suse.de>
7970
7971         PR tree-optimization/101031
7972         * tree-ssa-strlen.c (maybe_invalidate): Increment max_size
7973         instead of size when accounting for a possibly string
7974         terminating nul.
7975
7976 2021-06-14  Martin Liska  <mliska@suse.cz>
7977
7978         * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[].
7979
7980 2021-06-14  Aldy Hernandez  <aldyh@redhat.com>
7981
7982         * value-query.cc (gimple_range_global): Call get_range_global
7983         if called after inlining.
7984
7985 2021-06-13  Uroš Bizjak  <ubizjak@gmail.com>
7986
7987         PR target/101021
7988         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
7989         Emit constant permutation insn directly from here.
7990
7991 2021-06-13  Trevor Saunders  <tbsaunde@tbsaunde.org>
7992
7993         * attribs.c (find_attribute_namespace): Iterate over vec<> with
7994         range based for.
7995         * auto-profile.c (afdo_find_equiv_class): Likewise.
7996         * gcc.c (do_specs_vec): Likewise.
7997         (do_spec_1): Likewise.
7998         (driver::set_up_specs): Likewise.
7999         * gimple-loop-jam.c (any_access_function_variant_p): Likewise.
8000         * gimple-ssa-store-merging.c (compatible_load_p): Likewise.
8001         (imm_store_chain_info::try_coalesce_bswap): Likewise.
8002         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
8003         (get_location_for_stmts): Likewise.
8004         * graphite-poly.c (print_iteration_domains): Likewise.
8005         (free_poly_bb): Likewise.
8006         (remove_gbbs_in_scop): Likewise.
8007         (free_scop): Likewise.
8008         (dump_gbb_cases): Likewise.
8009         (dump_gbb_conditions): Likewise.
8010         (print_pdrs): Likewise.
8011         (print_scop): Likewise.
8012         * ifcvt.c (cond_move_process_if_block): Likewise.
8013         * lower-subreg.c (decompose_multiword_subregs): Likewise.
8014         * regcprop.c (pass_cprop_hardreg::execute): Likewise.
8015         * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
8016         * sel-sched-dump.c (dump_insn_vector): Likewise.
8017         * store-motion.c (store_ops_ok): Likewise.
8018         (store_killed_in_insn): Likewise.
8019         * timevar.c (timer::named_items::print): Likewise.
8020         * tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise.
8021         (cleanup_tree_cfg_noloop): Likewise.
8022         * tree-data-ref.c (dump_data_references): Likewise.
8023         (print_dir_vectors): Likewise.
8024         (print_dist_vectors): Likewise.
8025         (dump_data_dependence_relations): Likewise.
8026         (dump_dist_dir_vectors): Likewise.
8027         (dump_ddrs): Likewise.
8028         (create_runtime_alias_checks): Likewise.
8029         (free_subscripts): Likewise.
8030         (save_dist_v): Likewise.
8031         (save_dir_v): Likewise.
8032         (invariant_access_functions): Likewise.
8033         (same_access_functions): Likewise.
8034         (access_functions_are_affine_or_constant_p): Likewise.
8035         (find_data_references_in_stmt): Likewise.
8036         (graphite_find_data_references_in_stmt): Likewise.
8037         (free_dependence_relations): Likewise.
8038         (free_data_refs): Likewise.
8039         * tree-inline.c (copy_debug_stmts): Likewise.
8040         * tree-into-ssa.c (dump_currdefs): Likewise.
8041         (rewrite_update_phi_arguments): Likewise.
8042         * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
8043         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
8044         Likewise.
8045         (vect_slp_analyze_node_dependences): Likewise.
8046         (vect_slp_analyze_instance_dependence): Likewise.
8047         (vect_record_base_alignments): Likewise.
8048         (vect_get_peeling_costs_all_drs): Likewise.
8049         (vect_peeling_supportable): Likewise.
8050         * tree-vectorizer.c (vec_info::~vec_info): Likewise.
8051         (vec_info::free_stmt_vec_infos): Likewise.
8052
8053 2021-06-13  Jeff Law  <jeffreyalaw@gmail.com>
8054
8055         * config/h8300/logical.md (<code>qi3_1<cczn>): New pattern.
8056         (andqi3_1<cczn>): Removed.
8057         (<ors>qi3_1): Do not split for IOR/XOR a single bit.
8058         (H8/SX bit logicals): Split out from other patterns.
8059         * config/h8300/multiply.md (mulqihi3_const<cczn>): Renamed from
8060         mulqihi3_const_clobber_flags.
8061         (mulqihi3<cczn>, mulhisi3_const<cczn>, mulhisi3<cczn>): Similarly
8062
8063 2021-06-13  H.J. Lu  <hjl.tools@gmail.com>
8064
8065         PR target/101023
8066         * config/i386/i386.c (ix86_expand_prologue): Set red_zone_used
8067         to true if red zone is used.
8068         (ix86_output_indirect_jmp): Replace ix86_red_zone_size with
8069         ix86_red_zone_used.
8070         * config/i386/i386.h (machine_function): Add red_zone_used.
8071         (ix86_red_zone_size): Removed.
8072         (ix86_red_zone_used): New.
8073         * config/i386/i386.md (peephole2 patterns): Replace
8074         ix86_red_zone_size with ix86_red_zone_used.
8075
8076 2021-06-12  Jason Merrill  <jason@redhat.com>
8077
8078         * doc/extend.texi (unused variable attribute): Applies to
8079         structure fields as well.
8080
8081 2021-06-12  Eugene Rozenfeld  <erozen@microsoft.com>
8082
8083         * auto-profile.c (read_profile): fix a typo in an error string
8084
8085 2021-06-11  Thomas Schwinge  <thomas@codesourcery.com>
8086
8087         * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
8088         default argument.
8089         * tree-pretty-print.c (dump_omp_clauses): Update.
8090         (dump_generic_node) <OMP_CLAUSE>: Use it.
8091
8092 2021-06-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
8093
8094         PR target/101016
8095         * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0,
8096         int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for
8097         the polymorphic variants matching code.
8098         (__arm_vld1q_z): Likewise.
8099         (__arm_vld2q): Likewise.
8100         (__arm_vld4q): Likewise.
8101         (__arm_vldrbq_gather_offset): Likewise.
8102         (__arm_vldrbq_gather_offset_z): Likewise.
8103
8104 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
8105
8106         PR tree-optimization/96392
8107         * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype.
8108
8109 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
8110
8111         PR tree-optimization/96392
8112         * fold-const.c (fold_real_zero_addition_p): Take both arguments
8113         of the addition or subtraction, not just the zero.  Use this
8114         other argument in tests for signaling NaNs and signed zeros.
8115         (tree_expr_maybe_real_minus_zero_p): New predicate.
8116         * fold-const.h (fold_real_zero_addition_p): Update prototype.
8117         (tree_expr_maybe_real_minus_zero_p): New function prototype.
8118         * match.pd: Update calls to fold_real_zero_addition_p.
8119         Replace HONOR_NANS with tree_expr_maybe_nan_p.
8120         Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p.
8121         Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p.
8122         * tree-ssa-reassoc.c (eliminate_using_constants): Update
8123         call to fold_real_zero_addition_p.
8124
8125 2021-06-11  Richard Biener  <rguenther@suse.de>
8126
8127         PR tree-optimization/101025
8128         * tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process
8129         all refs that require dependence checking.
8130
8131 2021-06-11  Richard Biener  <rguenther@suse.de>
8132
8133         PR tree-optimization/101028
8134         * tree-vect-slp.c (vect_build_slp_tree_2): When SLP
8135         reassoc discovery fails fatally, mark appropriate lanes
8136         in matches[] so.
8137
8138 2021-06-11  Richard Biener  <rguenther@suse.de>
8139
8140         PR tree-optimization/101026
8141         * tree-vect-slp.c (vect_build_slp_tree_2): Make sure we
8142         have a representative for the associated chain nodes.
8143
8144 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
8145
8146         PR rtl-optimization/101008
8147         * simplify-rtx.c (relational_result): New function.
8148         (simplify_logical_relational_operation,
8149         simplify_relational_operation): Use it.
8150
8151 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
8152
8153         PR target/101007
8154         * config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2.
8155
8156 2021-06-11  Uroš Bizjak  <ubizjak@gmail.com>
8157
8158         PR target/101021
8159         * config/i386/i386-expand.c (expand_vec_perm_pshufb): Return
8160         false if the permutation can be implemented with constant
8161         permutation instruction in wider mode.
8162         (canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb.
8163         Handle V8QImode and V4HImode.
8164
8165 2021-06-11  Martin Liska  <mliska@suse.cz>
8166
8167         PR gcov-profile/100788
8168         * common.opt: Add new option.
8169         * coverage.c (coverage_begin_function): Emit warning instead on
8170         the internal compiler error.
8171         * doc/invoke.texi: Document the option.
8172         * toplev.c (process_options): Enable it by default.
8173
8174 2021-06-11  Richard Biener  <rguenther@suse.de>
8175
8176         PR middle-end/101009
8177         * tree-data-ref.c (build_classic_dist_vector_1): Make sure
8178         to set *init_b to true when we encounter a constant equal
8179         index pair.
8180         (compute_affine_dependence): Also dump the actual DR_REF.
8181
8182 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
8183
8184         PR tree-optimization/100984
8185         * gimple-ssa-evrp.c  (ssa_equiv_stack): Use auto_vec for
8186         replacements table.
8187         (ssa_equiv_stack::~ssa_equiv_stack): Remove.
8188
8189 2021-06-11  Kewen Lin  <linkw@linux.ibm.com>
8190
8191         * config/rs6000/rs6000.md
8192         (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New
8193         define_insn_and_split.
8194
8195 2021-06-11  Richard Biener  <rguenther@suse.de>
8196
8197         * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort
8198         to sort operands of the associative chain.
8199
8200 2021-06-11  Richard Biener  <rguenther@suse.de>
8201
8202         * system.h (gcc_stablesort_r): Declare.
8203         * sort.cc (gcc_sort_r): Support stable sort.
8204         (gcc_stablesort_r): Define.
8205         * vec.h (vec<>::stablesort): Add.
8206
8207 2021-06-10  Uroš Bizjak  <ubizjak@gmail.com>
8208
8209         PR target/89021
8210         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
8211         Handle V2SF mode.  Emit SHUFPS to fixup unpack-high for V2SF mode.
8212         (expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1.
8213         (expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3.
8214         (expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1.
8215         (expand_vec_perm_interleave2): Handle 64bit modes.
8216         (expand_vec_perm_even_odd_pack): Handle V8QI mode.
8217         (expand_vec_perm_even_odd_1): Ditto.
8218         (ix86_vectorize_vec_perm_const): Ditto.
8219         * config/i386/i386.md (UNSPEC_PSHUFB): Move from ...
8220         * config/i386/sse.md: ... here.
8221         * config/i386/mmx.md (*vec_interleave_lowv2sf):
8222         New insn_and_split pattern.
8223         (*vec_interleave_highv2sf): Ditto.
8224         (mmx_pshufbv8qi3): New insn pattern.
8225         (*mmx_pblendw): Ditto.
8226
8227 2021-06-10  Peter Bergner  <bergner@linux.ibm.com>
8228
8229         * config/rs6000/rs6000-builtin.def (build_pair): New built-in.
8230         (build_acc): Likewise.
8231         * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble
8232         source operands in little-endian mode.
8233         (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR.
8234         (mma_init_builtins): Likewise.
8235         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness
8236         ordering for the MMA assemble and build source operands.
8237         * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair):
8238         Document.
8239         (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove
8240         documentation.
8241
8242 2021-06-10  Jeff Law  <jeffreyalaw@gmail.com>
8243
8244         * config/h8300/h8300.c (select_cc_mode): Handle MEM.  Use
8245         REG_P.
8246         * config/h8300/extensions.md: Replace _clobber_flags patterns
8247         with <cczn>.
8248
8249 2021-06-10  Robin Dapp  <rdapp@linux.ibm.com>
8250
8251         * config/s390/vector.md (vcond_mask_<mode><mode>): Change to
8252         (vcond_mask_<mode><tointvec>): this.
8253
8254 2021-06-10  Andrew Stubbs  <ams@codesourcery.com>
8255             Thomas Schwinge  <thomas@codesourcery.com>
8256
8257         * omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into...
8258         (BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these.
8259         * gimple.h (enum gf_mask): Split
8260         'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into
8261         'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and
8262         'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'.
8263         (is_gimple_omp_oacc): Update.
8264         * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
8265         * gimplify.c (gimplify_omp_target_update): Likewise.
8266         * omp-expand.c (expand_omp_target, build_omp_regions_1)
8267         (omp_make_gimple_edges): Likewise.
8268         * omp-low.c (check_omp_nesting_restrictions, lower_omp_target):
8269         Likewise.
8270
8271 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
8272
8273         * value-query.cc (value_query::value_on_edge): Rename name to
8274         expr.
8275         (range_query::range_on_edge): Same.
8276         (range_query::value_of_expr): Same.
8277         (range_query::value_on_edge): Same.
8278         * value-query.h (class value_query): Same.
8279         (class range_query): Same.
8280
8281 2021-06-10  Richard Biener  <rguenther@suse.de>
8282
8283         PR tree-optimization/101003
8284         * tree-vect-slp.c (vect_build_slp_tree_2): Appropriately
8285         use the pattern stmt defs when linearizing a chain.
8286
8287 2021-06-10  Jakub Jelinek  <jakub@redhat.com>
8288
8289         PR debug/100852
8290         * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use
8291         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
8292
8293 2021-06-10  Clement Chigot  <clement.chigot@atos.net>
8294
8295         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive.
8296         * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
8297
8298 2021-06-09  Andrew Pinski  <apinski@marvell.com>
8299
8300         PR tree-optimization/100925
8301         * match.pd (a ? CST1 : CST2): Limit transformations
8302         that would produce a negative to integeral types only.
8303         Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also.
8304
8305 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
8306
8307         Revert:
8308         2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
8309
8310         * doc/tm.texi: Correctly update.
8311
8312 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
8313
8314         * doc/tm.texi: Correctly update.
8315
8316 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
8317
8318         PR other/100735
8319         * doc/tm.texi.in (Trampolines): Add a missing blank line.
8320
8321 2021-06-09  Paul Eggert  <eggert@cs.ucla.edu>
8322
8323         PR other/100735
8324         * doc/invoke.texi (Code Gen Options); Document that -fno-trampolines
8325         and -ftrampolines work only with Ada.
8326         * doc/tm.texi.in (Trampolines): Likewise.
8327         * doc/tm.texi: Regenerated.
8328
8329 2021-06-09  Carl Love  <cel@us.ibm.com>
8330
8331         * config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq):
8332         Add define for new builtins.
8333         * config/rs6000/altivec.md(altivec_vreveti2): Add define_expand.
8334         * config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL):  Add
8335         overloaded builtin definitions.
8336         (VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D,
8337         VSIGNEXTSD2Q):  Add builtin expansions.
8338         (SIGNEXT): Add P10 overload definition.
8339         * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL,
8340         P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions.
8341         * config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn.
8342         (vsignextend_v2di_v1ti, vsignextend_qi_<mode>, vsignextend_hi_<mode>,
8343         vsignextend_si_v2di)[VIlong]: Add define_expand.
8344         Make define_insn vsx_sign_extend_si_v2di visible.
8345         * doc/extend.texi:  Add documentation for the vec_signexti,
8346         vec_signextll builtins and vec_signextq.
8347
8348 2021-06-09  Carl Love  <cel@us.ibm.com>
8349
8350         * config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf,
8351         __floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw,
8352         __floattikf_sw, __floatuntikf_sw respectively.
8353         * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
8354         fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add
8355         define_insn for mode IEEE 128.
8356
8357 2021-06-09  Carl Love  <cel@us.ibm.com>
8358
8359         * config/rs6000/altivec.md (altivec_vslq, altivec_vsrq):
8360         Rename to altivec_vslq_<mode>, altivec_vsrq_<mode>, mode VEC_TI.
8361         * config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md.
8362         (vashlv1ti3): Change to vashl<mode>3, mode VEC_TI.
8363         (vlshrv1ti3): Change to vlshr<mode>3, mode VEC_TI.
8364         * config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update
8365         uses of VSX_TI to VEC_TI.
8366
8367 2021-06-09  Carl Love  <cel@us.ibm.com>
8368
8369         * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns.
8370
8371 2021-06-09  Carl Love  <cel@us.ibm.com>
8372
8373         * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new
8374         builtins.
8375         * config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD,
8376         UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs.
8377         (altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud,
8378         altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq,
8379         altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm,
8380         altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq,
8381         altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New
8382         define_insn.
8383         (vec_widen_umult_even_v2di, vec_widen_smult_even_v2di,
8384         vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi,
8385         altivec_vrlqnm): New define_expands.
8386         * config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P,
8387         VCMPGTUT_P): Add macro expansions.
8388         (BU_P10V_AV_P): Add builtin predicate definition.
8389         (VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI,
8390         CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P,
8391         VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ,
8392         VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI,
8393         MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions.
8394         (VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions.
8395         * config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT,
8396         P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI,
8397         P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST,
8398         P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI,
8399         P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI,
8400         P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD,
8401         P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD,
8402         P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS,
8403         P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI,
8404         P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ,
8405         P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ,
8406         P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P,
8407         P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P,
8408         P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET,
8409         P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P,
8410         P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI,
8411         P10V_BUILTIN_MODU_V1TI):
8412         New overloaded definitions.
8413         (rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT,
8414         P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI,
8415         P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT,
8416         P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI,
8417         P10V_BUILTIN_CMPLE_U1TI]: New case statements.
8418         (rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]:
8419         New assignments.
8420         (altivec_init_builtins): New E_V1TImode case statement.
8421         (builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD,
8422         P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI,
8423         P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI,
8424         P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements.
8425         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode,
8426         E_V1TImode]: New case statements.
8427         * config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum
8428         value RS6000_BTI_bool_V1TI.
8429         * config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti,
8430         vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti,
8431         vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p,
8432         vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3,
8433         vlshrv1ti3, vashrv1ti3): New define_expands.
8434         * config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ,
8435         UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ,
8436         UNSPEC_VSX_MODUQ): New unspecs.
8437         (mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti,
8438         vsx_diveu_v1ti, vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New
8439         define_insns.
8440         (vcmpnet): New define_expand.
8441         * doc/extend.texi: Add documentation for the new builtins vec_rl,
8442         vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo,
8443         vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt,
8444         vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt,
8445         vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt,
8446         vec_any_ge, vec_any_le.
8447
8448 2021-06-09  Carl Love  <cel@us.ibm.com>
8449
8450         * config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix
8451         bug in argument generation.
8452
8453 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
8454
8455         * config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S.
8456         (VCLZQ): Remove.
8457         * config/arm/mve.md (mve_vclzq_<supf><mode>): Add '@' prefix,
8458         remove <supf> iterator.
8459         (mve_vclzq_u<mode>): New.
8460         * config/arm/neon.md (clz<mode>2): Rename to neon_vclz<mode>.
8461         (neon_vclz<mode): Move to ...
8462         * config/arm/unspecs.md (VCLZQ_U, VCLZQ_S): Remove.
8463         * config/arm/vec-common.md: ... here. Add support for MVE.
8464
8465 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
8466
8467         * config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'.
8468         (@mve_vrhaddq_<supf><mode): Likewise.
8469         * config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise.
8470         * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
8471         (avg<mode>3_ceil", uavg<mode>3_ceil): New patterns.
8472
8473 2021-06-09  imba-tjd  <109224573@qq.com>
8474
8475         * doc/invoke.texi: Fix typo.
8476
8477 2021-06-09  Roger Sayle  <roger@nextmovesoftware.com>
8478
8479         PR middle-end/53267
8480         * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]:
8481         Support evaluation of fmod/fmodf/fmodl at compile-time.
8482
8483 2021-06-09  Richard Biener  <rguenther@suse.de>
8484
8485         PR tree-optimization/100981
8486         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
8487         gimple_get_lhs to also handle calls.
8488         * tree-vect-slp-patterns.c (complex_pattern::build): Transfer
8489         reduction info.
8490
8491 2021-06-09  Richard Biener  <rguenther@suse.de>
8492
8493         PR tree-optimization/97832
8494         * tree-vectorizer.h (_slp_tree::failed): New.
8495         * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
8496         failed member.
8497         (_slp_tree::~_slp_tree): Free failed.
8498         (vect_build_slp_tree): Retain failed nodes and record
8499         matches in them, copying that back out when running
8500         into a cached fail.  Dump start and end of discovery.
8501         (dt_sort_cmp): New.
8502         (vect_build_slp_tree_2): Handle associatable chains
8503         together doing more aggressive operand swapping.
8504
8505 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
8506
8507         PR target/100896
8508         * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and
8509         GNU targets.
8510         * doc/install.texi: Require glibc 2.1 and binutils 2.12 for
8511         Linux and GNU targets.
8512
8513 2021-06-09  Richard Biener  <rguenther@suse.de>
8514
8515         * tree-vect-stmts.c (vect_is_simple_use): Always get dt
8516         from the stmt.
8517
8518 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
8519
8520         * config/arc/arc.md (loop_end): Change it to
8521         define_insn_and_split.
8522
8523 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
8524
8525         * config/arc/arc.md (maddhisi4): Use VMAC2H instruction.
8526         (machi): New pattern.
8527         (umaddhisi4): Use VMAC2HU instruction.
8528         (umachi): New pattern.
8529
8530 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
8531
8532         * config/arc/arc-protos.h (arc_split_move_p): New prototype.
8533         * config/arc/arc.c (arc_split_move_p): New function.
8534         (arc_split_move): Clean up.
8535         * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p.
8536         (movdf_insn): Likewise.
8537         * config/arc/simdext.md (mov<VWH>_insn): Likewise.
8538
8539 2021-06-09  Uroš Bizjak  <ubizjak@gmail.com>
8540
8541         PR target/100936
8542         * config/i386/i386.c (print_operand_address_as): Rename "no_rip"
8543         argument to "raw".  Do not emit segment overrides when "raw" is true.
8544
8545 2021-06-09  Martin Liska  <mliska@suse.cz>
8546
8547         * doc/gcov.texi: Create a proper JSON files.
8548         * doc/invoke.texi: Remove dots in order to make it a valid
8549         JSON object.
8550
8551 2021-06-09  Xionghu Luo  <luoxhu@linux.ibm.com>
8552
8553         * config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New.
8554         (insn_is_load_p): Use pattern_is_rotate64.
8555         (insn_is_swap_p): Likewise.
8556         (quad_aligned_load_p): Likewise.
8557         (const_load_sequence_p): Likewise.
8558         (replace_swapped_aligned_load): Likewise.
8559         (recombine_lvx_pattern): Likewise.
8560         (recombine_stvx_pattern): Likewise.
8561
8562 2021-06-09  Andrew MacLeod  <amacleod@redhat.com>
8563
8564         * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a
8565         fur_stmt source record.
8566         * gimple-range.cc (fur_source::get_operand): Generic range query.
8567         (fur_source::get_phi_operand): New.
8568         (fur_source::register_dependency): New.
8569         (fur_source::query): New.
8570         (class fur_edge): New.  Edge source for operands.
8571         (fur_edge::fur_edge): New.
8572         (fur_edge::get_operand): New.
8573         (fur_edge::get_phi_operand): New.
8574         (fur_edge::query): New.
8575         (fur_stmt::fur_stmt): New.
8576         (fur_stmt::get_operand): New.
8577         (fur_stmt::get_phi_operand): New.
8578         (fur_stmt::query): New.
8579         (class fur_depend): New.  Statement source and process dependencies.
8580         (fur_depend::fur_depend): New.
8581         (fur_depend::register_dependency): New.
8582         (class fur_list): New.  List source for operands.
8583         (fur_list::fur_list): New.
8584         (fur_list::get_operand): New.
8585         (fur_list::get_phi_operand): New.
8586         (fold_range): New.  Instantiate appropriate fur_source class and fold.
8587         (fold_using_range::range_of_range_op): Use new API.
8588         (fold_using_range::range_of_address): Ditto.
8589         (fold_using_range::range_of_phi): Ditto.
8590         (imple_ranger::fold_range_internal): Use fur_depend class.
8591         (fold_using_range::range_of_ssa_name_with_loop_info): Use new API.
8592         * gimple-range.h (class fur_source): Now a base class.
8593         (class fur_stmt): New.
8594         (fold_range): New prototypes.
8595         (fur_source::fur_source): Delete.
8596
8597 2021-06-08  Andrew Pinski  <apinski@marvell.com>
8598
8599         PR tree-optimization/25290
8600         * tree-ssa-phiopt.c (xor_replacement): Delete.
8601         (tree_ssa_phiopt_worker): Delete use of xor_replacement.
8602         (match_simplify_replacement): Allow one cheap preparation
8603         statement that can be moved to before the if.
8604
8605 2021-06-08  Pat Haugen  <pthaugen@linux.ibm.com>
8606
8607         * config/rs6000/power10.md (power10-fused-load, power10-fused-store,
8608         power10-fused_alu, power10-fused-vec, power10-fused-branch): New.
8609
8610 2021-06-08  Jeff Law  <jeffreyalaw@gmail.com>
8611
8612         * config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split.
8613         Create length attribute on define_insn_and_split.  Only split for cases which we
8614         know will use AND.
8615         (andqi3_1<cczn>): Renamed from andqi3_1_clobber_flags.  Only handle AND here and
8616         fix length computation.
8617         (b<code><mode>msx): Combine QImode and HImode H8/SX patterns using iterator.
8618
8619 2021-06-08  Richard Biener  <rguenther@suse.de>
8620
8621         PR tree-optimization/100923
8622         * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to
8623         the operand vector to be valueized.
8624         (valueize_refs): Likewise.
8625         (valueize_shared_reference_ops_from_ref): Adjust.
8626         (valueize_shared_reference_ops_from_call): Likewise.
8627         (vn_reference_lookup_3): Likewise.
8628         (vn_reference_lookup_pieces): Likewise.  Re-valueize
8629         with honoring availability when we are about to create
8630         the ao_ref and valueized before.
8631         (vn_reference_lookup): Likewise.
8632         (vn_reference_insert_pieces): Adjust.
8633
8634 2021-06-08  Richard Biener  <rguenther@suse.de>
8635
8636         * tree-vectorizer.h (_slp_instance::root_stmt): Change to...
8637         (_slp_instance::root_stmts): ... a vector.
8638         (SLP_INSTANCE_ROOT_STMT): Rename to ...
8639         (SLP_INSTANCE_ROOT_STMTS): ... this.
8640         (slp_root::root): Change to...
8641         (slp_root::roots): ... a vector.
8642         (slp_root::slp_root): Adjust.
8643         * tree-vect-slp.c (_slp_instance::location): Adjust.
8644         (vect_free_slp_instance): Release the root stmt vector.
8645         (vect_build_slp_instance): Adjust.
8646         (vect_analyze_slp): Likewise.
8647         (_bb_vec_info::~_bb_vec_info): Likewise.
8648         (vect_slp_analyze_operations): Likewise.
8649         (vect_bb_vectorization_profitable_p): Likewise.  Adjust
8650         costs for the root stmt.
8651         (vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs
8652         as root stmts.
8653         (vect_slp_analyze_bb_1): Simplify by marking all root stmts
8654         as pure_slp.
8655         (vectorize_slp_instance_root_stmt): Adjust.
8656         (vect_schedule_slp): Likewise.
8657
8658 2021-06-08  Aldy Hernandez  <aldyh@redhat.com>
8659
8660         * gimple-ssa-evrp.c (class ssa_equiv_stack): New.
8661         (ssa_equiv_stack::ssa_equiv_stack): New.
8662         (ssa_equiv_stack::~ssa_equiv_stack): New.
8663         (ssa_equiv_stack::enter): New.
8664         (ssa_equiv_stack::leave): New.
8665         (ssa_equiv_stack::push_replacement): New.
8666         (ssa_equiv_stack::get_replacement): New.
8667         (is_pointer_ssa): New.
8668         (class pointer_equiv_analyzer): New.
8669         (pointer_equiv_analyzer::pointer_equiv_analyzer): New.
8670         (pointer_equiv_analyzer::~pointer_equiv_analyzer): New.
8671         (pointer_equiv_analyzer::set_global_equiv): New.
8672         (pointer_equiv_analyzer::set_cond_equiv): New.
8673         (pointer_equiv_analyzer::get_equiv): New.
8674         (pointer_equiv_analyzer::enter): New.
8675         (pointer_equiv_analyzer::leave): New.
8676         (pointer_equiv_analyzer::get_equiv_expr): New.
8677         (pta_valueize): New.
8678         (pointer_equiv_analyzer::visit_stmt): New.
8679         (pointer_equiv_analyzer::visit_edge): New.
8680         (hybrid_folder::value_of_expr): Call PTA.
8681         (hybrid_folder::value_on_edge): Same.
8682         (hybrid_folder::pre_fold_bb): New.
8683         (hybrid_folder::post_fold_bb): New.
8684         (hybrid_folder::pre_fold_stmt): New.
8685         (rvrp_folder::pre_fold_bb): New.
8686         (rvrp_folder::post_fold_bb): New.
8687         (rvrp_folder::pre_fold_stmt): New.
8688         (rvrp_folder::value_of_expr): Call PTA.
8689         (rvrp_folder::value_on_edge): Same.
8690
8691 2021-06-08  Jakub Jelinek  <jakub@redhat.com>
8692
8693         PR c++/100957
8694         * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't
8695         check TREE_CODE if OMP_CLAUSE_DECL is NULL.
8696
8697 2021-06-08  Richard Biener  <rguenther@suse.de>
8698
8699         PR middle-end/100951
8700         * tree-vect-generic.c (expand_vector_piecewise): Build a
8701         VECTOR_CST if all elements are constant.
8702         (expand_vector_condition): Likewise.
8703         (lower_vec_perm): Likewise.
8704         (expand_vector_conversion): Likewise.
8705
8706 2021-06-08  Martin Liska  <mliska@suse.cz>
8707
8708         * doc/invoke.texi: Document new param evrp-sparse-threshold.
8709
8710 2021-06-08  Martin Liska  <mliska@suse.cz>
8711
8712         * genautomata.c (create_automata): Fix typo.
8713
8714 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
8715
8716         PR tree-optimization/100794
8717         * tree-predcom.c (tree_predictive_commoning_loop): Add parameter
8718         allow_unroll_p and only allow unrolling when it's true.
8719         (tree_predictive_commoning): Add parameter allow_unroll_p and
8720         adjust for it.
8721         (run_tree_predictive_commoning): Likewise.
8722         (pass_predcom::gate): Check flag_tree_loop_vectorize and
8723         global_options_set.x_flag_predictive_commoning.
8724         (pass_predcom::execute): Adjust for allow_unroll_p.
8725
8726 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
8727
8728         * tree-predcom.c (execute_pred_commoning): Remove update_ssa call.
8729         (tree_predictive_commoning_loop): Factor some cleanup stuffs into
8730         lambda function cleanup, remove scev_reset call, and adjust return
8731         value.
8732         (tree_predictive_commoning): Adjust for different changed values,
8733         only set flag TODO_update_ssa_only_virtuals if changed.
8734         (pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals
8735         from todo_flags_finish.
8736
8737 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
8738
8739         * gimple-range-cache.cc (class sbr_sparse_bitmap): New.
8740         (sbr_sparse_bitmap::sbr_sparse_bitmap): New.
8741         (sbr_sparse_bitmap::bitmap_set_quad): New.
8742         (sbr_sparse_bitmap::bitmap_get_quad): New.
8743         (sbr_sparse_bitmap::set_bb_range): New.
8744         (sbr_sparse_bitmap::get_bb_range): New.
8745         (sbr_sparse_bitmap::bb_range_p): New.
8746         (block_range_cache::block_range_cache): initialize bitmap obstack.
8747         (block_range_cache::~block_range_cache): Destruct obstack.
8748         (block_range_cache::set_bb_range): Decide when to utilze the
8749         sparse on entry cache.
8750         * gimple-range-cache.h (block_range_cache): Add bitmap obstack.
8751         * params.opt (-param=evrp-sparse-threshold): New.
8752
8753 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
8754
8755         * bitmap.c (bitmap_set_aligned_chunk): New.
8756         (bitmap_get_aligned_chunk): New.
8757         (test_aligned_chunk): New.
8758         (bitmap_c_tests): Call test_aligned_chunk.
8759         * bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New.
8760
8761 2021-06-07  Uroš Bizjak  <ubizjak@gmail.com>
8762
8763         PR target/100637
8764         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
8765         Handle V4QI mode.
8766         (ix86_expand_vector_init_one_nonzero): Ditto.
8767         (ix86_expand_vector_init_one_var): Ditto.
8768         (ix86_expand_vector_init_general): Ditto.
8769         * config/i386/mmx.md (vec_initv4qiqi): New expander.
8770
8771 2021-06-07  Jeff Law  <jeffreyalaw@gmail.com>
8772
8773         * config/h8300/movepush.md: Change most _clobber_flags
8774         patterns to instead use <cczn> subst.
8775         (movsi_cczn): New pattern with usable CC cases split out.
8776         (movsi_h8sx_cczn): Likewise.
8777
8778 2021-06-07  Martin Liska  <mliska@suse.cz>
8779
8780         * common/common-target.def: Split long lines and replace them
8781         with '\n\'.
8782         * target.def: Likewise.
8783         * doc/tm.texi: Re-generated.
8784
8785 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
8786
8787         PR target/100887
8788         * fold-const.c (fold_read_from_vector): Return NULL if trying to
8789         read from a CONSTRUCTOR with vector type elements.
8790
8791 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
8792
8793         PR middle-end/100898
8794         * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy
8795         should copy any arguments.  Don't call gimple_call_num_args
8796         on id->call_stmt or call_stmt more than once.
8797
8798 2021-06-07  liuhongt  <hongtao.liu@intel.com>
8799
8800         PR target/100885
8801         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine
8802         constraints.
8803         (<insn>v4siv4di2): Delete constraints for define_expand.
8804
8805 2021-06-07  liuhongt  <hongtao.liu@intel.com>
8806
8807         PR target/82735
8808         * config/i386/i386-expand.c (ix86_expand_builtin): Remove
8809         assignment of cfun->machine->has_explicit_vzeroupper.
8810         * config/i386/i386-features.c
8811         (ix86_add_reg_usage_to_vzerouppers): Delete.
8812         (ix86_add_reg_usage_to_vzeroupper): Ditto.
8813         (rest_of_handle_insert_vzeroupper): Remove
8814         ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end
8815         of the function.
8816         (gate): Remove cfun->machine->has_explicit_vzeroupper.
8817         * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper):
8818         Declared.
8819         * config/i386/i386.c (ix86_insn_callee_abi): New function.
8820         (ix86_initialize_callee_abi): Ditto.
8821         (ix86_expand_avx_vzeroupper): Ditto.
8822         (ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper
8823         ABI.
8824         (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi.
8825         (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper
8826         directly.
8827         * config/i386/i386.h (struct GTY(()) machine_function): Delete
8828         has_explicit_vzeroupper.
8829         * config/i386/i386.md (enum unspec): New member
8830         UNSPEC_CALLEE_ABI.
8831         (ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New
8832         define_constants for insn callee abi index.
8833         * config/i386/predicates.md (vzeroupper_pattern): Adjust.
8834         * config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted.
8835         (avx_vzeroupper): Call ix86_expand_avx_vzeroupper.
8836         (*avx_vzeroupper): Rename to ..
8837         (avx_vzeroupper_callee_abi): .. this, and adjust pattern as
8838         call_insn which has a special vzeroupper ABI.
8839         (*avx_vzeroupper_1): Deleted.
8840
8841 2021-06-07  liuhongt  <hongtao.liu@intel.com>
8842
8843         PR target/82735
8844         * df-scan.c (df_get_call_refs): When call_insn is a fake call,
8845         it won't use stack pointer reg.
8846         * final.c (leaf_function_p): When call_insn is a fake call, it
8847         won't affect caller as a leaf function.
8848         * reg-stack.c (callee_clobbers_any_stack_reg): New.
8849         (subst_stack_regs): When call_insn doesn't clobber any stack
8850         reg, don't clear the arguments.
8851         * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is
8852         a insn.
8853         * shrink-wrap.c (requires_stack_frame_p): No need for stack
8854         frame for a fake call.
8855         * rtl.h (FAKE_CALL_P): New macro.
8856
8857 2021-06-06  Eric Botcazou  <ebotcazou@adacore.com>
8858
8859         * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename
8860         to...
8861         (sparc_order_regs_for_local_alloc): ...this.
8862         (sparc_leaf_reg_remap): Declare.
8863         * config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust.
8864         (LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap.
8865         * config/sparc/sparc.c (leaf_reg_remap): Delete.
8866         (order_regs_for_local_alloc): Rename to...
8867         (sparc_order_regs_for_local_alloc): ...this.
8868         (sparc_leaf_reg_remap): New function.
8869         (sparc_conditional_register_usage): Do not modify leaf_reg_remap.
8870
8871 2021-06-06  David Edelsohn  <dje.gcc@gmail.com>
8872
8873         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common):
8874         Use assemble_name to output BSS section name.
8875
8876 2021-06-06  Uroš Bizjak  <ubizjak@gmail.com>
8877
8878         * config/i386/constraints.md (Bs):
8879         Remove boolean operators from match_test RTX.
8880         (Bw): Ditto.
8881         (L): Ditto.
8882         (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX.
8883         (Wz): Ditto.
8884
8885 2021-06-06  Martin Liska  <mliska@suse.cz>
8886
8887         * doc/extend.texi: Add missing @headitem.
8888         * doc/invoke.texi: Likewise.
8889         * doc/objc.texi: Likewise.
8890
8891 2021-06-06  Martin Liska  <mliska@suse.cz>
8892
8893         * genhooks.c (emit_findices): Remove unused function.
8894         (emit_documentation): Do not call emit_findices
8895         and do not search for @Fcode directives.
8896
8897 2021-06-06  Martin Liska  <mliska@suse.cz>
8898
8899         * doc/invoke.texi: Remove extra character.
8900
8901 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
8902
8903         * config/sh/sh.md (doloop_end_split): Fix empty split condition.
8904
8905 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
8906
8907         * config/sparc/sparc.md (*snedi<W:mode>_zero_vis3,
8908         *neg_snedi<W:mode>_zero_subxc, *plus_snedi<W:mode>_zero,
8909         *plus_plus_snedi<W:mode>_zero, *minus_snedi<W:mode>_zero,
8910         *minus_minus_snedi<W:mode>_zero): Fix empty split condition.
8911
8912 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
8913
8914         * config/or1k/or1k.md (*movdi): Fix empty split condition.
8915
8916 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
8917
8918         * config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty
8919         split condition.
8920
8921 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
8922
8923         * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec,
8924         *zero_extendsidi2): Fix empty split condition.
8925
8926 2021-06-05  Jeff Law  <jeffreyalaw@gmail.com>
8927
8928         * config/h8300/addsub.md: Fix split condition in define_insn_and_split
8929         patterns.
8930         * config/h8300/bitfield.md: Likewise.
8931         * config/h8300/combiner.md: Likewise.
8932         * config/h8300/divmod.md: Likewise.
8933         * config/h8300/extensions.md: Likewise.
8934         * config/h8300/jumpcall.md: Likewise.
8935         * config/h8300/movepush.md: Likewise.
8936         * config/h8300/multiply.md: Likewise.
8937         * config/h8300/other.md: Likewise.
8938         * config/h8300/shiftrotate.md: Likewise.
8939         * config/h8300/logical.md: Likewise.  Fix split pattern to use
8940         code iterator that somehow slipped through.
8941
8942 2021-06-04  Tobias Burnus  <tobias@codesourcery.com>
8943
8944         PR middle-end/100905
8945         * tree-nested.c (convert_nonlocal_omp_clauses,
8946         convert_local_omp_clauses): Handle OMP_CLAUSE_BIND.
8947
8948 2021-06-04  Martin Sebor  <msebor@redhat.com>
8949
8950         PR middle-end/100732
8951         * gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls
8952         with either source or destination argument of invalid type.
8953         * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking
8954         calls with arguments of invalid type.
8955
8956 2021-06-04  Martin Sebor  <msebor@redhat.com>
8957
8958         * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected
8959         order.
8960         (attr_access::vla_bounds): Also handle VLA bounds.
8961
8962 2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>
8963
8964         * config/i386/predicates.md (GOT_memory_operand):
8965         Implement using match_code RTXes.
8966         (GOT32_symbol_operand): Ditto.
8967
8968 2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>
8969
8970         PR target/100637
8971         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
8972         Handle V2HI mode.
8973         (ix86_expand_vector_init_general): Ditto.
8974         Use SImode instead of word_mode for logic operations
8975         when GET_MODE_SIZE (mode) < UNITS_PER_WORD.
8976         (expand_vec_perm_even_odd_1): Assert that V2HI mode should be
8977         implemented by expand_vec_perm_1.
8978         (expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes
8979         should be implemented using standard shuffle patterns.
8980         (ix86_vectorize_vec_perm_const): Handle V2HImode.  Add V4HI and
8981         V2HI modes to modes, implementable with shuffle for one operand.
8982         * config/i386/mmx.md (*punpckwd): New insn_and_split pattern.
8983         (*pshufw_1): New insn pattern.
8984         (*vec_dupv2hi): Ditto.
8985         (vec_initv2hihi): New expander.
8986
8987 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
8988
8989         * config/arm/vfp.md (no_literal_pool_df_immediate,
8990         no_literal_pool_sf_immediate): Fix empty split condition.
8991
8992 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
8993
8994         * config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext,
8995         *tls_dynamic_gnu2_combine_32): Fix empty split condition.
8996         * config/i386/sse.md (*<sse2_avx2>_pmovmskb_lt,
8997         *<sse2_avx2>_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt,
8998         *<sse4_1_avx2>_pblendvb_lt): Likewise.
8999
9000 2021-06-04  Jakub Jelinek  <jakub@redhat.com>
9001
9002         PR target/100887
9003         * config/i386/i386-expand.c (ix86_expand_vector_init): Handle
9004         concatenation from half-sized modes with TImode elements.
9005
9006 2021-06-04  Claudiu Zissulescu  <claziss@synopsys.com>
9007
9008         * config/arc/arc.c (arc_override_options): Disable millicode
9009         thunks when RF16 is on.
9010
9011 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
9012
9013         * config/rs6000/rs6000.h (PROMOTE_MODE): Remove.
9014
9015 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
9016
9017         * config/rs6000/rs6000-call.c (rs6000_promote_function_mode):
9018         Replace PROMOTE_MODE marco with its content.
9019
9020 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
9021
9022         * config/cris/cris.md (*addi_reload): Fix empty split condition.
9023
9024 2021-06-03  Jim Wilson  <jimw@sifive.com>
9025
9026         * config.gcc (riscv*-*-*): If --with-riscv-attribute not used,
9027         turn it on for all riscv targets.
9028
9029 2021-06-03  Uroš Bizjak  <ubizjak@gmail.com>
9030
9031         PR target/100637
9032         * config/i386/i386-expand.c (ix86_expand_vector_set):
9033         Handle V2HI and V4QI modes.
9034         (ix86_expand_vector_extract): Ditto.
9035         * config/i386/mmx.md (*pinsrw): New insn pattern.
9036         (*pinsrb): Ditto.
9037         (*pextrw): Ditto.
9038         (*pextrw_zext): Ditto.
9039         (*pextrb): Ditto.
9040         (*pextrb_zext): Ditto.
9041         (vec_setv2hi): New expander.
9042         (vec_extractv2hihi): Ditto.
9043         (vec_setv4qi): Ditto.
9044         (vec_extractv4qiqi): Ditto.
9045         (vec_setv8qi): Enable only for TARGET_SSE4_1.
9046         (vec_extractv8qiqi): Ditto.
9047
9048 2021-06-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
9049
9050         * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input
9051         order to subf instruction.
9052         * config/rs6000/fusion.md: Regenerate.
9053
9054 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
9055
9056         * calls.c (get_size_range): Use range_of_expr instead of
9057         determine_value_range.
9058         * tree-affine.c (expr_to_aff_combination): Same.
9059         * tree-data-ref.c (split_constant_offset): Same.
9060         * tree-vrp.c (determine_value_range_1): Remove.
9061         (determine_value_range): Remove.
9062         * tree-vrp.h (determine_value_range): Remove.
9063
9064 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
9065
9066         * function-tests.c (test_ranges): Call gimple_range_tests.
9067         * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt
9068         to get_tree_range.
9069         * gimple-range.cc (fur_source::get_operand): Do not call
9070         get_tree_range or gimple_range_global.
9071         get_tree_range.
9072         (get_tree_range): Move to value-query.cc.
9073         Call get_arith_expr_range.
9074         (gimple_ranger::range_of_expr): Add argument to get_tree_range.
9075         Include gimple-range-tests.cc.
9076         * gimple-range.h (fold_range): Add argument.
9077         (get_tree_range): Remove.
9078         * selftest.h (gimple_range_tests): New.
9079         * value-query.cc (global_range_query::range_of_expr): Add
9080         stmt argument.
9081         (range_query::get_tree_range): Move from gimple-range.cc.
9082         * value-query.h (class range_query): Add get_tree_range and
9083         get_arith_expr_range.  Make fur_source a friend.
9084         * vr-values.c (vr_values::range_of_expr): Pass stmt to
9085         get_tree_range.
9086         * gimple-range-tests.cc: New file.
9087
9088 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
9089
9090         * gimple-range.cc (gimple_ranger::export_global_ranges): Call
9091           update_global_range.
9092         * value-query.cc (update_global_range): New.
9093         * value-query.h (update_global_range): New.
9094
9095 2021-06-03  David Malcolm  <dmalcolm@redhat.com>
9096
9097         * diagnostic-show-locus.c (diagnostic_show_locus): Don't reject
9098         printing the same location twice if there are fix-it hints,
9099         multiple locations, or a label.
9100
9101 2021-06-03  Andre Vieira  <andre.simoesdiasvieira@arm.com>
9102
9103         * tree-vect-loop.c (vect_transform_loop): Use main loop's various'
9104         thresholds to narrow the upper bound on epilogue iterations.
9105
9106 2021-06-03  Christophe Lyon  <christophe.lyon@linaro.org>
9107
9108         * config/arm/mve.md (mve_vabsq_f<mode>): Use 'abs' instead of unspec.
9109         (mve_vabsq_s<mode>): Likewise.
9110         * config/arm/neon.md (abs<mode>2): Rename to neon_abs<mode>2.
9111         * config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete.
9112         * config/arm/vec-common.md (neg<mode>2): Rename to
9113         <absneg_str><mode>2.
9114
9115 2021-06-03  Claudiu Zissulescu  <claziss@synopsys.com>
9116
9117         * common/config/arc/arc-common.c (arc_option_optimization_table):
9118         Remove malign-call.
9119         * config/arc/arc.c (arc_unalign_branch_p): Remove unused function.
9120         * config/arc/arc.h (TARGET_MIXED_CODE): Remove macro.
9121         (INDEX_REG_CLASS): Only refer to GENERAL_REGS.
9122         * config/arc/arc.md (abssi2_mixed): Remove pattern.
9123         * config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete.
9124         (malign-call): Likewise.
9125         (mmixed-code): Likewise.
9126         * doc/invoke.texi (ARC): Update doc.
9127
9128 2021-06-03  Martin Liska  <mliska@suse.cz>
9129
9130         * common.opt: Use proper Enum values.
9131         * opts.c (COVERAGE_SANITIZER_OPT): Remove.
9132         (parse_sanitizer_options): Handle only sanitizer_opts.
9133         (common_handle_option): Just assign value.
9134
9135 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
9136
9137         PR ipa/99122
9138         * tree-inline.c (inline_forbidden_p): Remove test on return type.
9139
9140 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
9141
9142         * dwarf2out.c (loc_list_from_tree_1) <FUNCTION_DECL>: Also generate
9143         DW_OP_GNU_variable_value referencing an existing DIE at file scope.
9144         (type_byte_size): Inline into...
9145         (add_byte_size_attribute): ...this and call add_scalar_info.
9146
9147 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
9148
9149         * dwarf2out.c (mem_loc_descriptor) <UDIV>: Fix typo.
9150         (typed_binop_from_tree): New function.
9151         (loc_list_from_tree_1) <EXACT_DIV_EXPR>: For an unsigned type,
9152         turn a divide by a power of 2 into a shift.
9153         <CEIL_DIV_EXPR>: For an unsigned type, use a signed divide if the
9154         size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a
9155         typed divide by calling typed_binop_from_tree.
9156
9157 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
9158
9159         * dwarf2out.c (scompare_loc_descriptor): Fix head comment.
9160         (is_handled_procedure_type): Likewise.
9161         (struct loc_descr_context): Add strict_signedness field.
9162         (resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type,
9163         DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret.
9164         (resolve_args_picking): Minor tweak.
9165         (function_to_dwarf_procedure): Initialize strict_signedness field.
9166         (type_byte_size): Likewise.
9167         (field_byte_offset): Likewise.
9168         (gen_descr_array_type_die): Likewise.
9169         (gen_variant_part): Likewise.
9170         (loc_list_from_tree_1) <CALL_EXPR>: Tidy up and set strict_signedness
9171         to true when a context is present before evaluating the arguments.
9172         <COND_EXPR>: Do not generate a useless comparison with zero.
9173         When dereferencing an address, if strict_signedness is true and the
9174         type is small and signed, use DW_OP_deref_type to do the dereference
9175         and then DW_OP_convert to convert back to the generic type.
9176
9177 2021-06-03  Jakub Jelinek  <jakub@redhat.com>
9178
9179         PR c++/100859
9180         * tree-inline.c (copy_tree_body_r): Handle iterators on
9181         OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND.
9182
9183 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
9184
9185         * config/arc/arc.md (*bbit_di): Remove.
9186
9187 2021-06-02  Christoph Muellner  <cmuellner@gcc.gnu.org>
9188
9189         PR rtl-optimization/100264
9190         * ree.c (get_sub_rtx): Ignore SET expressions without register
9191         destinations and remove assertion, as it is not valid anymore
9192         with this new behaviour.
9193         (merge_def_and_ext): Eliminate destination check for register
9194         as such SET expressions can't occur anymore.
9195         (combine_reaching_defs): Likewise.
9196
9197 2021-06-02  Jakub Jelinek  <jakub@redhat.com>
9198
9199         PR target/100841
9200         * config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid
9201         -Wtype-limits warnings.
9202         (DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition
9203         in operands to avoid -Wsign-compare warnings.
9204
9205 2021-06-02  Pat Haugen  <pthaugen@linux.ibm.com>
9206
9207         * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use
9208         gen_frame_store.
9209
9210 2021-06-02  Vineet Gupta  <vgupta@synopsys.com>
9211
9212         * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux.
9213
9214 2021-06-02  Ilya Leoshkevich  <iii@linux.ibm.com>
9215
9216         * config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single
9217         constraint.
9218         * config/s390/subst.md(cconly_subst): Use a single constraint
9219         in (match_scratch).
9220
9221 2021-06-02  Martin Liska  <mliska@suse.cz>
9222
9223         * ipa-icf.h: Use auto_vec for memory_access_types.
9224
9225 2021-06-02  Jeff Law  <jeffreyalaw@gmail.com>
9226
9227         * config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused
9228         argument from prototype.
9229         (output_logical_op): Add rtx_code argument.
9230         (compute_logical_op_length): Likewise.
9231         * config/h8300/h8300.c (h8300_and_costs): Pass additional argument
9232         to compute_a_shift_length.
9233         (output_logical_op); New argument with the rtx code rather than
9234         extracting it from an operand.  Handle QImode too.
9235         (compute_logical_op_length): Similary.
9236         (compute_a_shift_length): Drop unused argument.
9237         * config/h8300/h8300.md (logicals): New code iterator.
9238         * config/h8300/logical.md (<code><mode>3 expander): Combine
9239         the "and" expander with the "ior"/"xor" expander.
9240         (bclr<mode>msx): Combine the QI/HI mode patterns.
9241         (<logical><mode>3 insns): Use code iterator rather than match_operator.
9242         Handle QImode as well.   Update call to output_logical_op and
9243         compute_logical_op_length to pass in rtx_code
9244         Fix split condition on all define_insn_and_split patterns.
9245         (one_cmpl<mode>2<cczn>): Use <cczn> to support both clobbering
9246         the flags and setting ZN via existing define_subst.
9247         * config/h8300/shiftrotate.md: Drop unused argument from
9248         calls to compute_a_shift_length.
9249         Signed-off-by: Jeff Law <jeffreyalaw@gmail.com>
9250
9251 2021-06-01  Andrew Pinski  <apinski@marvell.com>
9252
9253         PR tree-optimization/25290
9254         * tree-ssa-phiopt.c (match_simplify_replacement):
9255         New function.
9256         (tree_ssa_phiopt_worker): Use match_simplify_replacement.
9257         (two_value_replacement): Change the comment about
9258         conditional_replacement.
9259         (conditional_replacement): Delete.
9260
9261 2021-06-01  Andrew Pinski  <apinski@marvell.com>
9262
9263         PR tree-optimization/95481
9264         * tree-tailcall.c (find_tail_calls): Handle empty typed
9265         return decls.
9266
9267 2021-06-01  Andrew Pinski  <apinski@marvell.com>
9268
9269         * gimplify.c (zero_sized_field_decl): Delete
9270         (zero_sized_type): Delete
9271         (gimplify_init_ctor_eval): Use is_empty_type instead
9272         of zero_sized_field_decl.
9273         (gimplify_modify_expr): Use is_empty_type instead of
9274         zero_sized_type.
9275
9276 2021-06-01  Jason Merrill  <jason@redhat.com>
9277
9278         PR c++/91859
9279         * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment.
9280
9281 2021-06-01  Jason Merrill  <jason@redhat.com>
9282
9283         PR c++/94492
9284         * diagnostic.h (warning_enabled_at): Declare.
9285         * diagnostic.c (diagnostic_enabled): Factor out from...
9286         (diagnostic_report_diagnostic): ...here.
9287         (warning_enabled_at): New.
9288
9289 2021-06-01  Aldy Hernandez  <aldyh@redhat.com>
9290
9291         * gimple-ssa-evrp.c: Enable exporting of global ranges.
9292
9293 2021-06-01  Martin Liska  <mliska@suse.cz>
9294
9295         PR other/100826
9296         * doc/invoke.texi: Mention that -fgcse-after-reload
9297         is enabled with -O3.
9298
9299 2021-06-01  liuhongt  <hongtao.liu@intel.com>
9300
9301         PR tree-optimization/98365
9302         * tree-if-conv.c (strip_nop_cond_scalar_reduction): New function.
9303         (is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction.
9304         (convert_scalar_cond_reduction): Ditto.
9305         (predicate_scalar_phi): Ditto.
9306
9307 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
9308
9309         PR tree-optimization/100781
9310         * gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new
9311         value calculation by default.
9312         (ranger_cache::enable_new_values): New.
9313         (ranger_cache::disable_new_values): New.
9314         (ranger_cache::push_poor_value): Check if new values are allowed.
9315         * gimple-range-cache.h (class ranger_cache): New member/methods.
9316         * gimple-range.cc (gimple_ranger::range_of_expr): Check for debug
9317         statement, and disable/renable new value calculation.
9318
9319 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
9320
9321         * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete.
9322         (ranger_cache::range_of_def): New.
9323         (ranger_cache::entry_range): New.
9324         (ranger_cache::exit_range): New.
9325         (ranger_cache::range_of_expr): Adjust.
9326         (ranger_cache::range_on_edge): Adjust.
9327         (ranger_cache::propagate_cache): Call exit_range directly.
9328         * gimple-range-cache.h (class ranger_cache): Adjust.
9329
9330 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
9331
9332         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for
9333         gori_compute being a member rather than base class.
9334         dervied call to member call.
9335         (ranger_cache::dump): No longer dump gori_map.
9336         (ranger_cache::dump_bb): New.
9337         (ranger_cache::get_non_stale_global_range): Adjust for gori_compute
9338         being a member rather than base class.
9339         (ranger_cache::set_global_range): Ditto.
9340         (ranger_cache::ssa_range_in_bb): Ditto.
9341         (ranger_cache::range_of_expr): New.
9342         (ranger_cache::range_on_edge): New.
9343         (ranger_cache::block_range): Adjust for gori_computes.  Debug changes.
9344         (ranger_cache::propagate_cache):  Adjust debugging output.
9345         (ranger_cache::fill_block_cache): Adjust for gori_computes.  Debug
9346         output changes.
9347         * gimple-range-cache.h (class ranger_cache): Make gori_compute a
9348         member, and inherit from range_query instead.
9349         (ranger_cache::dump_bb): New. split from dump.
9350         * gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete.
9351         (gori_compute::expr_range_at_stmt): Delete.
9352         (gori_compute::compute_name_range_op): Delete.
9353         (gori_compute::compute_operand_range_switch): Add fur_source.
9354         (gori_compute::compute_operand_range): Add fur_source param, inline
9355         old compute_name_range_op and optimize_logical_operands.
9356         (struct tf_range): Delete.
9357         (gori_compute::logical_combine): Adjust
9358         (gori_compute::optimize_logical_operands): Delete.
9359         (gori_compute::compute_logical_operands_in_chain): Delete.
9360         (gori_compute::compute_logical_operands): Adjust.
9361         (gori_compute::compute_operand1_range): Adjust to fur_source.
9362         (gori_compute::compute_operand2_range): Ditto.
9363         (gori_compute::compute_operand1_and_operand2_range): Ditto.
9364         (gori_compute::outgoing_edge_range_p): Add range_query parameter,
9365         and adjust to fur_source.
9366         * gimple-range-gori.h (class gori_compute): Simplify and adjust to
9367         range_query and fur_source.
9368         * gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge
9369         from the ranger_cache..
9370         (gimple_ranger::fold_range_internal): Adjust to base class change of
9371         ranger_cache.
9372         (gimple_ranger::dump_bb): Adjust dump.
9373         * gimple-range.h (gimple_ranger):export gori computes object.
9374
9375 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
9376
9377         PR tree-optimization/100774
9378         * gimple-range-cache.cc (ranger_cache::get_non_stale_global_range):
9379         Constant values are also not stale.
9380         (ranger_cache::set_global_range): Range invariant values should also
9381         have the correct timestamp.
9382
9383 2021-05-31  Martin Liska  <mliska@suse.cz>
9384
9385         * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
9386         Unpack FUNCTION_DECL_DECL_TYPE.
9387         * tree-streamer-out.c (pack_ts_function_decl_value_fields):
9388         Stream FUNCTION_DECL_DECL_TYPE instead of
9389         DECL_IS_OPERATOR_NEW_P.
9390         * tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE
9391         macro.
9392         (DECL_IS_OPERATOR_NEW_P): Likewise.
9393         (DECL_IS_OPERATOR_DELETE_P): Likewise.
9394         (DECL_LAMBDA_FUNCTION_P): Likewise.
9395
9396 2021-05-31  Richard Biener  <rguenther@suse.de>
9397
9398         PR c++/88601
9399         * internal-fn.c (expand_SHUFFLEVECTOR): Define.
9400         * internal-fn.def (SHUFFLEVECTOR): New.
9401         * internal-fn.h (expand_SHUFFLEVECTOR): Declare.
9402         * doc/extend.texi: Document __builtin_shufflevector.
9403
9404 2021-05-31  Peter Bergner  <bergner@linux.ibm.com>
9405
9406         PR target/99842
9407         * config/rs6000/predicates.md(mma_assemble_input_operand): Allow
9408         indexed form addresses.
9409
9410 2021-05-29  Jeff Law  <jlaw@tachyum.com>
9411
9412         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused
9413         parameter.  Call callers fixed.
9414         (push): Likewise.
9415         (output_plussi): Add FALLTHRU markers.
9416         (h8300_shift_needs_scratch_p): Add gcc_unreachable marker.
9417
9418 2021-05-29  Jakub Jelinek  <jakub@redhat.com>
9419
9420         PR middle-end/99928
9421         * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd
9422         combined with parallel, make sure to add shared clause to
9423         parallel for explicit linear clause.
9424
9425 2021-05-29  Aldy Hernandez  <aldyh@redhat.com>
9426
9427         PR tree-optimization/100787
9428         * gimple-ssa-evrp.c: Disable exporting of global ranges.
9429
9430 2021-05-28  Jason Merrill  <jason@redhat.com>
9431
9432         * tree-iterator.h (struct tree_stmt_iterator): Add operator++,
9433         operator--, operator*, operator==, and operator!=.
9434         (class tsi_range): New.
9435
9436 2021-05-28  Richard Biener  <rguenther@suse.de>
9437
9438         PR tree-optimization/100778
9439         * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly
9440         trapping ops in different BBs.
9441
9442 2021-05-28  Richard Biener  <rguenther@suse.de>
9443
9444         PR ipa/100791
9445         * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack
9446         copy fntype from original call.
9447
9448 2021-05-28  Martin Liska  <mliska@suse.cz>
9449
9450         PR gcov-profile/100751
9451         * doc/gcov.texi: Revert partially a hunk that was wrong.
9452
9453 2021-05-28  Cooper Qu  <cooper.qu@linux.alibaba.com>
9454
9455         * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi):
9456         Defined.
9457         (HAVE_sync_compare_and_swaphi): Likewise.
9458         (HAVE_sync_compare_and_swapsi): Likewise.
9459
9460 2021-05-28  Jakub Jelinek  <jakub@redhat.com>
9461
9462         PR middle-end/99928
9463         * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define.
9464
9465 2021-05-28  Tobias Burnus  <tobias@codesourcery.com>
9466
9467         * gimplify.c (gimplify_omp_affinity): New.
9468         (gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards.
9469         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY.
9470         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY.
9471         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause.
9472         (walk_tree_1): Handle OMP_CLAUSE_AFFINITY.
9473
9474 2021-05-28  Joern Rennecke  <joern.rennecke@riscy-ip.com>
9475             Richard Biener   <rguenther@suse.de>
9476
9477         * match.pd <popcount & / + pattern matching>:
9478         When generating popcount directly fails, try doing it in two halves.
9479
9480 2021-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9481
9482         * Makefile.in (generated_files): Add gimple-match.c and
9483         generic-match.c
9484
9485 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
9486
9487         * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP.
9488
9489 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
9490
9491         * gensupport.c (alter_constraints): Add MATCH_SCRATCH case.
9492
9493 2021-05-28  Kewen Lin  <linkw@linux.ibm.com>
9494
9495         PR tree-optimization/99398
9496         * tree-ssa-forwprop.c (simplify_permutation): Optimize some cases
9497         where the fed operands are CTOR/CST and propagated through
9498         VIEW_CONVERT_EXPR.  Call vec_perm_indices::new_shrunk_vector.
9499         * vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New
9500         function.
9501         * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New
9502         declare.
9503
9504 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
9505
9506         * config/i386/mmx.md (addv2sf3): Do not call
9507         ix86_fixup_binary_operands_no_copy.
9508         (subv2sf3): Ditto.
9509         (mulv2sf3): Ditto.
9510         (<smaxmin:code>v2sf3): Ditto.
9511         (<plusminus:insn><MMXMODEI:mode>3): Ditto.
9512         (<plusminus:insn><VI_32:mode>3): Remove expander.
9513         (<plusminus:insn><VI_32:mode>3): Rename from
9514         "*<plusminus:insn><VI_32:mode>3".
9515         (mulv4hi): Do not call ix86_fixup_binary_operands_no_copy.
9516         (mulv2hi3): Remove expander.
9517         (mulv2hi3): Rename from *mulv2hi3.
9518         (<s>mulv2hi3_highpart): Remove expander.
9519         (<s>mulv2hi3_highpart): Rename from *<s>mulv2hi3_highpart.
9520         (<smaxmin:code><MMXMODE14:mode>3): Rename from
9521         "*mmx_<smaxmin:code><MMXMODE14:mode>3".
9522         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Remove expander.
9523         (SMAXMIN_MMXMODEI): Remove mode iterator.
9524         (<smaxmin:code>v4hi3): New expander.
9525         (<smaxmin:code>v4qi3): Rename from *<smaxmin:code>v4qi3.
9526         (<smaxmin:code>v2hi3): Rename from *<smaxmin:code>v2hi3.
9527         (<smaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
9528         (SMAXMIN_VI_32): Remove mode iterator.
9529         (<umaxmin:code><MMXMODE24:mode>3): Rename from
9530         "*mmx_<umaxmin:code><MMXMODE24:mode>3".
9531         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Remove expander.
9532         (UMAXMIN_MMXMODEI): Remove mode iterator.
9533         (<umaxmin:code>v8qi3): New expander.
9534         (<umaxmin:code>v4qi3): Rename from *<umaxmin:code>v4qi3.
9535         (<umaxmin:code>v2hi3): Rename from *<umaxmin:code>v2hi3.
9536         (<umaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
9537         (UMAXMIN_VI_32): Remove mode iterator.
9538         (<any_shift:insn>v2hi3): Remove expander.
9539         (<any_shift:insn>v2hi3): Rename from *<any_shift:insn>v2hi3.
9540         (<any_logic:code><MMXMODEI:mode>3): Do not call
9541         ix86_fixup_binary_operands_no_copy.
9542         (<any_logic:code><VI_32:mode>3): Remove expander.
9543         (<any_logic:code><VI_32:mode>3): Rename from
9544         "*<any_logic:code><VI_32:mode>3".
9545         (uavg<mode>3_ceil): Do not call ix86_fixup_binary_operands_no_copy.
9546         * config/i386/sse.md (div<VF2:mode>3): Do not call
9547         ix86_fixup_binary_operands_no_copy.
9548         (div<VF1:mode>3): Ditto.
9549         (<maxmin:code><VI8_AVX2_AVX512F:mode>3): Ditto.
9550         (smulhrsv4hi3): Ditto.
9551         (smulhrsv2hi3): Ditto.
9552
9553 2021-05-27  Martin Sebor  <msebor@redhat.com>
9554
9555         * ggc.h (gt_ggc_mx): Add overloads for all integers.
9556         (gt_pch_nx):  Same.
9557         * hash-map.h (class hash_map): Add pch_nx_helper overloads for all
9558         integers.
9559         (hash_map::operator==): New function.
9560
9561 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
9562
9563         PR target/100637
9564         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
9565         For TARGET_XOP bypass SSE comparisons for all supported vector modes.
9566         * config/i386/mmx.md (*xop_maskcmp<MMXMODEI:mode>3): New insn pattern.
9567         (*xop_maskcmp<VI_32:mode>3): Ditto.
9568         (*xop_maskcmp_uns<MMXMODEI:mode>3): Ditto.
9569         (*xop_maskcmp_uns<VI_32:mode>3): Ditto.
9570
9571 2021-05-27  Richard Earnshaw  <rearnsha@arm.com>
9572
9573         PR target/100767
9574         * config/arm/arm.c (arm_configure_build_target): Remove parameter
9575         opts_set, directly check opts parameters for being non-null.
9576         (arm_option_restore): Update call to arm_configure_build_target.
9577         (arm_option_override): Likewise.
9578         (arm_can_inline_p): Likewise.
9579         (arm_valid_target_attribute_tree): Likewise.
9580         * config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
9581         * config/arm/arm-protos.h (arm_configure_build_target): Adjust
9582         prototype.
9583
9584 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
9585
9586         * vr-values.c (simplify_conversion_using_ranges): Use
9587         get_range_query instead of get_global_range_query.
9588
9589 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
9590
9591         * gimple-range.cc (get_range_global): Move to value-query.cc.
9592         (gimple_range_global): Same.
9593         (get_global_range_query): Same.
9594         (global_range_query::range_of_expr): Same.
9595         * gimple-range.h (class global_range_query): Move to
9596         value-query.h.
9597         (gimple_range_global): Same.
9598         * tree-ssanames.c (get_range_info): Move to value-query.cc.
9599         (get_ptr_nonnull): Same.
9600         * tree-ssanames.h (get_range_info): Remove.
9601         (get_ptr_nonnull): Remove.
9602         * value-query.cc (get_ssa_name_range_info): Move from
9603         tree-ssanames.c.
9604         (get_ssa_name_ptr_info_nonnull): Same.
9605         (get_range_global): Move from gimple-range.cc.
9606         (gimple_range_global): Same.
9607         (get_global_range_query): Same.
9608         (global_range_query::range_of_expr): Same.
9609         * value-query.h (class global_range_query): Move from
9610         gimple-range.h.
9611         (gimple_range_global): Same.
9612
9613 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
9614
9615         PR target/100637
9616         * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern.
9617         (uavgv2hi3_ceil): Ditto.
9618
9619 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
9620
9621         PR c/100653
9622         * doc/extend.texi (scalar_storage_order): Rephrase slightly.
9623
9624 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
9625
9626         * tree-ssanames.c (get_range_info): Merge both copies of
9627         get_range_info into one that works with irange.
9628         * tree-ssanames.h (get_range_info): Remove version that works on
9629         wide_ints.
9630
9631 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
9632
9633         * builtins.c (check_nul_terminated_array): Convert to get_range_query.
9634         (expand_builtin_strnlen): Same.
9635         (determine_block_size): Same.
9636         * fold-const.c (expr_not_equal_to): Same.
9637         * gimple-fold.c (size_must_be_zero_p): Same.
9638         * gimple-match-head.c: Include gimple-range.h.
9639         * gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query.
9640         * gimple-ssa-warn-restrict.c
9641         (builtin_memref::extend_offset_range): Same.
9642         * graphite-sese-to-poly.c (add_param_constraints): Same.
9643         * internal-fn.c (get_min_precision): Same.
9644         * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same.
9645         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
9646         * match.pd: Same.
9647         * tree-data-ref.c (split_constant_offset): Same.
9648         (dr_step_indicator): Same.
9649         * tree-dfa.c (get_ref_base_and_extent): Same.
9650         * tree-scalar-evolution.c (iv_can_overflow_p): Same.
9651         * tree-ssa-loop-niter.c (refine_value_range_using_guard): Same.
9652         (determine_value_range): Same.
9653         (record_nonwrapping_iv): Same.
9654         (infer_loop_bounds_from_signedness): Same.
9655         (scev_var_range_cant_overflow): Same.
9656         * tree-ssa-phiopt.c (two_value_replacement): Same.
9657         * tree-ssa-pre.c (insert_into_preds_of_block): Same.
9658         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same.
9659         * tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same.
9660         (get_range): Same.
9661         (dump_strlen_info): Same.
9662         (set_strlen_range): Same.
9663         (maybe_diag_stxncpy_trunc): Same.
9664         (get_len_or_size): Same.
9665         (handle_integral_assign): Same.
9666         * tree-ssa-structalias.c (find_what_p_points_to): Same.
9667         * tree-ssa-uninit.c (find_var_cmp_const): Same.
9668         * tree-switch-conversion.c (bit_test_cluster::emit): Same.
9669         * tree-vect-patterns.c (vect_get_range_info): Same.
9670         (vect_recog_divmod_pattern): Same.
9671         * tree-vrp.c (intersect_range_with_nonzero_bits): Same.
9672         (register_edge_assert_for_2): Same.
9673         (determine_value_range_1): Same.
9674         * tree.c (get_range_pos_neg): Same.
9675         * vr-values.c (vr_values::get_lattice_entry): Same.
9676         (vr_values::update_value_range): Same.
9677         (simplify_conversion_using_ranges): Same.
9678
9679 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
9680
9681         * gimple-ssa-warn-alloca.c (alloca_call_type): Use
9682           get_range_query instead of query argument.
9683         (pass_walloca::execute): Enable and disable global ranger.
9684
9685 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
9686
9687         * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call
9688         enable_ranger.
9689         (rvrp_folder::~rvrp_folder): Call disable_ranger.
9690         (hybrid_folder::hybrid_folder): Call enable_ranger.
9691         (hybrid_folder::~hybrid_folder): Call disable_ranger.
9692
9693 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
9694
9695         * function.c (allocate_struct_function): Set cfun->x_range_query.
9696         * function.h (struct function): Declare x_range_query.
9697         (get_range_query): New.
9698         (get_global_range_query): New.
9699         * gimple-range-cache.cc (ssa_global_cache::ssa_global_cache):
9700         Remove call to safe_grow_cleared.
9701         * gimple-range.cc (get_range_global): New.
9702         (gimple_range_global): Move from gimple-range.h.
9703         (get_global_range_query): New.
9704         (global_range_query::range_of_expr): New.
9705         (enable_ranger): New.
9706         (disable_ranger): New.
9707         * gimple-range.h (gimple_range_global): Move to gimple-range.cc.
9708         (class global_range_query): New.
9709         (enable_ranger): New.
9710         (disable_ranger): New.
9711         * gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename
9712         dump_all_value_ranges to dump.
9713         * tree-vrp.c (vrp_prop::finalize): Same.
9714         * value-query.cc (range_query::dump): New.
9715         * value-query.h (range_query::dump): New.
9716         * vr-values.c (vr_values::dump_all_value_ranges): Rename to...
9717         (vr_values::dump): ...this.
9718         * vr-values.h (class vr_values): Rename dump_all_value_ranges to
9719         dump and make virtual.
9720
9721 2021-05-26  Uroš Bizjak  <ubizjak@gmail.com>
9722
9723         * config/i386/i386.c (ix86_autovectorize_vector_modes):
9724         Add V4QImode and V16QImode for TARGET_SSE2.
9725         * doc/sourcebuild.texi (Vector-specific attributes):
9726         Add vect64 and vect32 description.
9727
9728 2021-05-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9729
9730         * gimple-range-gori.cc (range_def_chain::register_dependency):
9731         Resize m_def_chain when needed.
9732
9733 2021-05-26  Christophe Lyon  <christophe.lyon@linaro.org>
9734
9735         * config/arm/mve.md (mve_vaddvq_<supf><mode>): Prefix with '@'.
9736         * config/arm/neon.md (reduc_plus_scal_<mode>): Move to ..
9737         * config/arm/vec-common.md: .. here. Add support for MVE.
9738
9739 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
9740
9741         * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove
9742         register keywords.
9743         * config/microblaze/microblaze.c (microblaze_legitimize_address,
9744         call_internal1,
9745         microblaze_option_override, print_operand): Likewise.
9746         * config/microblaze/microblaze.md (call_internal_plt,
9747         call_value_intern_plt, call_value_intern): Likewise.
9748         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise.
9749         * config/iq2000/iq2000.md (call_internal1, call_value_internal1,
9750         call_value_multiple_internal1): Likewise.
9751         * config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise.
9752
9753 2021-05-26  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9754
9755         * config/arc/arc.c (arc_address_cost, arc_print_operand_address,
9756         arc_ccfsm_advance, symbolic_reference_mentioned_p,
9757         arc_raw_symbolic_reference_mentioned_p): Remove register
9758         keyword.
9759
9760 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
9761
9762         PR libgomp/100573
9763         * omp-low.c: Include omp-offload.h.
9764         (create_omp_child_function): If current_function_decl has
9765         "omp declare target" attribute and is_gimple_omp_offloaded,
9766         remove that attribute from the copy of attribute list and
9767         add "omp target entrypoint" attribute instead.
9768         (lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.*
9769         variables for offloading if in omp_maybe_offloaded_ctx.
9770         * omp-offload.c (pass_omp_target_link::execute): Nullify second
9771         argument to GOMP_target_data_ext in offloaded code.
9772
9773 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
9774
9775         * config/csky/csky.c (csky_can_change_mode_class): Delete.
9776         For csky, HF/SF mode use the low bits of VREGS.
9777
9778 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
9779
9780         * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a
9781         DECL which is a reference for OMP.
9782
9783 2021-05-26  Martin Liska  <mliska@suse.cz>
9784
9785         PR gcov-profile/100751
9786         * doc/gcov.texi: Document that __gcov_dump can be called just
9787         once and that __gcov_reset resets run-time counters.
9788
9789 2021-05-26  Martin Liska  <mliska@suse.cz>
9790
9791         * doc/install.texi: Port relevant part from install-old.texi
9792         and re-generate list of CPUs and systems.
9793
9794 2021-05-26  Martin Liska  <mliska@suse.cz>
9795
9796         * Makefile.in: Remove it.
9797         * doc/include/fdl.texi: Update next/previous chapters.
9798         * doc/install.texi: Likewise.
9799         * doc/install-old.texi: Removed.
9800
9801 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
9802
9803         * config/csky/csky.c (ck810_legitimate_index_p): Support
9804         "base + index" with DF mode.
9805         * config/csky/constraints.md ("Y"): New constraint for memory operands
9806         without index register.
9807         * config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m"
9808         when mov between memory and general registers, and lower their priority.
9809         * config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise.
9810
9811 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
9812
9813         * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete.
9814
9815 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
9816
9817         * config/csky/csky.md (untyped_call): Emit clobber for return
9818         registers to mark them used.
9819
9820 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
9821
9822         * config/csky/csky.md (cskyv2_sextend_ldbs): New.
9823
9824 2021-05-26  Andrew Pinski  <apinski@marvell.com>
9825
9826         * match.pd (x < 0 ? ~y : y): New patterns.
9827
9828 2021-05-26  Andrew Pinski  <apinski@marvell.com>
9829
9830         * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0,
9831         A?POW2:0 and A?0:POW2.
9832
9833 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
9834
9835         * gimple-range-gori.cc (class logical_stmt_cache): Delete
9836         (logical_stmt_cache::logical_stmt_cache ): Delete.
9837         (logical_stmt_cache::~logical_stmt_cache): Delete.
9838         (logical_stmt_cache::cache_entry::dump): Delete.
9839         (logical_stmt_cache::get_range): Delete.
9840         (logical_stmt_cache::cached_name ): Delete.
9841         (logical_stmt_cache::same_cached_name): Delete.
9842         (logical_stmt_cache::cacheable_p): Delete.
9843         (logical_stmt_cache::slot_diagnostics ): Delete.
9844         (logical_stmt_cache::dump): Delete.
9845         (gori_compute_cache::gori_compute_cache): Delete.
9846         (gori_compute_cache::~gori_compute_cache): Delete.
9847         (gori_compute_cache::compute_operand_range): Delete.
9848         (gori_compute_cache::cache_stmt): Delete.
9849         * gimple-range-gori.h (gori_compute::compute_operand_range): Remove
9850         virtual.
9851         (class gori_compute_cache): Delete.
9852
9853 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
9854
9855         * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori
9856         intead of m_cache.
9857         (fold_using_range::range_of_address): Adjust.
9858         (fold_using_range::range_of_phi): Adjust.
9859         * gimple-range.h (class fur_source): Adjust.
9860         (fur_source::fur_source): Adjust.
9861
9862 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
9863
9864         * gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename
9865         from expr_range_in_bb and adjust.
9866         (gori_compute::compute_name_range_op): Adjust.
9867         (gori_compute::optimize_logical_operands): Adjust.
9868         (gori_compute::compute_logical_operands_in_chain): Adjust.
9869         (gori_compute::compute_operand1_range): Adjust.
9870         (gori_compute::compute_operand2_range): Adjust.
9871         (ori_compute_cache::cache_stmt): Adjust.
9872         * gimple-range-gori.h (gori_compute): Rename prototype.
9873
9874 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
9875
9876         * gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be
9877         checked only after range_of_stmt, not range_on_entry.
9878         (gimple_ranger::range_on_entry): Check for non-null in any
9879         predecessor block, if it is not already non-null.
9880         (gimple_ranger::range_on_exit): DOnt check for non-null after
9881         range on entry call.
9882         (gimple_ranger::dump_bb): New.  Split from dump.
9883         (gimple_ranger::dump): Adjust.
9884         * gimple-range.h (class gimple_ranger): Adjust.
9885
9886 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
9887
9888         * gimple-range-cache.cc (struct range_timestamp): Delete.
9889         (class temporal_cache): Adjust.
9890         (temporal_cache::get_timestamp): Delete.
9891         (temporal_cache::set_dependency): Delete.
9892         (temporal_cache::temporal_value): Adjust.
9893         (temporal_cache::current_p): Take dependencies as params.
9894         (temporal_cache::set_timestamp): Adjust.
9895         (temporal_cache::set_always_current): Adjust.
9896         (ranger_cache::get_non_stale_global_range): Adjust.
9897         (ranger_cache::register_dependency): Delete.
9898         * gimple-range-cache.h (class range_cache): Adjust.
9899
9900 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
9901
9902         * gimple-range-gori.cc (range_def_chain::range_def_chain): init
9903         bitmap obstack.
9904         (range_def_chain::~range_def_chain): Dispose of obstack rather than
9905         each individual bitmap.
9906         (range_def_chain::set_import): New.
9907         (range_def_chain::get_imports): New.
9908         (range_def_chain::chain_import_p): New.
9909         (range_def_chain::register_dependency): Rename from build_def_chain
9910         and set imports.
9911         (range_def_chain::def_chain_in_bitmap_p): New.
9912         (range_def_chain::add_def_chain_to_bitmap): New.
9913         (range_def_chain::has_def_chain): Just check first depenedence.
9914         (range_def_chain::get_def_chain): Process imports, use generic
9915         register_dependency routine.
9916         (range_def_chain::dump): New.
9917         (gori_map::gori_map): Allocate import list.
9918         (gori_map::~gori_map): Release imports.
9919         (gori_map::exports): Check for past allocated block size.
9920         (gori_map::imports): New.
9921         (gori_map::def_chain_in_export_p): Delete.
9922         (gori_map::is_import_p): New.
9923         (gori_map::maybe_add_gori): Handle imports.
9924         (gori_map::dump): Adjust output, add imports.
9925         (gori_compute::has_edge_range_p): Remove def_chain_in_export call.
9926         (gori_export_iterator::gori_export_iterator): New.
9927         (gori_export_iterator::next): New.
9928         (gori_export_iterator::get_name): New.
9929         * gimple-range-gori.h (range_def_chain): Add imports and direct
9930         dependecies via struct rdc.
9931         (range_def_chain::depend1): New.
9932         (range_def_chain::depend2): New.
9933         (class gori_map): Adjust.
9934         (FOR_EACH_GORI_IMPORT_NAME): New.
9935         (FOR_EACH_GORI_EXPORT_NAME): New.
9936         (class gori_export_iterator): New.
9937
9938 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
9939
9940         * gimple-range-cache.cc (ranger_cache::ranger_cache):  Move initial
9941         export cache filling to here.
9942         * gimple-range-gori.cc (gori_compute::gori_compute) : From Here.
9943
9944 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
9945
9946         * gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h.
9947         (gori_map): Move to gimple-range-gori.h.
9948         (gori_compute::gori_compute): Adjust.
9949         (gori_compute::~gori_compute): Delete.
9950         (gori_compute::compute_operand_range_switch): Adjust.
9951         (gori_compute::compute_operand_range): Adjust.
9952         (gori_compute::compute_logical_operands): Adjust.
9953         (gori_compute::has_edge_range_p ): Adjust.
9954         (gori_compute::set_range_invariant): Delete.
9955         (gori_compute::dump): Adjust.
9956         (gori_compute::outgoing_edge_range_p): Adjust.
9957         * gimple-range-gori.h (class range_def_chain): Relocate here.
9958         (class gori_map): Relocate here.
9959         (class gori_compute): Inherit from gori_map, and adjust.
9960
9961 2021-05-25  Aldy Hernandez  <aldyh@redhat.com>
9962
9963         * value-range.cc (range_tests_legacy): Use
9964         build_nonstandard_integer_type instead of int and short.
9965
9966 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9967
9968         * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL
9969         when really creating an initialization statement for it.
9970
9971 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9972
9973         * tree-inline.c (setup_one_parameter): Fix thinko in new condition.
9974
9975 2021-05-25  Kito Cheng  <kito.cheng@sifive.com>
9976
9977         * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax.
9978
9979 2021-05-25  Martin Liska  <mliska@suse.cz>
9980
9981         PR tree-optimization/92860
9982         PR target/99592
9983         * optc-save-gen.awk: Remove exceptions.
9984
9985 2021-05-25  Martin Liska  <mliska@suse.cz>
9986
9987         * asan.h (sanitize_coverage_p): New function.
9988         * doc/extend.texi: Document it.
9989         * fold-const.c (fold_range_test): Use sanitize_flags_p
9990         instead of flag_sanitize_coverage.
9991         (fold_truth_andor): Likewise.
9992         * sancov.c: Likewise.
9993         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
9994         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle
9995         -fsanitize-coverage when inlining.
9996
9997 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
9998
9999         * config/csky/csky-modes.def : Fix copyright.
10000
10001 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
10002
10003         * config/csky/csky-modes.def : Amend copyright.
10004         * config/csky/csky_insn_fpuv2.md : Likewise.
10005         * config/csky/csky_insn_fpuv3.md : Likewise.
10006
10007 2021-05-25  Richard Biener  <rguenther@suse.de>
10008
10009         PR middle-end/100727
10010         * calls.c (initialize_argument_information): Explicitely test
10011         for WITH_SIZE_EXPR.
10012         * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR.
10013
10014 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
10015
10016         * config/csky/csky.h (FRAME_POINTER_REGNUM): Use
10017         HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of
10018         the signle definition. The signle definition may not work well
10019         at simplify_subreg_regno().
10020         (HARD_FRAME_POINTER_REGNUM): New.
10021         (ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM.
10022         * config/csky/csky.c (get_csky_live_regs, csky_can_eliminate,
10023         csky_initial_elimination_offset, csky_expand_prologue,
10024         csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM.
10025
10026 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
10027
10028         * config/csky/csky.c (csky_option_override):
10029         Init csky_arch_isa_features[] in advance, so TARGET_DSP
10030         and TARGET_DIV can be set well.
10031
10032 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
10033
10034         * config/csky/constraints.md ("l", "h"): Delete.
10035         * config/csky/csky.h (reg_class, REG_CLASS_NAMES,
10036         REG_CLASS_CONTENTS):  Delete LO_REGS and HI_REGS.
10037         * config/csky/csky.c (regno_reg_classm,
10038         csky_secondary_reload, csky_register_move_cost):
10039         Use HILO_REGS instead of LO_REGS and HI_REGS.
10040
10041 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
10042
10043         * config/csky/constraints.md ("W"): New constriant for mem operand
10044         with base reg, index register.
10045         ("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to
10046         "csky_valid_mem_constraint_operand" to deal with both "Q" and "W"
10047         constraint.
10048         ("Dv"): New constraint for const double value that can be used at
10049         fmovi instruction.
10050         * config/csky/csky-modes.def (HFmode): New mode.
10051         * config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename
10052         to "csky_valid_mem_constraint_operand" and support new constraint
10053         "W".
10054         (csky_get_movedouble_length): New.
10055         (fpuv3_output_move): New.
10056         (fpuv3_const_double): New.
10057         * config/csky/csky.c (csky_option_override): New arch CK860 with fpv3.
10058         (decompose_csky_address): Refine.
10059         (csky_print_operand): New "CONST_DOUBLE" operand.
10060         (csky_output_move): Support fpv3 instructions.
10061         (csky_get_movedouble_length): New.
10062         (fpuv3_output_move): New.
10063         (fpuv3_const_double): New.
10064         (csky_emit_compare): Cover float comparsion.
10065         (csky_emit_compare_float): Refine.
10066         (csky_vaild_fpuv2_mem_operand): Rename to
10067         "csky_valid_mem_constraint_operand" and support new constraint "W".
10068         (ck860_rtx_costs): New.
10069         (csky_rtx_costs): Add the cost calculation of CK860.
10070         (regno_reg_class): New vregs for fpuv3.
10071         (csky_dbx_regno): Likewise.
10072         (csky_cpu_cpp_builtins): New builtin macro for fpuv3.
10073         (csky_conditional_register_usage): Suporrot fpuv3.
10074         (csky_dwarf_register_span): Suporrot fpuv3.
10075         (csky_init_builtins, csky_mangle_type): Support "__fp16" type.
10076         (ck810_legitimate_index_p): Support fp16.
10077         * config/csky/csky.h (TARGET_TLS): ADD CK860.
10078         (CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3.
10079         (TARGET_SINGLE_FPU): Support fpuv3.
10080         (TARGET_SUPPORT_FPV3): New.
10081         (FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers.
10082         (FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES,
10083          REG_CLASS_CONTENTS): Support fpuv3.
10084         * config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine.
10085         (csky_movsf_fpv2): Likewise.
10086         (ck801_movsf): Likewise.
10087         (csky_movsf): Likewise.
10088         (movdf): Likewise.
10089         (csky_movdf_fpv2): Likewise.
10090         (ck801_movdf): Likewise.
10091         (csky_movdf): Likewise.
10092         (movsicc): Refine. Use "comparison_operatior" instead of
10093         "ordered_comparison_operatior".
10094         (addsicc): Likewise.
10095         (CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant.
10096         (call_value_internal_vh): New.
10097         * config/csky/csky_cores.def (CK860): New arch and cpu.
10098         (fpv3_hf): New.
10099         (fpv3_hsf): New.
10100         (fpv3_sdf): New.
10101         (fpv3): New.
10102         * config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns
10103         into emit-patterns and match-patterns, remain the emit-patterns here,
10104         and move the match-patterns to csky_insn_fpuv2.md or
10105         csky_insn_fpuv3.md.
10106         * config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions.
10107         * config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3
10108         isntructions.
10109         * config/csky/csky_isa.def (fcr): New.
10110         (fpv3_hi): New.
10111         (fpv3_hf): New.
10112         (fpv3_sf): New.
10113         (fpv3_df): New.
10114         (CK860): New definition for ck860.
10115         * config/csky/csky_tables.opt (ck860): New processors ck860,
10116         ck860f. And new arch ck860.
10117         (fpv3_hf): New.
10118         (fpv3_hsf): New.
10119         (fpv3_hdf): New.
10120         (fpv3): New.
10121         * config/csky/predicates.md (csky_float_comparsion_operator): Delete
10122         "geu", "gtu", "leu", "ltu", which will never appear at float comparison.
10123         * config/csky/t-csky-elf: Support 860.
10124         * config/csky/t-csky-linux: Likewise.
10125         * doc/md.texi: Add "Q" and "W" constraints for C-SKY.
10126
10127 2021-05-24  Aaron Sawdey  <acsawdey@linux.ibm.com>
10128
10129         * config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to
10130         add generation of logical-add and add-logical fusion pairs.
10131         * config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask
10132         and powerpc mask.
10133         * config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on
10134         logical-add and add-logical fusion by default.
10135         * config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and
10136         -mpower10-fusion-add-logical options.
10137         * config/rs6000/fusion.md: Regenerate file.
10138
10139 2021-05-24  Aldy Hernandez  <aldyh@redhat.com>
10140
10141         * value-range.cc (irange::legacy_equal_p): Check type when
10142         comparing VR_VARYING types.
10143         (range_tests_legacy): Test comparing VARYING ranges of different
10144         sizes.
10145
10146 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
10147
10148         * config/aarch64/aarch64.c (neoversen1_tunings):
10149         Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
10150
10151 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
10152
10153         * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for
10154         extern weak symbols.  Limit symbol offsets for non-GOT symbols with
10155         PIC/PIE.
10156
10157 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
10158
10159         * config/arm/neon.md (vec_load_lanesxi<mode>)
10160         (vec_store_lanexoi<mode>): Move ...
10161         * config/arm/vec-common.md: here.
10162
10163 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
10164
10165         * config/arm/neon.md (vec_load_lanesoi<mode>)
10166         (vec_store_lanesoi<mode>): Move ...
10167         * config/arm/vec-common.md: here.
10168
10169 2021-05-24  liuhongt  <hongtao.liu@intel.com>
10170
10171         PR target/100660
10172         * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing
10173         stmt with GIMPLE_NOP when lhs doesn't exist.
10174
10175 2021-05-23  Uroš Bizjak  <ubizjak@gmail.com>
10176
10177         PR target/100722
10178         * config/i386/mmx.md (*push<VI_32:mode>2_rex64):
10179         New instruction pattern.
10180         (*push<VI_32:mode>2): Ditto.
10181         (push splitter for SSE registers): New splitter.
10182
10183 2021-05-23  Andrew Pinski  <apinski@marvell.com>
10184
10185         * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types.
10186
10187 2021-05-22  Aaron Sawdey  <acsawdey@linux.ibm.com>
10188
10189         * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types.
10190         * config/rs6000/fusion.md: Regenerate file.
10191
10192 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
10193
10194         * config/rs6000/genfusion.pl (gen_addadd): New function.
10195         * config/rs6000/fusion.md: Regenerate file.
10196         * config/rs6000/rs6000-cpus.def: Add
10197         OPTION_MASK_P10_FUSION_2ADD to masks.
10198         * config/rs6000/rs6000.c (rs6000_option_override_internal):
10199         Handle default value of OPTION_MASK_P10_FUSION_2ADD.
10200         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2add.
10201
10202 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
10203
10204         PR middle-end/99928
10205         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define.
10206         * gimplify.c (enum gimplify_omp_var_data): Fix up
10207         GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT.
10208         (omp_lastprivate_for_combined_outer_constructs): If combined target
10209         has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to
10210         GOVD_MAP | GOVD_SEEN.
10211         (gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for
10212         firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT.
10213         (gimplify_adjust_omp_clauses): For firstprivate clauses with
10214         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and
10215         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and
10216         let it be replaced by implicit map clause.
10217
10218 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
10219
10220         PR middle-end/99928
10221         * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New
10222         function.
10223         (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it.
10224         (gimplify_omp_for): Likewise.
10225
10226 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
10227
10228         PR middle-end/90115
10229         * omp-low.c (oacc_privatization_candidate_p): Reject 'static',
10230         'external' in blocks.
10231
10232 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
10233
10234         PR middle-end/90115
10235         * flag-types.h (enum openacc_privatization): New.
10236         * params.opt (-param=openacc-privatization): New.
10237         * doc/invoke.texi (openacc-privatization): Document it.
10238         * omp-general.h (get_openacc_privatization_dump_flags): New
10239         function.
10240         * omp-low.c (oacc_privatization_candidate_p): Add diagnostics.
10241         * omp-offload.c (execute_oacc_device_lower)
10242         <IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics.
10243         * target.def (goacc.adjust_private_decl): Add 'location_t'
10244         parameter.
10245         * doc/tm.texi: Regenerate.
10246         * config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust.
10247         * config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise.
10248         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl):
10249         Likewise.  Preserve it for...
10250         (nvptx_goacc_expand_var_decl): ... use here.
10251
10252 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
10253
10254         * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__'
10255         DejaGnu selector.
10256
10257 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
10258
10259         PR middle-end/90115
10260         * omp-low.c (oacc_privatization_candidate_p): New function.
10261         (oacc_privatization_scan_clause_chain)
10262         (oacc_privatization_scan_decl_chain): Use it.  Also
10263         'gcc_checking_assert' that we're not seeing duplicates.
10264
10265 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
10266
10267         PR middle-end/90115
10268         * omp-offload.c (execute_oacc_device_lower): Skip processing if no
10269         work to be done.
10270
10271 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
10272
10273         PR middle-end/90115
10274         * omp-offload.c (execute_oacc_device_lower): Explain.
10275
10276 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
10277
10278         PR middle-end/90115
10279         * omp-offload.c (execute_oacc_device_lower)
10280         <IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1'
10281         case, too.
10282         * internal-fn.c (expand_UNIQUE): Don't expect
10283         'IFN_UNIQUE_OACC_PRIVATE'.
10284
10285 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
10286
10287         PR middle-end/90115
10288         * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses.
10289
10290 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
10291
10292         PR middle-end/90115
10293         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl)
10294         (nvptx_goacc_expand_var_decl): Tighten.
10295
10296 2021-05-21  Julian Brown  <julian@codesourcery.com>
10297             Chung-Lin Tang  <cltang@codesourcery.com>
10298             Thomas Schwinge  <thomas@codesourcery.com>
10299
10300         PR middle-end/90115
10301         * doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL)
10302         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks.
10303         * doc/tm.texi: Regenerate.
10304         * expr.c (expand_expr_real_1): Expand decls using the
10305         expand_var_decl OpenACC hook if defined.
10306         * internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE.
10307         * internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE.
10308         * omp-low.c (omp_context): Add oacc_privatization_candidates
10309         field.
10310         (lower_oacc_reductions): Add PRIVATE_MARKER parameter.  Insert
10311         before fork.
10312         (lower_oacc_head_tail): Add PRIVATE_MARKER parameter.  Modify
10313         private marker's gimple call arguments, and pass it to
10314         lower_oacc_reductions.
10315         (oacc_privatization_scan_clause_chain)
10316         (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
10317         New functions.
10318         (lower_omp_for, lower_omp_target, lower_omp_1): Use these.
10319         * omp-offload.c (convert.h): Include.
10320         (oacc_loop_xform_head_tail): Treat private-variable markers like
10321         fork/join when transforming head/tail sequences.
10322         (struct var_decl_rewrite_info): Add struct.
10323         (oacc_rewrite_var_decl, is_sync_builtin_call): New functions.
10324         (execute_oacc_device_lower): Support rewriting gang-private
10325         variables using target hook, and fix up addr_expr and var_decl
10326         nodes afterwards.
10327         * target.def (adjust_private_decl, expand_var_decl): New hooks.
10328         * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl):
10329         Rename to...
10330         (gcn_goacc_adjust_private_decl): ...this.
10331         * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl):
10332         Rename to...
10333         (gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter.
10334         * config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename
10335         definition using gcn_goacc_adjust_gangprivate_decl...
10336         (TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using
10337         gcn_goacc_adjust_private_decl.
10338         * config/nvptx/nvptx.c (tree-pretty-print.h): Include.
10339         (gang_private_shared_size): New global variable.
10340         (gang_private_shared_align): Likewise.
10341         (gang_private_shared_sym): Likewise.
10342         (gang_private_shared_hmap): Likewise.
10343         (nvptx_option_override): Initialize these.
10344         (nvptx_file_end): Output gang_private_shared_sym.
10345         (nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl):
10346         New functions.
10347         (nvptx_set_current_function): Clear gang_private_shared_hmap.
10348         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook.
10349         (TARGET_GOACC_EXPAND_VAR_DECL): Likewise.
10350
10351 2021-05-21  H.J. Lu  <hjl.tools@gmail.com>
10352
10353         * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed.
10354
10355 2021-05-21  Richard Biener  <rguenther@suse.de>
10356             H.J. Lu  <hjl.tools@gmail.com>
10357
10358         PR middle-end/90773
10359         * expr.c (expand_constructor): Elide expand_constructor if
10360         move by pieces is preferred.
10361
10362 2021-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10363
10364         * config/aarch64/aarch64-builtins.c (aarch64_call_properties):
10365         Take a flag and mode value as arguments.
10366         (aarch64_modifies_global_state_p): Likewise.
10367         (aarch64_reads_global_state_p): Likewise.
10368         (aarch64_could_trap_p): Likewise.
10369         (aarch64_get_attributes): Likewise.
10370         (aarch64_init_simd_builtins): Adjust callsite of above.
10371         (aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get
10372         function attributes to apply to builtins.
10373         (aarch64_init_crc32_builtins): Likewise.
10374         (aarch64_init_builtin_rsqrt): Likewise.
10375
10376 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
10377
10378         * config/rs6000/rs6000.md (define_attr "type"): Add types for fusion.
10379         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types.
10380         (gen_2logical): Use new fusion types.
10381         * config/rs6000/fusion.md: Regenerate.
10382
10383 2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>
10384
10385         PR target/100637
10386         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
10387         Handle V4QI and V2HI modes.
10388         (ix86_expand_sse_movcc): Ditto.
10389         * config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3):
10390         New instruction pattern.
10391         (*eq<VI_32:mode>3): Ditto.
10392         (*gt<VI_32:mode>3): Ditto.
10393         (*xop_pcmov_<VI_32:mode>): Ditto.
10394         (mmx_pblendvb32): Ditto.
10395         (mmx_pblendvb64): Rename from mmx_pblendvb.
10396         (vec_cmp<VI_32:mode><VI_32:mode>): New expander.
10397         (vec_cmpu<VI_32:mode><VI_32:mode>): Ditto.
10398         (vcond<VI_32:mode><VI_32:mode>): Ditto.
10399         (vcondu<VI_32:mode><VI_32:mode>): Ditto.
10400         (vcond_mask_<VI_32:mode><VI_32:mode>): Ditto.
10401
10402 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
10403
10404         PR tree-optimization/94589
10405         * tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and
10406         rhs2, treat x <= 4 equivalently to x < 5 etc.  In cmp1 and cmp2 (if
10407         not the same as cmp3) treat <= the same as < and >= the same as >.
10408         Don't require that cond2_phi_edge is true edge, instead take
10409         false/true edges into account based on cmp1/cmp2 comparison kinds.
10410
10411 2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>
10412
10413         PR target/100637
10414         * config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator.
10415         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Macroize expander
10416         from <smaxmin:code>v4hi3> and <smaxmin:code><MMXMODE14:mode>3
10417         using SMAXMIN_MMXMODEI mode iterator.
10418         (*<smaxmin:code>v4qi3): New insn pattern.
10419         (*<smaxmin:code>v2hi3): Ditto.
10420         (SMAXMIN_VI_32): New mode iterator.
10421         (<smaxmin:code><SMAXMIN_VI_32>mode3): New expander.
10422         (UMAXMIN_MMXMODEI): New mode iterator.
10423         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Macroize expander
10424         from <umaxmin:code>v8qi3> and <umaxmin:code><MMXMODE24:mode>3
10425         using UMAXMIN_MMXMODEI mode iterator.
10426         (*<umaxmin:code>v4qi3): New insn pattern.
10427         (*<umaxmin:code>v2hi3): Ditto.
10428         (UMAXMIN_VI_32): New mode iterator.
10429         (<umaxmin:code><UMAXMIN_VI_32>mode3): New expander.
10430         (abs<VI_32:mode>2): New insn pattern.
10431         (ssse3_abs<MMXMODEI:mode>2, abs<MMXMODEI:mode>2): Move from ...
10432         * config/i386/sse.md: ... here.
10433
10434 2021-05-20  Clement Chigot  <clement.chigot@atos.net>
10435             David Edelsohn  <dje.gcc@gmail.com>
10436
10437         * collect2.c (scan_prog_file): Issue non-fatal warning for
10438         non-COFF files.
10439
10440 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
10441
10442         * doc/invoke.texi (-Wno-c++11-extensions)
10443         (-Wno-c++14-extensions, -Wno-c++17-extensions)
10444         (-Wno-c++20-extensions, -Wno-c++23-extensions): Document
10445         new options.
10446
10447 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
10448
10449         * config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p.
10450         * config/darwin.c (darwin_override_options): Likewise.
10451         * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
10452         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
10453         (DWARF2_FRAME_REG_OUT): Likewise.
10454         * config/mips/mips.c (mips_output_filename): Likewise.
10455         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name):
10456         Likewise.
10457         (rs6000_dbx_register_number): Likewise.
10458         * dbxout.c: Include flags.h.
10459         * dwarf2cfi.c (cfi_label_required_p): Likewise.
10460         (dwarf2out_do_frame): Likewise.
10461         * except.c: Include flags.h.
10462         * final.c (dwarf2_debug_info_emitted_p): Likewise.
10463         (final_scan_insn_1): Likewise.
10464         * flags.h (dwarf_debuginfo_p): New function declaration.
10465         * opts.c (dwarf_debuginfo_p): New function definition.
10466         * targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p.
10467         * toplev.c (process_options): Likewise.
10468
10469 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
10470
10471         * common.opt: Change type to support bitmasks.
10472         * flag-types.h (enum debug_info_type): Rename enumerator constants.
10473         (NO_DEBUG): New bitmask.
10474         (DBX_DEBUG): Likewise.
10475         (DWARF2_DEBUG): Likewise.
10476         (XCOFF_DEBUG): Likewise.
10477         (VMS_DEBUG): Likewise.
10478         (VMS_AND_DWARF2_DEBUG): Likewise.
10479         * flags.h (debug_set_to_format): New function declaration.
10480         (debug_set_count): Likewise.
10481         (debug_set_names): Likewise.
10482         * opts.c (debug_type_masks): Array of bitmasks for debug formats.
10483         (debug_set_to_format): New function definition.
10484         (debug_set_count): Likewise.
10485         (debug_set_names): Likewise.
10486         (set_debug_level): Update access to debug_type_names.
10487         * toplev.c: Likewise.
10488
10489 2021-05-20  Martin Sebor  <msebor@redhat.com>
10490
10491         PR middle-end/100684
10492         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda.
10493
10494 2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>
10495
10496         PR target/100701
10497         * config/i386/i386.md (isa): Remove x64_bmi.
10498         (enabled): Remove x64_bmi.
10499         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
10500         Remove general register alternative.
10501         (*andnot<VI_32:mode>3): Ditto.
10502         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
10503         (*<any_logic:code><VI_32:mode>3): Ditto.
10504
10505 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
10506
10507         * config/arm/arm.c: Include head files tree-vectorizer.h and
10508         cfgloop.h.
10509
10510 2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>
10511
10512         PR target/100637
10513         * config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes.
10514         (*<plusminus:insn><VI_32:mode>3): Use Yw instad of <Yv_Yw> constrint.
10515         (<s>mulv4hi3_highpart): New expander.
10516         (*<s>mulv2hi3_highpart): New insn pattern.
10517         (<s>mulv2hi3_higpart): New expander.
10518         (*<any_shift:insn>v2hi3): New insn pattern.
10519         (<any_shift:insn>v2hi3): New expander.
10520         * config/i386/sse.md (smulhrsv2hi3): New expander.
10521         (*smulhrsv2hi3): New insn pattern.
10522
10523 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
10524
10525         * doc/invoke.texi (vect-inner-loop-cost-factor): Document new
10526         parameter.
10527         * params.opt (vect-inner-loop-cost-factor): New.
10528         * targhooks.c (default_add_stmt_cost): Replace hardcoded factor
10529         50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file
10530         tree-vectorizer.h and its required ones.
10531         * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace
10532         hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR.
10533         * config/arm/arm.c (arm_add_stmt_cost): Likewise.
10534         * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
10535         * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
10536         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
10537         Likewise.
10538         (_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor.
10539         * tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor.
10540         (LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro.
10541
10542 2021-05-20  Christophe Lyon  <christophe.lyon@linaro.org>
10543             Torbjörn Svensson  <torbjorn.svensson@st.com>
10544
10545         PR c/42579
10546         * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__.
10547
10548 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
10549
10550         PR middle-end/99928
10551         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LINEAR>: For
10552         explicit linear clause when combined with target, make it map(tofrom:)
10553         instead of no clause or firstprivate.
10554
10555 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
10556
10557         PR tree-optimization/94589
10558         * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence
10559         of integral conversions.
10560
10561 2021-05-19  Andrew MacLeod  <amacleod@redhat.com>
10562
10563         * gimple-range.cc (fur_source::get_operand): New.
10564         (gimple_range_fold): Delete.
10565         (fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt.
10566         (fold_using_range::range_of_range_op): Move from gimple_ranger.
10567         (fold_using_range::range_of_address): Ditto.
10568         (fold_using_range::range_of_phi): Ditto.
10569         (fold_using_range::range_of_call): Ditto.
10570         (fold_using_range::range_of_builtin_ubsan_call): Move from
10571         range_of_builtin_ubsan_call.
10572         (fold_using_range::range_of_builtin_call): Move from
10573         range_of_builtin_call.
10574         (gimple_ranger::range_of_builtin_call): Delete.
10575         (fold_using_range::range_of_cond_expr): Move from gimple_ranger.
10576         (gimple_ranger::fold_range_internal): New.
10577         (gimple_ranger::range_of_stmt): Use new fold_using_range API.
10578         (fold_using_range::range_of_ssa_name_with_loop_info): Move from
10579         gimple_ranger.  Improve ranges of SSA_NAMES when possible.
10580         * gimple-range.h (gimple_ranger): Remove various range_of routines.
10581         (class fur_source): New.
10582         (class fold_using_range): New.
10583         (fur_source::fur_source): New.
10584         (fold_range): New.
10585         * vr-values.c (vr_values::extract_range_basic): Use fold_using_range
10586         instead of range_of_builtin_call.
10587
10588 2021-05-19  Jonathan Wakely  <jwakely@redhat.com>
10589
10590         * doc/cpp.texi (Common Predefined Macros): Update documentation
10591         for the __GXX_EXPERIMENTAL_CXX0X__ macro.
10592
10593 2021-05-19  Alex Coplan  <alex.coplan@arm.com>
10594
10595         PR target/100333
10596         * config/arm/arm.md (nonsecure_call_internal): Always ensure
10597         callee's address is in a register.
10598
10599 2021-05-19  Geng Qi  <gengqi@linux.alibaba.com>
10600
10601         * common/config/riscv/riscv-common.c
10602         (riscv_subset_list::parsing_subset_version): Properly parse the letter
10603         'p' in '-march'.
10604         (riscv_subset_list::parse_std_ext,
10605          riscv_subset_list::parse_multiletter_ext): To handle errors generated
10606         in riscv_subset_list::parsing_subset_version.
10607
10608 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
10609
10610         * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q"
10611         type attribute in patterns generating XTN(2).
10612
10613 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
10614
10615         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_<mode>):
10616         Remove as duplicate of...
10617         (aarch64_xtn<mode>): This.
10618         (aarch64_xtn2<mode>_le): Move position in file.
10619         (aarch64_xtn2<mode>_be): Move position in file.
10620         (aarch64_xtn2<mode>): Move position in file.
10621         (vec_pack_trunc_<mode>): Define as an expander.
10622
10623 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
10624
10625         * config/aarch64/aarch64-simd-builtins.def: Split builtin
10626         generation for aarch64_<sur>q<r>shr<u>n_n<mode> pattern into
10627         separate scalar and vector generators.
10628         * config/aarch64/aarch64-simd.md
10629         (aarch64_<sur>q<r>shr<u>n_n<mode>): Define as an expander and
10630         split into...
10631         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): This and...
10632         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): This.
10633         * config/aarch64/iterators.md: Define SD_HSDI iterator.
10634
10635 2021-05-19  Jonathn Wright  <jonathan.wright@arm.com>
10636
10637         * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead
10638         of UNSPEC_SQXTUN2.
10639         * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2.
10640
10641 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
10642
10643         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n2_n<mode>):
10644         Implement as an expand emitting a big/little endian
10645         instruction pattern.
10646         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Define.
10647         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Define.
10648
10649 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
10650
10651         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>):
10652         Implement as an expand emitting a big/little endian
10653         instruction pattern.
10654         (aarch64_<sur><addsub>hn2<mode>_insn_le): Define.
10655         (aarch64_<sur><addsub>hn2<mode>_insn_be): Define.
10656         * config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and
10657         UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator.
10658
10659 2021-05-19  Richard Biener  <rguenther@suse.de>
10660
10661         PR middle-end/100672
10662         * fold-const.c (fold_negate_expr_1): Use element_precision.
10663         (negate_expr_p): Likewise.
10664
10665 2021-05-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
10666
10667         * config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator.
10668         (pred_load): New int attribute.
10669         * config/aarch64/aarch64-sve.md
10670         (aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Use
10671         SVE_PRED_LOAD enum iterator and corresponding pred_load attribute.
10672         * config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to
10673         code_for_aarch64_load.
10674
10675 2021-05-19  Richard Biener  <rguenther@suse.de>
10676
10677         * cfgexpand.c (discover_nonconstant_array_refs_r): Make
10678         sure TARGET_MEM_REF bases are expanded as memory.
10679         * tree-ssa-operands.c (operands_scanner::get_tmr_operands):
10680         Do not mark TARGET_MEM_REF bases addressable.
10681         * tree-ssa.c (non_rewritable_mem_ref_base): Handle
10682         TARGET_MEM_REF bases as never rewritable.
10683         * gimple-walk.c (walk_stmt_load_store_addr_ops): Do not
10684         walk TARGET_MEM_REF bases as address-takens.
10685         * tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF.
10686
10687 2021-05-19  Richard Biener  <rguenther@suse.de>
10688
10689         * builtins.c (get_object_alignment_1): Strip outer
10690         WITH_SIZE_EXPR.
10691         * tree-dfa.c (get_ref_base_and_extent): Handle outer
10692         WITH_SIZE_EXPR for size processing and process the
10693         containing ref.
10694         * tree-ssa-alias.c (ao_ref_base_alias_set): Strip
10695         outer WITH_SIZE_EXPR.
10696         (ao_ref_base_alias_ptr_type): Likewise.
10697         (refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref
10698         and handle that accordingly, stripping it for the
10699         core alias workers.
10700         * tree.c (get_base_address): Handle WITH_SIZE_EXPR by
10701         looking through it instead of returning NULL.
10702
10703 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
10704
10705         PR middle-end/100576
10706         * builtins.c (check_read_access): Convert bound to size_type_node if
10707         non-NULL.
10708
10709 2021-05-19  Richard Biener  <rguenther@suse.de>
10710
10711         * tree-cfg.c (verify_types_in_gimple_min_lval): Inline...
10712         (verify_types_in_gimple_reference): ... here.  Sanitize.
10713         (verify_gimple_call): Verify references in LHS and arguments.
10714         (verify_gimple_assign_single): Reject WITH_SIZE_EXPR.
10715
10716 2021-05-19  Uroš Bizjak  <ubizjak@gmail.com>
10717
10718         * config/i386/i386.h (VALID_INT_MODE_P):
10719         Add V8QI, V4HI and V2SI modes for TARGET_64BIT.
10720         * config/i386/i386.md (isa): Add x64_bmi.
10721         (enabled): Handle x64_bmi.
10722         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
10723         Add alternative using 64bit general registers.
10724         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
10725
10726 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
10727
10728         PR middle-end/99928
10729         * tree.h (OMP_MASTER_COMBINED): Define.
10730         * gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate
10731         handling for outer combined/composite constructs to a loop.
10732         Handle lastprivate on combined target.
10733         (gimplify_expr): Formatting fix.
10734
10735 2021-05-19  Xionghu Luo  <luoxhu@linux.ibm.com>
10736
10737         * passes.def: Add sink_code pass before store_merging.
10738         * tree-ssa-sink.c (pass_sink_code:clone): New.
10739
10740 2021-05-18  Bill Schmidt  <wschmidt@linux.ibm.com>
10741
10742         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to
10743         rs6000_special_adjust_field_align_p.
10744         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
10745         * config/rs6000/rs6000-call.c (rs6000_function_arg_boundary):
10746         Remove ABI warning.
10747         (rs6000_function_arg): Likewise.
10748         * config/rs6000/rs6000-protos.h
10749         (rs6000_special_adjust_field_align_p): Remove prototype.
10750         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
10751         Remove.
10752         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to
10753         rs6000_special_adjust_field_align_p.
10754
10755 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
10756
10757         PR target/100637
10758         * config/i386/i386.h (VALID_SSE2_REG_MODE):
10759         Add V4QI and V2HI modes.
10760         (VALID_INT_MODE_P): Ditto.
10761         * config/i386/mmx.md (VI_32): New mode iterator.
10762         (mmxvecsize): Handle V4QI and V2HI.
10763         (Yv_Yw): Ditto.
10764         (mov<VI_32:mode>): New expander.
10765         (*mov<mode>_internal): New insn pattern.
10766         (movmisalign<VI_32:mode>): New expander.
10767         (neg<VI_32:mode>): New expander.
10768         (<plusminus:insn><VI_32:mode>3): New expander.
10769         (*<plusminus:insn><VI_32:mode>3): New insn pattern.
10770         (mulv2hi3): New expander.
10771         (*mulv2hi3): New insn pattern.
10772         (one_cmpl<VI_32:mode>2): New expander.
10773         (*andnot<VI_32:mode>3): New insn pattern.
10774         (<any_logic:code><VI_32:mode>3): New expander.
10775         (*<any_logic:code><VI_32:mode>3): New insn pattern.
10776
10777 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
10778
10779         * config/i386/sse.md (<any_extend:insn>v4qiv4di2):
10780         Fix a mode mismatch with operand 1.
10781
10782 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
10783
10784         PR target/100626
10785         * config/i386/i386-expand.c (split_double_mode): Return
10786         temporary register when simplify_gen_subreg fails with
10787         the high half od the paradoxical subreg.
10788
10789 2021-05-18  Richard Biener  <rguenther@suse.de>
10790
10791         * cfgexpand.c (expand_one_var): Pass in forced_stack_var
10792         and honor it when expanding.
10793         (expand_used_vars_for_block): Pass through forced_stack_var.
10794         (expand_used_vars): Likewise.
10795         (discover_nonconstant_array_refs_r): Set bits in
10796         forced_stack_vars instead of marking vars TREE_ADDRESSABLE.
10797         (avoid_type_punning_on_regs): Likewise.
10798         (discover_nonconstant_array_refs): Likewise.
10799         (pass_expand::execute): Create and pass down forced_stack_var
10800         bitmap.  For parameters and returns temporarily set
10801         TREE_ADDRESSABLE when expand_function_start.
10802
10803 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
10804
10805         * doc/sourcebuild.texi: Document 'dg-note'.
10806
10807 2021-05-18  Tobias Burnus  <tobias@codesourcery.com>
10808
10809         PR other/100598
10810         * configure: Regenerate.
10811         * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@).
10812
10813 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
10814
10815         * gimple.h (is_gimple_omp_oacc): Tighten.
10816         * omp-low.c (check_omp_nesting_restrictions): Adjust.
10817
10818 2021-05-18  Richard Biener  <rguenther@suse.de>
10819
10820         * tree-ssa-operands.c (mark_address_taken): Simplify.
10821
10822 2021-05-18  Martin Liska  <mliska@suse.cz>
10823
10824         * config/gcn/mkoffload.c (STR): Redefine.
10825         * config/i386/intelmic-mkoffload.c (STR): Likewise.
10826         * config/nvptx/mkoffload.c (STR): Likewise.
10827
10828 2021-05-18  Martin Liska  <mliska@suse.cz>
10829
10830         * common/config/aarch64/aarch64-common.c (aarch64_parse_extension):
10831         Use startswith function instead of strncmp.
10832         * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
10833         * common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise.
10834         * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise.
10835         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise.
10836         * config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise.
10837         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
10838         * config/arm/arm.c (arm_file_start): Likewise.
10839         (arm_valid_target_attribute_rec): Likewise.
10840         (thumb1_md_asm_adjust): Likewise.
10841         * config/arm/driver-arm.c (host_detect_local_cpu): Likewise.
10842         * config/avr/avr.c (STR_PREFIX_P): Likewise.
10843         (avr_set_current_function): Likewise.
10844         (avr_handle_addr_attribute): Likewise.
10845         (avr_asm_output_aligned_decl_common): Likewise.
10846         (avr_asm_named_section): Likewise.
10847         (avr_section_type_flags): Likewise.
10848         (avr_asm_select_section): Likewise.
10849         * config/c6x/c6x.c (c6x_in_small_data_p): Likewise.
10850         (c6x_section_type_flags): Likewise.
10851         * config/darwin-c.c (darwin_cfstring_ref_p): Likewise.
10852         (darwin_objc_declare_unresolved_class_reference): Likewise.
10853         (darwin_objc_declare_class_definition): Likewise.
10854         * config/darwin.c (indirect_data): Likewise.
10855         (darwin_encode_section_info): Likewise.
10856         (darwin_objc2_section): Likewise.
10857         (darwin_objc1_section): Likewise.
10858         (machopic_select_section): Likewise.
10859         (darwin_globalize_label): Likewise.
10860         (darwin_label_is_anonymous_local_objc_name): Likewise.
10861         (darwin_asm_named_section): Likewise.
10862         (darwin_asm_output_dwarf_offset): Likewise.
10863         * config/frv/frv.c (frv_string_begins_with): Likewise.
10864         (frv_in_small_data_p): Likewise.
10865         * config/gcn/mkoffload.c (STR): Likewise.
10866         (main): Likewise.
10867         * config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise.
10868         * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
10869         * config/i386/i386.c (x86_64_elf_section_type_flags): Likewise.
10870         (ix86_md_asm_adjust): Likewise.
10871         * config/i386/intelmic-mkoffload.c (STR): Likewise.
10872         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
10873         (i386_pe_file_end): Likewise.
10874         * config/ia64/ia64.c (ia64_in_small_data_p): Likewise.
10875         (ia64_section_type_flags): Likewise.
10876         * config/mips/driver-native.c (host_detect_local_cpu): Likewise.
10877         * config/mips/mips.c (mips_handle_interrupt_attr): Likewise.
10878         (mips16_stub_function_p): Likewise.
10879         (mips_function_rodata_section): Likewise.
10880         * config/msp430/msp430.c (msp430_mcu_name): Likewise.
10881         (msp430_function_section): Likewise.
10882         (msp430_section_type_flags): Likewise.
10883         (msp430_expand_helper): Likewise.
10884         * config/nios2/nios2.c (nios2_small_section_name_p): Likewise.
10885         (nios2_valid_target_attribute_rec): Likewise.
10886         * config/nvptx/mkoffload.c (process): Likewise.
10887         (STR): Likewise.
10888         * config/pa/som.h: Likewise.
10889         * config/pdp11/pdp11.c (pdp11_output_ident): Likewise.
10890         * config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise.
10891         * config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise.
10892         (rs6000_inner_target_options): Likewise.
10893         * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise.
10894         * config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise.
10895         * config/vax/vax.c (vax_output_int_move): Likewise.
10896         * config/vms/vms-ld.c (startswith): Likewise.
10897         (process_args): Likewise.
10898         (main): Likewise.
10899         * config/vms/vms.c: Likewise.
10900
10901 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
10902
10903         PR rtl-optimization/100590
10904         * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if
10905         they are NONJUMP_INSN_P.
10906
10907 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
10908
10909         PR c++/100580
10910         * function.c (push_dummy_function): Set DECL_ARTIFICIAL and
10911         DECL_ASSEMBLER_NAME on the fn_decl.
10912
10913 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
10914
10915         PR tree-optimization/94589
10916         * tree-ssa-phiopt.c (spaceship_replacement): Pattern match
10917         phi result used in (res & ~1) == 0 comparison as res >= 0 as
10918         res == 2 would be UB with -ffinite-math-only.
10919
10920 2021-05-18  Martin Liska  <mliska@suse.cz>
10921
10922         * Makefile.in: genversion.o should depend on DATESTAMP.
10923
10924 2021-05-18  Claudiu Zissulescu  <claziss@synopsys.com>
10925
10926         * config/arc/simdext.md (negv2si2): Remove round bracket.
10927
10928 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
10929
10930         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
10931         _Bool as macro expanding to _Bool.
10932
10933 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
10934
10935         PR c++/100281
10936         * tree.c (build_reference_type_for_mode)
10937         (build_pointer_type_for_mode): Pick pointer mode if MODE argument
10938         is VOIDmode.
10939         (build_reference_type, build_pointer_type): Invoke
10940         build_*_type_for_mode with VOIDmode.
10941
10942 2021-05-17  Andrew MacLeod  <amacleod@redhat.com>
10943
10944         PR tree-optimization/100512
10945         * gimple-range-cache.cc (ranger_cache::set_global_range): Mark const
10946         and non-zero pointer ranges as invariant.
10947         * gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer
10948         processing from here.
10949
10950 2021-05-17  Tom de Vries  <tdevries@suse.de>
10951
10952         PR target/100497
10953         * config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare
10954         * config/nvptx/nvptx.c (nvptx_output_barrier)
10955         (nvptx_output_atomic_insn): New function.
10956         (nvptx_print_operand): Add support for 'B'.
10957         * config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic
10958         insns.
10959
10960 2021-05-17  Aldy Hernandez  <aldyh@redhat.com>
10961
10962         PR tree-optimization/100349
10963         * vr-values.c (bounds_of_var_in_loop): Bail if scev returns
10964           NULL.
10965
10966 2021-05-17  Tamar Christina  <tamar.christina@arm.com>
10967
10968         * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New.
10969         (host_detect_local_cpu): Use it.
10970
10971 2021-05-17  Martin Liska  <mliska@suse.cz>
10972
10973         * doc/invoke.texi: Add 2 missing dots.
10974
10975 2021-05-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
10976
10977         PR bootstrap/100552
10978         * configure.ac: Replace pattern substitution with call to sed.
10979         * configure: Regenerate.
10980
10981 2021-05-17  Richard Biener  <rguenther@suse.de>
10982
10983         PR middle-end/100582
10984         * tree.c (array_at_struct_end_p): Get to the base of the
10985         reference before looking for the underlying decl.
10986
10987 2021-05-17  Joern Rennecke  <joern.rennecke@embecosm.com>
10988
10989         * genoutput.c (validate_insn_alternatives) Make "wrong number of
10990         alternatives" message more specific, and remove assumption on where
10991         the problem is.
10992
10993 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
10994
10995         * config/arm/iterators.md (V16): New iterator.
10996         (VH_cvtto): New iterator.
10997         (v_cmp_result): Added V4HF and V8HF support.
10998         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>): Use VDQWH.
10999         (vcond<mode><mode>): Likewise.
11000         (vcond_mask_<mode><v_cmp_result>): Likewise.
11001         (vcond<VH_cvtto><mode>): New expander.
11002
11003 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
11004
11005         * config/arm/arm-protos.h (arm_expand_vector_compare): Update
11006         prototype.
11007         * config/arm/arm.c (arm_expand_vector_compare): Add support for
11008         MVE.
11009         (arm_expand_vcond): Likewise.
11010         * config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S,
11011         VCMPEQQ_N_S, VCMPNEQ_N_S.
11012         (VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove.
11013         * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Add '@' prefix.
11014         (@mve_vcmp<mve_cmp_op>q_f<mode>): Likewise.
11015         (@mve_vcmp<mve_cmp_op>q_n_f<mode>): Likewise.
11016         (@mve_vpselq_<supf><mode>): Likewise.
11017         (@mve_vpselq_f<mode>"): Likewise.
11018         * config/arm/neon.md (vec_cmp<mode><v_cmp_result): Enable for MVE
11019         and move to vec-common.md.
11020         (vec_cmpu<mode><mode>): Likewise.
11021         (vcond<mode><mode>): Likewise.
11022         (vcond<V_cvtto><mode>): Likewise.
11023         (vcondu<mode><v_cmp_result>): Likewise.
11024         (vcond_mask_<mode><v_cmp_result>): Likewise.
11025         * config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S)
11026         (VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U)
11027         (VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S)
11028         (VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U)
11029         (VCMPHIQ_N_U, VCMPHIQ_U): Remove.
11030         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result): Moved
11031         from neon.md.
11032         (vec_cmpu<mode><mode>): Likewise.
11033         (vcond<mode><mode>): Likewise.
11034         (vcond<V_cvtto><mode>): Likewise.
11035         (vcondu<mode><v_cmp_result>): Likewise.
11036         (vcond_mask_<mode><v_cmp_result>): Likewise. Added unsafe math
11037         condition.
11038
11039 2021-05-17  liuhongt  <hongtao.liu@intel.com>
11040
11041         PR target/100549
11042         * config/i386/i386.c (ix86_gimple_fold_builtin): Use
11043         gsi_insert_seq_before instead.
11044
11045 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
11046
11047         * doc/sourcebuild.texi (arm_qbit_ok): Rename into...
11048         (arm_sat_ok): ...this.
11049
11050 2021-05-17  Martin Liska  <mliska@suse.cz>
11051
11052         * lto-wrapper.c (merge_flto_options): Factor out a new function.
11053         (merge_and_complain): Use it.
11054         (run_gcc): Merge also linker command line -flto=foo argument
11055         with IL files.
11056
11057 2021-05-16  Christophe Lyon  <christophe.lyon@linaro.org>
11058
11059         * config/arm/arm.h (CPP_SPEC): Remove error message about
11060         -mlittle-endian/-mbig-endian conflict.
11061
11062 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
11063
11064         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
11065         __ROP_PROTECT__ if -mrop-protect is selected.
11066
11067 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
11068
11069         * config/rs6000/rs6000-internal.h (rs6000_stack): Add
11070         rop_hash_save_offset and rop_hash_size.
11071         * config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute
11072         rop_hash_size and rop_hash_save_offset.
11073         (debug_stack_info): Dump rop_hash_save_offset and rop_hash_size.
11074         (rs6000_emit_prologue): Emit hashst[p] in prologue.
11075         (rs6000_emit_epilogue): Emit hashchk[p] in epilogue.
11076         * config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and
11077         UNSPEC_HASHCHK.
11078         (hashst): New define_insn.
11079         (hashchk): Likewise.
11080
11081 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
11082
11083         * config/rs6000/rs6000.c (rs6000_option_override_internal):
11084         Disable shrink wrap when inserting ROP-protect instructions.
11085         * config/rs6000/rs6000.opt (mrop-protect): New option.
11086         (mprivileged): Likewise.
11087         * doc/invoke.texi: Document mrop-protect and mprivileged.
11088
11089 2021-05-15  Hans-Peter Nilsson  <hp@axis.com>
11090
11091         * reorg.c (fill_slots_from_thread): Reinstate code typoed out in
11092         "Remove CC0".
11093
11094 2021-05-15  Martin Jambor  <mjambor@suse.cz>
11095
11096         Revert:
11097         2021-05-13  Martin Jambor  <mjambor@suse.cz>
11098
11099         PR tree-optimization/100453
11100         * tree-sra.c (sra_modify_assign): All const base accesses do not
11101         need refreshing, not just those from decl_pool.
11102         (sra_modify_assign): Do not refresh into a const base decl.
11103
11104 2021-05-15  Jakub Jelinek  <jakub@redhat.com>
11105
11106         PR rtl-optimization/100342
11107         * regcprop.c (copy_value): When copying a source reg in a wider
11108         mode than it has recorded for the value, adjust recorded destination
11109         mode too or punt if !REG_CAN_CHANGE_MODE_P.
11110
11111 2021-05-14  Jason Merrill  <jason@redhat.com>
11112
11113         * intl.h: Add comments.
11114
11115 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11116
11117         * config/aarch64/aarch64-simd.md
11118         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Split into...
11119         (aarch64_sqdmlsl2_lane<mode>_internal): ... This...
11120         (aarch64_sqdmlal2_lane<mode>_internal): ... And this.
11121         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Split into ...
11122         (aarch64_sqdmlsl2_laneq<mode>_internal): ... This...
11123         (aarch64_sqdmlal2_laneq<mode>_internal): ... And this.
11124         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Split into...
11125         (aarch64_sqdmlsl2_n<mode>_internal): ... This...
11126         (aarch64_sqdmlal2_n<mode>_internal): ... And this.
11127
11128 2021-05-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11129
11130         PR target/66791
11131         * config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's
11132         boolean logic equivalent.
11133         (vtst_s16): Likewise.
11134         (vtst_s32): Likewise.
11135         (vtst_u8): Likewise.
11136         (vtst_u16): Likewise.
11137         (vtst_u32): Likewise.
11138         (vtst_p8): Likewise.
11139         (vtst_p16): Likewise.
11140         (vtstq_s8): Likewise.
11141         (vtstq_s16): Likewise.
11142         (vtstq_s32): Likewise.
11143         (vtstq_u8): Likewise.
11144         (vtstq_u16): Likewise.
11145         (vtstq_u32): Likewise.
11146         (vtstq_p8): Likewise.
11147         (vtstq_p16): Likewise.
11148         * config/arm/arm_neon_builtins.def: Remove entry for vtst.
11149         * config/arm/neon.md (neon_vtst<mode>): Remove pattern.
11150
11151 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11152
11153         * config/aarch64/aarch64-simd.md (aarch64_sqdmlal2<mode>): Merge into...
11154         (aarch64_sqdml<SBINQOPS:as>l2<mode>): ... This.
11155         (aarch64_sqdmlsl2<mode>): Delete.
11156         (aarch64_sqdmlal2_lane<mode>): Merge this...
11157         (aarch64_sqdmlsl2_lane<mode>): ... And this...
11158         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>): ... Into this.
11159         (aarch64_sqdmlal2_laneq<mode>): Merge this...
11160         (aarch64_sqdmlsl2_laneq<mode>): ... And this...
11161         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>): ... Into this.
11162         (aarch64_sqdmlal2_n<mode>): Merge this...
11163         (aarch64_sqdmlsl2_n<mode>): ... And this...
11164         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>): ... Into this.
11165
11166 2021-05-13  Martin Sebor  <msebor@redhat.com>
11167
11168         PR middle-end/100574
11169         * builtins.c (access_ref::get_ref): Improve detection of PHIs with
11170         all null arguments.
11171
11172 2021-05-13  Martin Sebor  <msebor@redhat.com>
11173
11174         PR tree-optimization/93100
11175         PR middle-end/98583
11176         * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that
11177         don't modify referenced objects.
11178
11179 2021-05-13  Martin Jambor  <mjambor@suse.cz>
11180
11181         PR tree-optimization/100453
11182         * tree-sra.c (sra_modify_assign): All const base accesses do not
11183         need refreshing, not just those from decl_pool.
11184         (sra_modify_assign): Do not refresh into a const base decl.
11185
11186 2021-05-13  Martin Liska  <mliska@suse.cz>
11187
11188         * tree-ssa-dom.c: Remove m_simplifier.
11189
11190 2021-05-13  Richard Earnshaw  <rearnsha@arm.com>
11191
11192         PR target/100563
11193         * config/arm/arm.c (arm_canonicalize_comparison): Correctly
11194         canonicalize DImode inequality comparisons against the
11195         maximum integral value.
11196
11197 2021-05-13  Jakub Jelinek  <jakub@redhat.com>
11198
11199         PR tree-optimization/98856
11200         * config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument.
11201         Expect V2DI and V4DI arithmetic right shifts to be emulated.
11202         (ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost
11203         caller.
11204         * config/i386/i386-expand.c (expand_vec_perm_2perm_interleave,
11205         expand_vec_perm_2perm_pblendv): New functions.
11206         (ix86_expand_vec_perm_const_1): Use them.
11207         * config/i386/sse.md (ashr<mode>3<mask_name>): Rename to ...
11208         (<mask_codefor>ashr<mode>3<mask_name>): ... this.
11209         (ashr<mode>3): New define_expand with VI248_AVX512BW iterator.
11210         (ashrv4di3): New define_expand.
11211         (ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP
11212         and !TARGET_AVX512VL expansion.
11213
11214 2021-05-13  Uroš Bizjak  <ubizjak@gmail.com>
11215
11216         PR target/100581
11217         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode
11218         sizes < 16 to a register when constructing vpcmov pattern.
11219         * config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode.
11220
11221 2021-05-13  Martin Liska  <mliska@suse.cz>
11222
11223         * gcov-io.c (gcov_write_block): Remove.
11224         (gcov_write_words): Likewise.
11225         (gcov_read_words): Re-implement using gcov_read_bytes.
11226         (gcov_allocate): Remove.
11227         (GCOV_BLOCK_SIZE): Likewise.
11228         (struct gcov_var): Remove most of the fields.
11229         (gcov_position): Implement with ftell.
11230         (gcov_rewrite): Remove setting of start and offset fields.
11231         (from_file): Re-format.
11232         (gcov_open): Remove setbuf call. It should not be needed.
11233         (gcov_close): Remove internal buffer handling.
11234         (gcov_magic): Use __builtin_bswap32.
11235         (gcov_write_counter): Use directly gcov_write_unsigned.
11236         (gcov_write_string): Use direct fwrite and do not round
11237         to 4 bytes.
11238         (gcov_seek): Use directly fseek.
11239         (gcov_write_tag): Use gcov_write_unsigned directly.
11240         (gcov_write_length): Likewise.
11241         (gcov_write_tag_length): Likewise.
11242         (gcov_read_bytes): Use directly fread.
11243         (gcov_read_unsigned): Use gcov_read_words.
11244         (gcov_read_counter): Likewise.
11245         (gcov_read_string): Use gcov_read_bytes.
11246         * gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect
11247         that size is not in bytes, but words (4B).
11248         (GCOV_TAG_FUNCTION_LENGTH): Likewise.
11249         (GCOV_TAG_ARCS_LENGTH): Likewise.
11250         (GCOV_TAG_ARCS_NUM): Likewise.
11251         (GCOV_TAG_COUNTER_LENGTH): Likewise.
11252         (GCOV_TAG_COUNTER_NUM): Likewise.
11253         (GCOV_TAG_SUMMARY_LENGTH): Likewise.
11254
11255 2021-05-13  liuhongt  <hongtao.liu@intel.com>
11256
11257         PR target/94680
11258         * config/i386/sse.md (ssedoublevecmode): Add attribute for
11259         V64QI/V32HI/V16SI/V4DI.
11260         (ssehalfvecmode): Add attribute for V2DI/V2DF.
11261         (*vec_concatv4si_0): Extend to VI124_128.
11262         (*vec_concat<mode>_0): New pre-reload splitter.
11263         * config/i386/predicates.md (movq_parallel): New predicate.
11264
11265 2021-05-13  Alexandre Oliva  <oliva@adacore.com>
11266
11267         * targhooks.c (default_zero_call_used_regs): Retry using
11268         successfully-zeroed registers as sources.
11269
11270 2021-05-12  Tobias Burnus  <tobias@codesourcery.com>
11271
11272         * omp-low.c (finish_taskreg_scan): Use the proper detach decl.
11273
11274 2021-05-12  Aldy Hernandez  <aldyh@redhat.com>
11275
11276         PR c/100521
11277         * gimple-range.cc (range_of_builtin_call): Skip out on
11278           processing __builtin_clz when varying.
11279
11280 2021-05-12  Tom de Vries  <tdevries@suse.de>
11281
11282         PR target/96005
11283         * config/nvptx/nvptx-opts.h (enum ptx_version): New enum.
11284         * config/nvptx/nvptx.c (nvptx_file_start): Print .version according
11285         to ptx_version_option.
11286         * config/nvptx/nvptx.h (TARGET_PTX_6_3): Define.
11287         * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
11288         (define_insn "nvptx_vote_ballot"): Use sync variant for
11289         TARGET_PTX_6_3.
11290         * config/nvptx/nvptx.opt (ptx_version): Add enum.
11291         (mptx): Add option.
11292         * doc/invoke.texi (Nvidia PTX Options): Add mptx item.
11293
11294 2021-05-12  Richard Biener  <rguenther@suse.de>
11295
11296         PR tree-optimization/100566
11297         * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
11298         allow_back for all edge queries.
11299
11300 2021-05-12  liuhongt  <hongtao.liu@intel.com>
11301
11302         PR target/99908
11303         * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add
11304         splitters for pblendvb of NOT mask register.
11305
11306 2021-05-12  Richard Biener  <rguenther@suse.de>
11307
11308         PR tree-optimization/100519
11309         * tree-ssa-reassoc.c (can_associate_p): Split into...
11310         (can_associate_op_p): ... this
11311         (can_associate_type_p): ... and this.
11312         (is_reassociable_op): Call can_associate_op_p.
11313         (break_up_subtract_bb): Call the appropriate predicates.
11314         (reassociate_bb): Likewise.
11315
11316 2021-05-12  Martin Liska  <mliska@suse.cz>
11317
11318         * lto-wrapper.c (merge_and_complain): Merge -flto=arg options.
11319         (run_gcc): Use -flto argument detection for merged
11320         fdecoded_options.
11321
11322 2021-05-12  Martin Liska  <mliska@suse.cz>
11323
11324         * lto-wrapper.c (print_lto_docs_link): New function.
11325         (run_gcc): Print warning about missing job server detection
11326         after we know NR of partitions. Do the same for -flto{,=1}.
11327         * opts.c (get_option_html_page): Support -flto option.
11328
11329 2021-05-12  Martin Liska  <mliska@suse.cz>
11330
11331         * lto-wrapper.c (get_options_from_collect_gcc_options): Change
11332         return type.
11333         (append_option): Remove.
11334         (find_option): Rework to use the vector type.
11335         (remove_option): Remove.
11336         (merge_and_complain): Use vectors for cl_decoded_option data
11337         type arguments.
11338         (append_compiler_options): Likewise.
11339         (append_diag_options): Likewise.
11340         (append_linker_options): Likewise.
11341         (append_offload_options): Likewise.
11342         (compile_offload_image): Likewise.
11343         (compile_images_for_offload_targets): Likewise.
11344         (find_and_merge_options): Likewise.
11345         (run_gcc): Likewise.
11346
11347 2021-05-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11348
11349         PR debug/100515
11350         * dwarf2out.c (dwarf2out_finish): Set
11351         have_multiple_function_sections with multi-range text_section.
11352
11353 2021-05-12  Martin Liska  <mliska@suse.cz>
11354
11355         PR bootstrap/100560
11356         * Makefile.in: Remove version.h from linker command line.
11357
11358 2021-05-12  Richard Biener  <rguenther@suse.de>
11359
11360         PR middle-end/100547
11361         * rtl.h (rtvec_alloc): Make argument size_t.
11362         * rtl.c (rtvec_alloc): Verify the count is less than INT_MAX.
11363
11364 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
11365
11366         PR middle-end/100508
11367         * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector
11368         type, don't reuse DECL_RTL if it has different mode, instead force
11369         creation of a new DEBUG_EXPR.
11370
11371 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
11372             Marc Glisse  <marc.glisse@inria.fr>
11373
11374         PR tree-optimization/94589
11375         * match.pd ((X & Y) == X -> (X & ~Y) == 0,
11376         (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications.
11377
11378 2021-05-12  Uroš Bizjak  <ubizjak@gmail.com>
11379
11380         PR target/98218
11381         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode.
11382         * config/i386/mmx.md (MMXMODE124): New mode iterator.
11383         (V2FI): Ditto.
11384         (mmxintvecmode): New mode attribute.
11385         (mmxintvecmodelower): Ditto.
11386         (*mmx_maskcmpv2sf3_comm): New insn pattern.
11387         (*mmx_maskcmpv2sf3): Ditto.
11388         (vec_cmpv2sfv2si): New expander.
11389         (vcond<V2FI:mode>v2si): Ditto.
11390         (mmx_vlendvps): New insn pattern.
11391         (vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode.
11392         (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
11393         (vcond_mask_<mode><mmxintvecmodelower>): Ditto.
11394
11395 2021-05-11  Martin Sebor  <msebor@redhat.com>
11396
11397         PR middle-end/21433
11398         * expr.c (expand_expr_real_1): Replace unreachable code with an assert.
11399
11400 2021-05-11  Richard Biener  <rguenther@suse.de>
11401
11402         * gimple-fold.c (gimple_fold_call): Do not call
11403         maybe_fold_reference on call arguments or the static chain.
11404         (fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM
11405         inputs.
11406
11407 2021-05-11  Martin Liska  <mliska@suse.cz>
11408
11409         * builtins.def (DEF_HSAIL_BUILTIN): Remove.
11410         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
11411         (DEF_HSAIL_SAT_BUILTIN): Likewise.
11412         (DEF_HSAIL_INTR_BUILTIN): Likewise.
11413         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
11414         * doc/frontends.texi: Remove BRIG.
11415         * doc/install.texi: Likewise.
11416         * doc/invoke.texi: Likewise.
11417         * doc/standards.texi: Likewise.
11418         * brig-builtins.def: Removed.
11419         * brig/ChangeLog: Removed.
11420         * brig/Make-lang.in: Removed.
11421         * brig/brig-builtins.h: Removed.
11422         * brig/brig-c.h: Removed.
11423         * brig/brig-lang.c: Removed.
11424         * brig/brigfrontend/brig-arg-block-handler.cc: Removed.
11425         * brig/brigfrontend/brig-atomic-inst-handler.cc: Removed.
11426         * brig/brigfrontend/brig-basic-inst-handler.cc: Removed.
11427         * brig/brigfrontend/brig-branch-inst-handler.cc: Removed.
11428         * brig/brigfrontend/brig-cmp-inst-handler.cc: Removed.
11429         * brig/brigfrontend/brig-code-entry-handler.cc: Removed.
11430         * brig/brigfrontend/brig-code-entry-handler.h: Removed.
11431         * brig/brigfrontend/brig-comment-handler.cc: Removed.
11432         * brig/brigfrontend/brig-control-handler.cc: Removed.
11433         * brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed.
11434         * brig/brigfrontend/brig-cvt-inst-handler.cc: Removed.
11435         * brig/brigfrontend/brig-fbarrier-handler.cc: Removed.
11436         * brig/brigfrontend/brig-function-handler.cc: Removed.
11437         * brig/brigfrontend/brig-function.cc: Removed.
11438         * brig/brigfrontend/brig-function.h: Removed.
11439         * brig/brigfrontend/brig-inst-mod-handler.cc: Removed.
11440         * brig/brigfrontend/brig-label-handler.cc: Removed.
11441         * brig/brigfrontend/brig-lane-inst-handler.cc: Removed.
11442         * brig/brigfrontend/brig-machine.c: Removed.
11443         * brig/brigfrontend/brig-machine.h: Removed.
11444         * brig/brigfrontend/brig-mem-inst-handler.cc: Removed.
11445         * brig/brigfrontend/brig-module-handler.cc: Removed.
11446         * brig/brigfrontend/brig-queue-inst-handler.cc: Removed.
11447         * brig/brigfrontend/brig-seg-inst-handler.cc: Removed.
11448         * brig/brigfrontend/brig-signal-inst-handler.cc: Removed.
11449         * brig/brigfrontend/brig-to-generic.cc: Removed.
11450         * brig/brigfrontend/brig-to-generic.h: Removed.
11451         * brig/brigfrontend/brig-util.cc: Removed.
11452         * brig/brigfrontend/brig-util.h: Removed.
11453         * brig/brigfrontend/brig-variable-handler.cc: Removed.
11454         * brig/brigfrontend/hsa-brig-format.h: Removed.
11455         * brig/brigfrontend/phsa.h: Removed.
11456         * brig/brigspec.c: Removed.
11457         * brig/config-lang.in: Removed.
11458         * brig/gccbrig.texi: Removed.
11459         * brig/lang-specs.h: Removed.
11460         * brig/lang.opt: Removed.
11461
11462 2021-05-11  Richard Biener  <rguenther@suse.de>
11463
11464         PR ipa/100513
11465         * ipa-param-manipulation.c
11466         (ipa_param_body_adjustments::modify_call_stmt): Avoid
11467         altering SSA_NAME_DEF_STMT by adjusting the calls LHS
11468         via gimple_call_lhs_ptr.
11469
11470 2021-05-11  Alex Coplan  <alex.coplan@arm.com>
11471
11472         PR target/99725
11473         * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear):
11474         Avoid emitting CFA adjusts on the sp if we have the fp.
11475
11476 2021-05-11  Richard Sandiford  <richard.sandiford@arm.com>
11477
11478         * config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete.
11479         (VMULD): New iterator.
11480         (VCOND): Handle V4HF and V8HF.
11481         (VCONQ): Fix entry for V2SF.
11482         * config/aarch64/aarch64-simd.md (mul_lane<mode>3): Use VMULD
11483         instead of VMUL.  Use a 64-bit vector mode for the indexed operand.
11484         (*aarch64_mul3_elt_<vswap_width_name><mode>): Merge with...
11485         (mul_laneq<mode>3): ...this define_insn.  Use VMUL instead of VDQSF.
11486         Use a 128-bit vector mode for the indexed operand.  Use stype for
11487         the scheduling type.
11488
11489 2021-05-11  Richard Biener  <rguenther@suse.de>
11490
11491         * gimple-fold.c (maybe_fold_reference): Only return
11492         is_gimple_min_invariant values.
11493
11494 2021-05-11  Richard Biener  <rguenther@suse.de>
11495
11496         PR middle-end/100509
11497         * gimple-fold.c (fold_gimple_assign): Only call
11498         get_symbol_constant_value on register type symbols.
11499
11500 2021-05-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
11501             Joe Ramsay   <joe.ramsay@arm.com>
11502
11503         PR target/100419
11504         * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments.
11505         (__arm_vcmpneq): Remove duplicate definition.
11506         (__arm_vstrwq_scatter_offset_p): Likewise.
11507         (__arm_vmaxq_x): Likewise.
11508         (__arm_vmlsdavaq): Likewise.
11509         (__arm_vmlsdavaxq): Likewise.
11510         (__arm_vmlsdavq_p): Likewise.
11511         (__arm_vmlsdavxq_p): Likewise.
11512         (__arm_vrmlaldavhaq): Likewise.
11513         (__arm_vstrbq_p): Likewise.
11514         (__arm_vstrbq_scatter_offset): Likewise.
11515         (__arm_vstrbq_scatter_offset_p): Likewise.
11516         (__arm_vstrdq_scatter_offset): Likewise.
11517         (__arm_vstrdq_scatter_offset_p): Likewise.
11518         (__arm_vstrdq_scatter_shifted_offset): Likewise.
11519         (__arm_vstrdq_scatter_shifted_offset_p): Likewise.
11520
11521 2021-05-11  Jakub Jelinek  <jakub@redhat.com>
11522
11523         PR middle-end/100471
11524         * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data
11525         is 0, bypass the reduction loop including
11526         GOMP_taskgroup_reduction_unregister call.
11527
11528 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
11529
11530         * config/rs6000/rs6000.c (struct rs6000_cost_data): New member
11531         costing_for_scalar.
11532         (rs6000_density_test): Early return if costing_for_scalar is true.
11533         (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data.
11534
11535 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
11536
11537         * doc/tm.texi: Regenerated.
11538         * target.def (init_cost): Add new parameter costing_for_scalar.
11539         * targhooks.c (default_init_cost): Adjust for new parameter.
11540         * targhooks.h (default_init_cost): Likewise.
11541         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise.
11542         (vect_compute_single_scalar_iteration_cost): Likewise.
11543         (vect_analyze_loop_2): Likewise.
11544         * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise.
11545         (vect_bb_vectorization_profitable_p): Likewise.
11546         * tree-vectorizer.h (init_cost): Likewise.
11547         * config/aarch64/aarch64.c (aarch64_init_cost): Likewise.
11548         * config/i386/i386.c (ix86_init_cost): Likewise.
11549         * config/rs6000/rs6000.c (rs6000_init_cost): Likewise.
11550
11551 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
11552
11553         * config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to
11554         vect_nonmem and moved into...
11555         (struct rs6000_cost_data): ...here.
11556         (rs6000_init_cost): Use vect_nonmem of cost_data instead.
11557         (rs6000_add_stmt_cost): Likewise.
11558         (rs6000_finish_cost): Likewise.
11559
11560 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
11561
11562         * range-op.cc (get_bool_state): Adjust head comment.
11563         (operator_not_equal::op1_range): Fix comment.
11564         (operator_bitwise_xor::op1_range): Remove call to gcc_unreachable.
11565
11566 2021-05-10  Martin Sebor  <msebor@redhat.com>
11567
11568         PR middle-end/100425
11569         PR middle-end/100510
11570         * gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename...
11571         (pass_walloca::xlimit_certain_p): ...to this.
11572         (pass_walloca::gate): Execute for any kind of handled warning.
11573         (pass_walloca::execute): Avoid issuing "maybe" and "unbounded"
11574         warnings when xlimit_certain_p is set.
11575
11576 2021-05-10  Pat Haugen  <pthaugen@linux.ibm.com>
11577
11578         * config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class):
11579         Return ALTIVEC_REGS if that is best_class.
11580         (rs6000_compute_pressure_classes): Add ALTIVEC_REGS.
11581
11582 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
11583
11584         * config/arm/arm.h (CPP_SPEC): Remove error message about
11585         -mfloat-abi.
11586
11587 2021-05-10  Martin Jambor  <mjambor@suse.cz>
11588
11589         * ipa-prop.h (IPA_NODE_REF): Removed.
11590         (IPA_NODE_REF_GET_CREATE): Likewise.
11591         (IPA_EDGE_REF): Likewise.
11592         (IPA_EDGE_REF_GET_CREATE): Likewise.
11593         (IS_VALID_JUMP_FUNC_INDEX): Likewise.
11594         * ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct
11595         use of ipa_node_params_sum.
11596         (ipcp_versionable_function_p): Likewise.
11597         (push_node_to_stack): Likewise.
11598         (pop_node_from_stack): Likewise.
11599         (set_single_call_flag): Replaced two IPA_NODE_REF with one single
11600         direct use of ipa_node_params_sum.
11601         (initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of
11602         ipa_node_params_sum.
11603         (ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of
11604         ipa_edge_args_sum.
11605         (ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct
11606         use of ipa_node_params_sum.
11607         (self_recursively_generated_p): Likewise.
11608         (propagate_scalar_across_jump_function): Likewise.
11609         (propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a
11610         direct use of ipa_edge_args_sum, moved the lookup after the early
11611         exit.  Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum.
11612         (propagate_bits_across_jump_function): Replaced IPA_NODE_REF with
11613         direct uses of ipa_node_params_sum.
11614         (propagate_vr_across_jump_function): Likewise.
11615         (propagate_aggregate_lattice): Likewise.
11616         (propagate_aggs_across_jump_function): Likewise.
11617         (propagate_constants_across_call): Likewise, also replaced
11618         IPA_EDGE_REF with a direct use of ipa_edge_args_sum.
11619         (good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use
11620         of ipa_node_params_sum.
11621         (estimate_local_effects): Likewise.
11622         (add_all_node_vals_to_toposort): Likewise.
11623         (propagate_constants_topo): Likewise.
11624         (ipcp_propagate_stage): Likewise.
11625         (ipcp_discover_new_direct_edges): Likewise.
11626         (calls_same_node_or_its_all_contexts_clone_p): Likewise.
11627         (cgraph_edge_brings_value_p): Likewise (in both overloaded functions).
11628         (get_info_about_necessary_edges): Likewise.
11629         (want_remove_some_param_p): Likewise.
11630         (create_specialized_node): Likewise.
11631         (self_recursive_pass_through_p): Likewise.
11632         (self_recursive_agg_pass_through_p): Likewise.
11633         (find_more_scalar_values_for_callers_subset): Likewise and also
11634         replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one
11635         case replacing two of those with a single query.
11636         (find_more_contexts_for_caller_subset): Likewise for the
11637         ipa_polymorphic_call_context overload.
11638         (intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct
11639         use of ipa_edge_args_sum.  Replaced IPA_NODE_REF with direct uses of
11640         ipa_node_params_sum.
11641         (find_aggregate_values_for_callers_subset): Likewise, also reusing
11642         results of ipa_edge_args_sum->get.
11643         (cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with
11644         direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a
11645         direct use of ipa_edge_args_sum.
11646         (cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node
11647         summary query after the early exit and reused the result later.
11648         (decide_about_value): Replaced IPA_NODE_REF with a direct use of
11649         ipa_node_params_sum.
11650         (decide_whether_version_node): Likewise.  Removed re-querying for
11651         summaries after cloning.
11652         (spread_undeadness): Replaced IPA_NODE_REF with a direct use of
11653         ipa_node_params_sum.
11654         (has_undead_caller_from_outside_scc_p): Likewise, reusing results of
11655         some queries.
11656         (identify_dead_nodes): Likewise.
11657         (ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of
11658         ipa_node_params_sum.
11659         (ipcp_store_vr_results): Likewise.
11660         * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
11661         (ipa_fn_summary_t::duplicate): Likewise.
11662         (analyze_function_body): Likewise.
11663         (estimate_calls_size_and_time): Likewise.
11664         (ipa_cached_call_context::duplicate_from): Likewise.
11665         (ipa_call_context::equal_to): Likewise.
11666         (remap_edge_params): Likewise.
11667         (ipa_merge_fn_summary_after_inlining): Likewise.
11668         (inline_read_section): Likewise.
11669         * ipa-icf.c (sem_function::param_used_p): Likewise.
11670         * ipa-modref.c (compute_parm_map): Likewise.
11671         (compute_parm_map): Replaced IPA_EDGE_REF with a direct use of
11672         ipa_edge_args_sum.
11673         (get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of
11674         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
11675         ipa_edge_args_sum.
11676         * ipa-profile.c (check_argument_count): Likewise.
11677         * ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE
11678         with a direct use of ipa_node_params_sum.
11679         (ipa_initialize_node_params): Likewise.
11680         (ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a
11681         direct use of ipa_edge_args_sum and reused the query result.
11682         (ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a
11683         direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a
11684         direct use of ipa_edge_args_sum.
11685         (ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of
11686         ipa_node_params_sum and reused the result of the query.
11687         (ipa_analyze_node): Likewise.
11688         (ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use
11689         of ipa_node_params_sum.
11690         (update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with
11691         direct uses of ipa_edge_args_sum.
11692         (update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with
11693         direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a
11694         direct use of ipa_edge_args_sum.  Removed superficial re-querying the
11695         top edge summary.
11696         (propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of
11697         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
11698         ipa_edge_args_sum.
11699         (ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a
11700         direct use of ipa_edge_args_sum.
11701         (ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct
11702         use of ipa_node_params_sum.
11703         (ipa_print_node_params): Likewise.
11704         (ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with
11705         direct uses of ipa_edge_args_sum.
11706         (ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of
11707         ipa_edge_args_sum.
11708         (ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of
11709         ipa_node_params_sum.
11710         (ipa_prop_write_jump_functions): Likewise.  Move variable node to the
11711         scopes where it is used.
11712
11713 2021-05-10  Uroš Bizjak  <ubizjak@gmail.com>
11714
11715         * config/i386/i386-expand.c (ix86_expand_sse_movcc)
11716         <case E_V2SImode>: Force op_true to register.
11717
11718 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
11719
11720         * config/arm/iterators.md (MVE_FP_COMPARISONS): New.
11721         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_f<mode>)
11722         (mve_vcmp<mve_cmp_op>q_n_f<mode>): New, merge all vcmp_*f*
11723         patterns.
11724         (mve_vcmpeqq_f<mode>, mve_vcmpeqq_n_f<mode>, mve_vcmpgeq_f<mode>)
11725         (mve_vcmpgeq_n_f<mode>, mve_vcmpgtq_f<mode>)
11726         (mve_vcmpgtq_n_f<mode>, mve_vcmpleq_f<mode>)
11727         (mve_vcmpleq_n_f<mode>, mve_vcmpltq_f<mode>)
11728         (mve_vcmpltq_n_f<mode>, mve_vcmpneq_f<mode>)
11729         (mve_vcmpneq_n_f<mode>): Remove.
11730         * config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F)
11731         (VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F)
11732         (VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove.
11733
11734 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
11735
11736         * config/arm/iterators.md (MVE_COMPARISONS): New.
11737         (mve_cmp_op): New.
11738         (mve_cmp_type): New.
11739         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all
11740         mve_vcmp patterns.
11741         (mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>)
11742         (mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>)
11743         (mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>)
11744         (mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>)
11745         (mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
11746         (mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
11747         (mve_vcmpneq_n_<mode>): Remove.
11748
11749 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
11750
11751         * config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix.
11752         * config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix.
11753         * config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern
11754         names.
11755
11756 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
11757
11758         * config/arm/arm_mve_builtins.def (vcmpneq_u): Remove.
11759         (vcmpneq_n_u): Likewise.
11760         (vcmpeqq_u,): Likewise.
11761         (vcmpeqq_n_u): Likewise.
11762         * config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U,
11763         VCMPEQQ_N_U and VCMPNEQ_N_U.
11764         * config/arm/mve.md (mve_vcmpneq): Remove <supf> iteration.
11765         (mve_vcmpeqq_n): Likewise.
11766         (mve_vcmpeqq): Likewise.
11767         (mve_vcmpneq_n): Likewise.
11768
11769 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
11770
11771         * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call
11772         the 's' version of the builtin.
11773
11774 2021-05-10  Richard Biener  <rguenther@suse.de>
11775
11776         PR tree-optimization/100492
11777         * tree-loop-distribution.c (find_seed_stmts_for_distribution):
11778         Find nothing when the loop contains an irreducible region.
11779
11780 2021-05-10  Richard Biener  <rguenther@suse.de>
11781
11782         PR middle-end/100464
11783         PR c++/100468
11784         * gimple-fold.c (canonicalize_constructor_val): Do not set
11785         TREE_ADDRESSABLE.
11786
11787 2021-05-10  Richard Biener  <rguenther@suse.de>
11788
11789         PR tree-optimization/100434
11790         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
11791         call LHS.
11792         (dse_optimize_stmt): Handle call LHS by dropping the
11793         LHS or the whole call if it doesn't have other
11794         side-effects.
11795         (pass_dse::execute): Adjust.
11796
11797 2021-05-10  Martin Liska  <mliska@suse.cz>
11798
11799         * Makefile.in: Add missing genversion rule.
11800
11801 2021-05-10  Alex Coplan  <alex.coplan@arm.com>
11802
11803         PR target/99960
11804         * config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use
11805         vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores.
11806
11807 2021-05-10  Martin Liska  <mliska@suse.cz>
11808
11809         * builtins.c (is_builtin_name): Use startswith
11810         function instead of strncmp.
11811         * collect2.c (main): Likewise.
11812         (has_lto_section): Likewise.
11813         (scan_libraries): Likewise.
11814         * coverage.c (coverage_checksum_string): Likewise.
11815         (coverage_init): Likewise.
11816         * dwarf2out.c (is_cxx): Likewise.
11817         (gen_compile_unit_die): Likewise.
11818         * gcc-ar.c (main): Likewise.
11819         * gcc.c (init_spec): Likewise.
11820         (read_specs): Likewise.
11821         (execute): Likewise.
11822         (check_live_switch): Likewise.
11823         * genattrtab.c (write_attr_case): Likewise.
11824         (IS_ATTR_GROUP): Likewise.
11825         * gencfn-macros.c (main): Likewise.
11826         * gengtype.c (type_for_name): Likewise.
11827         (gen_rtx_next): Likewise.
11828         (get_file_langdir): Likewise.
11829         (write_local): Likewise.
11830         * genmatch.c (get_operator): Likewise.
11831         (get_operand_type): Likewise.
11832         (expr::gen_transform): Likewise.
11833         * genoutput.c (validate_optab_operands): Likewise.
11834         * incpath.c (add_sysroot_to_chain): Likewise.
11835         * langhooks.c (lang_GNU_C): Likewise.
11836         (lang_GNU_CXX): Likewise.
11837         (lang_GNU_Fortran): Likewise.
11838         (lang_GNU_OBJC): Likewise.
11839         * lto-wrapper.c (run_gcc): Likewise.
11840         * omp-general.c (omp_max_simt_vf): Likewise.
11841         * omp-low.c (omp_runtime_api_call): Likewise.
11842         * opts-common.c (parse_options_from_collect_gcc_options): Likewise.
11843         * read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise.
11844         * real.c (real_from_string): Likewise.
11845         * selftest.c (assert_str_startswith): Likewise.
11846         * timevar.c (timer::validate_phases): Likewise.
11847         * tree.c (get_file_function_name): Likewise.
11848         * ubsan.c (ubsan_use_new_style_p): Likewise.
11849         * varasm.c (default_function_rodata_section): Likewise.
11850         (incorporeal_function_p): Likewise.
11851         (default_section_type_flags): Likewise.
11852         * system.h (startswith): Define startswith.
11853
11854 2021-05-10  Martin Liska  <mliska@suse.cz>
11855
11856         * bitmap.h (class auto_bitmap): Remove
11857         __cplusplus >= 201103.
11858         * config/aarch64/aarch64.c: Likewise.
11859         * gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info):
11860         Likewise.
11861         * sbitmap.h: Likewise.
11862
11863 2021-05-10  Martin Liska  <mliska@suse.cz>
11864
11865         * Makefile.in: Rename gcov-iov to genversion and depend
11866         on version.h (instead of gcov-iov.h).
11867         * gcov-io.h: Include version.h instread of gcov-iov.h.
11868         * gengtype-state.c (read_state_version): Likewise.
11869         * gcov-iov.c: Moved to...
11870         * genversion.c: ...here.
11871         * lto-streamer.h (LTO_major_version): Define it with
11872         GCC_major_version.
11873         * version.c: Removed.
11874         * version.h: Removed.
11875
11876 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
11877
11878         * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define.
11879         * config/arc/simdext.md (VCT): Add predicates for iterator
11880         elements.
11881         (EMUVEC): Define.
11882         (voptab): Likewise.
11883         (vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate.
11884         (<voptab>v2si3): New patterns.
11885         (neg): Likewise.
11886         (reduc_plus_scal_v4hi): Likewise.
11887         (reduc_plus_scal_v2si): Likewise.
11888         (vec_duplicatev2si): Likewise.
11889         (vec_duplicatev4hi): Likewise.
11890
11891 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
11892
11893         * config/arc/simdext.md: Format and cleanup file.
11894
11895 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
11896
11897         * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access
11898         only when munaligned-access option is on.
11899         (movmisalign<mode>): Likewise.
11900
11901 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
11902
11903         * common/config/arc/arc-common.c (arc_handle_option): Remove dot
11904         from string.
11905         * config/arc/arc.c (arc_reorg): Remove underscore from string.
11906
11907 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
11908
11909         * config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
11910         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
11911         * config/arc/arc.md (clrsbsi2): Cleanup pattern.
11912         (norm_f): Likewise.
11913         (ffs): Likewise.
11914         (ffs_f): Likewise.
11915         (clzsi2): Use fls instruction when available.
11916         (arc_clzsi2): Likewise.
11917
11918 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
11919
11920         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27.
11921
11922 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
11923
11924         * doc/extend.texi (__builtin_arc_sr): Swap arguments.
11925
11926 2021-05-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11927
11928         PR middle-end/100467
11929         * toplev.c (compile_file): Call insn_locations_init before
11930         targetm.asm_out.code_end.
11931
11932 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
11933
11934         Revert:
11935         2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
11936
11937         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
11938
11939 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
11940             Andrew Stubbs  <amd@codesourcery.com>
11941
11942         PR target/100418
11943         * builtins.c (try_store_by_multiple_pieces): Use force_operand for
11944         emit_move_insn operands.
11945
11946 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
11947
11948         * cfgexpand.c (expand_gimple_basic_block): Do not inherit a current
11949         location for the outgoing edges of an empty block.
11950         * dwarf2out.c (add_subscript_info): Retrieve the bounds and index
11951         type by means of the get_array_descr_info langhook, if it is set and
11952         returns true.  Remove obsolete code dealing with unnamed subtypes.
11953
11954 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
11955
11956         * gimple-range-cache.cc (ssa_block_ranges): Virtualize.
11957         (sbr_vector): Renamed from ssa_block_cache.
11958         (sbr_vector::sbr_vector): Allocate from obstack abd initialize.
11959         (ssa_block_ranges::~ssa_block_ranges): Remove.
11960         (sbr_vector::set_bb_range): Use varying and undefined cached values.
11961         (ssa_block_ranges::set_bb_varying): Remove.
11962         (sbr_vector::get_bb_range): Adjust assert.
11963         (sbr_vector::bb_range_p): Adjust assert.
11964         (~block_range_cache): No freeing loop required.
11965         (block_range_cache::get_block_ranges): Remove.
11966         (block_range_cache::set_bb_range): Inline get_block_ranges.
11967         (block_range_cache::set_bb_varying): Remove.
11968         * gimple-range-cache.h (set_bb_varying): Remove prototype.
11969         * value-range.h (irange_allocator::get_memory): New.
11970
11971 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
11972
11973         * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search
11974         dominator tree is available and requested.
11975         (ranger_cache::ssa_range_in_bb): Don't search dom tree here.
11976         (ranger_cache::fill_block_cache): Don't search dom tree here either.
11977         * gimple-range-cache.h (non_null_deref_p): Add dom_search param.
11978
11979 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
11980
11981         * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with
11982         only PHI nodes better.
11983
11984 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
11985
11986         * gimple-range-edge.h (gimple_outgoing_range): Rename from
11987         outgoing_range.
11988         (gcond_edge_range): Export prototype.
11989         * gimple-range-edge.cc (gcond_edge_range): New.
11990         (gimple_outgoing_range::edge_range_p): Use gcond_edge_range.
11991         * gimple-range-gori.h (gori_compute): Use gimple_outgoing_range.
11992
11993 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
11994
11995         * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute
11996         default range into a temp and allocate only what is needed.
11997
11998 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
11999
12000         * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED.
12001
12002 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
12003
12004         * gimple-range.h (gimple_range_global): Pick up parameter initial
12005         values, and use-before defined locals are UNDEFINED.
12006
12007 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
12008
12009         * doc/extend.texi (scalar_storage_order): Mention effect on pointer
12010         and vector fields.
12011         * tree.h (reverse_storage_order_for_component_p): Return false if
12012         the type is a pointer.
12013
12014 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
12015
12016         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
12017
12018 2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>
12019
12020         PR target/98218
12021         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
12022         Handle V8QI, V4HI and V2SI modes.
12023         * config/i386/mmx.md (mmx_pblendvb): New insn pattern.
12024         * config/i386/sse.md (unspec): Move UNSPEC_BLENDV ...
12025         * config/i386/i386.md (unspec): ... here.
12026
12027 2021-05-07  Tobias Burnus  <tobias@codesourcery.com>
12028             Tom de Vries  <tdevries@suse.de>
12029
12030         * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if
12031         a truth_value_p reduction variable is nonintegral.
12032
12033 2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>
12034
12035         PR target/100445
12036         * config/i386/i386-expand.c (ix86_use_mask_cmp_p):
12037         Return false for mode sizes < 16.
12038
12039 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
12040
12041         PR target/100445
12042         * config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn.
12043
12044 2021-05-06  Martin Jambor  <mjambor@suse.cz>
12045
12046         * ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even
12047         when there is no function summary.
12048         (ipa_sra_summarize_function): produce edge summaries even when
12049         bailing out early.
12050
12051 2021-05-06  Tom Tromey  <tom@tromey.com>
12052
12053         * godump.c (string_hash_eq): Remove.
12054         (go_finish): Use htab_eq_string.
12055
12056 2021-05-06  Tom Tromey  <tom@tromey.com>
12057
12058         * gengtype-state.c (read_state): Use htab_eq_string.
12059         (string_eq): Remove.
12060
12061 2021-05-06  Tom Tromey  <tom@tromey.com>
12062
12063         * gensupport.c (htab_eq_string): Remove.
12064
12065 2021-05-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12066
12067         PR ipa/97937
12068         * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer.
12069         * dwarf2out.h (dw_fde_node::ignored_debug): New data item.
12070         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy
12071         set_ignored_loc callbacks.
12072         * debug.c (do_nothing_debug_hooks): Likewise.
12073         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12074         * dwarf2out.c (text_section_used, cold_text_section_used): Remove.
12075         (in_text_section_p, last_text_label, last_cold_label,
12076         switch_text_ranges, switch_cold_ranges): New data items.
12077         (dwarf2out_note_section_used): Remove.
12078         (dwarf2out_begin_prologue): Set fde->ignored_debug and
12079         in_text_section_p.
12080         (mark_ignored_debug_section): New helper function.
12081         (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call
12082         mark_ignored_debug_section.
12083         (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc.
12084         (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc.
12085         (size_of_aranges): Adjust formula for multi-part text ranges size.
12086         (output_aranges): Output multi-part text ranges.
12087         (dwarf2out_set_ignored_loc): New callback function.
12088         (dwarf2out_finish): Output multi-part text ranges.
12089         (dwarf2out_c_finalize): Clear new data items.
12090         * final.c (final_start_function_1): Call set_ignored_loc callback.
12091         (final_scan_insn_1): Likewise.
12092         * ggc-page.c (gt_ggc_mx): New helper function.
12093         * stringpool.c (gt_pch_nx): Likewise.
12094
12095 2021-05-06  Richard Biener  <rguenther@suse.de>
12096
12097         * timevar.def (TV_TREE_INSERT_PHI_NODES): Remove.
12098         (TV_TREE_SSA_REWRITE_BLOCKS): Likewise.
12099         (TV_TREE_INTO_SSA): New.
12100         * tree-into-ssa.c (insert_phi_nodes): Do not account separately.
12101         (rewrite_blocks): Likewise.
12102         (pass_data_build_ssa): Account to TV_TREE_INTO_SSA.
12103
12104 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
12105
12106         * tree-ssa-phiopt.c (value_replacement, minmax_replacement,
12107         abs_replacement, xor_replacement,
12108         cond_removal_in_popcount_clz_ctz_pattern,
12109         replace_phi_edge_with_variable): Change type of phi argument from
12110         gimple * to gphi *.
12111
12112 2021-05-06  Richard Biener  <rguenther@suse.de>
12113
12114         * tree-ssa-loop-split.c (split_loop): Delay updating SSA form.
12115         Output an opt-info message.
12116         (do_split_loop_on_cond): Likewise.
12117         (tree_ssa_split_loops): Update SSA form here.
12118
12119 2021-05-06  Richard Biener  <rguenther@suse.de>
12120
12121         * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE
12122         return variable removal.
12123
12124 2021-05-06  Marius Hillenbrand  <mhillen@linux.ibm.com>
12125
12126         * config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros.
12127         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
12128         (s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate
12129         operand.
12130         * config/s390/s390.c (s390_const_operand_ok): Remove unused
12131         values.
12132
12133 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
12134
12135         PR tree-optimization/94589
12136         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
12137         spaceship_replacement.
12138         (cond_only_block_p, spaceship_replacement): New functions.
12139
12140 2021-05-06  Richard Biener  <rguenther@suse.de>
12141
12142         PR ipa/100373
12143         * tree-emutls.c (gen_emutls_addr): Pass in whether we're
12144         dealing with a debug use and only query existing addresses
12145         if so.
12146         (lower_emutls_1): Avoid splitting out addresses for debug
12147         stmts, reset the debug stmt when we fail to find existing
12148         lowered addresses.
12149         (lower_emutls_phi_arg): Set wi.stmt.
12150
12151 2021-05-06  Christoph Muellner  <cmuellner@gcc.gnu.org>
12152
12153         PR target/100266
12154         * config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper.
12155         * config/riscv/riscv.md (cbranch<mode>4): Generate helpers.
12156         (stack_protect_test): Use cbranch helper.
12157
12158 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
12159
12160         PR target/100402
12161         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
12162         always return the establisher frame for __builtin_frame_address (0).
12163
12164 2021-05-05  Ivan Sorokin  <vanyacpp@gmail.com>
12165
12166         PR target/91400
12167         * config/i386/i386-builtins.c (ix86_cpu_model_type_node): New.
12168         (ix86_cpu_model_var): Likewise.
12169         (ix86_cpu_features2_type_node): Likewise.
12170         (ix86_cpu_features2_var): Likewise.
12171         (fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with
12172         their types.
12173
12174 2021-05-05  Martin Sebor  <msebor@redhat.com>
12175
12176         * passes.def (pass_warn_printf): Run after SSA.
12177
12178 2021-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12179
12180         * config/arm/neon.md (neon_vtst_combine<mode>): New pattern.
12181         * config/arm/predicates.md (minus_one_operand): New predicate.
12182
12183 2021-05-05  Jeff Law  <jlaw@tachyum.com>
12184
12185         * config/avr/avr.md: Remove references to CC_STATUS_INIT.
12186
12187 2021-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
12188
12189         PR rtl-optimization/100263
12190         * postreload.c (move2add_valid_value_p): Ensure register can
12191         change mode.
12192
12193 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
12194
12195         PR rtl-optimization/100411
12196         * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue
12197         and beginning of function markers.
12198
12199 2021-05-05  Jeff Law  <jlaw@tachyum.com>
12200
12201         * config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove.
12202         * config/cr16/cr16.c (notice_update_cc): Remove.
12203         * config/cr16/cr16-protos.h (notice_update_cc): Remove.
12204
12205 2021-05-05  Uroš Bizjak  <ubizjak@gmail.com>
12206
12207         PR target/98218
12208         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
12209         Handle V8QI, V4HI and V2SI modes.
12210         * config/i386/i386.c (ix86_build_const_vector): Handle V2SImode.
12211         (ix86_build_signbit_mask): Ditto.
12212         * config/i386/mmx.md (MMXMODE14): New mode iterator.
12213         (<smaxmin:code><MMXMODE14:mode>3): New expander.
12214         (*mmx_<smaxmin:code><MMXMODE14:mode>3): New insn pattern.
12215         (<umaxmin:code><MMXMODE24:mode>3): New expander.
12216         (*mmx_<umaxmin:code><MMXMODE24:mode>3): New insn pattern.
12217         (vec_cmp<MMXMODEI:mode><MMXMODEI:mode>): New expander.
12218         (vec_cmpu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
12219         (vcond<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
12220         (vcondu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
12221         (vcond_mask_<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
12222
12223 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
12224
12225         * dwarf2out.c (loc_list_from_tree_1) <DECL>: During early DWARF, do
12226         not expand the VALUE_EXPR of variables put in the non-local frame.
12227         * gimplify.c (gimplify_type_sizes) <RECORD_TYPE>: If the type is not
12228         to be ignored for debug info, ensure its variable offsets are not.
12229
12230 2021-05-05  Richard Biener  <rguenther@suse.de>
12231
12232         PR tree-optimization/79333
12233         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
12234         Fold stmt following SSA edges.
12235
12236 2021-05-05  Richard Biener  <rguenther@suse.de>
12237
12238         PR middle-end/100394
12239         * calls.c (expand_call): Preserve possibly throwing calls.
12240         * cfgexpand.c (expand_call_stmt): When a call can throw signal
12241         RTL expansion there are side-effects.
12242         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify,
12243         mark all possibly throwing stmts necessary unless we can elide
12244         dead EH.
12245         * tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless
12246         -fdelete-dead-exceptions.
12247         * tree.h (DECL_PURE_P): Add note about exceptions.
12248
12249 2021-05-05  Alexandre Oliva  <oliva@adacore.com>
12250
12251         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it
12252         unconditional.
12253
12254 2021-05-04  David Edelsohn  <dje.gcc@gmail.com>
12255
12256         * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
12257         get_fnname_from_decl for name of thunk.
12258         * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name
12259         and ASM_OUTPUT_LABEL.
12260         (rs6000_xcoff_declare_function_name): Use assemble_name and
12261         ASM_OUTPUT_LABEL.
12262         (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL.
12263         (rs6000_xcoff_encode_section_info): Don't add mapping class
12264         for aliases.  Always add [DS] mapping class to primary
12265         FUNCTION_DECL.
12266         (rs6000_asm_weaken_decl): Don't explicitly add [DS].
12267
12268 2021-05-04  Martin Sebor  <msebor@redhat.com>
12269
12270         PR middle-end/100307
12271         * builtins.c (compute_objsize_r): Clear base0 for pointers.
12272
12273 2021-05-04  Jeff Law  <jlaw@tachyum.com>
12274
12275         * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.
12276
12277 2021-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
12278
12279         * caller-save.c: Remove CC0.
12280         * cfgcleanup.c: Remove CC0.
12281         * cfgrtl.c: Remove CC0.
12282         * combine.c: Remove CC0.
12283         * compare-elim.c: Remove CC0.
12284         * conditions.h: Remove CC0.
12285         * config/h8300/h8300.h: Remove CC0.
12286         * config/h8300/h8300-protos.h: Remove CC0.
12287         * config/h8300/peepholes.md: Remove CC0.
12288         * config/i386/x86-tune-sched.c: Remove CC0.
12289         * config/m68k/m68k.c: Remove CC0.
12290         * config/rl78/rl78.c: Remove CC0.
12291         * config/sparc/sparc.c: Remove CC0.
12292         * config/xtensa/xtensa.c: Remove CC0.
12293         (gen_conditional_move):  Use pc_rtx instead of cc0_rtx in a piece of
12294         RTL where that is used as a placeholder only.
12295         * cprop.c: Remove CC0.
12296         * cse.c: Remove CC0.
12297         * cselib.c: Remove CC0.
12298         * df-problems.c: Remove CC0.
12299         * df-scan.c: Remove CC0.
12300         * doc/md.texi: Remove CC0.  Adjust an example.
12301         * doc/rtl.texi: Remove CC0.  Adjust an example.
12302         * doc/tm.texi: Regenerate.
12303         * doc/tm.texi.in: Remove CC0.
12304         * emit-rtl.c: Remove CC0.
12305         * final.c: Remove CC0.
12306         * fwprop.c: Remove CC0.
12307         * gcse-common.c: Remove CC0.
12308         * gcse.c: Remove CC0.
12309         * genattrtab.c: Remove CC0.
12310         * genconfig.c: Remove CC0.
12311         * genemit.c: Remove CC0.
12312         * genextract.c: Remove CC0.
12313         * gengenrtl.c: Remove CC0.
12314         * genrecog.c: Remove CC0.
12315         * haifa-sched.c: Remove CC0.
12316         * ifcvt.c: Remove CC0.
12317         * ira-costs.c: Remove CC0.
12318         * ira.c: Remove CC0.
12319         * jump.c: Remove CC0.
12320         * loop-invariant.c: Remove CC0.
12321         * lra-constraints.c: Remove CC0.
12322         * lra-eliminations.c: Remove CC0.
12323         * optabs.c: Remove CC0.
12324         * postreload-gcse.c: Remove CC0.
12325         * postreload.c: Remove CC0.
12326         * print-rtl.c: Remove CC0.
12327         * read-rtl-function.c: Remove CC0.
12328         * reg-notes.def: Remove CC0.
12329         * reg-stack.c: Remove CC0.
12330         * reginfo.c: Remove CC0.
12331         * regrename.c: Remove CC0.
12332         * reload.c: Remove CC0.
12333         * reload1.c: Remove CC0.
12334         * reorg.c: Remove CC0.
12335         * resource.c: Remove CC0.
12336         * rtl.c: Remove CC0.
12337         * rtl.def: Remove CC0.
12338         * rtl.h: Remove CC0.
12339         * rtlanal.c: Remove CC0.
12340         * sched-deps.c: Remove CC0.
12341         * sched-rgn.c: Remove CC0.
12342         * shrink-wrap.c: Remove CC0.
12343         * simplify-rtx.c: Remove CC0.
12344         * system.h: Remove CC0.  Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT,
12345         CC_STATUS_MDEP, and CC_STATUS.
12346         * target.def: Remove CC0.
12347         * valtrack.c: Remove CC0.
12348         * var-tracking.c: Remove CC0.
12349
12350 2021-05-04  Richard Biener  <rguenther@suse.de>
12351
12352         PR tree-optimization/100414
12353         * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
12354         info here.
12355         (tree_ssa_phiopt_worker): But unconditionally here.
12356
12357 2021-05-04  Tobias Burnus  <tobias@codesourcery.com>
12358
12359         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
12360         && and || with floating-point and complex arguments.
12361
12362 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
12363
12364         * tree-inline.c (insert_debug_decl_map): Delete.
12365         (copy_debug_stmt): Minor tweak.
12366         (setup_one_parameter): Do not use a variable if the value is either
12367         a read-only DECL or a non-addressable local variable in the caller.
12368         In this case, insert the debug-only variable in the map manually.
12369         (expand_call_inline): Do not generate a CLOBBER for these values.
12370         * tree-inline.h (debug_map): Minor tweak.
12371
12372 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
12373
12374         * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy.
12375         * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up.
12376
12377 2021-05-04  Richard Biener  <rguenther@suse.de>
12378
12379         PR tree-optimization/100329
12380         * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
12381         asm goto defs.
12382         (insert_stmt_after): Assert we're not running into asm goto.
12383
12384 2021-05-04  Richard Biener  <rguenther@suse.de>
12385
12386         PR tree-optimization/100398
12387         * tree-ssa-dse.c (pass_dse::execute): Preserve control
12388         altering stmts.
12389
12390 2021-05-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12391
12392         * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype.
12393
12394 2021-05-04  Alexandre Oliva  <oliva@adacore.com>
12395
12396         * builtins.c (try_store_by_multiple_pieces): New.
12397         (expand_builtin_memset_args): Use it.  If target_char_cast
12398         fails, proceed as for non-constant val.  Pass len's ctz to...
12399         * expr.c (clear_storage_hints): ... this.  Try store by
12400         multiple pieces after setmem.
12401         (clear_storage): Adjust.
12402         * expr.h (clear_storage_hints): Likewise.
12403         (try_store_by_multiple_pieces): Declare.
12404         * passes.def: Replace the last copy_prop with ccp.
12405
12406 2021-05-03  Tom de Vries  <tdevries@suse.de>
12407
12408         PR target/100321
12409         * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined
12410         reduction.
12411
12412 2021-05-03  Richard Biener  <rguenther@suse.de>
12413
12414         * tree-ssa-dse.c (dse_classify_store): Track two PHI defs.
12415
12416 2021-05-03  Richard Biener  <rguenther@suse.de>
12417
12418         * tree-ssa-dse.c: Do not include domwalk.h but cfganal.h.
12419         (dse_dom_walker): Remove.
12420         (dse_dom_walker::dse_optimize_stmt): Rename...
12421         (dse_optimize_stmt): ... to this, pass in live_bytes sbitmap.
12422         (dse_dom_walker::before_dom_children): Inline ...
12423         (pass_dse::execute): ... here.  Perform a reverse program
12424         order walk.
12425
12426 2021-05-03  H.J. Lu  <hjl.tools@gmail.com>
12427
12428         PR bootstrap/99703
12429         * configure: Regenerated.
12430
12431 2021-05-03  Ilya Leoshkevich  <iii@linux.ibm.com>
12432
12433         PR target/100217
12434         * config/s390/s390.c (s390_hard_fp_reg_p): New function.
12435         (s390_md_asm_adjust): Handle hard registers.
12436
12437 2021-05-03  Jakub Jelinek  <jakub@redhat.com>
12438
12439         PR tree-optimization/100382
12440         * tree-ssa-dse.c: Include tree-eh.h.
12441         (dse_dom_walker::before_dom_children): Don't remove stmts if
12442         stmt_unremovable_because_of_non_call_eh_p is true.
12443
12444 2021-05-02  David Edelsohn  <dje.gcc@gmail.com>
12445
12446         * varasm.c (compute_reloc_for_var): Split out from...
12447         (get_variable_section): Use it.
12448         * output.h (compute_reloc_for_var): Declare.
12449         * config/rs6000/rs6000-protos.h
12450         (rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to
12451         unsigned int.
12452         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix):
12453         Don't append storage mapping class to symbol.
12454         (rs6000_xcoff_asm_named_section): Add BS and UL mapping classes.
12455         Don't convert TLS BSS to common.
12456         (rs6000_xcoff_unique_section): Don't fall back to select_secton.
12457         (rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is
12458         bss_initializer.
12459         (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage
12460         mapping class.
12461         (rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int.
12462         If align is 0 from TLS class, use the same rules as varasm.c
12463         If not common, switch to BSS section manually.
12464         If common, emit appropriate comm or lcomm directive.
12465         (rs6000_xcoff_encode_section_info): Add logic to append all
12466         storage mapping classes.
12467         (rs6000_asm_weaken_decl): Adjust for qualname symbols.
12468         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
12469         rs6000_xcoff_asm_output_aligned_decl_common.
12470         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
12471         rs6000_xcoff_asm_output_aligned_decl_common.
12472         (ASM_OUTPUT_TLS_COMMON): Use
12473         rs6000_xcoff_asm_output_aligned_decl_common.
12474
12475 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
12476
12477         PR target/100375
12478         * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0
12479         as first argument of pseudo_node_t constructors.
12480
12481 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
12482
12483         PR target/100336
12484         * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def.
12485
12486 2021-05-01  Aldy Hernandez  <aldyh@redhat.com>
12487
12488         * value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove.
12489         (gt_pch_nx (int_range<1> *&)): New.
12490         (gt_ggc_mx (int_range<1> *&)): New.
12491         * value-range.h (class irange): Add GTY support for
12492         the base class.
12493
12494 2021-05-01  Geng Qi  <gengqi@linux.alibaba.com>
12495
12496         * doc/options.texi (Negative): Change either or to both and.
12497
12498 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
12499
12500         * config/aarch64/aarch64-simd-builtins.def: Add
12501         float_ml[as][q]_laneq builtin generator macros.
12502         * config/aarch64/aarch64-simd.md (mul_laneq<mode>3): Define.
12503         (aarch64_float_mla_laneq<mode>): Define.
12504         (aarch64_float_mls_laneq<mode>): Define.
12505         * config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin
12506         instead of GCC vector extensions.
12507         (vmlaq_laneq_f32): Likewise.
12508         (vmls_laneq_f32): Likewise.
12509         (vmlsq_laneq_f32): Likewise.
12510
12511 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
12512
12513         * config/aarch64/aarch64-simd-builtins.def: Add
12514         float_ml[as]_lane builtin generator macros.
12515         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt<mode>):
12516         Rename to...
12517         (mul_lane<mode>3): This, and re-order arguments.
12518         (aarch64_float_mla_lane<mode>): Define.
12519         (aarch64_float_mls_lane<mode>): Define.
12520         * config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin
12521         instead of GCC vector extensions.
12522         (vmlaq_lane_f32): Likewise.
12523         (vmls_lane_f32): Likewise.
12524         (vmlsq_lane_f32): Likewise.
12525
12526 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
12527
12528         * config/aarch64/aarch64-simd-builtins.def: Add float_ml[as]
12529         builtin generator macros.
12530         * config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>):
12531         Define.
12532         (aarch64_float_mls<mode>): Define.
12533         * config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin
12534         instead of relying on GCC vector extensions.
12535         (vmla_f64): Likewise.
12536         (vmlaq_f32): Likewise.
12537         (vmlaq_f64): Likewise.
12538         (vmls_f32): Likewise.
12539         (vmls_f64): Likewise.
12540         (vmlsq_f32): Likewise.
12541         (vmlsq_f64): Likewise.
12542         * config/aarch64/iterators.md: Define VDQF_DF mode iterator.
12543
12544 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
12545
12546         * config/aarch64/aarch64-simd-builtins.def: Add
12547         float_ml[as]_n_builtin generator macros.
12548         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup<mode>):
12549         Rename to...
12550         (mul_n<mode>3): This, and re-order arguments.
12551         (aarch64_float_mla_n<mode>): Define.
12552         (aarch64_float_mls_n<mode>): Define.
12553         * config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin
12554         instead of inline asm.
12555         (vmlaq_n_f32): Likewise.
12556         (vmls_n_f32): Likewise.
12557         (vmlsq_n_f32): Likewise.
12558
12559 2021-04-30  Jonathan Wright  <joanthan.wright@arm.com>
12560
12561         * config/aarch64/aarch64-simd-builtins.def: Add pmull[2]
12562         builtin generator macros.
12563         * config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define.
12564         (aarch64_pmull_hiv16qi_insn): Define.
12565         (aarch64_pmull_hiv16qi): Define.
12566         * config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin
12567         instead of inline asm.
12568         (vmull_p8): Likewise.
12569
12570 2021-04-30  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
12571
12572         * config/avr/avr.md: Adjust peepholes to match and
12573         generate parallels with clobber of REG_CC.
12574         (mov<mode>_insn): Rename to mov<mode>_insn_split.
12575         (*mov<mode>_insn): Rename to mov<mode>_insn.
12576
12577 2021-04-30  David Edelsohn  <dje.gcc@gmail.com>
12578
12579         * varasm.c (use_blocks_for_decl_p): Don't use section anchors
12580         for VAR_DECLs if -fdata-sections enabled.
12581
12582 2021-04-30  Michael Meissner  <meissner@linux.ibm.com>
12583
12584         PR bootstrap/100327
12585         * config/rs6000/rs6000.c
12586         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
12587         (rs6000_libgcc_floating_mode_supported_p): New target hook.
12588
12589 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
12590
12591         * tree-ssa-threadbackward.c (class thread_jumps): Split out code
12592         from here...
12593         (class back_threader_registry): ...to here...
12594         (class back_threader_profitability): ...and here...
12595         (thread_jumps::thread_through_all_blocks): Remove argument.
12596         (back_threader_registry::back_threader_registry): New.
12597         (back_threader_registry::~back_threader_registry): New.
12598         (back_threader_registry::thread_through_all_blocks): New.
12599         (thread_jumps::profitable_jump_thread_path): Move from here...
12600         (back_threader_profitability::profitable_path_p): ...to here.
12601         (thread_jumps::find_taken_edge): New.
12602         (thread_jumps::convert_and_register_current_path): Move...
12603         (back_threader_registry::register_path): ...to here.
12604         (thread_jumps::register_jump_thread_path_if_profitable): Move...
12605         (thread_jumps::maybe_register_path): ...to here.
12606         (thread_jumps::handle_phi): Call find_taken_edge and
12607         maybe_register_path.
12608         (thread_jumps::handle_assignment): Same.
12609         (thread_jumps::fsm_find_control_statement_thread_paths): Remove
12610         tree argument to handle_phi and handle_assignment.
12611         (thread_jumps::find_jump_threads_backwards): Set m_name.  Remove
12612         set of m_speed_p and m_max_threaded_paths.
12613         (pass_thread_jumps::execute): Remove second argument from
12614         find_jump_threads_backwards.
12615         (pass_early_thread_jumps::execute): Same.
12616
12617 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
12618
12619         * tree-ssa-dom.c (class dom_jump_threader_simplifier): New.
12620         (class dom_opt_dom_walker): Initialize some class variables.
12621         (pass_dominator::execute): Pass evrp_range_analyzer and
12622         dom_jump_threader_simplifier to dom_opt_dom_walker.
12623         Adjust for some functions moving into classes.
12624         (simplify_stmt_for_jump_threading): Adjust and move to...
12625         (jump_threader_simplifier::simplify): ...here.
12626         (dom_opt_dom_walker::before_dom_children): Adjust for
12627         m_evrp_range_analyzer.
12628         (dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack.
12629         (test_for_singularity): Place in dom_opt_dom_walker class.
12630         (dom_opt_dom_walker::optimize_stmt): The argument
12631         evrp_range_analyzer is now a class field.
12632         * tree-ssa-threadbackward.c (class thread_jumps): Add m_registry.
12633         (thread_jumps::thread_through_all_blocks): New.
12634         (thread_jumps::convert_and_register_current_path): Use m_registry.
12635         (pass_thread_jumps::execute): Adjust for thread_through_all_blocks
12636         being in the threader class.
12637         (pass_early_thread_jumps::execute): Same.
12638         * tree-ssa-threadedge.c (threadedge_initialize_values): Move...
12639         (jump_threader::jump_threader): ...here.
12640         (threadedge_finalize_values): Move...
12641         (jump_threader::~jump_threader): ...here.
12642         (jump_threader::remove_jump_threads_including): New.
12643         (jump_threader::thread_through_all_blocks): New.
12644         (record_temporary_equivalences_from_phis): Move...
12645         (jump_threader::record_temporary_equivalences_from_phis): ...here.
12646         (record_temporary_equivalences_from_stmts_at_dest): Move...
12647         (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
12648         Here...
12649         (simplify_control_stmt_condition_1): Move to jump_threader class.
12650         (simplify_control_stmt_condition): Move...
12651         (jump_threader::simplify_control_stmt_condition): ...here.
12652         (thread_around_empty_blocks): Move...
12653         (jump_threader::thread_around_empty_blocks): ...here.
12654         (thread_through_normal_block): Move...
12655         (jump_threader::thread_through_normal_block): ...here.
12656         (thread_across_edge): Move...
12657         (jump_threader::thread_across_edge): ...here.
12658         (thread_outgoing_edges): Move...
12659         (jump_threader::thread_outgoing_edges): ...here.
12660         * tree-ssa-threadedge.h: Move externally facing functings...
12661         (class jump_threader): ...here...
12662         (class jump_threader_simplifier): ...and here.
12663         * tree-ssa-threadupdate.c (struct redirection_data): Remove comment.
12664         (jump_thread_path_allocator::jump_thread_path_allocator): New.
12665         (jump_thread_path_allocator::~jump_thread_path_allocator): New.
12666         (jump_thread_path_allocator::allocate_thread_edge): New.
12667         (jump_thread_path_allocator::allocate_thread_path): New.
12668         (jump_thread_path_registry::jump_thread_path_registry): New.
12669         (jump_thread_path_registry::~jump_thread_path_registry): New.
12670         (jump_thread_path_registry::allocate_thread_edge): New.
12671         (jump_thread_path_registry::allocate_thread_path): New.
12672         (dump_jump_thread_path): Make extern.
12673         (debug (const vec<jump_thread_edge *> &path)): New.
12674         (struct removed_edges): Move to tree-ssa-threadupdate.h.
12675         (struct thread_stats_d): Remove.
12676         (remove_ctrl_stmt_and_useless_edges): Make static.
12677         (lookup_redirection_data): Move...
12678         (jump_thread_path_registry::lookup_redirection_data): ...here.
12679         (ssa_redirect_edges): Make static.
12680         (thread_block_1): Move...
12681         (jump_thread_path_registry::thread_block_1): ...here.
12682         (thread_block): Move...
12683         (jump_thread_path_registry::thread_block): ...here.
12684         (thread_through_loop_header):  Move...
12685         (jump_thread_path_registry::thread_through_loop_header): ...here.
12686         (mark_threaded_blocks): Move...
12687         (jump_thread_path_registry::mark_threaded_blocks): ...here.
12688         (debug_path): Move...
12689         (jump_thread_path_registry::debug_path): ...here.
12690         (debug_all_paths): Move...
12691         (jump_thread_path_registry::dump): ..here.
12692         (rewire_first_differing_edge): Move...
12693         (jump_thread_path_registry::rewire_first_differing_edge): ...here.
12694         (adjust_paths_after_duplication): Move...
12695         (jump_thread_path_registry::adjust_paths_after_duplication): ...here.
12696         (duplicate_thread_path): Move...
12697         (jump_thread_path_registry::duplicate_thread_path): ..here.
12698         (remove_jump_threads_including): Move...
12699         (jump_thread_path_registry::remove_jump_threads_including): ...here.
12700         (thread_through_all_blocks): Move to...
12701         (jump_thread_path_registry::thread_through_all_blocks): ...here.
12702         (delete_jump_thread_path): Remove.
12703         (register_jump_thread): Move...
12704         (jump_thread_path_registry::register_jump_thread): ...here.
12705         * tree-ssa-threadupdate.h: Move externally facing functions...
12706         (class jump_thread_path_allocator): ...here...
12707         (class jump_thread_path_registry): ...and here.
12708         (thread_through_all_blocks): Remove.
12709         (struct removed_edges): New.
12710         (register_jump_thread): Remove.
12711         (remove_jump_threads_including): Remove.
12712         (delete_jump_thread_path): Remove.
12713         (remove_ctrl_stmt_and_useless_edges): Remove.
12714         (free_dom_edge_info): New prototype.
12715         * tree-vrp.c: Remove x_vr_values hack.
12716         (class vrp_jump_threader_simplifier): New.
12717         (vrp_jump_threader_simplifier::simplify): New.
12718         (vrp_jump_threader::vrp_jump_threader): Adjust method signature.
12719         Remove m_dummy_cond.
12720         Instantiate m_simplifier and m_threader.
12721         (vrp_jump_threader::thread_through_all_blocks): New.
12722         (vrp_jump_threader::simplify_stmt): Remove.
12723         (vrp_jump_threader::after_dom_children): Do not set m_dummy_cond.
12724         Remove x_vr_values hack.
12725         (execute_vrp): Adjust for thread_through_all_blocks being in a
12726         class.
12727
12728 2021-04-30  Christophe Lyon  <christophe.lyon@linaro.org>
12729
12730         * genflags.c (gen_insn): Print failed expansion string.
12731
12732 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
12733
12734         * expr.c (alignment_for_piecewise_move): Call mode_for_size
12735         without limit to MAX_FIXED_MODE_SIZE.
12736
12737 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
12738
12739         PR middle-end/90773
12740         * builtins.c (builtin_memset_gen_str): Don't use return from
12741         simplify_gen_subreg.
12742
12743 2021-04-30  Uroš Bizjak  <ubizjak@gmail.com>
12744
12745         PR target/98060
12746         * config/i386/i386.md (*add<mode>3_carry_0r): New insn pattern.
12747         (*addsi3_carry_zext_0r): Ditto.
12748         (*sub<mode>3_carry_0): Ditto.
12749         (*subsi3_carry_zext_0r): Ditto.
12750         * config/i386/predicates.md (ix86_carry_flag_unset_operator):
12751         New predicate.
12752         * config/i386/i386.c (ix86_rtx_costs) <case PLUS, case MINUS>:
12753         Also consider ix86_carry_flag_unset_operator to calculate
12754         the cost of adc/sbb insn.
12755
12756 2021-04-30  Roman Zhuykov  <zhroma@ispras.ru>
12757
12758         PR rtl-optimization/100225
12759         PR rtl-optimization/84878
12760         * modulo-sched.c (sms_schedule): Use note_stores to skip loops
12761         where we have an instruction which touches (writes) any hard
12762         register from df->regular_block_artificial_uses set.
12763         Allow not-single-set instruction only right before basic block
12764         tail.
12765
12766 2021-04-30  Geng Qi  <gengqi@linux.alibaba.com>
12767
12768         * config/riscv/riscv.opt (march=,mabi=): Negative itself.
12769
12770 2021-04-30  LevyHsu  <admin@levyhsu.com>
12771
12772         * config/riscv/riscv.c (riscv_min_arithmetic_precision): New.
12773         * config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New.
12774         * config/riscv/riscv.md (addv<mode>4, uaddv<mode>4): New.
12775         (subv<mode>4, usubv<mode>4, mulv<mode>4, umulv<mode>4): New.
12776
12777 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
12778
12779         * config.gcc: Merged x86 and x86_64 cpu_type-setting cases.
12780
12781 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
12782
12783         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to...
12784         (ASM_OUTPUT_MAX_SKIP_ALIGN): ... this.  Enclose in do/while(0).
12785         * config/i386/i386.c: Adjust.
12786         * config/i386/i386.md: Adjust.
12787         * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop.
12788         * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
12789         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
12790         * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
12791         * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
12792         * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
12793         * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
12794         * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
12795         * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
12796         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
12797         (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
12798
12799 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
12800
12801         * config/i386/i386-expand.c (ix86_expand_int_compare):
12802         Swap operands of GTU and LEU comparison to emit carry flag comparison.
12803         * config/i386/i386.md (*add<mode>3_carry_0): Change insn
12804         predicate to allow more combine opportunities with memory operands.
12805         (*sub<mode>3_carry_0): Ditto.
12806
12807 2021-04-29  Richard Sandiford  <richard.sandiford@arm.com>
12808
12809         PR rtl-optimization/100303
12810         * rtl-ssa/accesses.cc (function_info::make_use_available): Take a
12811         boolean that indicates whether the use will only be used in
12812         debug instructions.  Treat it in the same way that existing
12813         cross-EBB debug references would be handled if so.
12814         (function_info::make_uses_available): Likewise.
12815         * rtl-ssa/functions.h (function_info::make_uses_available): Update
12816         prototype accordingly.
12817         (function_info::make_uses_available): Likewise.
12818         * fwprop.c (try_fwprop_subst): Update call accordingly.
12819
12820 2021-04-29  Jeff Law  <jlaw@tachyum.com>
12821
12822         * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside
12823         of RTX_CODE guard.
12824
12825 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
12826             Richard Biener  <rguenther@suse.de>
12827
12828         PR target/100312
12829         * config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD)
12830         (IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256)
12831         (IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD)
12832         (IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256)
12833         (IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS
12834         to PURE_ARGS category.
12835         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
12836         Handle PURE_ARGS category.
12837         * config/i386/i386-expand.c (ix86_expand_builtin): Ditto.
12838
12839 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
12840
12841         * configure.ac: Check for the presence of sys/locking.h header and
12842         for whether _LK_LOCK is supported by _locking.
12843         * configure: Regenerate.
12844         * config.in: Likewise.
12845         * gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK.
12846         * gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING.
12847         * system.h: Include <sys/locking.h> if HAVE_SYS_LOCKING_H.
12848
12849 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
12850
12851         * config/i386/predicates.md (fcmov_comparison_operator):
12852         Do not check for trivial FP comparison operator.
12853         <case GEU, case LTU>: Allow CCGZmode.
12854         <case GTU, case LEU>: Do not allow CCCmode.
12855         (ix86_comparison_operator) <case GTU, case LEU>: Allow only CCmode.
12856         (ix86_carry_flag_operator): Match only LTU and UNLT code.
12857         Do not check for trivial FP comparison operator.  Allow CCGZmode.
12858
12859 2021-04-29  Tom de Vries  <tdevries@suse.de>
12860
12861         * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of
12862         fd->loop.step by either step or orig_step.
12863
12864 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
12865
12866         * config/sparc/sparc.c (gen_load_pcrel_sym): Delete.
12867         (load_got_register): Do the PIC dance here.
12868         (sparc_legitimize_tls_address): Simplify.
12869         (sparc_emit_probe_stack_range): Likewise.
12870         (sparc32_initialize_trampoline): Likewise.
12871         (sparc64_initialize_trampoline): Likewise.
12872         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Add @ marker.
12873         (probe_stack_range<P:mode>): Likewise.
12874         (flush<P:mode>): Likewise.
12875         (tgd_hi22<P:mode>): Likewise.
12876         (tgd_lo10<P:mode>): Likewise.
12877         (tgd_add<P:mode>): Likewise.
12878         (tgd_call<P:mode>): Likewise.
12879         (tldm_hi22<P:mode>): Likewise.
12880         (tldm_lo10<P:mode>): Likewise.
12881         (tldm_add<P:mode>): Likewise.
12882         (tldm_call<P:mode>): Likewise.
12883         (tldo_hix22<P:mode>): Likewise.
12884         (tldo_lox10<P:mode>): Likewise.
12885         (tldo_add<P:mode>): Likewise.
12886         (tie_hi22<P:mode>): Likewise.
12887         (tie_lo10<P:mode>): Likewise.
12888         (tie_add<P:mode>): Likewise.
12889         (tle_hix22<P:mode>): Likewise.
12890         (tle_lox10<P:mode>): Likewise.
12891         (stack_protect_setsi): Rename to...
12892         (stack_protect_set32): ...this.
12893         (stack_protect_setdi): Rename to...
12894         (stack_protect_set64): ...this.
12895         (stack_protect_set): Adjust calls to above.
12896         (stack_protect_testsi): Rename to...
12897         (stack_protect_test32): ...this.
12898         (stack_protect_testdi): Rename to...
12899         (stack_protect_test64): ...this.
12900         (stack_protect_test): Adjust calls to above.
12901
12902 2021-04-29  H.J. Lu  <hjl.tools@gmail.com>
12903
12904         PR middle-end/90773
12905         * builtins.c (builtin_memcpy_read_str): Add a dummy argument.
12906         (builtin_strncpy_read_str): Likewise.
12907         (builtin_memset_read_str): Add an argument for the previous RTL
12908         information and generate the new RTL from the previous RTL info.
12909         (builtin_memset_gen_str): Likewise.
12910         * builtins.h (builtin_strncpy_read_str): Update the prototype.
12911         (builtin_memset_read_str): Likewise.
12912         * expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p()
12913         returns true, round up size and alignment to the widest integer
12914         mode for maximum size.
12915         (pieces_addr::adjust): Add a pointer to by_pieces_prev argument
12916         and pass it to m_constfn.
12917         (op_by_pieces_d): Add m_push and m_overlap_op_by_pieces.
12918         (op_by_pieces_d::op_by_pieces_d): Add a bool argument to
12919         initialize m_push.  Initialize m_overlap_op_by_pieces with
12920         targetm.overlap_op_by_pieces_p ().
12921         (op_by_pieces_d::run): Pass the previous RTL information to
12922         pieces_addr::adjust and generate overlapping operations if
12923         m_overlap_op_by_pieces is true.
12924         (PUSHG_P): New.
12925         (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d
12926         change.
12927         (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d
12928         change.
12929         (can_store_by_pieces): Use by_pieces_constfn on constfun.
12930         (store_by_pieces): Use by_pieces_constfn on constfun.  Updated
12931         for op_by_pieces_d change.
12932         (clear_by_pieces_1): Add a dummy argument.
12933         (clear_by_pieces): Updated for op_by_pieces_d change.
12934         (compare_by_pieces_d::compare_by_pieces_d): Likewise.
12935         (string_cst_read_str): Add a dummy argument.
12936         * expr.h (by_pieces_constfn): Add a dummy argument.
12937         (by_pieces_prev): New.
12938         * target.def (overlap_op_by_pieces_p): New target hook.
12939         * config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New.
12940         * doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P.
12941         * doc/tm.texi: Regenerated.
12942
12943 2021-04-29  Richard Biener  <rguenther@suse.de>
12944
12945         PR tree-optimization/100253
12946         * tree-vect-stmts.c (vectorizable_load): Do not assume
12947         element alignment when DR_MISALIGNMENT is -1.
12948         (vectorizable_store): Likewise.
12949
12950 2021-04-29  Jakub Jelinek  <jakub@redhat.com>
12951
12952         PR target/100302
12953         * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
12954         absu_hwi instead of abs_hwi.
12955
12956 2021-04-29  Richard Biener  <rguenther@suse.de>
12957
12958         PR middle-end/38474
12959         * tree-ssa-structalias.c (add_graph_edge): Avoid direct
12960         forwarding when indirect forwarding through ESCAPED
12961         alread happens.
12962
12963 2021-04-29  Tom de Vries  <tdevries@suse.de>
12964
12965         PR target/100232
12966         * internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC)
12967         (expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED)
12968         (expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY)
12969         (expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to.
12970
12971 2021-04-29  Richard Biener  <rguenther@suse.de>
12972
12973         PR tree-optimization/99912
12974         * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New.
12975         (dse_dom_walker::todo): Likewise.
12976         (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the
12977         caller.
12978         (dse_dom_walker::before_dom_children): Remove trivially
12979         dead SSA defs and schedule CFG cleanup if we removed all
12980         PHIs in a block.
12981         (pass_dse::execute): Get TODO as computed by the DOM walker
12982         and return it.  Wipe dominator info earlier.
12983
12984 2021-04-29  Richard Biener  <rguenther@suse.de>
12985
12986         PR ipa/100308
12987         * ipa-prop.c (ipcp_modif_dom_walker::before_dom_children):
12988         Track blocks to cleanup EH in new m_need_eh_cleanup.
12989         (ipcp_modif_dom_walker::cleanup_eh): New.
12990         (ipcp_transform_function): Release dominator info before
12991         doing EH cleanup.
12992
12993 2021-04-29  Martin Sebor  <msebor@redhat.com>
12994
12995         PR middle-end/100250
12996         * attribs.c (attr_access::array_as_string): Avoid dereferencing
12997         a pointer when it's null.
12998
12999 2021-04-29  Martin Sebor  <msebor@redhat.com>
13000
13001         * Makefile.in (OBJS): Add ipa-free-lang-data.o.
13002         * ipa-free-lang-data.cc: New file.
13003         * tree.c: Move pass free_lang_data to file above.
13004          (build_array_type_1): Declare extern.
13005         * tree.h (build_array_type_1): Declare.
13006
13007 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
13008
13009         * config/aarch64/aarch64-simd-builtins.def: Modify comment to
13010         make consistent with updated RTL pattern.
13011         * config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>):
13012         Implement using ss_truncate and us_truncate rather than
13013         unspecs.
13014         * config/aarch64/iterators.md: Remove redundant unspecs and
13015         iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively.
13016
13017 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
13018
13019         * config/aarch64/arm_acle.h (__attribute__): Make intrinsic
13020         attributes consistent with those defined in arm_neon.h.
13021
13022 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
13023
13024         * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic
13025         attributes consistent with those defined in arm_neon.h.
13026
13027 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
13028
13029         * config/aarch64/aarch64-simd-builtins.def: Add
13030         float_trunc_rodd builtin generator macros.
13031         * config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df):
13032         Define.
13033         (aarch64_float_trunc_rodd_lo_v2sf): Define.
13034         (aarch64_float_trunc_rodd_hi_v4sf_le): Define.
13035         (aarch64_float_trunc_rodd_hi_v4sf_be): Define.
13036         (aarch64_float_trunc_rodd_hi_v4sf): Define.
13037         * config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin
13038         instead of inline asm.
13039         (vcvtx_high_f32_f64): Likewise.
13040         (vcvtxd_f32_f64): Likewise.
13041         * config/aarch64/iterators.md: Add FCVTXN unspec.
13042
13043 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
13044
13045         * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin
13046         generator macros.
13047         * config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>):
13048         Define.
13049         * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin
13050         instead of inline asm.
13051         (vqtbx1_u8): Likewise.
13052         (vqtbx1_p8): Likewise.
13053         (vqtbx1q_s8): Likewise.
13054         (vqtbx1q_u8): Likewise.
13055         (vqtbx1q_p8): Likewise.
13056         (vtbx2_s8): Likewise.
13057         (vtbx2_u8): Likewise.
13058         (vtbx2_p8): Likewise.
13059
13060 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
13061
13062         * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin
13063         generator macros.
13064         * config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin
13065         instead of inline asm.
13066         (vqtbl1_s8): Likewise.
13067         (vqtbl1_u8): Likewise.
13068         (vqtbl1q_p8): Likewise.
13069         (vqtbl1q_s8): Likewise.
13070         (vqtbl1q_u8): Likewise.
13071         (vtbl1_s8): Likewise.
13072         (vtbl1_u8): Likewise.
13073         (vtbl1_p8): Likewise.
13074         (vtbl2_s8): Likewise.
13075         (vtbl2_u8): Likewise.
13076         (vtbl2_p8): Likewise.
13077
13078 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
13079
13080         * config/aarch64/aarch64-simd-builtins.def: Add polynomial
13081         ssri_n buitin generator macro.
13082         * config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin
13083         instead of inline asm.
13084         (vsri_n_p16): Likewise.
13085         (vsri_n_p64): Likewise.
13086         (vsriq_n_p8): Likewise.
13087         (vsriq_n_p16): Likewise.
13088         (vsriq_n_p64): Likewise.
13089
13090 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
13091
13092         * config/aarch64/aarch64-simd-builtins.def: Use VALLP mode
13093         iterator for polynomial ssli_n builtin generator macro.
13094         * config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin
13095         instead of inline asm.
13096         (vsli_n_p16): Likewise.
13097         (vsliq_n_p8): Likewise.
13098         (vsliq_n_p16): Likewise.
13099         * config/aarch64/iterators.md: Define VALLP mode iterator.
13100
13101 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
13102
13103         * config/aarch64/aarch64-simd-builtins.def: Use VDQV_L
13104         iterator to generate [su]adalp RTL builtins.
13105         * config/aarch64/aarch64-simd.md: Use VDQV_L iterator in
13106         [su]adalp RTL pattern.
13107         * config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin
13108         instead of inline asm.
13109         (vpadal_u32): Likewise.
13110
13111 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
13112
13113         * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp
13114         builtin generator macros.
13115         * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>):
13116         Define.
13117         * config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin
13118         instead of inline asm.
13119         (vpaddl_s16): Likewise.
13120         (vpaddl_s32): Likewise.
13121         (vpaddl_u8): Likewise.
13122         (vpaddl_u16): Likewise.
13123         (vpaddl_u32): Likewise.
13124         (vpaddlq_s8): Likewise.
13125         (vpaddlq_s16): Likewise.
13126         (vpaddlq_s32): Likewise.
13127         (vpaddlq_u8): Likewise.
13128         (vpaddlq_u16): Likewise.
13129         (vpaddlq_u32): Liwewise.
13130         * config/aarch64/iterators.md: Define [SU]ADDLP unspecs with
13131         appropriate attributes.
13132
13133 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
13134
13135         * config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator
13136         for aarch64_addp<mode> builtin macro generator.
13137         * config/aarch64/aarch64-simd.md: Use VDQ_I iterator in
13138         aarch64_addp<mode> RTL pattern.
13139         * config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin
13140         instead of inline asm.
13141         (vpaddq_s16): Likewise.
13142         (vpaddq_s32): Likewise.
13143         (vpaddq_s64): Likewise.
13144         (vpaddq_u8): Likewise.
13145         (vpaddq_u16): Likewise.
13146         (vpaddq_u32): Likewise.
13147         (vpaddq_u64): Likewise.
13148
13149 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
13150
13151         * config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n
13152         builtin generator macros.
13153         * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_n<mode>):
13154         Define.
13155         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin
13156         instead of inline asm.
13157         (vqdmulh_n_s32): Likewise.
13158         (vqdmulhq_n_s16): Likewise.
13159         (vqdmulhq_n_s32): Likewise.
13160         (vqrdmulh_n_s16): Likewise.
13161         (vqrdmulh_n_s32): Likewise.
13162         (vqrdmulhq_n_s16): Likewise.
13163         (vqrdmulhq_n_s32): Likewise.
13164
13165 2021-04-28  Tobias Burnus  <tobias@codesourcery.com>
13166
13167         * doc/install.texi (--enable-offload-defaulted): Document.
13168
13169 2021-04-28  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
13170
13171         * config/avr/avr-dimode.md: Turn existing patterns into
13172         define_insn_and_split style patterns where the splitter
13173         adds a clobber of the condition code register.  Drop "cc"
13174         attribute.  Add new patterns to match output of
13175         the splitters.
13176         * config/avr/avr-fixed.md: Likewise.
13177         * config/avr/avr.c (cc_reg_rtx): New.
13178         (avr_parallel_insn_from_insns): Adjust insn count
13179         for removal of set of cc0.
13180         (avr_is_casesi_sequence): Likewise.
13181         (avr_casei_sequence_check_operands): Likewise.
13182         (avr_optimize_casesi): Likewise. Also insert
13183         new insns after jump_insn.
13184         (avr_pass_casesi::avr_rest_of_handle_casesi): Adjust
13185         for removal of set of cc0.
13186         (avr_init_expanders): Initialize cc_reg_rtx.
13187         (avr_regno_reg_class): Handle REG_CC.
13188         (cond_string): Remove usage of CC_OVERFLOW_UNUSABLE.
13189         (avr_notice_update_cc): Remove function.
13190         (ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE.
13191         (compare_condition): Adjust for PARALLEL with
13192         REG_CC clobber.
13193         (out_shift_with_cnt): Likewise.
13194         (ashlhi3_out): Likewise.
13195         (ashrhi3_out): Likewise.
13196         (lshrhi3_out): Likewise.
13197         (avr_class_max_nregs): Return single reg for REG_CC.
13198         (avr_compare_pattern): Check for REG_CC instead
13199         of cc0_rtx.
13200         (avr_reorg_remove_redundant_compare): Likewise.
13201         (avr_reorg):Adjust for PARALLEL with REG_CC clobber.
13202         (avr_hard_regno_nregs): Return single reg for REG_CC.
13203         (avr_hard_regno_mode_ok): Allow only CCmode for REG_CC.
13204         (avr_md_asm_adjust): Clobber REG_CC.
13205         (TARGET_HARD_REGNO_NREGS): Define.
13206         (TARGET_CLASS_MAX_NREGS): Define.
13207         (TARGET_MD_ASM_ADJUST): Define.
13208         * config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust
13209         for REG_CC.
13210         (enum reg_class): Add CC_REG class.
13211         (NOTICE_UPDATE_CC): Remove.
13212         (CC_OVERFLOW_UNUSABLE): Remove.
13213         (CC_NO_CARRY): Remove.
13214         * config/avr/avr.md: Turn existing patterns into
13215         define_insn_and_split style patterns where the splitter
13216         adds a clobber of the condition code register.  Drop "cc"
13217         attribute.  Add new patterns to match output of
13218         the splitters.
13219         (sez): Remove unused pattern.
13220
13221 2021-04-28  Richard Earnshaw  <rearnsha@arm.com>
13222
13223         PR target/100311
13224         * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be
13225         used in HImode.
13226
13227 2021-04-28  Richard Sandiford  <richard.sandiford@arm.com>
13228
13229         PR target/100305
13230         * config/aarch64/constraints.md (Utq): Require the address to
13231         be valid for both the element mode and for V2DImode.
13232
13233 2021-04-28  Jakub Jelinek  <jakub@redhat.com>
13234             Tobias Burnus  <tobias@codesourcery.com>
13235
13236         * configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted.
13237         * gcc.c (process_command): New variable.
13238         (driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED,
13239         set it if -foffload is defaulted.
13240         * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
13241         (compile_offload_image): If OFFLOAD_DEFAULTED and
13242         OFFLOAD_TARGET_DEFAULT is in the environment, don't fail
13243         if corresponding mkoffload can't be found.
13244         (compile_images_for_offload_targets): Likewise.  Free and clear
13245         offload_names if no valid offload is found.
13246         * config.in: Regenerate.
13247         * configure: Regenerate.
13248
13249 2021-04-28  Richard Biener  <rguenther@suse.de>
13250
13251         PR tree-optimization/100292
13252         * tree-vect-generic.c (expand_vector_condition): Do not fold
13253         the comparisons.
13254
13255 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
13256
13257         * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New.
13258         * config/rs6000/aix64.opt (m64): New.
13259         (m32): New.
13260
13261 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
13262
13263         * config/vax/vax.c (print_operand_address, vax_address_cost_1)
13264         (index_term_p): Handle ASHIFT too.
13265
13266 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
13267
13268         * config/vax/builtins.md (jbb<ccss>i<mode>): Remove operand #3.
13269         (sync_lock_test_and_set<mode>): Adjust accordingly.
13270         (sync_lock_release<mode>): Likewise.
13271
13272 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
13273
13274         * config/vax/vax-protos.h (adjacent_operands_p): Remove
13275         prototype.
13276         * config/vax/vax.c (adjacent_operands_p): Remove.
13277
13278 2021-04-27  Maciej W. Rozycki  <macro@linux-mips.org>
13279
13280         * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall
13281         through to the non-conditional execution case if getting the
13282         condition for conditional execution has failed.
13283
13284 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
13285
13286         PR middle-end/100284
13287         * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test.
13288         * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather
13289         than asserting on it.
13290
13291 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
13292
13293         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect
13294         with TARGET_AIX_OS.
13295
13296 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
13297
13298         PR target/94177
13299         * calls.c (precompute_register_parameters): Additionally test
13300         targetm.precompute_tls_p to pre-compute argument.
13301         * config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define.
13302         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New.
13303         * target.def (precompute_tls_p): New.
13304         * doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation.
13305         * doc/tm.texi: Regenerated.
13306
13307 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
13308
13309         PR target/100200
13310         * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL
13311         back to HOST_WIDE_INT.
13312
13313 2021-04-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13314
13315         PR target/100106
13316         * simplify-rtx.c (simplify_context::simplify_subreg): Check the
13317         memory alignment for the outer mode.
13318
13319 2021-04-27  H.J. Lu  <hjl.tools@gmail.com>
13320
13321         PR middle-end/90773
13322         * expr.c (op_by_pieces_d::get_usable_mode): New member function.
13323         (op_by_pieces_d::run): Cange a while loop to a do-while loop.
13324
13325 2021-04-27  Alex Coplan  <alex.coplan@arm.com>
13326
13327         PR target/99977
13328         * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen
13329         with negative immediates: ensure we expand cbranchsi4_scratch
13330         correctly and ensure we satisfy its constraints.
13331         * config/arm/sync.md
13332         (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't
13333         attempt to tie two output operands together with constraints;
13334         collapse two alternatives.
13335         (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise.
13336         * config/arm/thumb1.md (cbranchsi4_neg_late): New.
13337
13338 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
13339
13340         PR target/100200
13341         * config/aarch64/predicates.md (aarch64_sub_immediate,
13342         aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL.
13343         * config/aarch64/aarch64.md (casesi, rotl<mode>3): Likewise.
13344         * config/aarch64/aarch64.c (aarch64_print_operand,
13345         aarch64_split_atomic_op, aarch64_expand_subvti): Likewise.
13346
13347 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
13348
13349         PR tree-optimization/100239
13350         * tree-vect-generic.c (lower_vec_perm): Don't accept constant
13351         permutations with all indices from the first zero element as vec_shl.
13352
13353 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
13354
13355         PR rtl-optimization/100254
13356         * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
13357         last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.
13358
13359 2021-04-27  Richard Biener  <rguenther@suse.de>
13360
13361         PR tree-optimization/99912
13362         * passes.def: Add comment about new TODO_remove_unused_locals.
13363         * tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals
13364         at start.
13365
13366 2021-04-27  Richard Biener  <rguenther@suse.de>
13367
13368         PR tree-optimization/99912
13369         * passes.def (pass_all_optimizations): Add pass_dse before
13370         the first pass_dce, move the first pass_dse before the
13371         pass_dce following pass_pre.
13372
13373 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
13374
13375         PR tree-optimization/95527
13376         * generic-match-head.c: Include tm.h.
13377         * gimple-match-head.c: Include tm.h.
13378         * match.pd (CLZ == INTEGER_CST): Don't use
13379         #ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO
13380         if clz == CFN_CLZ.  Add missing val declaration.
13381         (CTZ cmp CST): New simplifications.
13382
13383 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
13384
13385         PR tree-optimization/96696
13386         * expr.c (expand_expr_divmod): New function.
13387         (expand_expr_real_2) <case TRUNC_DIV_EXPR>: Use it for truncations and
13388         divisions.  Formatting fixes.
13389         <case MULT_EXPR>: Optimize x / y * y as x - x % y if the latter is
13390         cheaper.
13391
13392 2021-04-27  Martin Jambor  <mjambor@suse.cz>
13393
13394         PR ipa/99951
13395         * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
13396         If removing a call statement LHS SSA name, release it.
13397
13398 2021-04-27  Richard Earnshaw  <rearnsha@arm.com>
13399
13400         PR target/100236
13401         * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM
13402         is valid before including it in the mask.
13403
13404 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
13405
13406         PR target/100270
13407         * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle
13408         SVE attributes.
13409
13410 2021-04-27  Richard Biener  <rguenther@suse.de>
13411
13412         PR tree-optimization/100051
13413         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add
13414         disambiguator based on access size vs. decl size.
13415
13416 2021-04-27  Richard Biener  <rguenther@suse.de>
13417
13418         PR tree-optimization/100278
13419         * tree-ssa-pre.c (compute_avail): Give up when we cannot
13420         adjust TBAA beacuse of mismatching bases.
13421
13422 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
13423
13424         PR target/99405
13425         * config/i386/i386.md (*<insn><mode>3_mask, *<insn><mode>3_mask_1):
13426         For any_rotate define_insn_split and following splitters, use
13427         SWI iterator instead of SWI48.
13428
13429 2021-04-27  Richard Biener  <rguenther@suse.de>
13430
13431         PR tree-optimization/99776
13432         * match.pd (bit_field_ref (ctor)): Relax element extract
13433         type compatibility checks.
13434
13435 2021-04-27  Cui,Lili  <lili.cui@intel.com>
13436
13437         * common/config/i386/i386-common.c (processor_names):
13438         Sync processor_names with processor_type.
13439         * config/i386/i386-options.c (processor_cost_table):
13440         Sync processor_cost_table with processor_type.
13441
13442 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
13443
13444         * value-range.cc (irange::irange_set_1bit_anti_range): Add assert.
13445         (irange::set): Call irange_set_1bit_anti_range for handling all
13446         1-bit ranges.  Fall through on ~[MIN,MAX].
13447
13448 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
13449
13450         * value-range.cc (irange::legacy_num_pairs): Remove.
13451         (irange::invert): Change gcc_assert to gcc_checking_assert.
13452         * value-range.h (irange::num_pairs): Adjust for a cached
13453         num_pairs().  Also, rename all gcc_assert's to
13454         gcc_checking_assert's.
13455
13456 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
13457
13458         * value-range.cc (irange::operator=): Set m_kind.
13459         (irange::copy_to_legacy): Handle varying and undefined sources
13460         as a legacy copy since they can be easily copied.
13461         (irange::irange_set): Set m_kind.
13462         (irange::irange_set_anti_range): Same.
13463         (irange::set): Rename normalize_min_max to normalize_kind.
13464         (irange::verify_range): Adjust for multi-ranges having the
13465         m_kind field set.
13466         (irange::irange_union): Set m_kind.
13467         (irange::irange_intersect): Same.
13468         (irange::invert): Same.
13469         * value-range.h (irange::kind): Always return m_kind.
13470         (irange::varying_p): Rename to...
13471         (irange::varying_comptaible_p): ...this.
13472         (irange::undefined_p): Only look at m_kind.
13473         (irange::irange): Always set VR_UNDEFINED if applicable.
13474         (irange::set_undefined): Always set VR_UNDEFINED.
13475         (irange::set_varying): Always set m_kind to VR_VARYING.
13476         (irange::normalize_min_max): Rename to...
13477         (irange::normalize_kind): ...this.
13478
13479 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
13480
13481         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
13482         Adjust for constant_p including varying_p.
13483         * tree-vrp.c (vrp_prop::finalize): Same.
13484         (determine_value_range): Same.
13485         * vr-values.c (vr_values::range_of_expr): Same.
13486         * value-range.cc (irange::symbolic_p): Do not check varying_p.
13487         (irange::constant_p): Same.
13488
13489 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
13490
13491         * value-range.cc (irange::legacy_lower_bound): Replace
13492           !undefined_p check with num_ranges > 0.
13493         (irange::legacy_upper_bound): Same.
13494         * value-range.h (irange::type): Same.
13495         (irange::lower_bound): Same.
13496         (irange::upper_bound): Same.
13497
13498 2021-04-26  Richard Biener  <rguenther@suse.de>
13499
13500         PR tree-optimization/99956
13501         * gimple-loop-interchange.cc (compute_access_stride):
13502         Try instantiating the access in a shallower loop nest
13503         if instantiating failed.
13504         (compute_access_strides): Pass adjustable loop_nest
13505         to compute_access_stride.
13506
13507 2021-04-26  Christophe Lyon  <christophe.lyon@linaro.org>
13508
13509         * doc/sourcebuild.texi (arm_cmse_hw): Document.
13510
13511 2021-04-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13512
13513         * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF.
13514
13515 2021-04-26  Thomas Schwinge  <thomas@codesourcery.com>
13516             Nathan Sidwell  <nathan@codesourcery.com>
13517             Tom de Vries  <vries@codesourcery.com>
13518             Julian Brown  <julian@codesourcery.com>
13519             Kwok Cheung Yeung  <kcy@codesourcery.com>
13520
13521         * omp-offload.c (oacc_validate_dims): Implement
13522         '-Wopenacc-parallelism'.
13523         * doc/invoke.texi (-Wopenacc-parallelism): Document.
13524
13525 2021-04-26  Richard Biener  <rguenther@suse.de>
13526
13527         * tree-cfg.h (gimplify_build1): Remove.
13528         (gimplify_build2): Likewise.
13529         (gimplify_build3): Likewise.
13530         * tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c.
13531         (gimplify_build2): Likewise.
13532         (gimplify_build3): Likewise.
13533         * tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c.
13534         Modernize.
13535         (gimplify_build2): Likewise.
13536         (gimplify_build3): Likewise.
13537         (tree_vec_extract): Use resimplify with following SSA edges.
13538         (expand_vector_parallel): Avoid passing NULL size/bitpos
13539         to tree_vec_extract.
13540         * expr.c (store_constructor): Deal with zero-element CTORs.
13541         * match.pd (bit_field_ref <vector CTOR>): Make sure to
13542         produce vector constants when possible.
13543
13544 2021-04-26  Richard Biener  <rguenther@suse.de>
13545
13546         * tree-complex.c: Include gimple-fold.h.
13547         (expand_complex_addition): Use gimple_build.
13548         (expand_complex_multiplication_components): Likewise.
13549         (expand_complex_multiplication): Likewise.
13550         (expand_complex_div_straight): Likewise.
13551         (expand_complex_div_wide): Likewise.
13552         (expand_complex_division): Likewise.
13553         (expand_complex_conjugate): Likewise.
13554         (expand_complex_comparison): Likewise.
13555
13556 2021-04-26  Richard Biener  <rguenther@suse.de>
13557
13558         * tree-ssa-phiopt.c (two_value_replacement): Remove use
13559         of legacy gimplify_buildN API.
13560
13561 2021-04-26  Richard Biener  <rguenther@suse.de>
13562
13563         PR tree-optimization/99473
13564         * tree-ssa-phiopt.c (cond_store_replacement): Handle all
13565         stores.
13566
13567 2021-04-26  Richard Biener  <rguenther@suse.de>
13568
13569         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin):
13570         Use replace_call_with_value.
13571
13572 2021-04-26  Richard Biener  <rguenther@suse.de>
13573
13574         * tree-ssa-propagate.h (valid_gimple_rhs_p): Remove.
13575         (update_gimple_call): Likewise.
13576         (update_call_from_tree): Likewise.
13577         * tree-ssa-propagate.c (valid_gimple_rhs_p): Remove.
13578         (valid_gimple_call_p): Likewise.
13579         (move_ssa_defining_stmt_for_defs): Likewise.
13580         (finish_update_gimple_call): Likewise.
13581         (update_gimple_call): Likewise.
13582         (update_call_from_tree): Likewise.
13583         (propagate_tree_value_into_stmt): Use replace_call_with_value.
13584         * gimple-fold.h (update_gimple_call): Declare.
13585         * gimple-fold.c (valid_gimple_rhs_p): Move here from
13586         tree-ssa-propagate.c.
13587         (update_gimple_call): Likewise.
13588         (valid_gimple_call_p): Likewise.
13589         (finish_update_gimple_call): Likewise, and simplify.
13590         (gimplify_and_update_call_from_tree): Implement
13591         update_call_from_tree functionality, avoid excessive
13592         push/pop_gimplify_context.
13593         (gimple_fold_builtin): Use only gimplify_and_update_call_from_tree.
13594         (gimple_fold_call): Likewise.
13595         * gimple-ssa-sprintf.c (try_substitute_return_value): Likewise.
13596         * tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise.
13597         (pass_fold_builtins::execute): Likewise.
13598         (optimize_stack_restore): Use replace_call_with_value.
13599         * tree-cfg.c (fold_loop_internal_call): Likewise.
13600         * tree-ssa-dce.c (maybe_optimize_arith_overflow): Use
13601         only gimplify_and_update_call_from_tree.
13602         * tree-ssa-strlen.c (handle_builtin_strlen): Likewise.
13603         (handle_builtin_strchr): Likewise.
13604         * tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h.
13605
13606 2021-04-26  Jakub Jelinek  <jakub@redhat.com>
13607
13608         PR debug/100255
13609         * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
13610         vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
13611         register keywords.
13612
13613 2021-04-25  liuhongt  <hongtao.liu@intel.com>
13614
13615         PR target/98911
13616         * config/i386/i386-builtin.def (BDESC): Change the icode of
13617         the following builtins to CODE_FOR_nothing.
13618         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold
13619         IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128,
13620         IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ,
13621         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
13622         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
13623         IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128,
13624         IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ,
13625         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
13626         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256.
13627         * config/i386/sse.md (avx2_eq<mode>3): Deleted.
13628         (sse2_eq<mode>3): Ditto.
13629         (sse4_1_eqv2di3): Ditto.
13630         (sse2_gt<mode>3): Rename to ..
13631         (*sse2_gt<mode>3): .. this.
13632
13633 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
13634
13635         Revert:
13636         2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
13637
13638         PR target/100152
13639         * config/darwin.c (darwin_binds_local_p): Assume that any
13640         public symbol might be interposed for PIC code. Update function
13641         header comment to reflect current Darwin capability.
13642
13643 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
13644
13645         PR target/100152
13646         * config/darwin.c (darwin_binds_local_p): Assume that any
13647         public symbol might be interposed for PIC code. Update function
13648         header comment to reflect current Darwin capability.
13649
13650 2021-04-24  Richard Sandiford  <richard.sandiford@arm.com>
13651
13652         * doc/sourcebuild.texi: Document no-opts and any-opts target
13653         selectors.
13654
13655 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
13656
13657         * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm.
13658
13659 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
13660
13661         * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.
13662
13663 2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
13664
13665         PR target/100041
13666         * config/i386/i386-options.c (ix86_option_override_internal):
13667         Error out when -m96bit-long-double is used with 64bit targets.
13668         * config/i386/i386.md (*pushxf_rounded): Remove pattern.
13669
13670 2021-04-23  Martin Liska  <mliska@suse.cz>
13671
13672         * lto-wrapper.c: Remove FIXME about usage of
13673         hardware_concurrency. The function is not on par with
13674         what we have now.
13675
13676 2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
13677
13678         PR target/100182
13679         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
13680         Copy operand 3 to operand 4.  Use sse_reg_operand
13681         as operand 3 predicate.
13682         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
13683         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
13684         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
13685         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
13686         Copy operand 1 to operand 0.
13687         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
13688         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
13689         (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.
13690
13691 2021-04-23  Alex Coplan  <alex.coplan@arm.com>
13692
13693         PR rtl-optimization/100230
13694         * early-remat.c (early_remat::sort_candidates): Use delete[]
13695         instead of delete for array allocated with new[].
13696
13697 2021-04-23  Richard Biener  <rguenther@suse.de>
13698
13699         * genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing.
13700         (capture_info::capture_info): Likewise.
13701         (capture_info::walk_match): Likewise.
13702         (expr::gen_transform): Likewise.
13703         (dt_simplify::gen_1): Likewise.
13704         * gimple-match-head.c (maybe_resimplify_conditional_op):
13705         Remove VEC_COND_EXPR special-casing.
13706         (gimple_simplify): Likewise.
13707         * gimple.c (gimple_could_trap_p_1): Adjust.
13708         * tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR
13709         to participate in PRE.
13710
13711 2021-04-23  Richard Biener  <rguenther@suse.de>
13712
13713         * cfganal.c (connect_infinite_loops_to_exit): First call
13714         add_noreturn_fake_exit_edges.
13715         * ipa-sra.c (process_scan_results): Do not call the now redundant
13716         add_noreturn_fake_exit_edges.
13717         * predict.c (tree_estimate_probability): Likewise.
13718         (rebuild_frequencies): Likewise.
13719         * store-motion.c (one_store_motion_pass): Likewise.
13720
13721 2021-04-23  Richard Biener  <rguenther@suse.de>
13722
13723         PR tree-optimization/100222
13724         * predict.c (pass_profile::execute): Remove redundant call to
13725         mark_irreducible_loops.
13726         (report_predictor_hitrates): Likewise.
13727
13728 2021-04-23  Richard Biener  <rguenther@suse.de>
13729
13730         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
13731         valid_gimple_rhs_p by instead gimplifying to one.
13732
13733 2021-04-23  Richard Biener  <rguenther@suse.de>
13734
13735         PR tree-optimization/99971
13736         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
13737         Always use TBAA for loads.
13738
13739 2021-04-23  liuhongt  <hongtao.liu@intel.com>
13740
13741         PR target/100093
13742         * config/i386/i386-options.c (ix86_option_override_internal):
13743         Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags
13744         when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled
13745         by target attribute.
13746
13747 2021-04-23  David Edelsohn  <dje.gcc@gmail.com>
13748
13749         * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to
13750         DWARF2_DEBUG.
13751         * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same.
13752
13753 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
13754
13755         * config.gcc (powerpc-ibm-aix6.*): Remove.
13756         * config/rs6000/aix61.h: Delete.
13757
13758 2021-04-22  Martin Liska  <mliska@suse.cz>
13759
13760         PR testsuite/100159
13761         PR testsuite/100192
13762         * builtins.c (expand_builtin): Fix typos and missing comments.
13763         * dwarf2out.c (gen_subprogram_die): Likewise.
13764         (gen_struct_or_union_type_die): Likewise.
13765
13766 2021-04-22  Uroš Bizjak  <ubizjak@gmail.com>
13767
13768         PR target/100119
13769         * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse):
13770         Remove the sign with FE_DOWNWARD, where x - x = -0.0.
13771
13772 2021-04-21  Iain Sandoe  <iain@sandoe.co.uk>
13773
13774         * config/i386/darwin.h (TARGET_64BIT): Remove definition
13775         based on TARGET_ISA_64BIT.
13776         (TARGET_64BIT_P): Remove definition based on
13777         TARGET_ISA_64BIT_P().
13778
13779 2021-04-21  Martin Liska  <mliska@suse.cz>
13780
13781         Revert:
13782         2021-04-21  Martin Liska  <mliska@suse.cz>
13783
13784         * lto-wrapper.c (cpuset_popcount): Remove.
13785         (init_num_threads): Remove and use hardware_concurrency.
13786
13787 2021-04-21  Martin Liska  <mliska@suse.cz>
13788
13789         PR jit/98615
13790         * main.c (main): Call toplev::finalize in CHECKING_P mode.
13791         * ipa-modref.c (ipa_modref_c_finalize): summaries are NULL
13792         when incremental LTO linking happens.
13793
13794 2021-04-21  Martin Liska  <mliska@suse.cz>
13795
13796         * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the
13797         makeserver cannot be detected, then use -flto=N fallback.
13798
13799 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
13800
13801         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling,
13802         default to yes for aarch64-linux-gnu.
13803         * configure: Regenerate.
13804
13805 2021-04-21  Martin Liska  <mliska@suse.cz>
13806
13807         * lto-wrapper.c (cpuset_popcount): Remove.
13808         (init_num_threads): Remove and use hardware_concurrency.
13809
13810 2021-04-21  Martin Liska  <mliska@suse.cz>
13811
13812         * config/i386/i386.c: Remove superfluous || TARGET_MACHO
13813         which remains to be '(... || 0)' and clang complains about it.
13814         * dwarf2out.c (AT_vms_delta): Declare conditionally.
13815         (add_AT_vms_delta): Likewise.
13816         * tree.c (fld_simplified_type): Use rather more common pattern
13817         for disabling of something (#if 0).
13818         (get_tree_code_name): Likewise.
13819         (verify_type_variant): Likewise.
13820
13821 2021-04-21  Martin Liska  <mliska@suse.cz>
13822
13823         * config/i386/i386-expand.c (decide_alignment): Use newly named
13824         macro TARGET_CPU_P.
13825         * config/i386/i386.c (ix86_decompose_address): Likewise.
13826         (ix86_address_cost): Likewise.
13827         (ix86_lea_outperforms): Likewise.
13828         (ix86_avoid_lea_for_addr): Likewise.
13829         (ix86_add_stmt_cost): Likewise.
13830         * config/i386/i386.h (TARGET_*): Remove.
13831         (TARGET_CPU_P): New macro.
13832         * config/i386/i386.md: Use newly named macro TARGET_CPU_P.
13833         * config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise.
13834         (swap_top_of_ready_list): Likewise.
13835         (ix86_atom_sched_reorder): Likewise.
13836         * config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise.
13837         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise.
13838
13839 2021-04-21  Martin Liska  <mliska@suse.cz>
13840
13841         * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P):
13842         Define.
13843         (SET_TARGET_NO_SAHF): Likewise.
13844         (TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise.
13845         (SET_TARGET_PREFETCH_SSE): Likewise.
13846         (TARGET_EXPLICIT_NO_TUNE_P): Likewise.
13847         (SET_TARGET_NO_TUNE): Likewise.
13848         (TARGET_EXPLICIT_NO_80387_P): Likewise.
13849         (SET_TARGET_NO_80387): Likewise.
13850         (DEF_PTA): New.
13851         * config/i386/i386.h (TARGET_*): Remove.
13852         * opth-gen.awk: Generate new used macros.
13853
13854 2021-04-21  Martin Liska  <mliska@suse.cz>
13855
13856         * config/i386/i386.h (PTA_*): Remove.
13857         (enum pta_flag): New.
13858         (DEF_PTA): Generate PTA_* values from i386-isa.def.
13859         * config/i386/i386-isa.def: New file.
13860
13861 2021-04-21  Alex Coplan  <alex.coplan@arm.com>
13862
13863         PR target/99988
13864         * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New.
13865         (rest_of_insert_bti): Avoid inserting duplicate bti j insns for
13866         jump table targets.
13867
13868 2021-04-21  H.J. Lu  <hjl.tools@gmail.com>
13869
13870         * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and
13871         x86_64-*-* targets.
13872         * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET):
13873         New.
13874         (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise.
13875         (ix86_handle_option): Handle -mmwait.
13876         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
13877         Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on
13878         __builtin_ia32_monitor and __builtin_ia32_mwait.
13879         * config/i386/i386-options.c (isa2_opts): Add -mmwait.
13880         (ix86_valid_target_attribute_inner_p): Likewise.
13881         (ix86_option_override_internal): Enable mwait/monitor
13882         instructions for -msse3.
13883         * config/i386/i386.h (TARGET_MWAIT): New.
13884         (TARGET_MWAIT_P): Likewise.
13885         * config/i386/i386.opt: Add -mmwait.
13886         * config/i386/mwaitintrin.h: New file.
13887         * config/i386/pmmintrin.h: Include <mwaitintrin.h>.
13888         * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with
13889         TARGET_MWAIT.
13890         (@sse3_monitor_<mode>): Likewise.
13891         * config/i386/x86gprintrin.h: Include <mwaitintrin.h>.
13892         * doc/extend.texi: Document mwait target attribute.
13893         * doc/invoke.texi: Document -mmwait.
13894
13895 2021-04-21  Martin Liska  <mliska@suse.cz>
13896
13897         * config/i386/i386-options.c (DEF_ENUM): Remove it.
13898         * config/i386/i386-opts.h (DEF_ENUM): Likewise.
13899         * config/i386/stringop.def (DEF_ENUM): Likewise.
13900
13901 2021-04-21  Martin Liska  <mliska@suse.cz>
13902
13903         * tree-cfg.c (gimple_verify_flow_info): Use qD instead
13904         of print_generic_expr.
13905
13906 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
13907
13908         PR rtl-optimization/100148
13909         * cprop.c (constprop_register): Use next_nondebug_insn instead of
13910         NEXT_INSN.
13911
13912 2021-04-21  Martin Liska  <mliska@suse.cz>
13913
13914         PR ipa/98815
13915         * cgraphunit.c (cgraph_node::analyze): Remove duplicate
13916         free_dominance_info calls.
13917
13918 2021-04-21  Richard Biener  <rguenther@suse.de>
13919
13920         * gimple-fold.c (maybe_fold_reference): Remove is_lhs
13921         parameter (and assume it to be false).
13922         (fold_gimple_assign): Adjust, remove all callers of
13923         maybe_fold_reference calling it with is_lhs true.
13924         (gimple_fold_call): Likewise.
13925         (fold_stmt_1): Likewise.
13926
13927 2021-04-21  Richard Biener  <rguenther@suse.de>
13928
13929         * fold-const.c (pedantic_non_lvalue_loc): Remove.
13930         (fold_binary_loc): Adjust.
13931         (fold_ternary_loc): Likewise.
13932
13933 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
13934
13935         PR middle-end/100130
13936         * varasm.c (get_block_for_decl): Make sure that any use of the
13937         retain attribute matches the section's retain flag.
13938         (switch_to_section): Check for retain mismatches even when
13939         changing sections, but do not warn if the given decl is the
13940         section's named.decl.
13941         (output_object_block): Pass the first decl in the block (if any)
13942         to switch_to_section.
13943
13944 2021-04-20  H.J. Lu  <hjl.tools@gmail.com>
13945
13946         * config/i386/i386-c.c (ix86_target_macros_internal): Define
13947         __CRC32__ for -mcrc32.
13948         * config/i386/i386-options.c (ix86_option_override_internal):
13949         Enable crc32 instruction for -msse4.2.
13950         * config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2
13951         check.
13952         (sse4_2_crc32di): Likewise.
13953         * config/i386/ia32intrin.h: Use crc32 target option for CRC32
13954         intrinsics.
13955
13956 2021-04-20  Segher Boessenkool  <segher@kernel.crashing.org>
13957
13958         PR target/100108
13959         * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
13960         OPTION_MASK_ISEL.
13961
13962 2021-04-20  Martin Liska  <mliska@suse.cz>
13963
13964         * doc/invoke.texi: Fix typo.
13965         * params.opt: Likewise.
13966
13967 2021-04-20  Martin Liska  <mliska@suse.cz>
13968
13969         * doc/invoke.texi: Document new param.
13970
13971 2021-04-19  Andrew MacLeod  <amacleod@redhat.com>
13972
13973         PR tree-optimization/100081
13974         * gimple-range-cache.h (ranger_cache): Inherit from gori_compute
13975         rather than gori_compute_cache.
13976         * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file.
13977         (range_def_chain::m_logical_depth): New member.
13978         (range_def_chain::range_def_chain): Initialize m_logical_depth.
13979         (range_def_chain::get_def_chain): Don't build defchains through more
13980         than LOGICAL_LIMIT logical expressions.
13981         * params.opt (param_ranger_logical_depth): New.
13982
13983 2021-04-19  Richard Earnshaw  <rearnsha@arm.com>
13984
13985         PR target/100067
13986         * config/arm/arm.c (arm_configure_build_target): Do not strip
13987         extended FPU/SIMD feature bits from the target ISA when -mfpu
13988         is specified (partial revert of r11-8168).
13989
13990 2021-04-19  Thomas Schwinge  <thomas@codesourcery.com>
13991
13992         * params.opt (-param=openacc-kernels=): Add.
13993         * omp-oacc-kernels-decompose.cc
13994         (pass_omp_oacc_kernels_decompose::gate): Use it.
13995         * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move...
13996         (--param): ... here, 'openacc-kernels'.
13997
13998 2021-04-19  Martin Liska  <mliska@suse.cz>
13999
14000         PR c/100143
14001         * gengtype.c (finish_root_table): Align function arguments
14002         in between declaration and definition.
14003
14004 2021-04-19  Eric Botcazou  <ebotcazou@adacore.com>
14005
14006         * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
14007         frames larger than the SEH maximum frame size.
14008
14009 2021-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
14010
14011         PR rtl-optimization/99927
14012         * combine.c (distribute_notes) [REG_UNUSED]: If the register already
14013         is dead, just drop it.
14014
14015 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
14016
14017         PR d/99914
14018         * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
14019         * doc/tm.texi: Regenerate.
14020         * doc/tm.texi.in (D language and ABI): Add @hook for
14021         TARGET_D_TEMPLATES_ALWAYS_COMDAT.
14022
14023 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
14024
14025         * config/darwin-d.c (darwin_d_handle_target_object_format): New
14026         function.
14027         (darwin_d_register_target_info): New function.
14028         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
14029         * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New
14030         function.
14031         (dragonfly_d_register_target_info): New function.
14032         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
14033         * config/freebsd-d.c (freebsd_d_handle_target_object_format): New
14034         function.
14035         (freebsd_d_register_target_info): New function.
14036         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
14037         * config/glibc-d.c (glibc_d_handle_target_object_format): New
14038         function.
14039         (glibc_d_register_target_info): New function.
14040         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
14041         * config/i386/i386-d.c (ix86_d_handle_target_object_format): New
14042         function.
14043         (ix86_d_register_target_info): Add ix86_d_handle_target_object_format
14044         as handler for objectFormat key.
14045         * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New
14046         function.
14047         (winnt_d_register_target_info): New function.
14048         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
14049         * config/netbsd-d.c (netbsd_d_handle_target_object_format): New
14050         function.
14051         (netbsd_d_register_target_info): New function.
14052         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
14053         * config/openbsd-d.c (openbsd_d_handle_target_object_format): New
14054         function.
14055         (openbsd_d_register_target_info): New function.
14056         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
14057         * config/pa/pa-d.c (pa_d_handle_target_object_format): New function.
14058         (pa_d_register_target_info): Add pa_d_handle_target_object_format as
14059         handler for objectFormat key.
14060         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New
14061         function.
14062         (rs6000_d_register_target_info): Add
14063         rs6000_d_handle_target_object_format as handler for objectFormat key.
14064         * config/sol2-d.c (solaris_d_handle_target_object_format): New
14065         function.
14066         (solaris_d_register_target_info): New function.
14067         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
14068
14069 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
14070
14071         PR target/91710
14072         * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
14073         abi_break argument from bool * to unsigned *, store there the pre-GCC 9
14074         alignment.
14075         (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers.
14076         (aarch64_function_arg_regno_p): Likewise.  Only emit -Wpsabi note if
14077         the old and new alignment after applying MIN/MAX to it is different.
14078
14079 2021-04-16  Tamar Christina  <tamar.christina@arm.com>
14080
14081         PR target/100048
14082         * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
14083         * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
14084         TRN optab.
14085         * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
14086
14087 2021-04-16  Bill Schmidt  <wschmidt@linux.ibm.com>
14088
14089         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
14090         this section and its subsections.
14091
14092 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
14093
14094         PR target/100075
14095         * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New
14096         define_insn patterns.
14097
14098 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
14099
14100         PR rtl-optimization/98689
14101         * reg-notes.def (UNTYPED_CALL): New note.
14102         * combine.c (distribute_notes): Handle it.
14103         * emit-rtl.c (try_split): Likewise.
14104         * rtlanal.c (rtx_properties::try_to_add_insn): Likewise.  Assume
14105         that calls with the note implicitly set all return value registers.
14106         * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL
14107         to untyped_calls.
14108
14109 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
14110
14111         PR rtl-optimization/99596
14112         * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global
14113         register accesses for const calls.  Assume that pure functions
14114         can only read from global registers.  Ignore cases in which
14115         the stack pointer has been marked global.
14116
14117 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
14118
14119         PR target/99767
14120         * tree-vect-loop.c (vect_transform_loop): Don't remove just
14121         dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
14122         them by their last argument.
14123
14124 2021-04-15  Martin Liska  <mliska@suse.cz>
14125
14126         * doc/invoke.texi: Other params don't use it, remove it.
14127
14128 2021-04-15  Richard Biener  <rguenther@suse.de>
14129
14130         * gimple-builder.h: Add deprecation note.
14131
14132 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
14133
14134         PR c++/98852
14135         * attribs.h (restrict_type_identity_attributes_to): Declare.
14136         * attribs.c (restrict_type_identity_attributes_to): New function.
14137
14138 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
14139
14140         PR c/98852
14141         * attribs.h (affects_type_identity_attributes): Declare.
14142         * attribs.c (remove_attributes_matching): New function.
14143         (affects_type_identity_attributes): Likewise.
14144
14145 2021-04-15  Jakub Jelinek  <jakub@redhat.com>
14146
14147         PR target/100056
14148         * config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3):
14149         Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with
14150         ZERO_EXTEND, SIGN_EXTEND or AND.
14151
14152 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
14153
14154         PR rtl-optimization/99929
14155         * rtl.h (same_vector_encodings_p): New function.
14156         * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
14157         * cselib.c (rtx_equal_for_cselib_1): Likewise.
14158         * jump.c (rtx_renumbered_equal_p): Likewise.
14159         * lra-constraints.c (operands_match_p): Likewise.
14160         * reload.c (operands_match_p): Likewise.
14161         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.
14162
14163 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
14164
14165         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print
14166         more information about variable-length CONST_VECTORs.
14167
14168 2021-04-14  Vladimir N. Makarov  <vmakarov@redhat.com>
14169
14170         PR rtl-optimization/100066
14171         * lra-constraints.c (split_reg): Check paradoxical_subreg_p for
14172         ordered modes when choosing splitting mode for hard reg.
14173
14174 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
14175
14176         PR target/99246
14177         * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
14178         New function.
14179         (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
14180
14181 2021-04-14  Andreas Krebbel  <krebbel@linux.ibm.com>
14182
14183         * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros
14184         for mask operand types.
14185         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
14186         (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate
14187         operand.
14188         (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the
14189         immediate operand.
14190         * config/s390/s390.c (s390_const_operand_ok): Check the new
14191         operand types and generate a list of valid values.
14192
14193 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
14194
14195         * doc/tm.texi: Regenerate.
14196         * doc/tm.texi.in (D language and ABI): Add @hook for
14197         TARGET_D_REGISTER_OS_TARGET_INFO.
14198
14199 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
14200
14201         * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New
14202         function.
14203         (aarch64_d_register_target_info): New function.
14204         * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info):
14205         Declare.
14206         * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO):
14207         Define.
14208         * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function.
14209         (arm_d_register_target_info): New function.
14210         * config/arm/arm-protos.h (arm_d_register_target_info): Declare.
14211         * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
14212         * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function.
14213         (ix86_d_register_target_info): New function.
14214         * config/i386/i386-protos.h (ix86_d_register_target_info): Declare.
14215         * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
14216         * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function.
14217         (mips_d_register_target_info): New function.
14218         * config/mips/mips-protos.h (mips_d_register_target_info): Declare.
14219         * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
14220         * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function.
14221         (pa_d_register_target_info): New function.
14222         * config/pa/pa-protos.h (pa_d_register_target_info): Declare.
14223         * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
14224         * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New
14225         function.
14226         (riscv_d_register_target_info): New function.
14227         * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare.
14228         * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
14229         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New
14230         function.
14231         (rs6000_d_register_target_info): New function.
14232         * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info):
14233         Declare.
14234         * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
14235         * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function.
14236         (s390_d_register_target_info): New function.
14237         * config/s390/s390-protos.h (s390_d_register_target_info): Declare.
14238         * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
14239         * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New
14240         function.
14241         (sparc_d_register_target_info): New function.
14242         * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare.
14243         * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
14244         * doc/tm.texi: Regenerate.
14245         * doc/tm.texi.in (D language and ABI): Add @hook for
14246         TARGET_D_REGISTER_CPU_TARGET_INFO.
14247
14248 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
14249
14250         * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function.
14251         * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare.
14252         * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define.
14253         * doc/tm.texi: Regenerate.
14254         * doc/tm.texi.in (D language and ABI): Add @hook for
14255         TARGET_D_HAS_STDCALL_CONVENTION.
14256
14257 2021-04-14  Richard Biener  <rguenther@suse.de>
14258
14259         * tree-cfg.c (verify_gimple_assign_ternary): Verify that
14260         VEC_COND_EXPRs have a gimple_val condition.
14261         * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR
14262         can no longer have a GENERIC condition.
14263
14264 2021-04-14  Richard Earnshaw  <rearnsha@arm.com>
14265
14266         PR target/100067
14267         * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits
14268         from the isa_delta when -mfpu has been used.
14269         (arm_options_perform_arch_sanity_checks): It's the architecture that
14270         lacks an FPU not the processor.
14271
14272 2021-04-13  Richard Biener  <rguenther@suse.de>
14273
14274         PR tree-optimization/100053
14275         * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
14276         not use optimistic dominance queries for backedges to validate
14277         predicated values.
14278         (dominated_by_p_w_unex): Add parameter to ignore executable
14279         state on backedges.
14280         (rpo_elim::eliminate_avail): Adjust.
14281
14282 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
14283
14284         PR target/100028
14285         * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr,
14286         *aarch64_bfxilsi_extrdi): New define_insn patterns.
14287
14288 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
14289
14290         PR target/99648
14291         * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P
14292         outermode, return NULL if the result doesn't encode back to the
14293         original byte sequence.
14294         (simplify_gen_subreg): Don't create SUBREGs from constants to
14295         MODE_COMPOSITE_P outermode.
14296
14297 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
14298
14299         PR rtl-optimization/99905
14300         * combine.c (expand_compound_operation): If pos + len > modewidth,
14301         perform the right shift by pos in inner_mode and then convert to mode,
14302         instead of trying to simplify a shift of rtx with inner_mode by pos
14303         as if it was a shift in mode.
14304
14305 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
14306
14307         PR debug/99830
14308         * combine.c (simplify_and_const_int_1): Don't optimize varop
14309         away if it has side-effects.
14310
14311 2021-04-12  Martin Liska  <mliska@suse.cz>
14312
14313         * doc/extend.texi: Escape @smallexample content.
14314
14315 2021-04-12  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
14316
14317         * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add
14318           alternative in order to load a DFP zero.
14319
14320 2021-04-12  Martin Liska  <mliska@suse.cz>
14321
14322         * doc/extend.texi: Be more precise in documentation
14323         of symver attribute.
14324
14325 2021-04-12  Martin Liska  <mliska@suse.cz>
14326
14327         PR sanitizer/99877
14328         * gimplify.c (gimplify_expr): Right now, we unpoison all
14329         variables before a goto <dest>. We should not do it if we are
14330         in a omp context.
14331
14332 2021-04-12  Cui,Lili  <lili.cui@intel.com>
14333
14334         * common/config/i386/cpuinfo.h (get_intel_cpu): Handle
14335         rocketlake.
14336         * common/config/i386/i386-common.c (processor_names): Add
14337         rocketlake.
14338         (processor_alias_table): Add rocketlake.
14339         * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add
14340         INTEL_COREI7_ROCKETLAKE.
14341         * config.gcc: Add -march=rocketlake.
14342         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
14343         rocketlake.
14344         * config/i386/i386-options.c (m_ROCKETLAKE)  : Define.
14345         (processor_cost_table): Add rocketlake cost.
14346         * config/i386/i386.h (ix86_size_cost) : Define
14347         TARGET_ROCKETLAKE.
14348         (processor_type) : Add PROCESSOR_ROCKETLAKE.
14349         (PTA_ROCKETLAKE): Ditto.
14350         * doc/extend.texi: Add rocketlake.
14351         * doc/invoke.texi: Add rocketlake.
14352
14353 2021-04-12  Cui,Lili  <lili.cui@intel.com>
14354
14355         * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list.
14356         * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE.
14357         * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model.
14358         * doc/invoke.texi: Change alderlake ISA list.
14359
14360 2021-04-11  Hafiz Abid Qadeer  <abidh@codesourcery.com>
14361
14362         PR middle-end/98088
14363         * omp-expand.c (expand_oacc_collapse_init): Update condition in
14364         a gcc_assert.
14365
14366 2021-04-10  H.J. Lu  <hjl.tools@gmail.com>
14367
14368         PR target/99744
14369         * config/i386/serializeintrin.h (_serialize): Defined as macro.
14370
14371 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
14372
14373         PR lto/99849
14374         * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
14375         just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
14376
14377 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
14378
14379         PR middle-end/99989
14380         * gimple-ssa-warn-alloca.c
14381         (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to
14382         0 with integer precision unconditionally.
14383
14384 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
14385
14386         PR rtl-optimization/98601
14387         * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
14388         not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
14389         unaligned_mems handle VOIDmode like BLKmode.
14390
14391 2021-04-10  Jan Hubicka  <hubicka@ucw.cz>
14392
14393         PR lto/99857
14394         * tree.c (free_lang_data_in_decl): Do not release body of
14395         declare_variant_alt.
14396
14397 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
14398
14399         * config/aarch64/aarch64.c (aarch64_option_restore): If the
14400         architecture was specified explicitly and the tuning wasn't,
14401         tune for the architecture rather than the configured default CPU.
14402
14403 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
14404
14405         * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
14406         as the temporary register.
14407
14408 2021-04-09  Martin Liska  <mliska@suse.cz>
14409
14410         * doc/extend.texi: Move non-target attributes on the top level.
14411
14412 2021-04-09  Martin Liska  <mliska@suse.cz>
14413
14414         * doc/invoke.texi: Document minimum and maximum value of the
14415         argument for both supported compression algorithms.
14416
14417 2021-04-08  David Edelsohn  <dje.gcc@gmail.com>
14418
14419         * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select
14420         TLS BSS before TLS data.
14421         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm.
14422
14423 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
14424
14425         * doc/sourcebuild.texi (stdint_types_mbig_endian): Document.
14426
14427 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
14428
14429         * match.pd: Extend vec_cond folds to handle shifts.
14430
14431 2021-04-08  Maciej W. Rozycki  <macro@orcam.me.uk>
14432
14433         * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's
14434         peephole.
14435
14436 2021-04-08  Alex Coplan  <alex.coplan@arm.com>
14437
14438         PR target/99647
14439         * config/arm/iterators.md (MVE_vecs): New.
14440         (V_elem): Also handle V2DF.
14441         * config/arm/mve.md (*mve_mov<mode>): Rename to ...
14442         (*mve_vdup<mode>): ... this. Remove second alternative since
14443         vec_duplicate of const_int is not canonical RTL, and we don't
14444         want to match symbol_refs.
14445         (*mve_vec_duplicate<mode>): Delete (pattern is redundant).
14446
14447 2021-04-08  Xionghu Luo  <luoxhu@linux.ibm.com>
14448
14449         * fold-const.c (fold_single_bit_test): Fix typo.
14450         * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single
14451         instead.
14452
14453 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
14454
14455         PR tree-optimization/97513
14456         * tree-vect-slp.c (vect_add_slp_permutation): New function,
14457         split out from...
14458         (vectorizable_slp_permutation): ...here.  Detect cases in which
14459         all VEC_PERM_EXPRs are guaranteed to have the same stepped
14460         permute vector and only generate one permute vector for that case.
14461         Extend that case to handle variable-length vectors.
14462
14463 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
14464
14465         PR tree-optimization/99873
14466         * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function.
14467         (vect_build_slp_instance): Don't split store groups that could
14468         use IFN_STORE_LANES.
14469
14470 2021-04-07  Jakub Jelinek  <jakub@redhat.com>
14471
14472         PR target/99872
14473         * varasm.c (output_constant_pool_contents): Don't strip name encoding
14474         from XSTR (desc->sym, 0) or from label before passing those to
14475         ASM_OUTPUT_DEF.
14476
14477 2021-04-07  Richard Biener  <rguenther@suse.de>
14478
14479         PR tree-optimization/99954
14480         * tree-loop-distribution.c: Include tree-affine.h.
14481         (generate_memcpy_builtin): Try using tree-affine to prove
14482         non-overlap.
14483         (loop_distribution::classify_builtin_ldst): Always classify
14484         as PKIND_MEMMOVE.
14485
14486 2021-04-07  Richard Biener  <rguenther@suse.de>
14487
14488         PR tree-optimization/99947
14489         * tree-vect-loop.c (vectorizable_induction): Pre-allocate
14490         steps vector to avoid pushing elements from the reallocated
14491         vector.
14492
14493 2021-04-07  Richard Biener  <rguenther@suse.de>
14494
14495         * tree-ssa-sccvn.h (print_vn_reference_ops): Declare.
14496         * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand
14497         printing...
14498         * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new
14499         function.
14500         (debug_vn_reference_ops): New.
14501
14502 2021-04-07  Bin Cheng  <bin.cheng@linux.alibaba.com>
14503
14504         PR tree-optimization/98736
14505         * tree-loop-distribution.c
14506         * (loop_distribution::bb_top_order_init):
14507         Compute RPO with programing order preserved by calling function
14508         rev_post_order_and_mark_dfs_back_seme.
14509
14510 2021-04-06  Vladimir N. Makarov  <vmakarov@redhat.com>
14511
14512         PR target/99781
14513         * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
14514         * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
14515         functions.
14516         (process_bb_lives): Don't update biggest mode of hard reg for
14517         implicit in multi-register group.  Use the new functions for
14518         updating dead_set and unused_set by register notes.
14519
14520 2021-04-06  Xianmiao Qu  <xianmiao_qu@c-sky.com>
14521
14522         * config/csky/csky_pipeline_ck802.md : Use insn reservation name
14523         instead of *.
14524
14525 2021-04-06  H.J. Lu  <hjl.tools@gmail.com>
14526
14527         * config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
14528         (skylake_memset): Likewise.
14529         (skylake_cost): Change CLEAR_RATIO to 17.
14530         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
14531         Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
14532         m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.
14533
14534 2021-04-06  Richard Biener  <rguenther@suse.de>
14535
14536         PR tree-optimization/99880
14537         * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
14538         set vectorized defs of relevant PHIs.
14539
14540 2021-04-06  Richard Biener  <rguenther@suse.de>
14541
14542         PR tree-optimization/99924
14543         * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
14544         nodes w/o scalar stmts as visited.
14545
14546 2021-04-06  Alex Coplan  <alex.coplan@arm.com>
14547
14548         PR target/99748
14549         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
14550         PCS for [su]fix_optab.
14551
14552 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
14553
14554         * config/darwin.c (machopic_legitimize_pic_address): Check
14555         that the current pic register is one of the hard reg set
14556         before setting liveness.
14557
14558 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
14559
14560         * config/darwin.c (machopic_legitimize_pic_address): Fix
14561         whitespace, remove unused code.
14562
14563 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
14564
14565         PR tree-optimization/99882
14566         * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
14567         pointer type.
14568
14569 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
14570
14571         PR rtl-optimization/99863
14572         * dse.c (replace_read): Drop regs_live argument.  Instead of
14573         regs_live, use store_insn->fixed_regs_live if non-NULL,
14574         otherwise punt if insns sequence clobbers or sets any hard
14575         registers.
14576
14577 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
14578
14579         PR testsuite/98125
14580         * targhooks.h (default_print_patchable_function_entry_1): Declare.
14581         * targhooks.c (default_print_patchable_function_entry_1): New function,
14582         copied from default_print_patchable_function_entry with an added flags
14583         argument.
14584         (default_print_patchable_function_entry): Rewritten into a small
14585         wrapper around default_print_patchable_function_entry_1.
14586         * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
14587         Redefine.
14588         (rs6000_print_patchable_function_entry): New function.
14589
14590 2021-04-02  Eric Botcazou  <ebotcazou@adacore.com>
14591
14592         * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
14593
14594 2021-04-01  Jason Merrill  <jason@redhat.com>
14595
14596         PR c++/98481
14597         * common.opt: Document v15 and v16.
14598
14599 2021-04-01  Richard Biener  <rguenther@suse.de>
14600
14601         PR tree-optimization/99863
14602         * gimplify.c (gimplify_init_constructor): Recompute vector
14603         constructor flags.
14604
14605 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
14606
14607         * doc/extend.texi (symver attribute): Fix up syntax errors
14608         in the examples.
14609
14610 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
14611
14612         PR tree-optimization/96573
14613         * gimple-ssa-store-merging.c (init_symbolic_number): Handle
14614         also pointer types.
14615
14616 2021-04-01  Richard Biener  <rguenther@suse.de>
14617
14618         PR tree-optimization/99856
14619         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
14620         precision to vector element precision.
14621
14622 2021-04-01  Martin Jambor  <mjambor@suse.cz>
14623
14624         PR tree-optimization/97009
14625         * tree-sra.c (access_or_its_child_written): New function.
14626         (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
14627         test.
14628
14629 2021-03-31  Jan Hubicka  <hubicka@ucw.cz>
14630
14631         PR ipa/98265
14632         * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
14633
14634 2021-03-31  Pat Haugen  <pthaugen@linux.ibm.com>
14635
14636         PR target/99133
14637         * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
14638         xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
14639         xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
14640         * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
14641         mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
14642         mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
14643         Likewise.
14644         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
14645         * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
14646         (define_attr "prefixed"): Update initializer.
14647
14648 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
14649
14650         PR debug/99490
14651         * dwarf2out.c (debug_ranges_dwo_section): New variable.
14652         (DW_RANGES_IDX_SKELETON): Define.
14653         (struct dw_ranges): Add begin_entry and end_entry members.
14654         (DEBUG_DWO_RNGLISTS_SECTION): Define.
14655         (add_ranges_num): Adjust r initializer for addition of *_entry
14656         members.
14657         (add_ranges_by_labels): For -gsplit-dwarf and force_direct,
14658         set idx to DW_RANGES_IDX_SKELETON.
14659         (use_distinct_base_address_for_range): New function.
14660         (index_rnglists): Don't set r->idx if it is equal to
14661         DW_RANGES_IDX_SKELETON.  Initialize r->begin_entry and
14662         r->end_entry for -gsplit-dwarf if those will be needed by
14663         output_rnglists.
14664         (output_rnglists): Add DWO argument.  If true, switch to
14665         debug_ranges_dwo_section rather than debug_ranges_section.
14666         Adjust l1/l2 label indexes.  Only output the offset table when
14667         dwo is true and don't include in there the skeleton range
14668         entry if present.  For -gsplit-dwarf, skip ranges that belong
14669         to the other rnglists section.  Change return type from void
14670         to bool and return true if there are any range entries for
14671         the other section.  For dwarf_split_debug_info use
14672         DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
14673         entries instead of DW_RLE_start_end, DW_RLE_start_length and
14674         DW_RLE_base_address.  Use use_distinct_base_address_for_range.
14675         (init_sections_and_labels): Initialize debug_ranges_dwo_section
14676         if -gsplit-dwarf and DWARF >= 5.  Adjust ranges_section_label
14677         and range_base_label indexes.
14678         (dwarf2out_finish): Call index_rnglists earlier before finalizing
14679         .debug_addr.  Never emit DW_AT_rnglists_base attribute.  For
14680         -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
14681         with different dwo arguments.
14682         (dwarf2out_c_finalize): Clear debug_ranges_dwo_section.
14683
14684 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
14685
14686         PR tree-optimization/98268
14687         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
14688         recompute_tree_invariant_for_addr_expr after successfully
14689         folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
14690
14691 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
14692
14693         PR tree-optimization/99726
14694         * tree-data-ref.c (create_intersect_range_checks_index): Bail
14695         out if there is more than one access function SCEV for the loop
14696         being versioned.
14697
14698 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
14699
14700         PR rtl-optimization/97141
14701         PR rtl-optimization/98726
14702         * emit-rtl.c (valid_for_const_vector_p): Return true for
14703         CONST_POLY_INT_P.
14704         * rtx-vector-builder.h (rtx_vector_builder::step): Return a
14705         poly_wide_int instead of a wide_int.
14706         (rtx_vector_builder::apply_set): Take a poly_wide_int instead
14707         of a wide_int.
14708         * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
14709         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
14710         false for CONST_VECTORs that cannot be forced to memory.
14711         * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
14712         is too complex to force to memory, build it up from individual
14713         elements instead.
14714
14715 2021-03-31  Jan Hubicka  <jh@suse.cz>
14716
14717         PR lto/99447
14718         * cgraph.c (cgraph_node::release_body): Fix overactive check.
14719
14720 2021-03-31  Christophe Lyon  <christophe.lyon@linaro.org>
14721
14722         PR target/99786
14723         * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
14724         for V4HI and V2SI.
14725
14726 2021-03-31  H.J. Lu  <hjl.tools@gmail.com>
14727
14728         * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
14729         For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
14730         to SImode.
14731         (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
14732         "rep movsb/stosb" only for known sizes.
14733         * config/i386/i386-options.c (processor_cost_table): Use Ice
14734         Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
14735         Rapids and Alder Lake.
14736         * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
14737         * config/i386/x86-tune-costs.h (icelake_memcpy): New.
14738         (icelake_memset): Likewise.
14739         (icelake_cost): Likewise.
14740         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
14741         New.
14742
14743 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
14744
14745         PR target/98119
14746         * config/aarch64/aarch64.c
14747         (aarch64_vectorize_preferred_vector_alignment): Query the size
14748         of the provided SVE vector; do not assume that all SVE vectors
14749         have the same size.
14750
14751 2021-03-31  Jan Hubicka  <jh@suse.cz>
14752
14753         PR lto/99447
14754         * cgraph.c (cgraph_node::release_body): Remove all callers and
14755         references.
14756         * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
14757         * cgraphunit.c (cgraph_node::expand): And here.
14758
14759 2021-03-31  Martin Liska  <mliska@suse.cz>
14760
14761         * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
14762         and one negated condition.
14763
14764 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
14765             Richard Sandiford  <richard.sandiford@arm.com>
14766
14767         PR target/99813
14768         * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
14769         constraints on operands[2] and similarly 0 and rk constraints
14770         on operands[1] corresponding to that.
14771
14772 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
14773
14774         PR bootstrap/98860
14775         * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
14776         linker doesn't support DWARF sections new in DWARF5.
14777         * config/i386/i386-options.c (ix86_option_override_internal): Default
14778         to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
14779         targets.
14780         * config.in: Regenerated.
14781         * configure: Regenerated.
14782
14783 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14784
14785         PR target/99820
14786         * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
14787         available issue_info before using it.
14788
14789 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14790
14791         PR target/99822
14792         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
14793         in operand 1.
14794
14795 2021-03-30  Xionghu Luo  <luoxhu@linux.ibm.com>
14796
14797         PR target/99718
14798         * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
14799         (altivec_lvsl_reg_<mode>): ... this.
14800         (altivec_lvsr_reg): Change to ...
14801         (altivec_lvsr_reg_<mode>): ... this.
14802         * config/rs6000/predicates.md (vec_set_index_operand): New.
14803         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14804         Enable 32bit variable vec_insert for all TARGET_VSX.
14805         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
14806         Enable 32bit variable vec_insert for p9 and above.
14807         (rs6000_expand_vector_set_var_p8): Rename to ...
14808         (rs6000_expand_vector_set_var_p7): ... this.
14809         (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
14810         position.
14811         * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
14812         * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
14813         gen_altivec_lvsr_reg_di.
14814
14815 2021-03-30  H.J. Lu  <hjl.tools@gmail.com>
14816
14817         PR target/99744
14818         * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
14819         (__rdtscp): Likewise.
14820
14821 2021-03-30  Tamar Christina  <tamar.christina@arm.com>
14822
14823         PR tree-optimization/99825
14824         * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
14825         Reject non-mult 2 lanes.
14826
14827 2021-03-30  Richard Earnshaw  <rearnsha@arm.com>
14828
14829         PR target/99773
14830         * config/arm/arm.c (arm_file_start): Fix emission of
14831         Tag_ABI_VFP_args attribute.
14832
14833 2021-03-30  Richard Biener  <rguenther@suse.de>
14834
14835         PR tree-optimization/99824
14836         * stor-layout.c (set_min_and_max_values_for_integral_type):
14837         Assert the precision is within the bounds of
14838         WIDE_INT_MAX_PRECISION.
14839         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
14840         the outermost component ref only to lower the access size
14841         and initialize that from the access type.
14842
14843 2021-03-30  Richard Sandiford  <richard.sandiford@arm.com>
14844
14845         PR target/98136
14846         * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
14847         CONST_INTs to aarch64_expand_mov_immediate when called after RA.
14848
14849 2021-03-30  Mihailo Stojanovic  <mihailo.stojanovic@typhoon-hil.com>
14850
14851         * config/aarch64/aarch64.md
14852         (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
14853         attribute to disambiguate between SIMD and FP variants of the
14854         instruction.
14855
14856 2021-03-29  Jan Hubicka  <hubicka@ucw.cz>
14857
14858         * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
14859         (analyze_ssa_name_flags): Fix typo in comment.
14860
14861 2021-03-29  Alex Coplan  <alex.coplan@arm.com>
14862
14863         PR target/99216
14864         * config/aarch64/aarch64-sve-builtins.cc
14865         (function_builder::add_function): Add placeholder_p argument, use
14866         placeholder decls if this is set.
14867         (function_builder::add_unique_function): Instead of conditionally adding
14868         direct overloads, unconditionally add either a direct overload or a
14869         placeholder.
14870         (function_builder::add_overloaded_function): Set placeholder_p if we're
14871         using C++ overloads. Use the obstack for string storage instead
14872         of relying on the tree nodes.
14873         (function_builder::add_overloaded_functions): Don't return early for
14874         m_direct_overloads: we need to add placeholders.
14875         * config/aarch64/aarch64-sve-builtins.h
14876         (function_builder::add_function): Add placeholder_p argument.
14877
14878 2021-03-29  Richard Biener  <rguenther@suse.de>
14879
14880         PR tree-optimization/99807
14881         * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
14882         assert below VEC_PERM handling.
14883
14884 2021-03-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14885
14886         PR target/99037
14887         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
14888         aarch64_simd_or_scalar_imm_zero to match zeroes.  Remove pattern
14889         matching const_int 0.
14890         (move_lo_quad_internal_be_<mode>): Likewise.
14891         (move_lo_quad_<mode>): Update for the above.
14892         * config/aarch64/iterators.md (VQ_2E): Delete.
14893
14894 2021-03-29  Jakub Jelinek  <jakub@redhat.com>
14895
14896         PR tree-optimization/99777
14897         * fold-const.c (extract_muldiv_1): For conversions, punt on casts from
14898         types other than scalar integral types.
14899
14900 2021-03-28  David Edelsohn  <dje.gcc@gmail.com>
14901
14902         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
14903         XCOFF TLS reloc decorations.
14904
14905 2021-03-28  Gerald Pfeifer  <gerald@pfeifer.com>
14906
14907         * doc/analyzer.texi (Analyzer Internals): Update link to
14908         "A Memory Model for Static Analysis of C Programs".
14909
14910 2021-03-26  David Edelsohn  <dje.gcc@gmail.com>
14911
14912         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
14913         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
14914         Declare.
14915         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
14916         (rs6000_special_round_type_align): Recursively check innermost first
14917         field.
14918
14919 2021-03-26  Jakub Jelinek  <jakub@redhat.com>
14920
14921         PR debug/99334
14922         * dwarf2out.h (struct dw_fde_node): Add rule18 member.
14923         * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
14924         assignment with drap_reg active, queue reg save for hfp with offset 0
14925         and flush queued reg saves.  When handling a push with rule18,
14926         defer queueing reg save for hfp and just assert the offset is 0.
14927         (scan_trace): Assert that fde->rule18 is false.
14928
14929 2021-03-26  Vladimir Makarov  <vmakarov@redhat.com>
14930
14931         PR target/99766
14932         * ira-costs.c (record_reg_classes): Put case with
14933         CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
14934         * ira.c (ira_setup_alts): Ditto.
14935         * lra-constraints.c (process_alt_operands): Ditto.
14936         * recog.c (asm_operand_ok): Ditto.
14937         * reload.c (find_reloads): Ditto.
14938
14939 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
14940
14941         * config/aarch64/aarch64-protos.h
14942         (cpu_addrcost_table::post_modify_ld3_st3): New member variable.
14943         (cpu_addrcost_table::post_modify_ld4_st4): Likewise.
14944         * config/aarch64/aarch64.c (generic_addrcost_table): Update
14945         accordingly, using the same costs as for post_modify.
14946         (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
14947         (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
14948         (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
14949         (a64fx_addrcost_table): Likewise.
14950         (neoversev1_addrcost_table): New.
14951         (neoversev1_tunings): Use neoversev1_addrcost_table.
14952         (aarch64_address_cost): Use the new post_modify costs for CImode
14953         and XImode.
14954
14955 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
14956
14957         * config/aarch64/aarch64.opt
14958         (-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
14959         * doc/invoke.texi: Document it.
14960         * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
14961         (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
14962         (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
14963         (aarch64_vec_issue_info): New structures.
14964         (cpu_vector_cost): Write comments above the variables rather
14965         than to the side.
14966         (cpu_vector_cost::issue_info): New member variable.
14967         * config/aarch64/aarch64.c: Include gimple-pretty-print.h
14968         and tree-ssa-loop-niter.h.
14969         (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
14970         (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
14971         (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
14972         (thunderx3t110_vector_cost): Initialize issue_info to null.
14973         (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
14974         (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
14975         (neoversev1_vector_cost): Use them.
14976         (aarch64_vec_op_count, aarch64_sve_op_count): New structures.
14977         (aarch64_vector_costs::saw_sve_only_op): New member variable.
14978         (aarch64_vector_costs::num_vector_iterations): Likewise.
14979         (aarch64_vector_costs::scalar_ops): Likewise.
14980         (aarch64_vector_costs::advsimd_ops): Likewise.
14981         (aarch64_vector_costs::sve_ops): Likewise.
14982         (aarch64_vector_costs::seen_loads): Likewise.
14983         (aarch64_simd_vec_costs_for_flags): New function.
14984         (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
14985         Count the number of predicate operations required by SVE WHILE
14986         instructions.
14987         (aarch64_comparison_type, aarch64_multiply_add_p): New functions.
14988         (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
14989         (aarch64_count_ops): Likewise.
14990         (aarch64_add_stmt_cost): Record whether see an SVE operation
14991         that cannot currently be implementing using Advanced SIMD.
14992         Record issue information about the scalar, Advanced SIMD
14993         and (where relevant) SVE versions of a loop.
14994         (aarch64_vec_op_count::dump): New function.
14995         (aarch64_sve_op_count::dump): Likewise.
14996         (aarch64_estimate_min_cycles_per_iter): Likewise.
14997         (aarch64_adjust_body_cost): If issue information is available,
14998         try to compare the issue rates of the various loop implementations
14999         and increase or decrease the vector body cost accordingly.
15000
15001 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
15002
15003         * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
15004         Assume a zero cost for induction phis.
15005
15006 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
15007
15008         * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
15009         function.
15010         (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
15011         vector comparisons.
15012
15013 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
15014
15015         * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
15016         New function.
15017         (aarch64_add_stmt_cost): Call it.
15018
15019 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
15020
15021         * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
15022         New tuning parameter.
15023         * config/aarch64/aarch64.c (neoversev1_tunings): Use it.
15024         (aarch64_estimated_sve_vq): New function.
15025         (aarch64_vector_costs::analyzed_vinfo): New member variable.
15026         (aarch64_vector_costs::is_loop): Likewise.
15027         (aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
15028         (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
15029         (aarch64_record_potential_advsimd_unrolling): New function.
15030         (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
15031         (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
15032         aarch64_analyze_bb_vinfo on the first use of a costs structure.
15033         Detect whether we're vectorizing a loop for SVE that might be
15034         completely unrolled if it used Advanced SIMD instead.
15035         (aarch64_adjust_body_cost_for_latency): New function.
15036         (aarch64_finish_cost): Call it.
15037
15038 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
15039
15040         * config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
15041         (aarch64_init_cost): New function.
15042         (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
15043         the default unsigned[3].
15044         (aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
15045         (TARGET_VECTORIZE_INIT_COST): Override.
15046         (TARGET_VECTORIZE_FINISH_COST): Likewise.
15047         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
15048
15049 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
15050
15051         * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
15052         (neoversev1_sve_vector_cost): New cost structures.
15053         (neoversev1_vector_cost): Likewise.
15054         (neoversev1_tunings): Use them.  Enable use_new_vector_costs.
15055
15056 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
15057
15058         * config/aarch64/aarch64-protos.h
15059         (sve_vec_cost::scatter_store_elt_cost): New member variable.
15060         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
15061         accordingly, taking the cost from the cost of a scalar_store.
15062         (a64fx_sve_vector_cost): Likewise.
15063         (aarch64_detect_vector_stmt_subtype): Detect scatter stores.
15064
15065 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
15066
15067         * config/aarch64/aarch64-protos.h
15068         (simd_vec_cost::store_elt_extra_cost): New member variable.
15069         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
15070         accordingly, using the vec_to_scalar cost for the new field.
15071         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
15072         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
15073         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
15074         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
15075         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
15076         (thunderx3t110_advsimd_vector_cost): Likewise.
15077         (aarch64_detect_vector_stmt_subtype): Detect single-element stores.
15078
15079 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
15080
15081         * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
15082         (simd_vec_cost::ld3_st3_permute_cost): New member variables.
15083         (simd_vec_cost::ld4_st4_permute_cost): Likewise.
15084         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
15085         accordingly, using zero for the new costs.
15086         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
15087         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
15088         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
15089         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
15090         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
15091         (thunderx3t110_advsimd_vector_cost): Likewise.
15092         (aarch64_ld234_st234_vectors): New function.
15093         (aarch64_adjust_stmt_cost): Likewise.
15094         (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
15095         the new vector costs.
15096
15097 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
15098
15099         * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
15100         derived class of simd_vec_cost.  Add information about CLAST[AB]
15101         and FADDA instructions.
15102         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
15103         accordingly, using the vec_to_scalar costs for the new fields.
15104         (a64fx_sve_vector_cost): Likewise.
15105         (aarch64_reduc_type): New function.
15106         (aarch64_sve_in_loop_reduction_latency): Likewise.
15107         (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
15108         Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
15109         that occur in the loop body.
15110         (aarch64_add_stmt_cost): Update call accordingly.
15111
15112 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
15113
15114         * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
15115         New tuning flag.
15116         * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
15117         above the fields rather than to the right.
15118         (simd_vec_cost::reduc_i8_cost): New member variable.
15119         (simd_vec_cost::reduc_i16_cost): Likewise.
15120         (simd_vec_cost::reduc_i32_cost): Likewise.
15121         (simd_vec_cost::reduc_i64_cost): Likewise.
15122         (simd_vec_cost::reduc_f16_cost): Likewise.
15123         (simd_vec_cost::reduc_f32_cost): Likewise.
15124         (simd_vec_cost::reduc_f64_cost): Likewise.
15125         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
15126         accordingly, using the vec_to_scalar_cost for the new fields.
15127         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
15128         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
15129         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
15130         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
15131         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
15132         (thunderx3t110_advsimd_vector_cost): Likewise.
15133         (aarch64_use_new_vector_costs_p): New function.
15134         (aarch64_simd_vec_costs): New function, split out from...
15135         (aarch64_builtin_vectorization_cost): ...here.
15136         (aarch64_is_reduction): New function.
15137         (aarch64_detect_vector_stmt_subtype): Likewise.
15138         (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
15139         using the new vector costs.
15140
15141 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
15142
15143         PR ipa/99466
15144         * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
15145         TLS declarations as public.
15146
15147 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
15148
15149         * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
15150         * config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
15151         * config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
15152         * config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
15153         * config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
15154         * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
15155         * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
15156         * config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
15157         * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.
15158
15159 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
15160
15161         PR d/91595
15162         * config.gcc (*-*-cygwin*): Add winnt-d.o
15163         (*-*-mingw*): Likewise.
15164         * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
15165         * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
15166         * config/i386/t-cygming: Add winnt-d.o.
15167         * config/i386/winnt-d.c: New file.
15168
15169 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
15170
15171         * config/freebsd-d.c: Include memmodel.h.
15172
15173 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
15174
15175         PR d/99691
15176         * config.gcc (*-*-openbsd*): Add openbsd-d.o.
15177         * config/t-openbsd: Add openbsd-d.o.
15178         * config/openbsd-d.c: New file.
15179
15180 2021-03-25  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
15181
15182         PR tree-optimization/96974
15183         * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
15184         with graceful exit.
15185
15186 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
15187
15188         Revert:
15189         2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
15190
15191         PR target/98209
15192         PR target/99744
15193         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
15194         always_inline in system headers.
15195
15196 2021-03-25  Kewen Lin  <linkw@linux.ibm.com>
15197
15198         * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
15199
15200 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
15201
15202         PR c++/99565
15203         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
15204         * fold-const.c (operand_compare::operand_equal_p): Don't compare
15205         field offsets if OEP_ADDRESS_OF_SAME_FIELD.
15206
15207 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
15208
15209         PR target/98209
15210         PR target/99744
15211         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
15212         always_inline in system headers.
15213
15214 2021-03-25  Richard Biener  <rguenther@suse.de>
15215
15216         PR tree-optimization/99746
15217         * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
15218         the scalar stmt as patterned.  Instead set up required things
15219         manually.
15220
15221 2021-03-25  Xionghu Luo  <luoxhu@linux.ibm.com>
15222
15223         * config/rs6000/rs6000.c (power8_costs): Change l2 cache
15224         from 256 to 512.
15225
15226 2021-03-24  Martin Liska  <mliska@suse.cz>
15227
15228         PR target/99753
15229         * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
15230         error.
15231         * config/i386/i386-options.c (ix86_option_override_internal):
15232         Add run-time assert.
15233
15234 2021-03-24  Martin Jambor  <mjambor@suse.cz>
15235
15236         PR ipa/99122
15237         * ipa-cp.c (initialize_node_lattices): Mark as bottom all
15238         parameters with unknown type.
15239         (ipacp_value_safe_for_type): New function.
15240         (propagate_vals_across_arith_jfunc): Verify that the constant type
15241         can be used for a type of the formal parameter.
15242         (propagate_vals_across_ancestor): Likewise.
15243         (propagate_scalar_across_jump_function): Likewise.  Pass the type
15244         also to propagate_vals_across_ancestor.
15245
15246 2021-03-24  Christophe Lyon  <christophe.lyon@linaro.org>
15247
15248         PR target/99727
15249         * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
15250         constraint.
15251         (movmisalign<mode>_mve_load): Likewise.
15252
15253 2021-03-24  Jakub Jelinek  <jakub@redhat.com>
15254
15255         PR target/99724
15256         * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
15257         movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
15258
15259 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
15260
15261         * doc/sourcebuild.texi (sysconf): New effective target.
15262
15263 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
15264
15265         * config/i386/predicates.md (reg_or_const_vec_operand): New.
15266         * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
15267         the now *-prefixed insn_and_split, turn the splitter const vec
15268         into an input for the insn, making it an ignored immediate for
15269         non-split cases, and loaded into the scratch register
15270         otherwise.
15271
15272 2021-03-23  Vladimir N. Makarov  <vmakarov@redhat.com>
15273
15274         PR target/99581
15275         * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
15276         Use define_relaxed_memory_constraint for them.
15277
15278 2021-03-23  Iain Sandoe  <iain@sandoe.co.uk>
15279
15280         PR target/99733
15281         * config/host-darwin.c (darwin_gt_pch_use_address): Add a
15282         colon to the diagnostic message.
15283
15284 2021-03-23  Ilya Leoshkevich  <iii@linux.ibm.com>
15285
15286         * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
15287         set_info's uses.
15288         (try_fwprop_subst_note): Use set_info instead of insn_info.
15289         (try_fwprop_subst_pattern): Likewise.
15290         (try_fwprop_subst_notes): Likewise.
15291         (try_fwprop_subst): Likewise.
15292         (forward_propagate_subreg): Likewise.
15293         (forward_propagate_and_simplify): Likewise.
15294         (forward_propagate_into): Likewise.
15295         * rtl-ssa/accesses.h (set_info::single_nondebug_use) New
15296         method.
15297         (set_info::single_nondebug_insn_use): Likewise.
15298         (set_info::single_phi_use): Likewise.
15299         * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
15300         method.
15301         (set_info::single_nondebug_insn_use): Likewise.
15302         (set_info::single_phi_use): Likewise.
15303
15304 2021-03-23  Christophe Lyon  <christophe.lyon@linaro.org>
15305
15306         * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
15307
15308 2021-03-23  Jakub Jelinek  <jakub@redhat.com>
15309
15310         PR target/99540
15311         * config/aarch64/aarch64.c (aarch64_add_offset): Tell
15312         expand_mult to perform an unsigned rather than a signed
15313         multiplication.
15314
15315 2021-03-23  H.J. Lu  <hjl.tools@gmail.com>
15316
15317         PR target/99704
15318         * config/i386/cpuid.h (__cpuid): Add __volatile__.
15319         (__cpuid_count): Likewise.
15320
15321 2021-03-23  Richard Biener  <rguenther@suse.de>
15322
15323         PR tree-optimization/99721
15324         * tree-vect-slp.c (vect_slp_analyze_node_operations):
15325         Make sure we can schedule the node.
15326
15327 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
15328
15329         * config/riscv/riscv.c (riscv_subword): Take endianness into
15330         account when calculating the byte offset.
15331
15332 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
15333
15334         * config/riscv/predicates.md (subreg_lowpart_operator): New predicate
15335         * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
15336         (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
15337         (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
15338         (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
15339         new predicate "subreg_lowpart_operator"
15340
15341 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
15342
15343         * config/riscv/riscv.c (riscv_swap_instruction): New function
15344         to byteswap an SImode rtx containing an instruction.
15345         (riscv_trampoline_init): Byteswap the generated instructions
15346         when needed.
15347
15348 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
15349
15350         * common/config/riscv/riscv-common.c
15351         (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
15352         * config.gcc (riscv32be-*, riscv64be-*): Set
15353         TARGET_BIG_ENDIAN_DEFAULT to 1.
15354         * config/riscv/elf.h (LINK_SPEC): Change -melf* value
15355         depending on default endianness.
15356         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
15357         * config/riscv/linux.h (LINK_SPEC): Likewise.
15358         * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
15359         default endianness.
15360         * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.
15361
15362 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
15363
15364         * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
15365         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
15366         * config/riscv/linux.h (LINK_SPEC): Likewise.
15367         * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
15368         -mlittle-endian.
15369         (BYTES_BIG_ENDIAN): Handle big endian.
15370         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
15371         * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
15372         options.
15373         * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
15374
15375 2021-03-23  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
15376
15377         * regcprop.c (find_oldest_value_reg): Ask target whether
15378           different mode is fine for replacement register.
15379
15380 2021-03-23  Aldy Hernandez  <aldyh@redhat.com>
15381
15382         PR tree-optimization/99296
15383         * value-range.cc (irange::irange_set_1bit_anti_range): New.
15384         (irange::irange_set_anti_range): Call irange_set_1bit_anti_range
15385         * value-range.h (irange::irange_set_1bit_anti_range): New.
15386
15387 2021-03-22  Vladimir N. Makarov  <vmakarov@redhat.com>
15388
15389         PR target/99581
15390         * config/aarch64/constraints.md (UtQ): Use
15391         define_relaxed_memory_constraint for it.
15392         * doc/md.texi (define_relaxed_memory_constraint): Describe it.
15393         * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
15394         * genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
15395         (have_relaxed_memory_constraints): New static var.
15396         (relaxed_memory_start, relaxed_memory_end): Ditto.
15397         (add_constraint): Add arg is_relaxed_memory.  Check name for
15398         relaxed memory.  Set up is_relaxed_memory in constraint_data and
15399         have_relaxed_memory_constraints.  Adjust calls.
15400         (choose_enum_order): Process relaxed memory.
15401         (write_tm_preds_h): Ditto.
15402         (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
15403         * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
15404         * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
15405         * ira-lives.c (single_reg_class): Use
15406         insn_extra_relaxed_memory_constraint.
15407         * ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
15408         * lra-constraints.c (valid_address_p): Use
15409         insn_extra_relaxed_memory_constraint instead of other memory
15410         constraints.
15411         (process_alt_operands): Process CT_RELAXED_MEMORY.
15412         (curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
15413         * recog.c (asm_operand_ok, preprocess_constraints): Process
15414         CT_RELAXED_MEMORY.
15415         * reload.c (find_reloads): Ditto.
15416         * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
15417         * stmt.c (parse_input_constraint): Use
15418         insn_extra_relaxed_memory_constraint.
15419
15420 2021-03-22  Segher Boessenkool  <segher@kernel.crashing.org>
15421
15422         PR target/97926
15423         * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
15424         there are no NaNs.
15425
15426 2021-03-22  Alex Coplan  <alex.coplan@arm.com>
15427
15428         PR target/97252
15429         * config/arm/arm-protos.h (neon_make_constant): Add generate
15430         argument to guard emitting insns, default to true.
15431         * config/arm/arm.c (arm_legitimate_constant_p_1): Reject
15432         CONST_VECTORs which neon_make_constant can't handle.
15433         (neon_vdup_constant): Add generate argument, avoid emitting
15434         insns if it's not set.
15435         (neon_make_constant): Plumb new generate argument through.
15436         * config/arm/constraints.md (Ui): New. Use it...
15437         * config/arm/mve.md (*mve_mov<mode>): ... here.
15438         * config/arm/vec-common.md (movv8hf): Use neon_make_constant to
15439         synthesize constants.
15440
15441 2021-03-22  Richard Biener  <rguenther@suse.de>
15442
15443         * debug.h: Add deprecation warning.
15444
15445 2021-03-22  Richard Biener  <rguenther@suse.de>
15446
15447         PR tree-optimization/99694
15448         * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
15449         PHI result.
15450
15451 2021-03-22  Kito Cheng  <kito.cheng@sifive.com>
15452
15453         PR target/99702
15454         * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
15455         after type checking.
15456
15457 2021-03-22  Jakub Jelinek  <jakub@redhat.com>
15458
15459         PR debug/99562
15460         PR debug/66728
15461         * dwarf2out.c (get_full_len): Use get_precision rather than
15462         min_precision.
15463         (add_const_value_attribute): Make sure add_AT_wide argument has
15464         precision prec rather than some very wide one.
15465
15466 2021-03-22  Kewen Lin  <linkw@linux.ibm.com>
15467
15468         * config/rs6000/rs6000.md (*rotldi3_insert_sf,
15469         *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
15470         floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
15471         floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
15472         *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
15473         fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
15474         *round32<mode>2_fprs, *roundu32<mode>2_fprs,
15475         *fix_trunc<mode>si2_internal): Fix empty split condition.
15476         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
15477         vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
15478         *vsx_reduc_<VEC_reduc_name>_v2df_scalar,
15479         *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
15480
15481 2021-03-22  Xionghu Luo  <luoxhu@linux.ibm.com>
15482
15483         PR target/98914
15484         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
15485         Convert idx to DImode.
15486         (rs6000_expand_vector_set_var_p8): Likewise.
15487
15488 2021-03-21  Jakub Jelinek  <jakub@redhat.com>
15489
15490         PR debug/99388
15491         * dwarf2out.c (insert_float): Change return type from void to
15492         unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
15493         (mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
15494         Adjust callers.
15495
15496 2021-03-20  H.J. Lu  <hjl.tools@gmail.com>
15497
15498         PR target/99679
15499         * config/i386/i386.c (construct_container): Check cfun != NULL
15500         before accessing silent_p.
15501
15502 2021-03-20  Ahamed Husni  <ahamedhusni73@gmail.com>
15503
15504         * asan.c: Fix typos in comments.
15505
15506 2021-03-20  Vladimir N. Makarov  <vmakarov@redhat.com>
15507
15508         PR rtl-optimization/99680
15509         * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
15510         (process_address_1): Check empty constraint before using
15511         CONSTRAINT_LEN.
15512
15513 2021-03-19  Pat Haugen  <pthaugen@linux.ibm.com>
15514
15515         * config/rs6000/rs6000.c (power10_cost): New.
15516         (rs6000_option_override_internal): Set Power10 costs.
15517         (rs6000_issue_rate): Set Power10 issue rate.
15518         * config/rs6000/power10.md: Rewrite for Power10.
15519
15520 2021-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
15521
15522         PR target/99663
15523         * lra-constraints.c (process_address_1): Don't use unknown
15524         constraint for address constraint.
15525
15526 2021-03-19  Iain Sandoe  <iain@sandoe.co.uk>
15527
15528         PR target/99661
15529         * config.gcc (powerpc-*-darwin8): Delete the reference to
15530         the now removed darwin8.h.
15531
15532 2021-03-19  Olivier Hainque  <hainque@adacore.com>
15533
15534         PR target/99660
15535         * config/vxworksae.h (VX_CPU_PREFIX): Define.
15536
15537 2021-03-19  John David Anglin  <danglin@gcc.gnu.org>
15538
15539         * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
15540
15541 2021-03-19  Tamar Christina  <tamar.christina@arm.com>
15542
15543         PR tree-optimization/99656
15544         * tree-vect-slp-patterns.c (linear_loads_p,
15545         complex_add_pattern::matches, is_eq_or_top,
15546         vect_validate_multiplication, complex_mul_pattern::matches,
15547         complex_fms_pattern::matches): Remove complex_perm_kinds_t.
15548         * tree-vectorizer.h: (complex_load_perm_t): Removed.
15549         (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
15550         complex_load_perm_t.
15551
15552 2021-03-19  H.J. Lu  <hjl.tools@gmail.com>
15553
15554         PR target/99652
15555         * config/i386/i386-options.c (ix86_init_machine_status): Set
15556         silent_p to true.
15557         * config/i386/i386.c (init_cumulative_args): Set silent_p to
15558         false.
15559         (construct_container): Return early for return and argument
15560         errors if silent_p is true.
15561         * config/i386/i386.h (machine_function): Add silent_p.
15562
15563 2021-03-19  Jakub Jelinek  <jakub@redhat.com>
15564
15565         PR target/99593
15566         * config/arm/constraints.md (Ds): New constraint.
15567         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
15568         constraint instead of w,Dm.
15569
15570 2021-03-19  Andrew Stubbs  <ams@codesourcery.com>
15571
15572         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
15573         in error message.
15574
15575 2021-03-19  Eric Botcazou  <ebotcazou@adacore.com>
15576
15577         PR middle-end/99641
15578         * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
15579         array type, do the computation of the current position in sizetype.
15580
15581 2021-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>
15582
15583         PR target/99422
15584         * lra-constraints.c (process_address_1): Use lookup_constraint
15585         only for a single constraint.
15586
15587 2021-03-18  Martin Sebor  <msebor@redhat.com>
15588
15589         PR middle-end/99502
15590         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
15591         (inbounds_memaccess_p): ...to this.  Check the ending offset of
15592         the accessed member.
15593
15594 2021-03-18  Andrew Stubbs  <ams@codesourcery.com>
15595
15596         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
15597           %> quote markers to error messages.
15598         (gcn_goacc_validate_dims): Likewise.
15599         (gcn_conditional_register_usage): Remove exclaimation mark from error
15600         message.
15601         (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
15602
15603 2021-03-18  Jan Hubicka  <hubicka@ucw.cz>
15604
15605         * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
15606         integer divides1.
15607
15608 2021-03-18  Sinan Lin  <sinan@isrc.iscas.ac.cn>
15609             Kito Cheng  <kito.cheng@sifive.com>
15610
15611         * config/riscv/riscv.c (riscv_block_move_straight): Change type
15612         to unsigned HOST_WIDE_INT for parameter and local variable with
15613         HOST_WIDE_INT type.
15614         (riscv_adjust_block_mem): Ditto.
15615         (riscv_block_move_loop): Ditto.
15616         (riscv_expand_block_move): Ditto.
15617
15618 2021-03-18  Nick Clifton  <nickc@redhat.com>
15619
15620         * config/v850/v850.c (construct_restore_jr): Increase static
15621          buffer size.
15622         (construct_save_jarl): Likewise.
15623         * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
15624
15625 2021-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15626
15627         * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
15628         (aarch64_override_options_internal): Use it.
15629         (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
15630         tune_flags.
15631
15632 2021-03-17  Sandra Loosemore  <sandra@codesourcery.com>
15633
15634         * config/nios2/nios2.c (nios2_custom_check_insns): Clean up
15635         error message format issues.
15636         (nios2_option_override): Likewise.
15637         (nios2_expand_fpu_builtin): Likewise.
15638         (nios2_init_custom_builtins): Adjust to avoid bogus strncpy
15639         truncation warning.
15640         (nios2_expand_custom_builtin): More error message format fixes.
15641         (nios2_expand_rdwrctl_builtin): Likewise.
15642         (nios2_expand_rdprs_builtin): Likewise.
15643         (nios2_expand_eni_builtin): Likewise.
15644         (nios2_expand_builtin): Likewise.
15645         (nios2_register_custom_code): Likewise.
15646         (nios2_valid_target_attribute_rec): Likewise.
15647         (nios2_add_insn_asm): Fix uninitialized variable warning.
15648
15649 2021-03-17  Jan Hubicka  <jh@suse.cz>
15650
15651         * config/i386/x86-tune-costs.h (struct processor_costs): Update costs
15652         of gather to match reality.
15653         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.
15654
15655 2021-03-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15656
15657         * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
15658         to compare against CC_REG rather than NE.
15659
15660 2021-03-17  H.J. Lu  <hjl.tools@gmail.com>
15661
15662         PR target/99504
15663         * config/i386/i386.c (ix86_force_load_from_GOT_p): Support
15664         inline assembly statements.
15665         (ix86_print_operand): Update 'P' handling for -fno-plt.
15666
15667 2021-03-17  Tamar Christina  <tamar.christina@arm.com>
15668
15669         PR target/99542
15670         * config/aarch64/aarch64.c
15671         (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
15672
15673 2021-03-16  Segher Boessenkool  <segher@kernel.crashing.org>
15674
15675         PR target/98092
15676         * config/rs6000/predicates.md (branch_comparison_operator): Allow
15677         ordered and unordered for CCFPmode, if flag_finite_math_only.
15678
15679 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
15680
15681         PR target/99600
15682         * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
15683         rather than ASHIFT.
15684         * config/i386/i386.md (mult by 1248 into ashift): New splitter.
15685
15686 2021-03-16  Martin Liska  <mliska@suse.cz>
15687
15688         PR target/99592
15689         * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
15690         cl_optimization_compare function.
15691
15692 2021-03-16  Ilya Leoshkevich  <iii@linux.ibm.com>
15693
15694         * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
15695         as "v".
15696
15697 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
15698
15699         PR target/99563
15700         * config/i386/i386.h (struct machine_function): Add
15701         has_explicit_vzeroupper bitfield.
15702         * config/i386/i386-expand.c (ix86_expand_builtin): Set
15703         cfun->machine->has_explicit_vzeroupper when expanding
15704         IX86_BUILTIN_VZEROUPPER.
15705         * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
15706         Do the mode switching only when TARGET_VZEROUPPER, expensive
15707         optimizations turned on and not optimizing for size.
15708         (pass_insert_vzeroupper::gate): Enable even when
15709         cfun->machine->has_explicit_vzeroupper is set.
15710
15711 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
15712
15713         PR target/99542
15714         * config/aarch64/aarch64.c
15715         (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
15716         definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
15717         instead of DECL_ARGUMENTS.  Ignore types for uniform arguments.
15718
15719 2021-03-15  Richard Biener  <rguenther@suse.de>
15720
15721         PR tree-optimization/98834
15722         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
15723         subsetting by truncating the access size.
15724
15725 2021-03-15  Jan Hubicka  <hubicka@ucw.cz>
15726
15727         * config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
15728         * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
15729         of znver2_cost.
15730
15731 2021-03-15  Martin Liska  <mliska@suse.cz>
15732
15733         * spellcheck.c: Add missing comma in initialization.
15734
15735 2021-03-14  Uroš Bizjak  <ubizjak@gmail.com>
15736
15737         * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
15738         alternative 2 and alternative 1 with alternative 3 using
15739         YW register constraint.
15740         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
15741         using YW register constraint.
15742         (*vec_extractv16qi_zext): Ditto.
15743         (*vec_extractv4si): Merge alternatives 4 and 5
15744         using Yw register constraint.
15745         (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.
15746
15747 2021-03-13  Martin Sebor  <msebor@redhat.com>
15748
15749         PR tree-optimization/99489
15750         * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
15751         is not a call statement.
15752
15753 2021-03-13  Jakub Jelinek  <jakub@redhat.com>
15754
15755         PR tree-optimization/99544
15756         * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
15757         if for vector types multiplication can't be done in type's mode.
15758
15759 2021-03-12  Eric Botcazou  <ebotcazou@adacore.com>
15760
15761         PR target/99422
15762         * config/sparc/constraints.md (w): Rename to...
15763         (W): ... this and ditch previous implementation.
15764         * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
15765         (*movdf_insn_sp64): Likewise.
15766         (*mov<VM64:mode>_insn_sp64): Likewise.
15767         * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
15768         w with W.
15769         (atomic_compare_and_swap_leon3_1): Likewise.
15770         (*atomic_compare_and_swapdi_v8plus): Likewise.
15771         * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
15772         architecture and add missing address validity check during LRA.
15773
15774 2021-03-12  Tobias Burnus  <tobias@codesourcery.com>
15775
15776         PR fortran/98858
15777         * gimplify.c (omp_add_variable): Handle NULL_TREE as size
15778         occuring for assumed-size arrays in use_device_{ptr,addr}.
15779
15780 2021-03-12  Jakub Jelinek  <jakub@redhat.com>
15781
15782         PR target/99321
15783         * config/i386/constraints.md (YW): New internal constraint.
15784         * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
15785         (*<sse2_avx2>_<insn><mode>3<mask_name>,
15786         *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
15787         *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
15788         constraints.
15789         (<sse2_avx2>_psadbw): Use YW instead of v in constraints.
15790         (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
15791         avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
15792         into one, use Yw instead of former x,v.
15793         (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
15794         the last alternative.
15795         (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
15796         <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
15797         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
15798         <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
15799         into one, use <v_Yw> instead of former x,v.
15800         (avx2_interleave_highv32qi<mask_name>,
15801         vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
15802         constraints.  Add && <mask_avx512bw_condition> to condition.
15803         (avx2_interleave_lowv32qi<mask_name>,
15804         vec_interleave_lowv16qi<mask_name>,
15805         avx2_interleave_highv16hi<mask_name>,
15806         vec_interleave_highv8hi<mask_name>,
15807         avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
15808         avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
15809         avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
15810         avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
15811         *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
15812         Yw instead of v in constraints.
15813         * config/i386/mmx.md (Yv_Yw): New define_mode_attr.
15814         (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
15815         instead of Yv in constraints.
15816         (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
15817         *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
15818         *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
15819         mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
15820         *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
15821         constraints.
15822         (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
15823         *mmx_pextrb_zext): Use YW instead of Yv in constraints.
15824         (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
15825         (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
15826         two, one with just x, another isa avx512vl with v.
15827
15828 2021-03-12  Martin Liska  <mliska@suse.cz>
15829
15830         * doc/invoke.texi: Add missing param documentation.
15831
15832 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
15833
15834         PR analyzer/96374
15835         * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
15836         analyzer/trimmed-graph.o.
15837         * doc/analyzer.texi (Analyzer Paths): Rewrite description of
15838         feasibility checking to reflect new implementation.
15839         * doc/invoke.texi (-fdump-analyzer-feasibility): Document new
15840         option.
15841         * shortest-paths.h (shortest_paths::get_shortest_distance): New.
15842
15843 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
15844
15845         * digraph.cc (selftest::test_shortest_paths): Update
15846         shortest_paths init for new param.  Add test of
15847         SPS_TO_GIVEN_TARGET.
15848         * shortest-paths.h (enum shortest_path_sense): New.
15849         (shortest_paths::shortest_paths): Add "sense" param.
15850         Update for renamings.  Generalize to use "sense" param.
15851         (shortest_paths::get_shortest_path): Rename param.
15852         (shortest_paths::m_sense): New field.
15853         (shortest_paths::m_prev): Rename...
15854         (shortest_paths::m_best_edge): ...to this.
15855         (shortest_paths::get_shortest_path): Update for renamings.
15856         Conditionalize flipping of path on sense of traversal.
15857
15858 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
15859
15860         * digraph.cc (selftest::test_shortest_paths): Add test coverage
15861         for paths from B and C.
15862         * shortest-paths.h (shortest_paths::shortest_paths): Handle
15863         unreachable nodes, rather than asserting.
15864
15865 2021-03-11  David Edelsohn  <dje.gcc@gmail.com>
15866
15867         PR target/99094
15868         * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
15869         xcoff_tbss_section_name.
15870         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
15871         * xcoffout.c (xcoff_tbss_section_name): Delete.
15872         * xcoffout.h (xcoff_tbss_section_name): Delete.
15873
15874 2021-03-11  Richard Biener  <rguenther@suse.de>
15875
15876         PR tree-optimization/99523
15877         * tree-cfg.c (dump_function_to_file): Dump SSA names
15878         w/o identifier to the decls section as well, not only those
15879         without a VAR_DECL.
15880
15881 2021-03-11  Jakub Jelinek  <jakub@redhat.com>
15882
15883         PR ipa/99517
15884         * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
15885         function calls with lhs fail if the lhs don't have compatible types.
15886
15887 2021-03-11  Hans-Peter Nilsson  <hp@axis.com>
15888
15889         * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
15890         Change FRAME_POINTER_REGNUM to correspond to a new faked
15891         register faked_fp, part of GENNONACR_REGS like faked_ap.
15892         (CRIS_FAKED_REGS_CONTENTS): New helper macro.
15893         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
15894         (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
15895         (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
15896         * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
15897         register.
15898         (CRIS_REAL_FP_REGNUM): New constant.
15899         * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
15900         for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15901         (cris_initial_elimination_offset): Handle elimination changes
15902         to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
15903         and add one from FRAME_POINTER_REGNUM to
15904         HARD_FRAME_POINTER_REGNUM.
15905         (cris_expand_prologue, cris_expand_epilogue): Emit code for
15906         hard_frame_pointer_rtx instead of frame_pointer_rtx.
15907
15908 2021-03-10  David Edelsohn  <dje.gcc@gmail.com>
15909
15910         PR target/99492
15911         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
15912         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
15913
15914 2021-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>
15915
15916         PR target/99422
15917         * lra-constraints.c (process_address_1): Don't check unknown
15918         constraint, use X for empty constraint.
15919
15920 2021-03-10  Alex Coplan  <alex.coplan@arm.com>
15921
15922         * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
15923         Fix typo in comment describing "is_ha" argument.
15924
15925 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
15926
15927         * doc/sourcebuild.texi: Document LRA target selector.
15928
15929 2021-03-10  David Malcolm  <dmalcolm@redhat.com>
15930
15931         * doc/ux.texi: Add subsection contrasting interactive versus
15932         batch usage of GCC.
15933
15934 2021-03-10  Joel Hutton  <joel.hutton@arm.com>
15935
15936         PR target/99102
15937         * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
15938         check condition.
15939         (vectorizable_load): Fix gather load mask check condition.
15940
15941 2021-03-10  Richard Biener  <rguenther@suse.de>
15942
15943         PR tree-optimization/99510
15944         * tree.c (check_aligned_type): Check that the candidate
15945         has TYPE_USER_ALIGN set instead of matching with the
15946         original type.
15947
15948 2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>
15949
15950         * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
15951         float and vector integer modes only if the mode is not larger.
15952
15953 2021-03-10  Hans-Peter Nilsson  <hp@axis.com>
15954
15955         * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
15956
15957 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
15958
15959         * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
15960         constraints > 9.
15961         * ira-lives.c (single_reg_class): Ditto.
15962
15963 2021-03-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15964
15965         * config.gcc (aarch64-*-rtems*): Include general rtems.h after
15966         the architecture-specific rtems.h.
15967         (aarch64-*-rtems*): Likewise.
15968         (arm*-*-rtems*): Likewise.
15969         (epiphany-*-rtems*): Likewise.
15970         (riscv*-*-rtems*): Likewise.
15971
15972 2021-03-09  Jakub Jelinek  <jakub@redhat.com>
15973
15974         PR tree-optimization/99305
15975         * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
15976         before integer_all_onesp instead of vice versa.
15977
15978 2021-03-09  Richard Earnshaw  <rearnsha@arm.com>
15979
15980         * common/config/arm/arm-common.c (arm_config_default): Change type
15981         of 'i' to unsigned.
15982
15983 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
15984
15985         PR target/99454
15986         * lra-constraints.c (process_address_1): Process constraint 'g'
15987         separately and digital constraints containing more one digit.
15988
15989 2021-03-09  Nick Clifton  <nickc@redhat.com>
15990
15991         * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
15992         (DWARF"_DEBUGGING_INFO): Define.
15993
15994 2021-03-09  Eric Botcazou  <ebotcazou@adacore.com>
15995
15996         PR c++/90448
15997         * calls.c (initialize_argument_information): When the argument
15998         is passed by reference, do not make a copy in a thunk only if
15999         the argument is already in memory.  Remove redundant test for
16000         the case of callee copy.
16001
16002 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
16003
16004         PR target/99454
16005         * lra-constraints.c (process_address_1): Process 0..9 constraints
16006         in process_address_1.
16007
16008 2021-03-09  Andreas Krebbel  <krebbel@linux.ibm.com>
16009
16010         * config/s390/s390.c (struct s390_processor processor_table):
16011         Binutils name string must not be empty.
16012
16013 2021-03-09  Claudiu Zissulescu  <claziss@synopsys.com>
16014
16015         * config/arc/arc.c (arc_attr_type): Remove function.
16016
16017 2021-03-09  Martin Liska  <mliska@suse.cz>
16018
16019         PR target/99464
16020         * config/i386/i386-options.c (ix86_option_override_internal):
16021         Set isa_flags for OPTS argument and not for the global
16022         global_options.
16023
16024 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
16025
16026         * config/rs6000/predicates.md (ds_form_mem_operand): Check
16027         in correct code.
16028
16029 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
16030
16031         PR target/99070
16032         * config/rs6000/predicates.md (ds_form_mem_operand) New
16033         predicate.
16034         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
16035         ds_form_mem_operand in ld/lwa patterns.
16036         * config/rs6000/fusion.md: Regenerate file.
16037
16038 2021-03-08  Martin Sebor  <msebor@redhat.com>
16039
16040         PR middle-end/98266
16041         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
16042         (array_bounds_checker::check_array_bounds): Call it.
16043
16044 2021-03-08  Martin Sebor  <msebor@redhat.com>
16045
16046         PR middle-end/97631
16047         * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
16048         (handle_builtin_stxncpy_strncat): Rename locals.  Determine
16049         destination size from allocation calls.  Issue a more appropriate
16050         kind of warning.
16051         (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
16052         (handle_builtin_memset): Same.
16053
16054 2021-03-08  Peter Bergner  <bergner@linux.ibm.com>
16055
16056         PR target/98959
16057         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
16058         to ensure we do not have an Altivec style address.
16059         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
16060         an Altivec style address.
16061         (*vsx_le_perm_store_<mode>): Likewise.
16062         (splitters after *vsx_le_perm_store_<mode>): Likewise.
16063         (vsx_load_<mode>): Disable special expander if passed an Altivec
16064         style address.
16065         (vsx_store_<mode>): Likewise.
16066
16067 2021-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16068
16069         PR target/99437
16070         * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
16071         (aarch64_simd_shift_imm_vec_hi): Likewise.
16072         (aarch64_simd_shift_imm_vec_si): Likewise.
16073         (aarch64_simd_shift_imm_vec_di): Likewise.
16074         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
16075         predicate from above.
16076         (aarch64_shrn<mode>_insn_be): Likewise.
16077         (aarch64_rshrn<mode>_insn_le): Likewise.
16078         (aarch64_rshrn<mode>_insn_be): Likewise.
16079         (aarch64_shrn2<mode>_insn_le): Likewise.
16080         (aarch64_shrn2<mode>_insn_be): Likewise.
16081         (aarch64_rshrn2<mode>_insn_le): Likewise.
16082         (aarch64_rshrn2<mode>_insn_be): Likewise.
16083
16084 2021-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
16085
16086         PR target/99422
16087         * lra-constraints.c (skip_contraint_modifiers): New function.
16088         (process_address_1): Use it before lookup_constraint call.
16089
16090 2021-03-08  Martin Liska  <mliska@suse.cz>
16091
16092         PR target/99463
16093         * config/i386/i386-options.c (ix86_option_override_internal):
16094         Enable UINTR and HRESET for -march that supports it.
16095
16096 2021-03-08  Ilya Leoshkevich  <iii@linux.ibm.com>
16097
16098         * config/s390/s390.c (f_constraint_p): New function.
16099         (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
16100         (TARGET_MD_ASM_ADJUST): Likewise.
16101
16102 2021-03-08  Tobias Burnus  <tobias@codesourcery.com>
16103
16104         PR fortran/97927
16105         * tree-nested.c (convert_local_reference_stmt): Avoid calling
16106         lookup_field_for_decl for Fortran module (= namespace context).
16107
16108 2021-03-08  Andreas Krebbel  <krebbel@linux.ibm.com>
16109
16110         * config/s390/s390.c (s390_expand_vec_compare): Implement <0
16111         comparison with arithmetic right shift.
16112         (s390_expand_vcond): No need for a force_reg anymore.
16113         s390_vec_compare will do it.
16114         * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
16115         immediate operands.
16116
16117 2021-03-07  Jakub Jelinek  <jakub@redhat.com>
16118
16119         PR target/99321
16120         * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
16121         but TARGET_AVX512BW or TARGET_AVX512VL is not set.  Adjust description
16122         and comment.
16123         * config/i386/sse.md (v_Yw): New define_mode_attr.
16124         (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
16125         *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
16126         in constraints.
16127         * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
16128         xYw in constraints.
16129
16130 2021-03-06  Julian Brown  <julian@codesourcery.com>
16131
16132         * tree-pretty-print.c (dump_generic_node): Emit non-generic
16133         address space info for aggregates.
16134
16135 2021-03-06  Hans-Peter Nilsson  <hp@axis.com>
16136
16137         * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
16138
16139 2021-03-05  Jakub Jelinek  <jakub@redhat.com>
16140
16141         PR middle-end/99322
16142         * tree-cfg.c (bb_to_omp_idx): New variable.
16143         (execute_build_cfg): Release the bb_to_omp_idx vector after
16144         cleanup_tree_cfg returns.
16145         (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
16146         for bb_to_omp_idx being a vec<int> instead of pointer to array
16147         of ints.
16148         (make_edges): Remove bb_to_omp_idx local variable, don't pass
16149         it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
16150         vec<int> instead of pointer to array of ints and don't free/release
16151         it at the end.
16152         (remove_bb): When removing a bb and placing forced label somewhere
16153         else, ensure it is put into the same OpenMP region during cfg
16154         pass if possible or to entry successor as fallback.  Unregister
16155         bb from bb_to_omp_idx.
16156
16157 2021-03-05  Vladimir N. Makarov  <vmakarov@redhat.com>
16158
16159         PR target/99378
16160         * lra-constraints.c (process_address_1): Skip decomposing address
16161         for asm insn operand with unknown constraint.
16162
16163 2021-03-05  Martin Jambor  <mjambor@suse.cz>
16164
16165         PR ipa/98078
16166         * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
16167         corresponding speculative edges if we are about to resolve
16168         sepculation.  Make edge direct (and so resolve speculations) before
16169         removing it from call_site_hash.
16170         (cgraph_edge::make_direct): Relax the initial assert to allow calling
16171         the function on speculative direct edges.
16172
16173 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
16174
16175         PR rtl-optimization/99376
16176         * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
16177         of low-order zero bits is too large, set the result to 0 directly.
16178
16179 2021-03-04  Jakub Jelinek  <jakub@redhat.com>
16180
16181         PR middle-end/93235
16182         * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
16183         SUBREG and a SUBREG to op_mode can't be created.
16184
16185 2021-03-04  Alex Coplan  <alex.coplan@arm.com>
16186
16187         PR target/99381
16188         * config/aarch64/aarch64-sve-builtins.cc
16189         (function_resolver::require_vector_type): Handle error_mark_node.
16190
16191 2021-03-04  Ilya Leoshkevich  <iii@linux.ibm.com>
16192
16193         * cfgexpand.c (expand_asm_loc): Pass new parameter.
16194         (expand_asm_stmt): Likewise.
16195         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
16196         parameter.
16197         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
16198         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
16199         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
16200         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
16201         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
16202         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
16203         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
16204         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
16205         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
16206         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
16207         * doc/tm.texi (md_asm_adjust): Likewise.
16208         * target.def (md_asm_adjust): Likewise.
16209
16210 2021-03-04  Richard Biener  <rguenther@suse.de>
16211
16212         PR middle-end/97855
16213         * tree-pretty-print.c: Poison pp_printf.
16214         (dump_decl_name): Avoid use of pp_printf.
16215         (dump_block_node): Likewise.
16216         (dump_generic_node): Likewise.
16217
16218 2021-03-04  Martin Sebor  <msebor@redhat.com>
16219
16220         PR middle-end/96963
16221         PR middle-end/94655
16222         * builtins.c (handle_array_ref): New helper.
16223         (handle_mem_ref): New helper.
16224         (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
16225         into new helper functions.  Correct a workaround for vectorized
16226         assignments.
16227
16228 2021-03-03  Pat Haugen  <pthaugen@linux.ibm.com>
16229
16230         * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
16231         floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
16232         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
16233         *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
16234         attribute for Power10.
16235         * config/rs6000/mma.md (*movoo): Likewise.
16236         * config/rs6000/rs6000.md (define_attr "size"): Add 256.
16237         (define_mode_attr bits): Add DD/TD modes.
16238         * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
16239         store_conditionalpti): Update size attribute for Power10.
16240
16241 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16242
16243         PR bootstrap/92002
16244         * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
16245         -Wuninitialized, -Wmaybe-uninitialized.
16246         (wide-int.o-warn): Likewise.
16247
16248 2021-03-03  Richard Earnshaw  <rearnsha@arm.com>
16249
16250         * common/config/arm/arm-common.c: Include configargs.h.
16251         (arm_config_default): New function.
16252         (arm_target_mode): Renamed from arm_target_thumb_only.  Handle
16253         processors that do not support Thumb.  Take into account the
16254         --with-mode configuration setting for selecting the default.
16255         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
16256         (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
16257
16258 2021-03-03  Martin Liska  <mliska@suse.cz>
16259
16260         PR gcov-profile/97461
16261         * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
16262
16263 2021-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16264
16265         PR target/99234
16266         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
16267         point back the hard frame pointer to its default location when the
16268         frame is larger than SEH_MAX_FRAME_SIZE.
16269
16270 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
16271
16272         PR target/99321
16273         * config/i386/predicates.md (logic_operator): New define_predicate.
16274         * config/i386/i386.md (mov + mem using comm arith peephole2):
16275         Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
16276         and the inner mode is [QH]Imode.
16277
16278 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
16279
16280         PR debug/99090
16281         * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
16282         (new_loc_list): Clear end_entry.
16283         (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
16284         if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx.  Fix comment
16285         typo.
16286         (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
16287         initialize also end_entry.
16288
16289 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
16290
16291         PR target/99085
16292         * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
16293         partitions, if in non-layout mode after reorder_blocks also move
16294         affected blocks to ensure a single partition transition.
16295
16296 2021-03-03  Jason Merrill  <jason@redhat.com>
16297
16298         PR c++/96078
16299         * cgraphunit.c (process_function_and_variable_attributes): Don't
16300         warn about flatten on an alias if the target also has it.
16301         * cgraph.h (symtab_node::get_alias_target_tree): New.
16302
16303 2021-03-02  David Edelsohn  <dje.gcc@gmail.com>
16304
16305         * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
16306         period to symbol name.
16307         (tls_get_addr_internal<mode>): Same.
16308
16309 2021-03-02  David Malcolm  <dmalcolm@redhat.com>
16310
16311         PR c/99323
16312         * diagnostic-show-locus.c
16313         (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
16314         column 0.
16315
16316 2021-03-02  Martin Sebor  <msebor@redhat.com>
16317
16318         PR middle-end/99276
16319         * builtins.c (warn_for_access): Remove stray warning text.
16320
16321 2021-03-02  Martin Sebor  <msebor@redhat.com>
16322
16323         PR middle-end/99295
16324         * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
16325         property.
16326
16327 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
16328
16329         PR debug/99319
16330         * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
16331         -gdwarf-5 -gstrict-dwarf.  For -gsplit-dwarf -gdwarf-5 use
16332         DW_MACRO_*_strx instead of DW_MACRO_*_strp.  Handle
16333         DW_MACRO_define_strx and DW_MACRO_undef_strx.
16334         (save_macinfo_strings): Use DW_MACRO_*_str* even with
16335         -gdwarf-5 -gstrict-dwarf.  Handle DW_MACRO_define_strx and
16336         DW_MACRO_undef_strx.
16337
16338 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
16339
16340         * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
16341         builtin signature.
16342         (BT_FN_V8HI_V8HI_UINT): Likewise.
16343         (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
16344         * config/s390/s390-builtins.def (B_NNPA): New macro definition.
16345         (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
16346         New builtin definitions.
16347         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
16348         vector extension version.
16349         * config/s390/s390.c (s390_expand_builtin): Check if builtins are
16350         available with current -march level.
16351         * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
16352         (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
16353         (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
16354         * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
16355         (vec_extend_to_fp32_lo): Likewise.
16356         (vec_round_from_fp32): Likewise.
16357         (vec_convert_to_fp16): Likewise.
16358         (vec_convert_from_fp16): Likewise.
16359         * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
16360         (vclfnls_v8hi): Likewise.
16361         (vcrnfs_v8hi): Likewise.
16362         (vcfn_v8hi): Likewise.
16363         (vcnf_v8hi): Likewise.
16364
16365 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
16366
16367         * common/config/s390/s390-common.c (processor_flags_table): New entry.
16368         * config.gcc: Enable arch14 for --with-arch and --with-tune.
16369         * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
16370         arch14 for unknown CPU models.
16371         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
16372         * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
16373         (s390_get_sched_attrmask): Likewise.
16374         (s390_get_unit_mask): Likewise.
16375         * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
16376         (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
16377         (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
16378         (TARGET_NNPA_P): New macro definitions.
16379         * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
16380         * config/s390/s390.opt: Add PROCESSOR_ARCH14.
16381
16382 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
16383
16384         PR middle-end/95757
16385         * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
16386         condition.  Call register_edge_assert_for_1 for == 0, != 0, == 1 and
16387         != 1 comparisons if name is lhs of a comparison.
16388
16389 2021-03-01  Iain Sandoe  <iain@sandoe.co.uk>
16390
16391         PR target/44107
16392         PR target/48097
16393         * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
16394         * config/darwin.c (darwin_should_restore_cfa_state): New.
16395         * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
16396         * doc/tm.texi: Regenerated.
16397         * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
16398         * dwarf2cfi.c (connect_traces): If the target requests, restore
16399         the CFA expression after a DW_CFA_restore.
16400         * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
16401
16402 2021-03-01  Martin Liska  <mliska@suse.cz>
16403
16404         PR target/99313
16405         * optc-save-gen.awk: Add 4 more exceptions.
16406
16407 2021-03-01  Nathan Sidwell  <nathan@acm.org>
16408
16409         PR c++/99294
16410         * tree.h (TYPE_ALIGN_RAW): New accessor.
16411         (TYPE_ALIGN): Use it.
16412
16413 2021-03-01  Jan Hubicka  <jh@suse.cz>
16414
16415         PR ipa/98338
16416         * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
16417
16418 2021-03-01  Eric Botcazou  <ebotcazou@adacore.com>
16419
16420         PR target/99234
16421         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
16422         point the hard frame pointer to the SSE register save area instead
16423         of the general register save area.  Perform only minimal adjustment
16424         for small frames if it is initially not correctly aligned.
16425         (ix86_expand_prologue): Remove early saves for a SEH target.
16426         * config/i386/winnt.c (struct seh_frame_state): Document constraint.
16427
16428 2021-02-28  Jakub Jelinek  <jakub@redhat.com>
16429
16430         PR c/99304
16431         * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
16432         typo - referneced -> referenced.
16433         * tree.c (component_ref_size): Fix comment typo -
16434         refernce -> reference.
16435         * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
16436         traling -> trailing.
16437         (aliasing_component_refs_p): Fix comment typos -
16438         refernce -> reference and refernece -> reference and
16439         traling -> trailing.
16440         (nonoverlapping_refs_since_match_p): Fix comment typo -
16441         referneces -> references.
16442         * doc/invoke.texi (--param modref-max-bases): Fix a typo -
16443         referneces -> references.
16444
16445 2021-02-27  Iain Sandoe  <iain@sandoe.co.uk>
16446
16447         * config/host-darwin.c (darwin_gt_pch_use_address): Modify
16448         diagnostic message to avoid use of a contraction and format
16449         warning.
16450
16451 2021-02-27  Jakub Jelinek  <jakub@redhat.com>
16452
16453         PR other/99288
16454         * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
16455         HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
16456         * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
16457         HOST_WIDE_INT_PRINT_DEC in inform format string.  Fix comment
16458         typos.
16459
16460 2021-02-26  Richard Biener  <rguenther@suse.de>
16461
16462         PR middle-end/99281
16463         * expr.c (store_field): For calls with return-slot optimization
16464         and addressable return type expand the store directly.
16465
16466 2021-02-26  Richard Biener  <rguenther@suse.de>
16467
16468         PR c/99275
16469         * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
16470
16471 2021-02-26  Peter Bergner  <bergner@linux.ibm.com>
16472
16473         PR target/99279
16474         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
16475         with an "if" test.
16476
16477 2021-02-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
16478
16479         * config.gcc: Add rs6000-pcrel-opt.o.
16480         * config/rs6000/rs6000-pcrel-opt.c: New file.
16481         * config/rs6000/pcrel-opt.md: New file.
16482         * config/rs6000/predicates.md: Add d_form_memory predicate.
16483         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
16484         * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
16485         * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
16486         pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
16487         and make_pass_pcrel_opt().
16488         * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
16489         (rs6000_option_override_internal): Add pcrel-opt.
16490         (rs6000_delegitimize_address): Support pcrel-opt.
16491         (rs6000_opt_masks): Add pcrel-opt.
16492         (pcrel_opt_valid_mem_p): New function.
16493         (reg_to_non_prefixed): Make global.
16494         (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
16495         (output_pcrel_opt_reloc): New function.
16496         * config/rs6000/rs6000.md (loads_extern_addr): New attr.
16497         (pcrel_extern_addr): Set loads_extern_addr.
16498         Add include for pcrel-opt.md.
16499         * config/rs6000/rs6000.opt: Add -mpcrel-opt.
16500         * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
16501         pcrel-opt.md.
16502
16503 2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
16504
16505         PR target/98996
16506         * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
16507         If TARGET_64BIT and dest is SUBREG, we check the width, if it
16508         equal to SImode, we use SImode operation, just like what we are
16509         doing for REG one.
16510
16511 2021-02-26  Marek Polacek  <polacek@redhat.com>
16512
16513         * builtins.c (warn_for_access): Fix typos.
16514
16515 2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
16516
16517         * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
16518         mark in front of the immediate quantity.
16519         (<optab>_rolsi3_uxtw): Likewise.
16520
16521 2021-02-25  Richard Earnshaw  <rearnsha@arm.com>
16522
16523         PR target/99271
16524         * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
16525         (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
16526         (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
16527         address and disable when the FPCXT is not available.
16528         (nonsecure_call_value_reg_thumb2): Likewise.
16529
16530 2021-02-25  Nathan Sidwell  <nathan@acm.org>
16531
16532         PR c++/99166
16533         * doc/invoke.texi (flang-info-module-cmi): Renamed option.
16534
16535 2021-02-25  Tamar Christina  <tamar.christina@arm.com>
16536
16537         * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
16538
16539 2021-02-25  Richard Biener  <rguenther@suse.de>
16540
16541         PR tree-optimization/99253
16542         * tree-vect-loop.c (check_reduction_path): First compute
16543         code, then verify out-of-loop uses.
16544
16545 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
16546
16547         PR target/95798
16548         * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
16549
16550 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
16551
16552         PR tree-optimization/80635
16553         * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
16554         VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
16555         has mode precision.
16556
16557 2021-02-25  Richard Biener  <rguenther@suse.de>
16558
16559         * tree-vect-slp.c (optimize_load_redistribution_1): Delay
16560         load_map population.
16561         (vect_match_slp_patterns_2): Revert part of last change.
16562         (vect_analyze_slp): Do not interleave optimize_load_redistribution
16563         with pattern detection but do it afterwards.  Dump the
16564         whole SLP graph after pattern recognition and load
16565         redistribution optimization finished.
16566
16567 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
16568
16569         PR fortran/99226
16570         * omp-low.c (struct omp_context): Add teams_nested_p and
16571         nonteams_nested_p members.
16572         (scan_omp_target): Diagnose teams nested inside of target with other
16573         directives strictly nested inside of the same target.
16574         (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
16575         ctx->nonteams_nested_p as needed.
16576
16577 2021-02-24  Vladimir N. Makarov  <vmakarov@redhat.com>
16578
16579         PR inline-asm/99123
16580         * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
16581
16582 2021-02-24  Hans-Peter Nilsson  <hp@axis.com>
16583
16584         * config/cris/cris.c (cris_expand_prologue): Set
16585         current_function_static_stack_size, if flag_stack_usage_info.
16586
16587 2021-02-24  Pat Haugen  <pthaugen@linux.ibm.com>
16588
16589         * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
16590         (rs6000_final_prescan_insn): Adjust.
16591         (rs6000_asm_output_opcode): Likewise.
16592
16593 2021-02-24  Martin Sebor  <msebor@redhat.com>
16594
16595         PR middle-end/97172
16596         * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
16597         from function arguments.
16598
16599 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
16600
16601         PR tree-optimization/99220
16602         * tree-vect-slp.c (optimize_load_redistribution_1): Remove
16603         node from cache when it's about to be deleted.
16604
16605 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
16606
16607         PR tree-optimization/99225
16608         * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
16609         to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
16610         build_int_cst (..., 1).  Formatting fixes.
16611
16612 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
16613
16614         PR tree-optimization/99149
16615         * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
16616         buffer.
16617         (vect_slp_reset_pattern): Remove.
16618         (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
16619         (complex_mul_pattern::build, complex_fma_pattern::build,
16620         complex_fms_pattern::build): Fix ref counts.
16621         * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
16622         when node is being deleted.
16623         (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
16624         (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
16625         stores.
16626         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
16627
16628 2021-02-24  Matthias Klose  <doko@ubuntu.com>
16629
16630         Revert:
16631         2020-12-07  Matthias Klose  <doko@ubuntu.com>
16632
16633         * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
16634         and ENABLE_RTL_FLAG_CHECKING.
16635
16636 2021-02-24  Richard Biener  <rguenther@suse.de>
16637
16638         PR c/99224
16639         * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
16640
16641 2021-02-23  Peter Bergner  <bergner@linux.ibm.com>
16642
16643         * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
16644         (vsx_assemble_pair): ...to this.
16645         (*mma_assemble_pair): Rename from this...
16646         (*vsx_assemble_pair): ...to this.
16647         (mma_disassemble_pair): Rename from this...
16648         (vsx_disassemble_pair): ...to this.
16649         (*mma_disassemble_pair): Rename from this...
16650         (*vsx_disassemble_pair): ...to this.
16651         * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
16652         BU_COMPAT): New macros.
16653         (mma_assemble_pair): Rename from this...
16654         (vsx_assemble_pair): ...to this.
16655         (mma_disassemble_pair): Rename from this...
16656         (vsx_disassemble_pair): ...to this.
16657         (mma_assemble_pair): New compatibility built-in.
16658         (mma_disassemble_pair): Likewise.
16659         * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
16660         (RS6000_BUILTIN_COMPAT): Define.
16661         (bdesc_compat): New.
16662         (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
16663         (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
16664         and VSX_BUILTIN_ASSEMBLE_PAIR.
16665         (rs6000_init_builtins): Register compatibility built-ins.
16666         (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
16667         VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
16668         VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
16669         * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
16670         (__builtin_vsx_assemble_pair): ...to this.
16671         (__builtin_mma_disassemble_pair): Rename from this...
16672         (__builtin_vsx_disassemble_pair): ...to this.
16673
16674 2021-02-23  Martin Liska  <mliska@suse.cz>
16675
16676         PR sanitizer/99168
16677         * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
16678         with different alignment. That leads to an invalid red zone
16679         size allocated in runtime.
16680
16681 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
16682
16683         PR tree-optimization/99204
16684         * fold-const.c (fold_read_from_constant_string): Check that
16685         tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
16686
16687 2021-02-23  Segher Boessenkool  <segher@kernel.crashing.org>
16688             Kewen Lin  <linkw@gcc.gnu.org>
16689
16690         * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
16691         (rotl<mode>3_insert_3): ...this.
16692         (plus_ior_xor): New code_iterator.
16693         (define_split for GPR rl*imi): New splitter.
16694         * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
16695         for integer merging.
16696
16697 2021-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16698
16699         * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
16700         Define.
16701         * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
16702         into a register when the above is enabled.
16703         * config/aarch64/aarch64.c (neoversev1_tunings):
16704         AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
16705         (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
16706
16707 2021-02-22  Hans-Peter Nilsson  <hp@axis.com>
16708
16709         * config/cris/cris.c (cris_print_operand) <'T'>: Change
16710         valid operand from is now an addi mult-value to shift-value.
16711         * config/cris/cris.md (*addi): Change expression of scaled
16712         operand from mult to ashift.
16713         * config/cris/cris.md (*addi_reload): New insn_and_split.
16714
16715 2021-02-22  John David Anglin  <danglin@gcc.gnu.org>
16716
16717         PR target/85074
16718         * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
16719         hook_bool_const_tree_hwi_hwi_const_tree_true.
16720         (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
16721
16722 2021-02-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
16723
16724         PR rtl-optimization/98791
16725         * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
16726         for unordered modes.
16727
16728 2021-02-22  Martin Liska  <mliska@suse.cz>
16729
16730         * tree-inline.c (inline_forbidden_p): Set
16731         inline_forbidden_reason.
16732
16733 2021-02-22  Richard Biener  <rguenther@suse.de>
16734
16735         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
16736         costed subgraph.
16737
16738 2021-02-22  Richard Biener  <rguenther@suse.de>
16739
16740         PR tree-optimization/99165
16741         * gimple-ssa-store-merging.c (pass_store_merging::process_store):
16742         Accumulate changed to ret.
16743
16744 2021-02-21  Uros Bizjak  <ubizjak@gmail.com>
16745
16746         Revert:
16747         2020-12-09  Uroš Bizjak  <ubizjak@gmail.com>
16748
16749         * config/i386/i386.h (REG_ALLOC_ORDER): Remove
16750
16751 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
16752
16753         PR target/99134
16754         * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
16755         pattern.
16756         (trunctf<DFP_ALL:mode>2): Likewise.
16757         (trunctdtf2_vr): Likewise.
16758         (trunctdtf2): Likewise.
16759         (extend<DFP_ALL:mode>tf2_vr): Likewise.
16760         (extend<DFP_ALL:mode>tf2): Likewise.
16761         (extendtftd2_vr): Likewise.
16762         (extendtftd2): Likewise.
16763
16764 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
16765
16766         * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
16767         add memory alternative.
16768         (tf_to_fprx2): New pattern.
16769
16770 2021-02-19  Martin Sebor  <msebor@redhat.com>
16771
16772         PR c/97172
16773         * attribs.c (init_attr_rdwr_indices): Guard vblist use.
16774         (attr_access::free_lang_data): Remove a spurious test.
16775
16776 2021-02-19  Nathan Sidwell  <nathan@acm.org>
16777
16778         * doc/invoke.texi (flang-info-module-read): Document.
16779
16780 2021-02-19  Martin Liska  <mliska@suse.cz>
16781
16782         PR translation/99167
16783         * params.opt: Fix typo.
16784
16785 2021-02-19  Richard Biener  <rguenther@suse.de>
16786
16787         PR middle-end/99122
16788         * tree-inline.c (inline_forbidden_p): Do not inline functions
16789         with VLA arguments or return value.
16790
16791 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
16792
16793         PR target/98998
16794         * config/arm/arm.md (*stack_protect_combined_set_insn,
16795         *stack_protect_combined_test_insn): If force_const_mem result
16796         is not valid general operand, force its address into the destination
16797         register first.
16798
16799 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
16800
16801         PR ipa/99034
16802         * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
16803         pad or non-local label, put FORCED_LABELs from bb b after that label
16804         rather than before it.
16805
16806 2021-02-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
16807
16808         PR target/98657
16809         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
16810         expand_vector_broadcast' to emit the vec_duplicate operand.
16811
16812 2021-02-18  Vladimir N. Makarov  <vmakarov@redhat.com>
16813
16814         PR rtl-optimization/96264
16815         * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
16816         hard regs.
16817
16818 2021-02-18  H.J. Lu  <hjl.tools@gmail.com>
16819
16820         PR target/99113
16821         * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
16822         looking up the retain attribute.
16823         (resolve_unique_section): Likewise.
16824         (get_variable_section): Likewise.
16825         (switch_to_section): Likewise.  Warn when a symbol without the
16826         retain attribute and a symbol with the retain attribute are
16827         placed in the section with the same name, instead of the used
16828         attribute.
16829         * doc/extend.texi: Document the "retain" attribute.
16830
16831 2021-02-18  Nathan Sidwell  <nathan@acm.org>
16832
16833         PR c++/99023
16834         * doc/invoke.texi (flang-info-include-translate): Document header
16835         lookup behaviour.
16836
16837 2021-02-18  Richard Biener  <rguenther@suse.de>
16838
16839         PR middle-end/99122
16840         * ipa-fnsummary.c (analyze_function_body): Set
16841         CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
16842         * tree-inline.c (insert_init_debug_bind): Pass NULL for
16843         error_mark_node values.
16844         (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
16845         values.
16846         (setup_one_parameter): Delay force_value_to_type until when
16847         it's needed.
16848
16849 2021-02-18  Hans-Peter Nilsson  <hp@axis.com>
16850
16851         PR tree-optimization/99142
16852         * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
16853
16854 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
16855
16856         * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
16857         wide_int_bitmask::wide_int_bitmask (uint64_t),
16858         wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
16859         wide_int_bitmask::operator ~ () const,
16860         wide_int_bitmask::operator | (wide_int_bitmask) const,
16861         wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
16862         instead of inline.
16863         * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
16864         PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
16865         PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
16866         PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
16867         PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
16868         PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
16869         PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
16870         PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
16871         PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
16872         PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
16873         PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
16874         PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
16875         PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
16876         PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
16877         PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
16878         PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
16879         PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
16880         PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
16881         PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
16882         PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
16883         PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
16884         PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
16885         PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
16886         PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
16887
16888 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
16889
16890         PR middle-end/99109
16891         * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
16892         (build_printable_array_type): ... this.  Add nelts argument.  For
16893         overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead.  If
16894         nelts, call build_array_type_nelts.
16895         (array_bounds_checker::check_mem_ref): Use build_printable_array_type
16896         instead of build_zero_elt_array_type and build_array_type_nelts.
16897
16898 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
16899
16900         PR target/99104
16901         * config/i386/i386.c (distance_non_agu_define): Don't call
16902         extract_insn_cached here.
16903         (ix86_lea_outperforms): Save and restore recog_data around call
16904         to distance_non_agu_define and distance_agu_use.
16905         (ix86_ok_to_clobber_flags): Remove.
16906         (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
16907         (ix86_avoid_lea_for_addr): Likewise.  Adjust function comment.
16908         * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
16909         into define_insn.  Move the splitting to define_peephole2 and
16910         check there using peep2_regno_dead_p if FLAGS_REG is dead.
16911
16912 2021-02-17  Julian Brown  <julian@codesourcery.com>
16913
16914         * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
16915         for non-decls.
16916
16917 2021-02-17  Xi Ruoyao  <xry111@mengyan1223.wang>
16918
16919         PR target/98491
16920         * config/mips/mips.c (mips_symbol_insns): Do not use
16921         MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
16922
16923 2021-02-16  Vladimir N. Makarov  <vmakarov@redhat.com>
16924
16925         PR inline-asm/98096
16926         * stmt.c (resolve_operand_name_1): Take inout operands into account
16927         for access to labels by names.
16928         * doc/extend.texi: Describe counting operands for accessing labels.
16929
16930 2021-02-16  Richard Biener  <rguenther@suse.de>
16931
16932         PR tree-optimization/38474
16933         * tree-ssa-structalias.c (variable_info::address_taken): New.
16934         (new_var_info): Initialize address_taken.
16935         (process_constraint): Set address_taken.
16936         (solve_constraints): Use the new address_taken flag rather
16937         than is_reg_var for sorting variables.
16938         (dump_constraint): Dump the variable number if the name
16939         is just NULL.
16940
16941 2021-02-16  Jakub Jelinek  <jakub@redhat.com>
16942
16943         PR target/99100
16944         * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
16945         multiply by 4096 and for inbranch by 8192.
16946         * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
16947         return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
16948
16949 2021-02-15  Maya Rashish  <coypu@sdf.org>
16950
16951         * config/aarch64/aarch64.c (aarch64_init_builtins):
16952         Call SUBTARGET_INIT_BUILTINS.
16953
16954 2021-02-15  Peter Bergner  <bergner@linux.ibm.com>
16955
16956         PR rtl-optimization/98872
16957         * init-regs.c (initialize_uninitialized_regs): Skip initialization
16958         if CONST0_RTX is NULL.
16959
16960 2021-02-15  Richard Sandiford  <richard.sandiford@arm.com>
16961
16962         PR rtl-optimization/98863
16963         * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
16964         (function_info::build_info): Turn into a declaration, moving the
16965         definition to internals.h.
16966         (function_info::bb_walker): Declare.
16967         (function_info::create_reg_use): Likewise.
16968         (function_info::calculate_potential_phi_regs): Take a build_info
16969         parameter.
16970         (function_info::place_phis, function_info::create_ebbs): Declare.
16971         (function_info::calculate_ebb_live_in_for_debug): Likewise.
16972         (function_info::populate_backedge_phis): Delete.
16973         (function_info::start_block, function_info::end_block): Declare.
16974         (function_info::populate_phi_inputs): Delete.
16975         (function_info::m_potential_phi_regs): Move information to build_info.
16976         * rtl-ssa/internals.h: New file.
16977         (function_info::bb_phi_info): New class.
16978         (function_info::build_info): Moved from functions.h.
16979         Add a constructor and destructor.
16980         (function_info::build_info::ebb_use): Delete.
16981         (function_info::build_info::ebb_def): Likewise.
16982         (function_info::build_info::bb_live_out): Likewise.
16983         (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
16984         (function_info::build_info::potential_phi_regs): Likewise.
16985         (function_info::build_info::potential_phi_regs_for_debug): Likewise.
16986         (function_info::build_info::ebb_def_regs): Likewise.
16987         (function_info::build_info::bb_phis): Likewise.
16988         (function_info::build_info::bb_mem_live_out): Likewise.
16989         (function_info::build_info::bb_to_rpo): Likewise.
16990         (function_info::build_info::def_stack): Likewise.
16991         (function_info::build_info::old_def_stack_limit): Likewise.
16992         * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
16993         Remove the regno argument.  Push the previous definition onto the
16994         definition stack where necessary.
16995         * rtl-ssa/accesses.cc: Include internals.h.
16996         * rtl-ssa/changes.cc: Likewise.
16997         * rtl-ssa/blocks.cc: Likewise.
16998         (function_info::build_info::build_info): Define.
16999         (function_info::build_info::~build_info): Likewise.
17000         (function_info::bb_walker): New class.
17001         (function_info::bb_walker::bb_walker): Define.
17002         (function_info::add_live_out_use): Convert a logarithmic-complexity
17003         test into a linear one.  Allow the same definition to be passed
17004         multiple times.
17005         (function_info::calculate_potential_phi_regs): Moved from
17006         functions.cc.  Take a build_info parameter and store the
17007         information there instead.
17008         (function_info::place_phis): New function.
17009         (function_info::add_entry_block_defs): Update call to record_reg_def.
17010         (function_info::calculate_ebb_live_in_for_debug): New function.
17011         (function_info::add_phi_nodes): Use bb_phis to decide which
17012         registers need phi nodes and initialize ebb_def_regs accordingly.
17013         Do not add degenerate phis here.
17014         (function_info::add_artificial_accesses): Use create_reg_use.
17015         Assert that all definitions are listed in the DF LR sets.
17016         Update call to record_reg_def.
17017         (function_info::record_block_live_out): Record live-out register
17018         values in the phis of successor blocks.  Use the live-out set
17019         when processing the last block in an EBB, instead of always
17020         using the live-in sets of successor blocks.  AND the live sets
17021         with the set of registers that have been defined in the EBB,
17022         rather than with all potential phi registers.  Cope correctly
17023         with branches back to the start of the current EBB.
17024         (function_info::start_block): New function.
17025         (function_info::end_block): Likewise.
17026         (function_info::populate_phi_inputs): Likewise.
17027         (function_info::create_ebbs): Likewise.
17028         (function_info::process_all_blocks): Rewrite into a multi-phase
17029         process.
17030         * rtl-ssa/functions.cc: Include internals.h.
17031         (function_info::calculate_potential_phi_regs): Move to blocks.cc.
17032         (function_info::init_function_data): Remove caller.
17033         * rtl-ssa/insns.cc: Include internals.h
17034         (function_info::create_reg_use): New function.  Lazily any
17035         degenerate phis needed by the linear RPO view.
17036         (function_info::record_use): Use create_reg_use.  When processing
17037         debug uses, use potential_phi_regs and test it before checking
17038         whether the register is live on entry to the current EBB.  Lazily
17039         calculate ebb_live_in_for_debug.
17040         (function_info::record_call_clobbers): Update call to record_reg_def.
17041         (function_info::record_def): Likewise.
17042
17043 2021-02-15  Martin Liska  <mliska@suse.cz>
17044
17045         * toplev.c (init_asm_output): Free output of
17046         gen_command_line_string function.
17047         (process_options): Likewise.
17048
17049 2021-02-15  Martin Liska  <mliska@suse.cz>
17050
17051         * params.opt: Add 2 missing Param keywords.
17052
17053 2021-02-15  Eric Botcazou  <ebotcazou@adacore.com>
17054
17055         * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
17056
17057 2021-02-15  Jakub Jelinek  <jakub@redhat.com>
17058
17059         PR tree-optimization/99079
17060         * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
17061         useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check.  Instead
17062         require both type and TREE_TYPE (@1) to be integral types and either
17063         type having smaller or equal precision, or TREE_TYPE (@1) being
17064         unsigned type, or type being signed type.  If TREE_TYPE (@1)
17065         doesn't have wrapping overflow, perform the subtraction of one in
17066         unsigned type.
17067
17068 2021-02-14  Jan Hubicka  <hubicka@ucw.cz>
17069             Richard Biener  <rguether@suse.de>
17070
17071         PR ipa/97346
17072         * ipa-reference.c (ipa_init): Only conditinally initialize
17073         reference_vars_to_consider.
17074         (propagate): Conditionally deninitialize reference_vars_to_consider.
17075         (ipa_reference_write_optimization_summary): Sanity check that
17076         reference_vars_to_consider is not allocated.
17077
17078 2021-02-13  Levy Hsu  <admin@levyhsu.com>
17079
17080         PR target/97417
17081         * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
17082         extend parameter to get_si_mem_base_reg declaration.
17083         (get_si_mem_base_reg): Add extend parameter.  Set it.
17084         (analyze): Pass extend arg to get_si_mem_base_reg.
17085         (transform): Likewise.  Use it when rewriting mems.
17086         * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
17087         loads and emit sign/zero extending load followed by subreg move.
17088
17089 2021-02-13  Jim Wilson  <jimw@sifive.com>
17090
17091         PR target/97417
17092         * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
17093         exit when !reload_completed.  Only perform check for compressed reg
17094         if reload_completed.
17095         (riscv_rtx_costs): In MEM case, when optimizing for size and
17096         shorten memrefs, if not compressible, then increase cost.
17097
17098 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
17099
17100         PR rtl-optimization/98439
17101         * recog.c (pass_split_before_regstack::gate): Enable even when
17102         pass_split_before_sched2 is enabled if -fselective-scheduling2 is
17103         on.
17104
17105 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
17106
17107         PR target/96166
17108         * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
17109         swap of V2SImode elements in memory into DImode memory rotate by 32.
17110
17111 2021-02-12  Martin Sebor  <msebor@redhat.com>
17112
17113         * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
17114
17115 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
17116
17117         * rtl-ssa/accesses.cc (function_info::make_use_available): Use
17118         m_temp_obstack rather than m_obstack to allocate the temporary use.
17119
17120 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
17121
17122         * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
17123         as read-modify operations.
17124
17125 2021-02-12  Richard Biener  <rguenther@suse.de>
17126
17127         PR middle-end/38474
17128         * ipa-fnsummary.c (unmodified_parm_1): Only walk when
17129         fbi->aa_walk_budget is bigger than zero.  Update
17130         fbi->aa_walk_budget.
17131         (param_change_prob): Likewise.
17132         * ipa-prop.c (detect_type_change_from_memory_writes):
17133         Properly account walk_aliased_vdefs.
17134         (parm_preserved_before_stmt_p): Canonicalize updates.
17135         (parm_ref_data_preserved_p): Likewise.
17136         (parm_ref_data_pass_through_p): Likewise.
17137         (determine_known_aggregate_parts): Account own alias queries.
17138
17139 2021-02-12  Martin Liska  <mliska@suse.cz>
17140
17141         * opts-common.c (decode_cmdline_option): Release werror_arg.
17142         * opts.c (gen_producer_string): Release output of
17143         gen_command_line_string.
17144
17145 2021-02-12  Richard Biener  <rguenther@suse.de>
17146
17147         PR tree-optimization/38474
17148         * params.opt (-param=max-store-chains-to-track=): New param.
17149         (-param=max-stores-to-track=): Likewise.
17150         * doc/invoke.texi (max-store-chains-to-track): Document.
17151         (max-stores-to-track): Likewise.
17152         * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
17153         New.
17154         (pass_store_merging::m_n_stores): Likewise.
17155         (pass_store_merging::terminate_and_process_chain): Update
17156         m_n_stores and m_n_chains.
17157         (pass_store_merging::process_store): Likewise.   Terminate
17158         oldest chains if the number of stores or chains get too large.
17159         (imm_store_chain_info::terminate_and_process_chain): Dump
17160         chain length.
17161
17162 2021-02-11  Eric Botcazou  <ebotcazou@adacore.com>
17163
17164         * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
17165         the cold section, emit a nop before the directive if the previous
17166         active instruction can throw.
17167
17168 2021-02-11  Peter Bergner  <bergner@linux.ibm.com>
17169
17170         PR target/99041
17171         * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
17172         memory addresses that are legal for quad word accesses.
17173
17174 2021-02-11  Andrea Corallo  <andrea.corallo@arm.com>
17175
17176         PR target/98931
17177         * config/arm/thumb2.md (*doloop_end_internal): Generate
17178         alternative sequence to handle long range branches.
17179
17180 2021-02-11  Joel Hutton  <joel.hutton@arm.com>
17181
17182         PR tree-optimization/98772
17183         * optabs-tree.c (supportable_half_widening_operation): New function
17184         to check for supportable V8QI->V8HI widening patterns.
17185         * optabs-tree.h (supportable_half_widening_operation): New function.
17186         * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
17187         to create promotion stmts for V8QI->V8HI widening patterns.
17188         (vectorizable_conversion): Add case for V8QI->V8HI.
17189
17190 2021-02-11  Richard Biener  <rguenther@suse.de>
17191
17192         * sparseset.h (SPARSESET_ELT_BITS): Remove.
17193         (SPARSESET_ELT_TYPE): Use unsigned int.
17194         * fwprop.c: Do not include sparseset.h.
17195
17196 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
17197
17198         PR c++/99035
17199         * varasm.c (declare_weak): For -fsyntax-only, allow even
17200         TREE_ASM_WRITTEN function decls.
17201
17202 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
17203
17204         PR target/99025
17205         * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
17206         <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
17207         <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
17208         <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
17209         calling simplify_gen_subreg on it.
17210
17211 2021-02-10  Martin Liska  <mliska@suse.cz>
17212
17213         * config/nvptx/nvptx.c (nvptx_option_override): Use
17214         flag_patchable_function_entry instead of the removed
17215         function_entry_patch_area_size.
17216
17217 2021-02-10  Martin Liska  <mliska@suse.cz>
17218
17219         PR tree-optimization/99002
17220         PR tree-optimization/99026
17221         * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
17222         leak when adjacent cases are merged.
17223         * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
17224         release_clusters.
17225         (make_pass_lower_switch): Remove trailing whitespace.
17226         * tree-switch-conversion.h (release_clusters): New.
17227
17228 2021-02-10  Richard Biener  <rguenther@suse.de>
17229
17230         PR rtl-optimization/99054
17231         * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
17232         (fixup_partitions): Adjust.
17233         (rtl_verify_edges): Likewise.
17234
17235 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
17236
17237         PR middle-end/99007
17238         * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
17239         temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
17240         calls.
17241
17242 2021-02-10  Richard Biener  <rguenther@suse.de>
17243
17244         PR ipa/99029
17245         * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
17246         for callees.
17247
17248 2021-02-10  Richard Biener  <rguenther@suse.de>
17249
17250         PR tree-optimization/99024
17251         * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
17252         clear loop->aux if it is associated with the destroyed loop_vinfo.
17253
17254 2021-02-10  Martin Liska  <mliska@suse.cz>
17255
17256         PR tree-optimization/99002
17257         * gimple-if-to-switch.cc (find_conditions): Fix memory leak
17258         in the function.
17259
17260 2021-02-10  Martin Liska  <mliska@suse.cz>
17261
17262         PR ipa/99003
17263         * ipa-icf.c (sem_item::add_reference): Fix memory leak when
17264         a reference exists.
17265
17266 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
17267
17268         PR debug/98755
17269         * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
17270         at class scope for DWARF5+.
17271
17272 2021-02-09  Eric Botcazou  <ebotcazou@adacore.com>
17273
17274         PR rtl-optimization/96015
17275         * reorg.c (skip_consecutive_labels): Minor comment tweaks.
17276         (relax_delay_slots): When deleting a jump to the next active
17277         instruction over a barrier, first delete the barrier if the
17278         jump is the only way to reach the target label.
17279
17280 2021-02-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
17281
17282         * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
17283         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
17284         vector multiplies and vect.alu for SSRA.
17285         * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
17286         vect.mul cost field.
17287         * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
17288         * config/arm/arm.c: Likewise.
17289
17290 2021-02-09  Richard Biener  <rguenther@suse.de>
17291
17292         PR tree-optimization/98863
17293         * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
17294         * tree-ssa-sccvn.c (last_pushed_avail): New global.
17295         (rpo_elim::eliminate_push_avail): Chain pushed avails.
17296         (unwind_state::avail_top): Add.
17297         (do_unwind): Rewrite unwinding of avail entries.
17298         (do_rpo_vn): Initialize last_pushed_avail and
17299         avail_top of the undo state.
17300
17301 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
17302
17303         PR middle-end/99004
17304         * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
17305         const char * to char * and free those pointers after use.
17306
17307 2021-02-09  Richard Biener  <rguenther@suse.de>
17308
17309         PR tree-optimization/99017
17310         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
17311         zero vector cost entries.
17312
17313 2021-02-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
17314
17315         PR middle-end/98974
17316         * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
17317         parameter in vectorizable_condition.
17318
17319 2021-02-08  Richard Biener  <rguenther@suse.de>
17320
17321         PR lto/96591
17322         * tree.c (walk_tree_1): Walk VECTOR_CST elements.
17323
17324 2021-02-08  Martin Liska  <mliska@suse.cz>
17325
17326         PR lto/98971
17327         * cfgexpand.c (pass_expand::execute): Parse per-function option
17328         flag_patchable_function_entry and use it.
17329         * common.opt: Remove function_entry_patch_area_size and
17330         function_entry_patch_area_start global variables.
17331         * opts.c (parse_and_check_patch_area): New function.
17332         (common_handle_option): Use it.
17333         * opts.h (parse_and_check_patch_area): New function.
17334         * toplev.c (process_options): Parse and use
17335         function_entry_patch_area_size.
17336
17337 2021-02-08  Martin Sebor  <msebor@redhat.com>
17338
17339         * doc/extend.texi (attribute malloc): Correct typos.
17340
17341 2021-02-05  Nathan Sidwell  <nathan@acm.org>
17342
17343         PR driver/98943
17344         * gcc.c (driver::maybe_run_linker): Check for input file
17345         accessibility if not linking.
17346
17347 2021-02-05  Richard Biener  <rguenther@suse.de>
17348
17349         PR tree-optimization/98855
17350         * tree-vectorizer.h (add_stmt_cost): New overload.
17351         * tree-vect-slp.c (li_cost_vec_cmp): New.
17352         (vect_bb_slp_scalar_cost): Cost individual loop regions
17353         separately.  Account for the scalar instance root stmt.
17354
17355 2021-02-05  Tom de Vries  <tdevries@suse.de>
17356
17357         PR debug/98656
17358         * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
17359         argument.
17360         (bit_test_cluster::emit): Reuse location_t for newly created
17361         gswitch statement.
17362         (switch_decision_tree::try_switch_expansion): Preserve
17363         location_t.
17364         * tree-switch-conversion.h: Change function signatures.
17365
17366 2021-02-05  Jakub Jelinek  <jakub@redhat.com>
17367
17368         PR target/98957
17369         * config/i386/i386-options.c (m_NONE, m_ALL): Define.
17370         * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
17371         X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
17372         (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
17373
17374 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17375
17376         * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
17377         * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
17378         * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
17379         (vget_high_f16): Reimplement using new builtin.
17380         (vget_high_f32): Likewise.
17381         (vget_high_f64): Likewise.
17382         (vget_high_p8): Likewise.
17383         (vget_high_p16): Likewise.
17384         (vget_high_p64): Likewise.
17385         (vget_high_s8): Likewise.
17386         (vget_high_s16): Likewise.
17387         (vget_high_s32): Likewise.
17388         (vget_high_s64): Likewise.
17389         (vget_high_u8): Likewise.
17390         (vget_high_u16): Likewise.
17391         (vget_high_u32): Likewise.
17392         (vget_high_u64): Likewise.
17393
17394 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17395
17396         * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
17397         * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
17398         * config/aarch64/arm_neon.h (__GET_LOW): Delete.
17399         (vget_low_f16): Reimplement using new builtin.
17400         (vget_low_f32): Likewise.
17401         (vget_low_f64): Likewise.
17402         (vget_low_p8): Likewise.
17403         (vget_low_p16): Likewise.
17404         (vget_low_p64): Likewise.
17405         (vget_low_s8): Likewise.
17406         (vget_low_s16): Likewise.
17407         (vget_low_s32): Likewise.
17408         (vget_low_s64): Likewise.
17409         (vget_low_u8): Likewise.
17410         (vget_low_u16): Likewise.
17411         (vget_low_u32): Likewise.
17412         (vget_low_u64): Likewise.
17413
17414 2021-02-05  Kito Cheng  <kito.cheng@sifive.com>
17415
17416         * gcc.c (print_multilib_info): Check all required argument is provided
17417         by default arg.
17418
17419 2021-02-05  liuhongt  <hongtao.liu@intel.com>
17420
17421         PR target/98537
17422         * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
17423         generate integer mask comparison for 128/256-bits vector when
17424         op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
17425         delete redundant !maskcmp condition.
17426         (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
17427         here.
17428         (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
17429         condition directly to if (maskcmp), add extra check for
17430         cmpmode, it should be MODE_INT.
17431         (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
17432         parameters op_true/op_false.
17433         (ix86_use_mask_cmp_p): New.
17434
17435 2021-02-05  liuhongt  <hongtao.liu@intel.com>
17436
17437         PR target/98172
17438         * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
17439         Remove m_GENERIC from ~list.
17440         (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
17441
17442 2021-02-04  David Malcolm  <dmalcolm@redhat.com>
17443
17444         PR c/97932
17445         * diagnostic-show-locus.c (compatible_locations_p): Require
17446         locations in the same macro map to be either both from the
17447         macro definition, or both from the macro arguments.
17448
17449 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
17450
17451         * config/aarch64/aarch64-simd-builtins.def: Add
17452         [su]mull_hi_lane[q] builtin generator macros.
17453         * config/aarch64/aarch64-simd.md
17454         (aarch64_<su>mull_hi_lane<mode>_insn): Define.
17455         (aarch64_<su>mull_hi_lane<mode>): Define.
17456         (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
17457         (aarch64_<su>mull_hi_laneq<mode>): Define.
17458         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
17459         builtin instead of inline asm.
17460         (vmull_high_lane_s32): Likewise.
17461         (vmull_high_lane_u16): Likewise.
17462         (vmull_high_lane_u32): Likewise.
17463         (vmull_high_laneq_s16): Likewise.
17464         (vmull_high_laneq_s32): Likewise.
17465         (vmull_high_laneq_u16): Likewise.
17466         (vmull_high_laneq_u32): Liekwise.
17467
17468 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
17469
17470         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
17471         builtin generator macros.
17472         * config/aarch64/aarch64-simd.md
17473         (aarch64_<su>mull_hi_n<mode>_insn): Define.
17474         (aarch64_<su>mull_hi_n<mode>): Define.
17475         * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
17476         instead of inline asm.
17477         (vmull_high_n_s32): Likewise.
17478         (vmull_high_n_u16): Likewise.
17479         (vmull_high_n_u32): Likewise.
17480
17481 2021-02-04  Richard Biener  <rguenther@suse.de>
17482
17483         PR tree-optimization/98855
17484         * tree-vect-loop.c (vectorizable_phi): Do not cost
17485         single-argument PHIs.
17486         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
17487         * tree-vect-stmts.c (vectorizable_bswap): Also perform
17488         costing for SLP operation.
17489
17490 2021-02-04  Martin Liska  <mliska@suse.cz>
17491
17492         * doc/extend.texi: Mention -mprefer-vector-width in target
17493         attributes.
17494
17495 2021-02-03  Martin Sebor  <msebor@redhat.com>
17496
17497         PR tree-optimization/98937
17498         * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
17499         Flush pointer_query cache.
17500
17501 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
17502
17503         * config/rs6000/genfusion.pl (gen_2logical): Add missing
17504         fixes based on patch review.
17505         * config/rs6000/fusion.md: Regenerate file.
17506
17507 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
17508
17509         * config/rs6000/t-rs6000: Comment out auto generation of
17510         fusion.md for now.
17511
17512 2021-02-03  Andrew Stubbs  <ams@codesourcery.com>
17513
17514         * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
17515         * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
17516         (output_file_start): Add gfx908.
17517         * config/gcn/gcn.opt (gpu_type): Add gfx908.
17518         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
17519         (MULTILIB_DIRNAMES): Add gfx908.
17520         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
17521         (main): Recognize gfx908.
17522         * config/gcn/t-omp-device: Add gfx908.
17523
17524 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
17525
17526         * config/aarch64/aarch64-simd-builtins.def: Add
17527         [su]mlsl_hi_lane[q] builtin macro generators.
17528         * config/aarch64/aarch64-simd.md
17529         (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
17530         (aarch64_<su>mlsl_hi_lane<mode>): Define.
17531         (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
17532         (aarch64_<su>mlsl_hi_laneq<mode>): Define.
17533         * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
17534         builtin instead of inline asm.
17535         (vmlsl_high_lane_s32): Likewise.
17536         (vmlsl_high_lane_u16): Likewise.
17537         (vmlsl_high_lane_u32): Likewise.
17538         (vmlsl_high_laneq_s16): Likewise.
17539         (vmlsl_high_laneq_s32): Likewise.
17540         (vmlsl_high_laneq_u16): Likewise.
17541         (vmlsl_high_laneq_u32): Likewise.
17542         (vmlal_high_laneq_u32): Likewise.
17543
17544 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
17545
17546         * config/aarch64/aarch64-simd-builtins.def: Add
17547         [su]mlal_hi_lane[q] builtin generator macros.
17548         * config/aarch64/aarch64-simd.md
17549         (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
17550         (aarch64_<su>mlal_hi_lane<mode>): Define.
17551         (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
17552         (aarch64_<su>mlal_hi_laneq<mode>): Define.
17553         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
17554         builtin instead of inline asm.
17555         (vmlal_high_lane_s32): Likewise.
17556         (vmlal_high_lane_u16): Likewise.
17557         (vmlal_high_lane_u32): Likewise.
17558         (vmlal_high_laneq_s16): Likewise.
17559         (vmlal_high_laneq_s32): Likewise.
17560         (vmlal_high_laneq_u16): Likewise.
17561         (vmlal_high_laneq_u32): Likewise.
17562
17563 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
17564
17565         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
17566         builtin generator macros.
17567         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
17568         Define.
17569         (aarch64_<su>mlsl_hi_n<mode>): Define.
17570         * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
17571         instead of inline asm.
17572         (vmlsl_high_n_s32): Likewise.
17573         (vmlsl_high_n_u16): Likewise.
17574         (vmlsl_high_n_u32): Likewise.
17575
17576 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
17577
17578         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
17579         builtin generator macros.
17580         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
17581         Define.
17582         (aarch64_<su>mlal_hi_n<mode>): Define.
17583         * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
17584         instead of inline asm.
17585         (vmlal_high_n_s32): Likewise.
17586         (vmlal_high_n_u16): Likewise.
17587         (vmlal_high_n_u32): Likewise.
17588
17589 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
17590
17591         * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
17592         generator macros.
17593         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
17594         Rename to...
17595         (aarch64_<su>mlal_hi<mode>_insn): This.
17596         (aarch64_<su>mlal_hi<mode>): Define.
17597         * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
17598         instead of inline asm.
17599         (vmlal_high_s16): Likewise.
17600         (vmlal_high_s32): Likewise.
17601         (vmlal_high_u8): Likewise.
17602         (vmlal_high_u16): Likewise.
17603         (vmlal_high_u32): Likewise.
17604
17605 2021-02-03  Ilya Leoshkevich  <iii@linux.ibm.com>
17606
17607         * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
17608         after calling alter_subreg() on a (mem).
17609
17610 2021-02-03  Martin Liska  <mliska@suse.cz>
17611
17612         PR lto/98912
17613         * lto-streamer-out.c (produce_lto_section): Fill up missing
17614         padding.
17615         * lto-streamer.h (struct lto_section): Add _padding field.
17616
17617 2021-02-03  Richard Biener  <rguenther@suse.de>
17618
17619         * lto-streamer.c (lto_get_section_name): Free temporary
17620         buffer.
17621         * tree-loop-distribution.c
17622         (loop_distribution::merge_dep_scc_partitions): Free edge data.
17623
17624 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
17625
17626         PR middle-end/97487
17627         * ifcvt.c (noce_can_force_operand): New function.
17628         (noce_emit_move_insn): Use it.
17629         (noce_try_sign_mask): Likewise.  Formatting fix.
17630
17631 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
17632
17633         PR middle-end/97971
17634         * lra-constraints.c (process_alt_operands): For inline asm, don't call
17635         fatal_insn, but instead return false.
17636
17637 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
17638
17639         PR tree-optimization/98287
17640         * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
17641         for V1DImode.
17642
17643 2021-02-03  Tamar Christina  <tamar.christina@arm.com>
17644
17645         PR tree-optimization/98928
17646         * tree-vect-loop.c (vect_analyze_loop_2): Change
17647         STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
17648         * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
17649         * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
17650         (class _stmt_vec_info): Add slp_vect_pattern_only_p.
17651
17652 2021-02-02  Richard Biener  <rguenther@suse.de>
17653
17654         * gimple-loop-interchange.cc (prepare_data_references):
17655         Release vectors.
17656         * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
17657         * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
17658         * tree-vect-stmts.c (vectorizable_condition): Do not
17659         allocate vectors.
17660         (vectorizable_comparison): Likewise.
17661
17662 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17663
17664         * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
17665         * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
17666         * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
17667         (vrsqrteq_u32): Likewise.
17668
17669 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17670
17671         * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
17672         * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
17673         (aarch64_sqxtun2<mode>_be): Likewise.
17674         (aarch64_sqxtun2<mode>): Likewise.
17675         * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
17676         (vqmovun_high_s32): Likewise.
17677         (vqmovun_high_s64): Likewise.
17678         * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
17679
17680 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17681
17682         * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
17683         AUTO_FP flags.
17684         (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
17685
17686 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17687
17688         * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
17689         fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
17690         fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
17691         ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
17692         fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
17693         fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
17694         fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
17695         fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
17696
17697 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17698
17699         * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
17700         * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
17701         ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
17702
17703 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17704
17705         * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
17706         uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
17707
17708 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17709
17710         * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
17711         vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
17712         vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
17713         ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
17714         udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
17715         ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
17716         ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
17717         ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
17718         NONE builtin flags.
17719
17720 2021-02-02  Jakub Jelinek  <jakub@redhat.com>
17721
17722         PR tree-optimization/98848
17723         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
17724         STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
17725
17726 2021-02-02  Kito Cheng  <kito.cheng@sifive.com>
17727
17728         PR target/98743
17729         * expr.c: Check mode before calling store_expr.
17730
17731 2021-02-02  Christophe Lyon  <christophe.lyon@linaro.org>
17732
17733         * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
17734         (VORNQ): Remove.
17735         * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
17736         instruction using expression ior.
17737         (mve_vornq_u<mode>): New expander.
17738         (mve_vornq_f<mode>): Use ior code instead of unspec.
17739         * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
17740
17741 2021-02-02  Alexandre Oliva  <oliva@adacore.com>
17742
17743         * tree-nested.c (convert_nonlocal_reference_op): Move
17744         current_function_decl restore after re-gimplification.
17745         (convert_local_reference_op): Likewise.
17746
17747 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17748
17749         * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
17750         Define builtins.
17751         * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
17752         Define.
17753         (aarch64_rshrn<mode>_insn_be): Likewise.
17754         (aarch64_rshrn<mode>): Likewise.
17755         (aarch64_rshrn2<mode>_insn_le): Likewise.
17756         (aarch64_rshrn2<mode>_insn_be): Likewise.
17757         (aarch64_rshrn2<mode>): Likewise.
17758         * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
17759         * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
17760         using builtin.
17761         (vrshrn_high_n_s32): Likewise.
17762         (vrshrn_high_n_s64): Likewise.
17763         (vrshrn_high_n_u16): Likewise.
17764         (vrshrn_high_n_u32): Likewise.
17765         (vrshrn_high_n_u64): Likewise.
17766         (vrshrn_n_s16): Likewise.
17767         (vrshrn_n_s32): Likewise.
17768         (vrshrn_n_s64): Likewise.
17769         (vrshrn_n_u16): Likewise.
17770         (vrshrn_n_u32): Likewise.
17771         (vrshrn_n_u64): Likewise.
17772
17773 2021-02-01  Sergei Trofimovich  <siarheit@google.com>
17774
17775         PR tree-optimization/98499
17776         * ipa-modref.c (analyze_ssa_name_flags): treat RVO
17777         conservatively and assume all possible side-effects.
17778
17779 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17780
17781         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
17782         vec_unpacku_hi_): Define builtins.
17783         * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
17784         builtin.
17785         (vmovl_high_s16): Likewise.
17786         (vmovl_high_s32): Likewise.
17787         (vmovl_high_u8): Likewise.
17788         (vmovl_high_u16): Likewise.
17789         (vmovl_high_u32): Likewise.
17790
17791 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17792
17793         * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
17794         Define builtins.
17795         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
17796         pattern.
17797         * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
17798         UNSPEC_UABDL.
17799         * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
17800         builtin.
17801         (vabdl_s16): Likewise.
17802         (vabdl_s32): Likewise.
17803         (vabdl_u8): Likewise.
17804         (vabdl_u16): Likewise.
17805         (vabdl_u32): Likewise.
17806         * config/aarch64/iterators.md (ABDL): New int iterator.
17807         (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
17808
17809 2021-02-01  Martin Sebor  <msebor@redhat.com>
17810
17811         * tree.h (BLOCK_VARS): Add comment.
17812         (BLOCK_SUBBLOCKS): Same.
17813         (BLOCK_SUPERCONTEXT): Same.
17814         (BLOCK_ABSTRACT_ORIGIN): Same.
17815         (inlined_function_outer_scope_p): Same.
17816
17817 2021-02-01  Martin Sebor  <msebor@redhat.com>
17818
17819         PR middle-end/97172
17820         * attribs.c (attr_access::free_lang_data): Define new function.
17821         * attribs.h (attr_access::free_lang_data): Declare new function.
17822
17823 2021-02-01  Richard Biener  <rguenther@suse.de>
17824
17825         * vec.h (auto_vec::auto_vec): Add memory stat parameters
17826         and pass them on.
17827         * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
17828
17829 2021-02-01  Tamar Christina  <tamar.christina@arm.com>
17830
17831         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
17832         aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
17833
17834 2021-02-01  Richard Biener  <rguenther@suse.de>
17835
17836         PR rtl-optimization/98863
17837         * config/i386/i386-features.c (convert_scalars_to_vector):
17838         Set DF_RD_PRUNE_DEAD_DEFS.
17839
17840 2021-01-31  Eric Botcazou  <ebotcazou@adacore.com>
17841
17842         * system.h (SIZE_MAX): Define if not already defined.
17843
17844 2021-01-30  Aaron Sawdey  <acsawdey@linux.ibm.com>
17845
17846         * config/rs6000/genfusion.pl (gen_2logical): New function to
17847         generate patterns for logical-logical fusion.
17848         * config/rs6000/fusion.md: Regenerated patterns.
17849         * config/rs6000/rs6000-cpus.def: Add
17850         OPTION_MASK_P10_FUSION_2LOGICAL.
17851         * config/rs6000/rs6000.c (rs6000_option_override_internal):
17852         Enable logical-logical fusion for p10.
17853         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
17854
17855 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
17856
17857         * config/rs6000/rs6000.opt: Add periods to new AIX options.
17858
17859 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
17860
17861         * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
17862         (mabi=vec-default): New.
17863         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
17864         __EXTABI__ for AIX Vector extended ABI.
17865         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
17866         extabi info.
17867         (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
17868         are non-volatile.
17869         * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
17870
17871 2021-01-30  Jakub Jelinek  <jakub@redhat.com>
17872
17873         * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
17874         DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
17875
17876 2021-01-29  Vladimir N. Makarov  <vmakarov@redhat.com>
17877
17878         PR target/97701
17879         * lra-constraints.c (in_class_p): Don't narrow class only for REG
17880         or MEM.
17881
17882 2021-01-29  Will Schmidt  <will_schmidt@vnet.ibm.com>
17883
17884         * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
17885         clauses for CODE_FOR_vsx_xvcvuxddp_scale and
17886         CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
17887
17888 2021-01-29  Andrew MacLeod  <amacleod@redhat.com>
17889
17890         PR tree-optimization/98866
17891         * gimple-range-gori.h (gori_compute:set_range_invariant): New.
17892         * gimple-range-gori.cc (gori_map::set_range_invariant): New.
17893         (gori_map::m_maybe_invariant): Rename from all_outgoing.
17894         (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
17895         (gori_map::is_export_p): Ditto.
17896         (gori_map::calculate_gori): Ditto.
17897         (gori_compute::set_range_invariant): New.
17898         * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
17899         invariant for pointers evaluating to [1, +INF].
17900
17901 2021-01-29  Richard Biener  <rguenther@suse.de>
17902
17903         PR rtl-optimization/98863
17904         * config/i386/i386-features.c (remove_partial_avx_dependency):
17905         Do not perform DF analysis.
17906         (pass_data_remove_partial_avx_dependency): Remove
17907         TODO_df_finish.
17908
17909 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
17910
17911         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
17912         builtin generator macros.
17913         * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
17914         Define.
17915         * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
17916         instead of inline asm.
17917         (vmull_n_s32): Likewise.
17918         (vmull_n_u16): Likewise.
17919         (vmull_n_u32): Likewise.
17920
17921 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17922
17923         * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
17924         Define builtins.
17925         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
17926         Rename to...
17927         (aarch64_<sur>abdl2<mode>): ... This.
17928         (<sur>sadv16qi): Adjust use of above.
17929         * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
17930         builtin.
17931         (vabdl_high_s16): Likewise.
17932         (vabdl_high_s32): Likewise.
17933         (vabdl_high_u8): Likewise.
17934         (vabdl_high_u16): Likewise.
17935         (vabdl_high_u32): Likewise.
17936
17937 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17938
17939         * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
17940         builtin.
17941         (uabal2): Likewise.
17942         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
17943         pattern.
17944         * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
17945         UNSPEC_UABAL2.
17946         * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
17947         builtin.
17948         (vabal_high_s16): Likewise.
17949         (vabal_high_s32): Likewise.
17950         (vabal_high_u8): Likewise.
17951         (vabal_high_u16): Likewise.
17952         (vabal_high_u32): Likewise.
17953         * config/aarch64/iterators.md (ABAL2): New mode iterator.
17954         (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
17955
17956 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17957
17958         * config/aarch64/aarch64-simd-builtins.def (sabal): Define
17959         builtin.
17960         (uabal): Likewise.
17961         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
17962         Rename to...
17963         (aarch64_<sur>abal<mode>): ... This
17964         (<sur>sadv16qi): Adust use of the above.
17965         * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
17966         builtin.
17967         (vabal_s16): Likewise.
17968         (vabal_s32): Likewise.
17969         (vabal_u8): Likewise.
17970         (vabal_u16): Likewise.
17971         (vabal_u32): Likewise.
17972
17973 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17974
17975         * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
17976         Define builtins.
17977         * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
17978         Define.
17979         * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
17980         builtin.
17981         (vaddlv_s16): Likewise.
17982         (vaddlv_u8): Likewise.
17983         (vaddlv_u16): Likewise.
17984         (vaddlvq_s8): Likewise.
17985         (vaddlvq_s16): Likewise.
17986         (vaddlvq_s32): Likewise.
17987         (vaddlvq_u8): Likewise.
17988         (vaddlvq_u16): Likewise.
17989         (vaddlvq_u32): Likewise.
17990         (vaddlv_s32): Likewise.
17991         (vaddlv_u32): Likewise.
17992         * config/aarch64/iterators.md (VDQV_L): New mode iterator.
17993         (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
17994         (Vwstype): New mode attribute.
17995         (Vwsuf): Likewise.
17996         (VWIDE_S): Likewise.
17997         (USADDLV): New int iterator.
17998         (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
17999
18000 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
18001
18002         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
18003         builtin generator macros.
18004         * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
18005         Define.
18006         * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
18007         instead of inline asm.
18008         (vmlsl_lane_s32): Likewise.
18009         (vmlsl_lane_u16): Likewise.
18010         (vmlsl_lane_u32): Likewise.
18011         (vmlsl_laneq_s16): Likewise.
18012         (vmlsl_laneq_s32): Likewise.
18013         (vmlsl_laneq_u16): Likewise.
18014         (vmlsl_laneq_u32): Likewise.
18015
18016 2021-01-29  Richard Biener  <rguenther@suse.de>
18017
18018         * doc/invoke.texi (--param max-gcse-memory): Document unit
18019         of size.
18020         * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
18021         * params.opt (--param max-gcse-memory): Adjust default and
18022         document unit of size.
18023
18024 2021-01-29  Richard Biener  <rguenther@suse.de>
18025
18026         PR rtl-optimization/98863
18027         * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
18028         HOST_WIDE_INT for the memory estimate.
18029
18030 2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
18031             Richard Biener  <rguenther@suse.de>
18032
18033         PR tree-optimization/97627
18034         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
18035         Do not analyze fake edges.
18036
18037 2021-01-29  Richard Biener  <rguenther@suse.de>
18038
18039         PR rtl-optimization/98144
18040         * df.h (df_mir_bb_info): Add con_visited member.
18041         * df-problems.c (df_mir_alloc): Initialize con_visited,
18042         do not fully populate IN and OUT.
18043         (df_mir_reset): Likewise.
18044         (df_mir_confluence_0): Set con_visited.
18045         (df_mir_confluence_n): Properly handle implicitely
18046         fully populated IN and OUT as designated by con_visited
18047         and update con_visited accordingly.
18048
18049 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
18050
18051         PR target/98849
18052         * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
18053         vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
18054         && !TARGET_REALLY_IWMMXT to conditions.
18055
18056 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
18057
18058         PR debug/98331
18059         * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
18060         a BARRIER.
18061
18062 2021-01-28  Marek Polacek  <polacek@redhat.com>
18063
18064         PR c++/94775
18065         * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
18066         the main variant, maybe reset it in its variants too.
18067         * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
18068         (check_aligned_type): Check if TYPE_USER_ALIGN match.
18069
18070 2021-01-28  Christophe Lyon  <christophe.lyon@linaro.org>
18071
18072         PR target/98730
18073         * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
18074         of constant zero for comparisons.
18075
18076 2021-01-28  Michael Meissner  <meissner@linux.ibm.com>
18077
18078         * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
18079         support for mapping built-in function names for long double
18080         built-in functions if long double is IEEE 128-bit.
18081
18082 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
18083
18084         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
18085         builtin generator macros.
18086         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
18087         Define.
18088         * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
18089         instead of inline asm.
18090         (vmlsl_n_s32): Likewise.
18091         (vmlsl_n_u16): Likewise.
18092         (vmlsl_n_u32): Likewise.
18093
18094 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
18095
18096         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
18097         builtin generator macros.
18098         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
18099         Define.
18100         * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
18101         instead of inline asm.
18102         (vmlal_n_s32): Likewise.
18103         (vmlal_n_u16): Likewise.
18104         (vmlal_n_u32): Likewise.
18105
18106 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18107
18108         * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
18109         builtin.
18110         * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
18111         Define.
18112         (aarch64_shrn2<mode>_insn_be): Likewise.
18113         (aarch64_shrn2<mode>): Likewise.
18114         * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
18115         using builtins.
18116         (vshrn_high_n_s32): Likewise.
18117         (vshrn_high_n_s64): Likewise.
18118         (vshrn_high_n_u16): Likewise.
18119         (vshrn_high_n_u32): Likewise.
18120         (vshrn_high_n_u64): Likewise.
18121
18122 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18123
18124         * config/aarch64/aarch64-simd-builtins.def (shrn): Define
18125         builtin.
18126         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
18127         Define.
18128         (aarch64_shrn<mode>_insn_be): Likewise.
18129         (aarch64_shrn<mode>): Likewise.
18130         * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
18131         builtins.
18132         (vshrn_n_s32): Likewise.
18133         (vshrn_n_s64): Likewise.
18134         (vshrn_n_u16): Likewise.
18135         (vshrn_n_u32): Likewise.
18136         (vshrn_n_u64): Likewise.
18137         * config/aarch64/iterators.md (vn_mode): New mode attribute.
18138
18139 2021-01-28  Richard Biener  <rguenther@suse.de>
18140
18141         PR rtl-optimization/80960
18142         * dse.c (check_mem_read_rtx): Call get_addr on the
18143         offsetted address.
18144
18145 2021-01-28  Xionghu Luo  <luoxhu@linux.ibm.com>
18146             David Edelsohn  <dje.gcc@gmail.com>
18147
18148         PR target/98799
18149         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18150         Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
18151         when -m32.
18152         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
18153         Delete.
18154         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
18155         wrapper call rs6000_expand_vector_set_var for cleanup.  Call
18156         rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
18157         directly.
18158         (rs6000_expand_vector_set_var): Delete.
18159         (rs6000_expand_vector_set_var_p9): Make static.
18160         (rs6000_expand_vector_set_var_p8): Make static.
18161
18162 2021-01-28  Xing GUO  <higuoxing@gmail.com>
18163
18164         * common/config/riscv/riscv-common.c
18165         (riscv_subset_list::parsing_subset_version): Fix -march option parsing
18166         when `p` extension exists.
18167
18168 2021-01-27  Vladimir N. Makarov  <vmakarov@redhat.com>
18169
18170         PR rtl-optimization/97684
18171         * ira.c (ira): Call ira_set_pseudo_classes before
18172         update_equiv_regs when it is necessary.
18173
18174 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
18175
18176         PR target/98853
18177         * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
18178         %w0, %w1 and %2 instead of %0, %1 and %2.
18179
18180 2021-01-27  Aaron Sawdey  <acsawdey@linux.ibm.com>
18181
18182         * config/rs6000/genfusion.pl: New script to generate
18183         define_insn_and_split patterns so combine can arrange fused
18184         instructions next to each other.
18185         * config/rs6000/fusion.md: New file, generated fused instruction
18186         patterns for combine.
18187         * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
18188         (non_update_memory_operand): New predicate.
18189         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
18190         OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
18191         POWERPC_MASKS.
18192         * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
18193         prototype.
18194         * config/rs6000/rs6000.c (rs6000_option_override_internal):
18195         Automatically set OPTION_MASK_P10_FUSION and
18196         OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
18197         (rs600_opt_masks): Allow -mpower10-fusion
18198         in function attributes.
18199         (address_is_non_pfx_d_or_x): New function.
18200         * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
18201         * config/rs6000/rs6000.md: Include fusion.md.
18202         * config/rs6000/rs6000.opt: Add -mpower10-fusion
18203         and -mpower10-fusion-ld-cmpi.
18204         * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
18205
18206 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
18207
18208         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
18209         builtin generator macros.
18210         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
18211         Rename to...
18212         (aarch64_<su>mlal<mode>): This.
18213         * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
18214         instead of inline asm.
18215         (vmlal_s16): Likewise.
18216         (vmlal_s32): Likewise.
18217         (vmlal_u8): Likewise.
18218         (vmlal_u16): Likewise.
18219         (vmlal_u32): Likewise.
18220
18221 2021-01-27  Richard Biener  <rguenther@suse.de>
18222
18223         PR tree-optimization/98854
18224         * tree-vect-slp.c (vect_build_slp_tree_2): Also build
18225         PHIs from scalars when the number of CTORs matches the
18226         number of children.
18227
18228 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
18229
18230         * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
18231         generator macro.
18232         * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
18233         Rename to...
18234         (aarch64_mls_n<mode>): This.
18235         * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
18236         instead of asm.
18237         (vmls_n_s32): Likewise.
18238         (vmls_n_u16): Likewise.
18239         (vmls_n_u32): Likewise.
18240         (vmlsq_n_s16): Likewise.
18241         (vmlsq_n_s32): Likewise.
18242         (vmlsq_n_u16): Likewise.
18243         (vmlsq_n_u32): Likewise.
18244
18245 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
18246
18247         * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
18248         generator macro.
18249         * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
18250         than asm.
18251         (vmls_s16): Likewise.
18252         (vmls_s32): Likewise.
18253         (vmls_u8): Likewise.
18254         (vmls_u16): Likewise.
18255         (vmls_u32): Likewise.
18256         (vmlsq_s8): Likewise.
18257         (vmlsq_s16): Likewise.
18258         (vmlsq_s32): Likewise.
18259         (vmlsq_u8): Likewise.
18260         (vmlsq_u16): Likewise.
18261         (vmlsq_u32): Likewise.
18262
18263 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
18264
18265         * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
18266         generator macro.
18267         * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
18268         Rename to...
18269         (aarch64_mla_n<mode>): This.
18270         * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
18271         instead of asm.
18272         (vmla_n_s32): Likewise.
18273         (vmla_n_u16): Likewise.
18274         (vmla_n_u32): Likewise.
18275         (vmlaq_n_s16): Likewise.
18276         (vmlaq_n_s32): Likewise.
18277         (vmlaq_n_u16): Likewise.
18278         (vmlaq_n_u32): Likewise.
18279
18280 2021-01-27  liuhongt  <hongtao.liu@intel.com>
18281
18282         PR target/98833
18283         * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
18284         (*sse2_eq<mode>3): Ditto.
18285
18286 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
18287
18288         * tree-pass.h (PROP_trees): Rename to ...
18289         (PROP_gimple): ... this.
18290         * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
18291         * passes.c (execute_function_dump, execute_function_todo,
18292         execute_one_ipa_transform_pass, execute_one_pass): Likewise.
18293         * varpool.c (ctor_for_folding): Likewise.
18294
18295 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
18296
18297         PR tree-optimization/97260
18298         * varpool.c: Include tree-pass.h.
18299         (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
18300         non-TREE_SIDE_EFFECTS automatic variables.
18301
18302 2021-01-26  Paul Fee  <paul.f.fee@gmail.com>
18303
18304         * doc/cpp.texi (__cplusplus): Document value for -std=c++23
18305         or -std=gnu++23.
18306         * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
18307         * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
18308         (gen_compile_unit_die): Recognise C++23.
18309
18310 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
18311
18312         PR bootstrap/98839
18313         * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
18314         in comparison.
18315
18316 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
18317
18318         PR target/98681
18319         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
18320         Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
18321         and INTVAL (mask).  Add && INTVAL (mask) > 0 condition.
18322
18323 2021-01-26  Richard Biener  <rguenther@suse.de>
18324
18325         * gimple-pretty-print.c (dump_binary_rhs): Handle
18326         VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
18327
18328 2021-01-26  Richard Biener  <rguenther@suse.de>
18329
18330         PR middle-end/98726
18331         * tree.h (vector_cst_int_elt): Remove.
18332         * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
18333         make static.
18334
18335 2021-01-26  Andrew Stubbs  <ams@codesourcery.com>
18336
18337         * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
18338         for V64DFmode min/max reductions.
18339
18340 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
18341
18342         * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
18343         as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
18344         two halves, one with x and the other with const0_rtx, ordered
18345         depending on endianity.
18346
18347 2021-01-26  Alexandre Oliva  <oliva@adacore.com>
18348
18349         * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
18350         temporaries not seen in binding block, and not about to be
18351         added as gimple variables.
18352
18353 2021-01-25  Martin Sebor  <msebor@redhat.com>
18354
18355         PR c++/98646
18356         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
18357
18358 2021-01-25  Martin Liska  <mliska@suse.cz>
18359
18360         * value-prof.c (get_nth_most_common_value): Use %s instead
18361         of %qs string.
18362
18363 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
18364
18365         PR debug/98811
18366         * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
18367         readelf -wi is able to read the emitted .debug_info back.
18368         * configure: Regenerated.
18369
18370 2021-01-25  Martin Liska  <mliska@suse.cz>
18371
18372         PR gcov-profile/98739
18373         * common.opt: Add missing sign symbol.
18374         * value-prof.c (get_nth_most_common_value): Restore handling
18375         of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
18376         PROFILE_REPRODUCIBILITY_MULTITHREADED.
18377
18378 2021-01-25  Richard Biener  <rguenther@suse.de>
18379
18380         PR middle-end/98807
18381         * tree.c (vector_element_bits): Always use precision of
18382         the element type for boolean vectors.
18383
18384 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18385
18386         * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
18387         (ENDFILE_SPEC): Evaluate qnolinkcmds.
18388
18389 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18390
18391         * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
18392         nostartfiles handling since this is already done by
18393         LINK_COMMAND_SPEC.  Evaluate qnolinkcmds.
18394         (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
18395         is already done by LINK_COMMAND_SPEC.
18396         (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
18397         this is already done by LINK_COMMAND_SPEC.  Remove qnolinkcmds
18398         evaluation.
18399
18400 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
18401
18402         PR testsuite/98771
18403         * fold-const-call.c (host_size_t_cst_p): Renamed to ...
18404         (size_t_cst_p): ... this.  Check and store unsigned HOST_WIDE_INT
18405         value rather than host size_t.
18406         (fold_const_call): Change type of s2 from size_t to
18407         unsigned HOST_WIDE_INT.  Use size_t_cst_p instead of
18408         host_size_t_cst_p.  For strncmp calls, pass MIN (s2, SIZE_MAX)
18409         instead of s2 as last argument.
18410
18411 2021-01-25  Tamar Christina  <tamar.christina@arm.com>
18412
18413         * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
18414         VCMLA_OP, VCMUL_OP): New.
18415         * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
18416         * config/arm/neon.md (cmul<conj_op><mode>3): New.
18417         * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
18418         UNSPEC_VCMUL_CONJ): New.
18419         * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
18420         cml<fcmac1><conj_op><mode>4): New.
18421
18422 2021-01-23  Jakub Jelinek  <jakub@redhat.com>
18423
18424         PR testsuite/97301
18425         * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
18426
18427 2021-01-22  Jonathan Wright  <jonathan.wright@arm.com>
18428
18429         * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
18430         generator macro.
18431         * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
18432         than asm.
18433         (vmla_s16): Likewise.
18434         (vmla_s32): Likewise.
18435         (vmla_u8): Likewise.
18436         (vmla_u16): Likewise.
18437         (vmla_u32): Likewise.
18438         (vmlaq_s8): Likewise.
18439         (vmlaq_s16): Likewise.
18440         (vmlaq_s32): Likewise.
18441         (vmlaq_u8): Likewise.
18442         (vmlaq_u16): Likewise.
18443         (vmlaq_u32): Likewise.
18444
18445 2021-01-22  David Malcolm  <dmalcolm@redhat.com>
18446
18447         * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
18448         directive.
18449
18450 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
18451
18452         PR debug/98796
18453         * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
18454         filenames to emit, still emit the required 0 index directory and
18455         filename entries that match DW_AT_comp_dir and DW_AT_name of the
18456         compilation unit.
18457
18458 2021-01-22  Marek Polacek  <polacek@redhat.com>
18459
18460         PR c++/98545
18461         * doc/invoke.texi: Update C++ ABI Version 15 description.
18462
18463 2021-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18464
18465         PR tree-optimization/98766
18466         * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
18467         comparing against type size with param_avoid_fma_max_bits.
18468
18469 2021-01-22  Richard Biener  <rguenther@suse.de>
18470
18471         PR middle-end/98793
18472         * tree.c (vector_element_bits): Key single-bit bool vector on
18473         integer mode rather than not vector mode.
18474
18475 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
18476
18477         PR target/98093
18478         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18479         Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
18480         platforms.
18481         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
18482         to call different path for P8 and P9.
18483         (rs6000_expand_vector_set_var_p9): New function.
18484         (rs6000_expand_vector_set_var_p8): New function.
18485
18486 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
18487
18488         PR target/79251
18489         PR target/98065
18490         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18491         Ajdust variable index vec_insert from address dereference to
18492         ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
18493         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
18494         New declaration.
18495         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
18496
18497 2021-01-22  Martin Liska  <mliska@suse.cz>
18498
18499         PR gcov-profile/98739
18500         * profile.c (compute_value_histograms): Drop time profile for
18501         -fprofile-reproducible=multithreaded.
18502
18503 2021-01-22  Nathan Sidwell  <nathan@acm.org>
18504
18505         * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
18506         existence here.
18507
18508 2021-01-22  Richard Biener  <rguenther@suse.de>
18509
18510         PR middle-end/98773
18511         * tree-data-ref.c (initalize_matrix_A): Revert previous
18512         change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
18513
18514 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
18515
18516         PR tree-optimization/90248
18517         * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
18518         X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
18519         simplifications.
18520         (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
18521         X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
18522
18523 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
18524
18525         PR tree-optimization/98255
18526         * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
18527         extend index - low_bound from sizetype's precision rather than index
18528         precision.
18529         (get_addr_base_and_unit_offset_1): Likewise.
18530         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
18531         * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
18532
18533 2021-01-22  Richard Biener  <rguenther@suse.de>
18534
18535         PR tree-optimization/98786
18536         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
18537         adding new uses of abnormals.  Verify we deal with a conditional
18538         conversion.
18539
18540 2021-01-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
18541
18542         PR target/98636
18543         * optc-save-gen.awk: Add arm_fp16_format to checked_options.
18544
18545 2021-01-22  liuhongt  <hongtao.liu@intel.com>
18546
18547         PR target/96891
18548         PR target/98348
18549         * config/i386/sse.md (VI_128_256): New mode iterator.
18550         (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
18551          *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
18552          *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
18553         define_insn_and_split to lower avx512 vector comparison to avx
18554         version when dest is vector.
18555         (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
18556         define_insn_and_split for negating the comparison result.
18557         * config/i386/predicates.md (float_vector_all_ones_operand):
18558         New predicate.
18559         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
18560         general NOT operator without UNSPEC_MASKOP.
18561
18562 2021-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>
18563
18564         PR rtl-optimization/98777
18565         * lra-int.h (lra_pmode_pseudo): New extern.
18566         * lra.c (lra_pmode_pseudo): New global.
18567         (lra): Set it up.
18568         * lra-eliminations.c (eliminate_regs_in_insn): Use it.
18569
18570 2021-01-21  Ilya Leoshkevich  <iii@linux.ibm.com>
18571
18572         * fwprop.c (fwprop_propagation::classify_result): Allow
18573         (subreg (mem)) simplifications.
18574
18575 2021-01-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18576
18577         * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
18578         Split into...
18579         (aarch64_sqdmlal<mode>): ... This...
18580         (aarch64_sqdmlsl<mode>): ... And this.
18581         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
18582         (aarch64_sqdmlal_lane<mode>): ... This...
18583         (aarch64_sqdmlsl_lane<mode>): ... And this.
18584         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
18585         (aarch64_sqdmlsl_laneq<mode>): ... This...
18586         (aarch64_sqdmlal_laneq<mode>):  ... And this.
18587         (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
18588         (aarch64_sqdmlsl_n<mode>): ... This...
18589         (aarch64_sqdmlal_n<mode>): ... And this.
18590         (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
18591         (aarch64_sqdmlal2<mode>_internal): ... This...
18592         (aarch64_sqdmlsl2<mode>_internal): ... And this.
18593
18594 2021-01-21  Christophe Lyon  <christophe.lyon@linaro.org>
18595
18596         * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
18597
18598 2021-01-21  Andrea Corallo  <andrea.corallo@arm.com>
18599
18600         PR target/96372
18601         * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
18602
18603 2021-01-21  liuhongt  <hongtao.liu@intel.com>
18604
18605         PR rtl-optimization/98694
18606         * regcprop.c (copy_value): If SRC had been assigned a mode
18607         narrower than the copy, we can't link DEST into the chain even
18608         they have same hard_regno_nregs(i.e. HImode/SImode in i386
18609         backend).
18610
18611 2021-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18612
18613         * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
18614         Convert to define_insn_and_split.  Split into simple move when moving
18615         bottom element.
18616
18617 2021-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
18618
18619         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
18620         Adjust comment.  Simplify code.
18621
18622 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
18623
18624         PR debug/98765
18625         * dwarf2out.c (reset_indirect_string): Also reset indirect strings
18626         with DW_FORM_line_strp form.
18627         (prune_unused_types_update_strings): Don't add into debug_str_hash
18628         indirect strings with DW_FORM_line_strp form.
18629         (adjust_name_comp_dir): New function.
18630         (dwarf2out_finish): Call it on CU DIEs after resetting
18631         debug_line_str_hash.
18632
18633 2021-01-20  Vladimir N. Makarov  <vmakarov@redhat.com>
18634
18635         PR rtl-optimization/98722
18636         * lra-eliminations.c (eliminate_regs_in_insn): Check that target
18637         has no 3-op add insn to transform insns containing two pluses.
18638
18639 2021-01-20  Richard Biener  <rguenther@suse.de>
18640
18641         * hwint.h (add_hwi): New function.
18642         (mul_hwi): Likewise.
18643         * tree-data-ref.c (initialize_matrix_A): Properly translate
18644         tree constants and avoid HOST_WIDE_INT_MIN.
18645         (lambda_matrix_row_add): Avoid undefined integer overflow
18646         and return true on such overflow.
18647         (lambda_matrix_right_hermite): Handle overflow from
18648         lambda_matrix_row_add gracefully.  Simplify previous fix.
18649         (analyze_subscript_affine_affine): Likewise.
18650
18651 2021-01-20  Eugene Rozenfeld  <erozen@microsoft.com>
18652
18653         PR tree-optimization/96674
18654         * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
18655         x >= y && y != XXX_MIN --> x > y - 1
18656
18657 2021-01-20  Richard Sandiford  <richard.sandiford@arm.com>
18658
18659         PR tree-optimization/98535
18660         * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
18661         If the high and low permutes are the same, remove the high permutes
18662         from the working set and only continue with the low ones.
18663
18664 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
18665
18666         PR tree-optimization/98721
18667         * builtins.c (access_ref::inform_access): Don't assume
18668         SSA_NAME_IDENTIFIER must be non-NULL.  Print messages about
18669         object whenever allocfn is NULL, rather than only when DECL_P
18670         is true.  Use %qE instead of %qD for that.  Formatting fixes.
18671
18672 2021-01-20  Richard Biener  <rguenther@suse.de>
18673
18674         PR tree-optimization/98758
18675         * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
18676         (lambda_matrix_right_hermite): Avoid undefinedness with
18677         signed integer abs and multiplication.
18678         (analyze_subscript_affine_affine): Use lambda_int.
18679
18680 2021-01-20  David Malcolm  <dmalcolm@redhat.com>
18681
18682         PR debug/98751
18683         * dwarf2out.c (output_line_info): Rename static variable
18684         "generation", moving it out of the function to...
18685         (output_line_info_generation): New.
18686         (init_sections_and_labels): Likewise, renaming the variable to...
18687         (init_sections_and_labels_generation): New.
18688         (dwarf2out_c_finalize): Reset the new variables.
18689
18690 2021-01-19  Martin Sebor  <msebor@redhat.com>
18691
18692         PR middle-end/98664
18693         * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
18694         all functions, even if they're not declared artificial or inline.
18695         * tree.c (tree_inlined_location): Use macro expansion location
18696         only if scope traversal fails to expose one.
18697
18698 2021-01-19  Richard Sandiford  <richard.sandiford@arm.com>
18699
18700         PR rtl-optimization/92294
18701         * alias.c (compare_base_symbol_refs): Take an extra parameter
18702         and add the distance between two symbols to it.  Enshrine in
18703         comments that -1 means "either 0 or 1, but we can't tell
18704         which at compile time".
18705         (memrefs_conflict_p): Update call accordingly.
18706         (rtx_equal_for_memref_p): Likewise.  Take the distance between symbols
18707         into account.
18708
18709 2021-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18710
18711         * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
18712         sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
18713         uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
18714         sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
18715         sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
18716         sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
18717         sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
18718         sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
18719         sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
18720         uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
18721         sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
18722         sqmovun): Use NONE flags.
18723
18724 2021-01-19  Richard Biener  <rguenther@suse.de>
18725
18726         PR ipa/98330
18727         * ipa-modref.c (analyze_stmt): Only record a summary for a
18728         direct call.
18729
18730 2021-01-19  Richard Biener  <rguenther@suse.de>
18731
18732         PR middle-end/98638
18733         * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
18734
18735 2021-01-19  Daniel Hellstrom  <daniel@gaisler.com>
18736
18737         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
18738         built-in define __FIX_LEON3FT_TN0018.
18739
18740 2021-01-19  Richard Biener  <rguenther@suse.de>
18741
18742         PR ipa/97673
18743         * tree-inline.c (tree_function_versioning): Set input_location
18744         to UNKNOWN_LOCATION throughout the function.
18745
18746 2021-01-19  Tobias Burnus  <tobias@codesourcery.com>
18747
18748         PR fortran/98476
18749         * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
18750
18751 2021-01-19  Martin Jambor  <mjambor@suse.cz>
18752
18753         PR ipa/98690
18754         * ipa-sra.c (ssa_name_only_returned_p): New parameter fun.  Check
18755         whether non-call exceptions allow removal of a statement.
18756         (isra_analyze_call): Pass the appropriate function to
18757         ssa_name_only_returned_p.
18758
18759 2021-01-19  Geng Qi  <gengqi@linux.alibaba.com>
18760
18761         * config/riscv/arch-canonicalize (longext_sort): New function for
18762          sorting 'multi-letter'.
18763         * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
18764         'alts'. The 'arch' may not be the first of 'alts'.
18765         (_expand_combination): Add underline for the 'ext' without '*'.
18766         This is because, a single-letter extension can always be treated well
18767         with a '_' prefix, but it cannot be separated out if it is appended
18768         to a multi-letter.
18769
18770 2021-01-18  Vladimir N. Makarov  <vmakarov@redhat.com>
18771
18772         PR target/97847
18773         * ira.c (ira): Skip abnormal critical edge splitting.
18774
18775 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
18776
18777         PR tree-optimization/98727
18778         * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
18779         second .MUL_OVERFLOW operand for signed multiplication with overflow
18780         checking if the second operand of multiplication is not constant.
18781
18782 2021-01-18  David Edelsohn  <dje.gcc@gmail.com>
18783
18784         * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
18785         defaults to version 4.
18786
18787 2021-01-18  David Malcolm  <dmalcolm@redhat.com>
18788
18789         * attribs.h (fndecl_dealloc_argno): New decl.
18790         * builtins.c (call_dealloc_argno): Split out second half of
18791         function into...
18792         (fndecl_dealloc_argno): New.
18793         * doc/extend.texi (Common Function Attributes): Document the
18794         interaction between the analyzer and the malloc attribute.
18795         * doc/invoke.texi (Static Analyzer Options): Likewise.
18796
18797 2021-01-17  David Edelsohn  <dje.gcc@gmail.com>
18798
18799         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
18800         dwarf_version to 4.
18801         * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
18802
18803 2021-01-17  Martin Jambor  <mjambor@suse.cz>
18804
18805         PR ipa/98222
18806         * cgraph.c (clone_of_p): Check also former_clone_of as we climb
18807         the clone tree.
18808
18809 2021-01-17  Mark Wielaard  <mark@klomp.org>
18810
18811         * common.opt (gdwarf-): Init(5).
18812         * doc/invoke.texi (-gdwarf): Document default to 5.
18813
18814 2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
18815
18816         * builtin-types.def
18817         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
18818         to...
18819         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
18820         ...this.  Add extra argument.
18821         * gimplify.c (omp_default_clause): Ensure that event handle is
18822         firstprivate in a task region.
18823         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
18824         (gimplify_adjust_omp_clauses): Likewise.
18825         * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
18826         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
18827         * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
18828         if detach clause specified.  Add detach argument when generating
18829         call to GOMP_task.
18830         * omp-low.c (scan_sharing_clauses): Setup data environment for detach
18831         clause.
18832         (finish_taskreg_scan): Move field for variable containing the event
18833         handle to the front of the struct.
18834         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH.  Fix
18835         ordering.
18836         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
18837         OMP_CLAUSE_DETACH clause.
18838         (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
18839         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
18840         * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
18841         Fix ordering.
18842         (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH.  Fix
18843         ordering.
18844         (walk_tree_1): Handle OMP_CLAUSE_DETACH.
18845
18846 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18847
18848         * config/nios2/t-rtems: Reset all MULTILIB_* variables.  Shorten
18849         multilib directory names.  Use MULTILIB_REQUIRED instead of
18850         MULTILIB_EXCEPTIONS.  Add -mhw-mul -mhw-mulx -mhw-div
18851         -mcustom-fpu-cfg=fph2 multilib.
18852
18853 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18854
18855         * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
18856         (nios2_init_fpu_configs): Provide register values for new
18857         -mcustom-fpu-cfg=fph2 option variant.
18858         * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
18859         variant.
18860
18861 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18862
18863         * config/nios2/nios2.c (nios2_custom_check_insns): Remove
18864         custom instruction warnings.
18865
18866 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
18867
18868         PR tree-optimization/96669
18869         * match.pd ((CST << x) & 1 -> x == 0): New simplification.
18870
18871 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
18872
18873         PR tree-optimization/96271
18874         * passes.def: Pass false argument to first two pass_cd_dce
18875         instances and true to last instance.  Add comment that
18876         last instance rewrites no longer addressed locals.
18877         * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
18878         initialize it.
18879         (pass_cd_dce::set_pass_param): New method.
18880         (pass_cd_dce::execute): Return TODO_update_address_taken from
18881         last cd_dce instance.
18882
18883 2021-01-15  Carl Love  <cel@us.ibm.com>
18884
18885         * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
18886         New defines.
18887         * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
18888         * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
18889         DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
18890         DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
18891         MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
18892         Add builtin define.
18893         (MULH, DIVE, MOD):  Add new BU_P10_OVERLOAD_2 definitions.
18894         * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
18895         VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
18896         New overloaded definitions.
18897         (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
18898         P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
18899         P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
18900         P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
18901         P10V_BUILTIN_MULHU_V4SI]: Add case
18902         statement for builtins.
18903         * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
18904         * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
18905         (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
18906         (vsx_mul_v2di): Add if TARGET_POWER10 statement.
18907         (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
18908         (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
18909         mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
18910         Add define_insn, mode is VIlong.
18911         * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
18912         Add builtin descriptions.
18913
18914 2021-01-15  Eric Botcazou  <ebotcazou@adacore.com>
18915
18916         * final.c (final_start_function_1): Reset force_source_line.
18917
18918 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
18919
18920         PR tree-optimization/96669
18921         * match.pd (((1 << A) & 1) != 0 -> A == 0,
18922         ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
18923         possibly different power of two constants and to right shift too.
18924
18925 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
18926
18927         PR tree-optimization/96681
18928         * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
18929         ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
18930         ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
18931         ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
18932
18933 2021-01-15  Alexandre Oliva  <oliva@adacore.com>
18934
18935         * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
18936
18937 2021-01-15  Tamar Christina  <tamar.christina@arm.com>
18938
18939         * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
18940         cmul<conj_op><mode>3): New.
18941         * config/aarch64/iterators.md (UNSPEC_FCMUL,
18942         UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
18943         UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
18944         FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
18945         sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
18946         (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
18947         (rot_op): Renamed to conj_op.
18948         * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
18949         cmul<conj_op><mode>3): New.
18950         * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
18951         cmul<conj_op><mode>3): New.
18952
18953 2021-01-15  David Malcolm  <dmalcolm@redhat.com>
18954
18955         PR bootstrap/98696
18956         * diagnostic.c
18957         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
18958         Escape the tempfile name when constructing the expected output.
18959
18960 2021-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18961
18962         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
18963         Rename to...
18964         (aarch64_<su>mlsl_hi<mode>): ... This.
18965         (aarch64_<su>mlsl_hi<mode>): Define.
18966         (*aarch64_<su>mlsl<mode): Rename to...
18967         (aarch64_<su>mlsl<mode): ... This.
18968         * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
18969         smlsl_hi, umlsl_hi): Define builtins.
18970         * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
18971         vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
18972         vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
18973         vmlsl_u16, vmlsl_u32): Reimplement with builtins.
18974
18975 2021-01-15  Uroš Bizjak  <ubizjak@gmail.com>
18976
18977         * config/i386/i386-c.c (ix86_target_macros):
18978         Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
18979
18980 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
18981
18982         PR target/88836
18983         * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
18984         * Makefile.in (RTL_SSA_H): New variable.
18985         * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
18986         * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
18987         * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
18988         pass_combine.
18989         * config/aarch64/aarch64-cc-fusion.cc: New file.
18990
18991 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
18992
18993         * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
18994         calling cancel_changes for changes that no longer exist.
18995
18996 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
18997
18998         * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
18999         (function_info::reg_defs): ...this.
19000         * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
19001         (function_info::reg_defs): ...this.
19002
19003 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
19004
19005         PR target/71233
19006         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
19007
19008 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
19009
19010         Revert:
19011         2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
19012
19013         PR target/71233
19014         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
19015
19016 2021-01-15  Richard Biener  <rguenther@suse.de>
19017
19018         PR tree-optimization/96376
19019         * tree-vect-stmts.c (get_load_store_type): Disregard alignment
19020         for VMAT_INVARIANT.
19021
19022 2021-01-15  Martin Liska  <mliska@suse.cz>
19023
19024         * doc/install.texi: Document that some tests need pytest module.
19025         * doc/sourcebuild.texi: Likewise.
19026
19027 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
19028
19029         PR target/71233
19030         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
19031
19032 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
19033
19034         * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
19035         (mve_vshrq_n_u<mode>_imm): Likewise.
19036         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
19037         * config/arm/vec-common.md: ... here.
19038
19039 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
19040
19041         * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
19042         vec-commond.md.
19043         * config/arm/neon.md (vashl<mode>3): Delete.
19044         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
19045         (vasl<mode>3): New expander.
19046
19047 2021-01-15  Richard Biener  <rguenther@suse.de>
19048
19049         PR tree-optimization/98685
19050         * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
19051         of vector extern defs.
19052
19053 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
19054
19055         PR jit/98586
19056         * diagnostic.c (diagnostic_kind_text): Break out this array
19057         from...
19058         (diagnostic_build_prefix): ...here.
19059         (fancy_abort): Detect when diagnostic_initialize has not yet been
19060         called and fall back to a minimal implementation of printing the
19061         ICE, rather than segfaulting in internal_error.
19062
19063 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
19064
19065         * diagnostic.c (diagnostic_initialize): Eliminate
19066         parseable_fixits_p in favor of initializing extra_output_kind from
19067         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
19068         (convert_column_unit): New function, split out from...
19069         (diagnostic_converted_column): ...this.
19070         (print_parseable_fixits): Add "column_unit" and "tabstop" params.
19071         Use them to call convert_column_unit on the column values.
19072         (diagnostic_report_diagnostic): Eliminate conditional on
19073         parseable_fixits_p in favor of a switch statement on
19074         extra_output_kind, passing the appropriate values to the new
19075         params of print_parseable_fixits.
19076         (selftest::test_print_parseable_fixits_none): Update for new
19077         params of print_parseable_fixits.
19078         (selftest::test_print_parseable_fixits_insert): Likewise.
19079         (selftest::test_print_parseable_fixits_remove): Likewise.
19080         (selftest::test_print_parseable_fixits_replace): Likewise.
19081         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
19082         New.
19083         (selftest::diagnostic_c_tests): Call it.
19084         * diagnostic.h (enum diagnostics_extra_output_kind): New.
19085         (diagnostic_context::parseable_fixits_p): Delete field in favor
19086         of...
19087         (diagnostic_context::extra_output_kind): ...this new field.
19088         * doc/invoke.texi (Environment Variables): Add
19089         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
19090         * opts.c (common_handle_option): Update handling of
19091         OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
19092         fields.
19093
19094 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
19095
19096         * tree-vect-slp-patterns.c (class complex_operations_pattern,
19097         complex_operations_pattern::matches,
19098         complex_operations_pattern::recognize,
19099         complex_operations_pattern::build): New.
19100         (slp_patterns): Use it.
19101
19102 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
19103
19104         * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
19105         * optabs.def (cmls_optab, cmls_conj_optab): New.
19106         * doc/md.texi: Document them.
19107         * tree-vect-slp-patterns.c (class complex_fms_pattern,
19108         complex_fms_pattern::matches, complex_fms_pattern::recognize,
19109         complex_fms_pattern::build): New.
19110
19111 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
19112
19113         * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
19114         * optabs.def (cmla_optab, cmla_conj_optab): New.
19115         * doc/md.texi: Document them.
19116         * tree-vect-slp-patterns.c (vect_match_call_p,
19117         class complex_fma_pattern, vect_slp_reset_pattern,
19118         complex_fma_pattern::matches, complex_fma_pattern::recognize,
19119         complex_fma_pattern::build): New.
19120
19121 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
19122
19123         * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
19124         * optabs.def (cmul_optab, cmul_conj_optab): New.
19125         * doc/md.texi: Document them.
19126         * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
19127         vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
19128         vect_build_combine_node, class complex_mul_pattern,
19129         complex_mul_pattern::matches, complex_mul_pattern::recognize,
19130         complex_mul_pattern::build): New.
19131
19132 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
19133
19134         * tree-vect-slp.c (optimize_load_redistribution_1): New.
19135         (optimize_load_redistribution, vect_is_slp_load_node): New.
19136         (vect_match_slp_patterns): Use it.
19137
19138 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
19139
19140         * tree-vect-slp-patterns.c (complex_add_pattern::build):
19141         Elide nodes.
19142
19143 2021-01-14  Thomas Schwinge  <thomas@codesourcery.com>
19144
19145         * config/gcn/mkoffload.c (main): Create an offload image only in
19146         64-bit configurations.
19147
19148 2021-01-14  H.J. Lu  <hjl.tools@gmail.com>
19149
19150         PR target/98667
19151         * config/i386/i386-options.c (ix86_option_override_internal):
19152         Issue an error for -fcf-protection with CF_BRANCH when compiling
19153         for 32-bit non-TARGET_CMOV targets.
19154
19155 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
19156
19157         PR target/98671
19158         * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
19159         Remove declaration and initialization of shadow variable "ret".
19160         (ix86_option_override_internal): Remove delcaration of
19161         shadow variable "i".  Redeclare shadowed variable to unsigned.
19162         * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
19163         * config/i386/i386-builtins.c (get_builtin_code_for_version):
19164         Update for redeclaration.
19165         * config/i386/i386.h (pta_size): Ditto.
19166
19167 2021-01-14  Richard Biener  <rguenther@suse.de>
19168
19169         PR tree-optimization/98674
19170         * tree-data-ref.c (base_supports_access_fn_components_p): New.
19171         (initialize_data_dependence_relation): For two bases without
19172         possible access fns resort to type size equality when determining
19173         shape compatibility.
19174
19175 2021-01-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19176
19177         PR target/66791
19178         * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
19179         <=, >= operators in vcle and vcge intrinsics respectively.
19180         * config/arm/arm_neon_builtins.def: Remove entry for
19181         vcge and vcgeu.
19182
19183 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
19184
19185         PR target/98671
19186         * config/i386/i386-options.c (ix86_function_specific_save):
19187         Remove redundant assignment to opts->x_ix86_branch_cost.
19188         * config/i386/i386.c (ix86_prefetch_sse):
19189         Rename from x86_prefetch_sse.  Update all uses.
19190         * config/i386/i386.h: Update for rename.
19191         * config/i386/i386-options.h: Ditto.
19192
19193 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
19194
19195         PR target/98670
19196         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
19197         *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
19198         Use Bm instead of m for non-avx.  Add isa attribute.
19199
19200 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
19201
19202         PR tree-optimization/96688
19203         * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
19204         ~X can be simplified.
19205
19206 2021-01-14  Richard Sandiford  <richard.sandiford@arm.com>
19207
19208         * tree-vect-stmts.c (vect_model_load_cost): Account for unused
19209         IFN_LOAD_LANES results.
19210
19211 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19212
19213         * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
19214         Define.
19215         (aarch64_xtn<mode>): Likewise.
19216         * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
19217         Define
19218         builtins.
19219         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
19220         builtin.
19221         (vmovl_s16): Likewise.
19222         (vmovl_s32): Likewise.
19223         (vmovl_u8): Likewise.
19224         (vmovl_u16): Likewise.
19225         (vmovl_u32): Likewise.
19226         (vmovn_s16): Likewise.
19227         (vmovn_s32): Likewise.
19228         (vmovn_s64): Likewise.
19229         (vmovn_u16): Likewise.
19230         (vmovn_u32): Likewise.
19231         (vmovn_u64): Likewise.
19232
19233 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19234
19235         * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
19236         Define.
19237         (aarch64_<su>qxtn2<mode>_be): Likewise.
19238         (aarch64_<su>qxtn2<mode>): Likewise.
19239         * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
19240         Define builtins.
19241         * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
19242         (su): Handle ss_truncate and us_truncate.
19243         * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
19244         builtin.
19245         (vqmovn_high_s32): Likewise.
19246         (vqmovn_high_s64): Likewise.
19247         (vqmovn_high_u16): Likewise.
19248         (vqmovn_high_u32): Likewise.
19249         (vqmovn_high_u64): Likewise.
19250
19251 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19252
19253         * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
19254         Define.
19255         (aarch64_xtn2<mode>_be): Likewise.
19256         (aarch64_xtn2<mode>): Likewise.
19257         * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
19258         builtins.
19259         * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
19260         builtins.
19261         (vmovn_high_s32): Likewise.
19262         (vmovn_high_s64): Likewise.
19263         (vmovn_high_u16): Likewise.
19264         (vmovn_high_u32): Likewise.
19265         (vmovn_high_u64): Likewise.
19266
19267 2021-01-13  Stafford Horne  <shorne@gmail.com>
19268
19269         * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
19270
19271 2021-01-13  Stafford Horne  <shorne@gmail.com>
19272
19273         * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
19274
19275 2021-01-13  Stafford Horne  <shorne@gmail.com>
19276
19277         * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
19278           define for __or1k_hard_float__.
19279
19280 2021-01-13  Stafford Horne  <shorne@gmail.com>
19281
19282         * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
19283         (PROFILE_HOOK): Define to call _mcount.
19284         (FUNCTION_PROFILER): Change from abort to no-op.
19285
19286 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
19287
19288         PR tree-optimization/96691
19289         * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
19290         (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
19291         (~D ^ C) or (D ^ C) can be simplified.
19292
19293 2021-01-13  Richard Biener  <rguenther@suse.de>
19294
19295         PR tree-optimization/92645
19296         * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
19297         until after vector lowering.
19298
19299 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
19300
19301         * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
19302         to SVE_I.
19303         (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
19304         (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
19305
19306 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
19307
19308         * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
19309         to SVE_I.
19310         (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
19311         (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
19312
19313 2021-01-13  Richard Biener  <rguenther@suse.de>
19314
19315         PR tree-optimization/92645
19316         * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
19317         BIT_FIELD_REF argument.
19318         (vect_build_slp_tree_2): Record the desired vector type
19319         on the external vector def.
19320         (vectorizable_slp_permutation): Handle required punning
19321         of existing vector defs.
19322
19323 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
19324
19325         * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
19326
19327 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
19328
19329         * config/sh/sh.md (movsf_ie): Remove operands[2] test.
19330
19331 2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>
19332
19333         * config.gcc [$target == *-*-gnu*]: Enable
19334         'default_gnu_indirect_function'.
19335
19336 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
19337
19338         PR target/95905
19339         * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
19340         registers before calling targetm.vectorize.vec_perm_const, only after
19341         that.
19342         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
19343         two argument permutation when one operand is zero vector and only
19344         after that force operands into registers.
19345         * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
19346         define_insn_and_split pattern.
19347         (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
19348         (*avx512f_zero_extendv16hiv16si2_1): Likewise.
19349         (*avx2_zero_extendv8hiv8si2_1): Likewise.
19350         (*avx512f_zero_extendv8siv8di2_1): Likewise.
19351         (*avx2_zero_extendv4siv4di2_1): Likewise.
19352         * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
19353         into registers.
19354         * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
19355         * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
19356         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
19357         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
19358         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
19359         * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise.  Use std::swap.
19360
19361 2021-01-13  Martin Liska  <mliska@suse.cz>
19362
19363         PR tree-optimization/98455
19364         * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
19365         Record also virtual PHIs.
19366         (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
19367         conditionally.
19368
19369 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
19370
19371         * doc/invoke.texi (C++ Modules): Fix typos.
19372
19373 2021-01-13  Richard Biener  <rguenther@suse.de>
19374
19375         PR tree-optimization/98640
19376         * tree-ssa-sccvn.c (visit_nary_op): Do not try to
19377         handle plus or minus from a truncated operand to be
19378         sign-extended.
19379
19380 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
19381
19382         PR target/96938
19383         * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
19384         define_insn_and_split patterns.
19385         (splitter after *btr<mode>_2): New splitter.
19386
19387 2021-01-13  Martin Liska  <mliska@suse.cz>
19388
19389         PR ipa/98652
19390         * cgraphunit.c (analyze_functions): Remove dead code.
19391
19392 2021-01-13  Qian Jianhua  <qianjh@cn.fujitsu.com>
19393
19394         * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
19395         * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
19396         (a64fx_regmove_cost, a64fx_vector_cost): New.
19397         (a64fx_tunings): Use the new added cost tables.
19398
19399 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
19400
19401         PR target/95905
19402         * config/i386/predicates.md (pmovzx_parallel): New predicate.
19403         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
19404         define_insn_and_split pattern.
19405         (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
19406         (*sse4_1_zero_extendv2siv2di2_3): Likewise.
19407
19408 2021-01-13  Julian Brown  <julian@codesourcery.com>
19409
19410         * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
19411         to fix v0 register.
19412
19413 2021-01-13  Julian Brown  <julian@codesourcery.com>
19414
19415         * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
19416         on entry to a BB.
19417
19418 2021-01-13  Julian Brown  <julian@codesourcery.com>
19419
19420         * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
19421         for reciprocal-approximation instructions.
19422         (div<mode>3): Use fused multiply-accumulate operations for reciprocal
19423         refinement and division result.
19424         * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
19425
19426 2021-01-13  Julian Brown  <julian@codesourcery.com>
19427
19428         * config/gcn/gcn-valu.md (subdf): Rename to...
19429         (subdf3): This.
19430
19431 2021-01-12  Martin Liska  <mliska@suse.cz>
19432
19433         * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
19434
19435 2021-01-12  Andrea Corallo  <andrea.corallo@arm.com>
19436
19437         * function-abi.h: Fix typo.
19438
19439 2021-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
19440
19441         PR target/97875
19442         PR target/97875
19443         * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
19444         (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
19445         (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
19446         (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
19447         (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
19448         (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
19449         (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
19450         (ARM_HAVE_NEON_V2DI_LDST): Likewise.
19451         (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
19452         (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
19453         (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
19454         (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
19455         (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
19456         (ARM_HAVE_V2DI_LDST): Likewise.
19457         * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
19458         (*movmisalign<mode>_mve_load): New pattern.
19459         * config/arm/neon.md (movmisalign<mode>): Move to ...
19460         * config/arm/vec-common.md: ... here.
19461
19462 2021-01-12  Vladimir N. Makarov  <vmakarov@redhat.com>
19463
19464         PR target/97969
19465         * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
19466         of pattern 'plus (plus (hard reg, const), pseudo)'.
19467
19468 2021-01-12  Richard Biener  <rguenther@suse.de>
19469
19470         PR tree-optimization/98550
19471         * tree-vect-slp.c (vect_record_max_nunits): Check whether
19472         the group size is a multiple of the vector element count.
19473         (vect_build_slp_tree_1): When we need to fail because
19474         the vector type choosen causes unrolling do so lazily
19475         without affecting matches only at the end to guide group splitting.
19476
19477 2021-01-12  Martin Liska  <mliska@suse.cz>
19478
19479         PR c++/97284
19480         * optc-save-gen.awk: Compare also n_target_save vars with
19481         strcmp.
19482
19483 2021-01-12  Martin Liska  <mliska@suse.cz>
19484
19485         * gcov.c (source_info::debug): New.
19486         (print_usage): Add --debug (-D) option.
19487         (process_args): Likewise.
19488         (generate_results): Call src->debug after
19489         accumulate_line_counts.
19490         (read_graph_file): Properly assign id for EXIT_BLOCK.
19491         * profile.c (branch_prob): Dump function body before it is
19492         instrumented.
19493
19494 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
19495
19496         PR tree-optimization/98629
19497         * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
19498         unless returning non-zero.
19499
19500 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
19501
19502         PR tree-optimization/95731
19503         * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
19504         x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
19505         (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
19506         only after optimize_range_tests_var_bound.
19507
19508 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
19509
19510         * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
19511         * configure: Regenerated.
19512
19513 2021-01-12  liuhongt  <hongtao.liu@intel.com>
19514
19515         PR target/98612
19516         * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
19517         Deleted.
19518         * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
19519         dead code.
19520
19521 2021-01-12  Alexandre Oliva  <oliva@adacore.com>
19522
19523         * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
19524         declare.
19525         (auto_end_imm_use_stmt_traverse): New struct.
19526         (FOR_EACH_IMM_USE_STMT): Use it.
19527         (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
19528         along with uses...
19529         * gimple-ssa-strength-reduction.c: ... here, ...
19530         * graphite-scop-detection.c: ... here, ...
19531         * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
19532         * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
19533         * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
19534         * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
19535         * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
19536         * tree-vect-slp.c: ... and here, ...
19537         * doc/tree-ssa.texi: ... and the example here.
19538
19539 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
19540
19541         * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
19542         SVE_FULL_I to SVE_I.  Generate an UNSPEC_PRED_X.
19543         (*sdiv_pow2<mode>3): New pattern.
19544         (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
19545         Wrap the ASRD in an UNSPEC_PRED_X.
19546         (*cond_<sve_int_op><mode>_2): Likewise.  Replace the UNSPEC_PRED_X
19547         predicate with a constant PTRUE, if it isn't already.
19548         (*cond_<sve_int_op><mode>_z): Replace with...
19549         (*cond_<sve_int_op><mode>_any): ...this new pattern.
19550
19551 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
19552
19553         * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
19554         SVE_FULL_I to SVE_I.
19555         (*cond_bic<mode>_any): Likewise.
19556
19557 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
19558
19559         * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
19560         (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
19561         to SVE_I.
19562
19563 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
19564
19565         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
19566         SVE_FULL_I to SVE_I.
19567         (*aarch64_cond_<su>abd<mode>_2): Likewise.
19568         (*aarch64_cond_<su>abd<mode>_any): Likewise.
19569         (@aarch64_pred_<su>abd<mode>): Likewise.  Use UNSPEC_PRED_X
19570         for the max and min but not for the minus.
19571         (*aarch64_cond_<su>abd<mode>_3): New pattern.
19572
19573 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
19574
19575         * config/aarch64/iterators.md (SVE_24I): New iterator.
19576         * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
19577         SVE_FULL_SDI to SVE_24I.  Use containers rather than elements.
19578
19579 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
19580
19581         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
19582         (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
19583         to SVE_I.
19584         (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
19585         (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
19586         (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
19587         (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
19588
19589 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
19590
19591         * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
19592         (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
19593         (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
19594         to SVE_I.
19595
19596 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
19597
19598         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
19599         (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
19600         (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
19601
19602 2021-01-11  Martin Liska  <mliska@suse.cz>
19603
19604         PR jit/98615
19605         * symtab-clones.h (clone_info::release): Release
19606         symtab::m_clones with ggc_delete as it's a GGC memory.
19607
19608 2021-01-11  Matthias Klose  <doko@ubuntu.com>
19609
19610         * Makefile.in (LINK_PROGRESS): Show the link target.
19611
19612 2021-01-11  Richard Biener  <rguenther@suse.de>
19613
19614         PR tree-optimization/91403
19615         * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
19616         single-element interleaving group size at 4096 elements.
19617
19618 2021-01-11  Richard Biener  <rguenther@suse.de>
19619
19620         PR tree-optimization/98526
19621         * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
19622         of the actual reduction op for the regular case.
19623         (vectorizable_reduction): Cost the stmts
19624         vect_transform_reduction produces here.
19625
19626 2021-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>
19627
19628         * tree-ssa-forwprop.c (simplify_vector_constructor): For
19629         big-endian, use UNPACK[_FLOAT]_HI.
19630
19631 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
19632
19633         * tree-vect-slp-patterns.c (class complex_pattern,
19634         class complex_add_pattern): Add parameters to matches.
19635         (complex_add_pattern::build): Free memory.
19636         (complex_add_pattern::matches): Move validation end of match.
19637         (complex_add_pattern::recognize): Likewise.
19638
19639 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
19640
19641         * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
19642
19643 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
19644
19645         * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
19646
19647 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
19648
19649         PR tree-optimization/95867
19650         * tree-ssa-math-opts.h: New header.
19651         * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
19652         (powi_as_mults): No longer static.  Use build_one_cst instead of
19653         build_real.  Formatting fix.
19654         * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
19655         (attempt_builtin_powi): Handle multiplication reassociation without
19656         powi_fndecl using powi_as_mults.
19657         (reassociate_bb): For integral types don't require
19658         -funsafe-math-optimizations to call attempt_builtin_powi.
19659
19660 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
19661
19662         PR tree-optimization/95852
19663         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
19664         mul_stmts parameter type to vec<gimple *> &.  Before cond_stmt
19665         allow in the bb any of the stmts in that vector, div_stmt and
19666         up to 3 cast stmts.
19667         (arith_cast_equal_p): New function.
19668         (arith_overflow_check_p): Add cast_stmt argument, handle signed
19669         multiply overflow checks.
19670         (match_arith_overflow): Adjust caller.  Handle signed multiply
19671         overflow checks.
19672
19673 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
19674
19675         PR tree-optimization/95852
19676         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
19677         (uaddsub_overflow_check_p): Renamed to ...
19678         (arith_overflow_check_p): ... this.  Handle also multiplication
19679         with overflow check.
19680         (match_uaddsub_overflow): Renamed to ...
19681         (match_arith_overflow): ... this.  Add cfg_changed argument.  Handle
19682         also multiplication with overflow check.  Adjust function comment.
19683         (math_opts_dom_walker::after_dom_children): Adjust callers.  Call
19684         match_arith_overflow also for MULT_EXPR.
19685
19686 2021-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19687
19688         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
19689         __builtin_convertvector.
19690         (vmovl_s16): Likewise.
19691         (vmovl_s32): Likewise.
19692         (vmovl_u8): Likewise.
19693         (vmovl_u16): Likewise.
19694         (vmovl_u32): Likewise.
19695         (vmovn_s16): Likewise.
19696         (vmovn_s32): Likewise.
19697         (vmovn_s64): Likewise.
19698         (vmovn_u16): Likewise.
19699         (vmovn_u32): Likewise.
19700         (vmovn_u64): Likewise.
19701
19702 2021-01-11  Martin Liska  <mliska@suse.cz>
19703
19704         * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
19705         (if_chain::is_beneficial): Delete clusters
19706         (find_conditions): Make second argument of conditions_in_bbs a
19707         pointer so that we control over it's lifetime.
19708         (pass_if_to_switch::execute): Delete them.
19709
19710 2021-01-11  Kewen Lin  <linkw@linux.ibm.com>
19711
19712         * ira.c (move_unallocated_pseudos): Check other_reg and skip if
19713         it isn't set.
19714
19715 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
19716
19717         * config/vax/vax.md (cc): Remove mode attribute.
19718         (subst_<cc>, subst_f<cc>): Rename to...
19719         (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
19720         (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
19721         (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
19722         (*branch_<mode>, *branch_<mode>_reversed): Likewise.
19723
19724 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
19725
19726         * config/vax/vax.md (subst_f<cc>): Add mode to operands and
19727         `const_double_zero'.
19728
19729 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
19730
19731         * config/pdp11/pdp11.md (PDPfp): New mode iterator.
19732         (fcc_cc, fcc_ccnz): Use it.  Add mode to `const_double_zero' and
19733         operands.
19734
19735 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
19736
19737         * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
19738         rtx.
19739         * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
19740         with `const_double_zero'.
19741         * doc/rtl.texi (Constant Expression Types): Document it.
19742
19743 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
19744
19745         PR c++/98556
19746         * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
19747         POINTER_DIFF_EXPR to be any integral type.
19748
19749 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
19750
19751         PR rtl-optimization/98603
19752         * function.c (instantiate_virtual_regs_in_insn): For asm goto
19753         with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
19754         if any, set ASM_OPERANDS mode to VOIDmode and change
19755         ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
19756
19757 2021-01-09  Alexandre Oliva  <oliva@gnu.org>
19758
19759         PR debug/97714
19760         * final.c (notice_source_line): Narrow down the condition to
19761         skip a line-0 marker.
19762
19763 2021-01-08  Sergei Trofimovich  <siarheit@google.com>
19764
19765         * ipa-modref.c (merge_call_side_effects): Fix
19766         linebreak split by reordering two print calls.
19767
19768 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
19769
19770         * config/s390/vector.md (*tf_to_fprx2_0): Rename from
19771         "*mov_tf_to_fprx2_0" for consistency, fix constraint.
19772         (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
19773         consistency, fix constraint.
19774
19775 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
19776
19777         * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
19778         callables instead of mask values.
19779         (struct target_flag_set_p): New predicate.
19780         (s390_cpu_cpp_builtins_internal): Define or undefine
19781         __LONG_DOUBLE_VX__ macro.
19782
19783 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
19784
19785         PR target/98482
19786         * config/i386/i386.c (x86_function_profiler): Use R10 and R11
19787         to call mcount in large model with PIC for NO_PROFILE_COUNTERS
19788         targets.
19789
19790 2021-01-08  Richard Biener  <rguenther@suse.de>
19791
19792         * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
19793
19794 2021-01-08  Richard Biener  <rguenther@suse.de>
19795
19796         * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
19797         (vect_build_slp_tree): On cache hit release the matched
19798         scalar stmts vector.
19799         * tree-vect-stmts.c (vectorizable_store): Properly free
19800         vec_oprnds before possibly gathering them again.
19801
19802 2021-01-08  Richard Biener  <rguenther@suse.de>
19803
19804         PR tree-optimization/98544
19805         * tree-vect-slp.c (vect_optimize_slp): Always materialize
19806         permutes at a permute node.
19807
19808 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
19809
19810         PR target/98482
19811         * config/i386/i386.c (x86_function_profiler): Use R10 to call
19812         mcount in large model.  Sorry for large model with PIC.
19813
19814 2021-01-08  Jakub Jelinek  <jakub@redhat.com>
19815
19816         PR target/98585
19817         * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
19818         ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
19819         ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
19820         TargetSave and initialize for variables with enum types.
19821         (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
19822         mstack-protector-guard-symbol=): Add Save.
19823         * config/i386/i386-options.c (ix86_function_specific_save,
19824         ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
19825         x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
19826         x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
19827         x_ix86_veclibabi_type.
19828
19829 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
19830
19831         * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
19832         SVE_FULL_I to SVE_I.
19833         (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
19834
19835 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
19836
19837         * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
19838         SVE_FULL_I to SVE_I.
19839         (*cond_uxt<mode>_any): Likewise.
19840
19841 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19842
19843         * config/aarch64/iterators.md (Vwhalf): New iterator.
19844         * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
19845         Rename to...
19846         (aarch64_<sur>adalp<mode>): ... This.  Make more
19847         builtin-friendly.
19848         (<sur>sadv16qi): Adjust callsite of the above.
19849         * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
19850         builtins.
19851         * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
19852         builtins.
19853         (vpadal_s16): Likewise.
19854         (vpadal_u8): Likewise.
19855         (vpadal_u16): Likewise.
19856         (vpadalq_s8): Likewise.
19857         (vpadalq_s16): Likewise.
19858         (vpadalq_s32): Likewise.
19859         (vpadalq_u8): Likewise.
19860         (vpadalq_u16): Likewise.
19861         (vpadalq_u32): Likewise.
19862
19863 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19864
19865         * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
19866         Rename to...
19867         (aarch64_<su>abd<mode>): ... This.
19868         (<sur>sadv16qi): Adjust callsite of the above.
19869         * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
19870         builtins.
19871         * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
19872         builtin.
19873         (vabd_s16): Likewise.
19874         (vabd_s32): Likewise.
19875         (vabd_u8): Likewise.
19876         (vabd_u16): Likewise.
19877         (vabd_u32): Likewise.
19878         (vabdq_s8): Likewise.
19879         (vabdq_s16): Likewise.
19880         (vabdq_s32): Likewise.
19881         (vabdq_u8): Likewise.
19882         (vabdq_u16): Likewise.
19883         (vabdq_u32): Likewise.
19884
19885 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19886
19887         * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
19888         builtins.
19889         * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
19890         (vaba_s16): Likewise.
19891         (vaba_s32): Likewise.
19892         (vaba_u8): Likewise.
19893         (vaba_u16): Likewise.
19894         (vaba_u32): Likewise.
19895         (vabaq_s8): Likewise.
19896         (vabaq_s16): Likewise.
19897         (vabaq_s32): Likewise.
19898         (vabaq_u8): Likewise.
19899         (vabaq_u16): Likewise.
19900         (vabaq_u32): Likewise.
19901
19902 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19903
19904         * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
19905         (aarch64_<su>aba<mode>): ... This.  Handle uaba as well.
19906         Change RTL pattern to match.
19907
19908 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
19909
19910         * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
19911         * config/riscv/riscv-c.c (riscv-subset.h): New.
19912         (INCLUDE_STRING): Define.
19913         (riscv_cpu_cpp_builtins): Add new style architecture extension
19914         test macros.
19915         * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
19916         (riscv_subset_list::end): New.
19917         (riscv_current_subset_list): New.
19918
19919 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
19920
19921         * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
19922         Move to riscv-subset.h.
19923         (struct riscv_subset_t): Ditto.
19924         (class riscv_subset_list): Ditto.
19925         * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
19926         from riscv-common.c.
19927         (struct riscv_subset_t): Ditto.
19928         (class riscv_subset_list): Ditto.
19929         * config/riscv/t-riscv ($(common_out_file)): Add file
19930         dependency.
19931
19932 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
19933
19934         PR target/98567
19935         * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
19936         New define_insn patterns.
19937
19938 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
19939
19940         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
19941         (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
19942         (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
19943
19944 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
19945
19946         PR tree-optimization/98560
19947         * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
19948         * internal-fn.c (vec_cond_mask_direct): Get the data mode from
19949         argument 1.
19950         (vec_cond_direct): Likewise argument 2.
19951         (vec_condu_direct, vec_condeq_direct): Delete.
19952         (expand_vect_cond_optab_fn): Rename to...
19953         (expand_vec_cond_optab_fn): ...this, replacing old macro.
19954         (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
19955         (expand_vect_cond_mask_optab_fn): Rename to...
19956         (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
19957         (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
19958         convert optab.
19959         (direct_vec_cond_optab_supported_p): Likewise.
19960         (direct_vec_condu_optab_supported_p): Delete.
19961         (direct_vec_condeq_optab_supported_p): Delete.
19962         * gimple-isel.cc: Include internal-fn.h.
19963         (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
19964         before using it.
19965
19966 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
19967
19968         PR tree-optimization/98560
19969         * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
19970         IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
19971
19972 2021-01-07  Uroš Bizjak  <ubizjak@gmail.com>
19973
19974         * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
19975         rotate_insn and optab code attributes.
19976         Update all uses to merged code attribute.
19977         * config/i386/sse.md: Update all uses to merged code attribute.
19978         * config/i386/mmx.md: Update all uses to merged code attribute.
19979
19980 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
19981
19982         PR tree-optimization/98568
19983         * gimple-ssa-store-merging.c (bswap_view_convert): New function.
19984         (bswap_replace): Use it.
19985
19986 2021-01-06  Vladimir N. Makarov  <vmakarov@redhat.com>
19987
19988         PR rtl-optimization/97978
19989         * lra-int.h (lra_hard_reg_split_p): New external.
19990         * lra.c (lra_hard_reg_split_p): New global.
19991         (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
19992         * lra-assigns.c (lra_assign): Don't check allocation correctness
19993         after hard reg splitting.
19994
19995 2021-01-06  Martin Sebor  <msebor@redhat.com>
19996
19997         PR c++/98305
19998         * builtins.c (new_delete_mismatch_p): New overload.
19999         (new_delete_mismatch_p (tree, tree)): Call it.
20000
20001 2021-01-06  Alexandre Oliva  <oliva@adacore.com>
20002
20003         * Makefile.in (T_GLIMITS_H): New.
20004         (stmp-int-hdrs): Depend on it, use it.
20005         * config/t-vxworks (T_GLIMITS_H): Override it.
20006         (vxw-glimits.h): New.
20007
20008 2021-01-06  Richard Biener  <rguenther@suse.de>
20009
20010         PR tree-optimization/98513
20011         * value-range.cc (intersect_ranges): Compare the upper bounds
20012         for the expected relation.
20013
20014 2021-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
20015
20016         Revert:
20017         2020-12-28  Gerald Pfeifer  <gerald@pfeifer.com>
20018
20019         * doc/standards.texi (HSAIL): Remove section.
20020
20021 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
20022
20023         * configure: Re-generate.
20024
20025 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
20026
20027         * doc/invoke.texi (-std=c++20): Adjust for the publication of
20028         ISO 14882:2020 standard.
20029         * doc/standards.texi: Likewise.
20030
20031 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
20032
20033         PR tree-optimization/94802
20034         * expr.h (maybe_optimize_sub_cmp_0): Declare.
20035         * expr.c: Include tree-pretty-print.h and flags.h.
20036         (maybe_optimize_sub_cmp_0): New function.
20037         (do_store_flag): Use it.
20038         * cfgexpand.c (expand_gimple_cond): Likewise.
20039
20040 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
20041
20042         * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
20043         * rtlanal.c (simple_regno_set): Tweak description to clarify the
20044         RMW condition.
20045
20046 2021-01-05  Richard Biener  <rguenther@suse.de>
20047
20048         PR tree-optimization/98516
20049         * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
20050         lanes when materializing on a VEC_PERM node.
20051         (vectorizable_slp_permutation): Dump the permute properly.
20052
20053 2021-01-05  Richard Biener  <rguenther@suse.de>
20054
20055         * tree-vect-slp.c (vect_slp_region): Move debug counter
20056         to cover individual subgraphs.
20057
20058 2021-01-05  Richard Biener  <rguenther@suse.de>
20059
20060         PR tree-optimization/98428
20061         * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
20062         vector lane extracts for loop vectorization.
20063
20064 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
20065
20066         PR tree-optimization/98514
20067         * tree-ssa-reassoc.c (bb_rank): Change type from long * to
20068         int64_t *.
20069         (operand_rank): Change type from hash_map<tree, long> to
20070         hash_map<tree, int64_t>.
20071         (phi_rank): Change return type from long to int64_t.
20072         (loop_carried_phi): Change block_rank variable type from long to
20073         int64_t.
20074         (propagate_rank): Change return type, rank parameter type and
20075         op_rank variable type from long to int64_t.
20076         (find_operand_rank): Change return type from long to int64_t
20077         and change slot variable type from long * to int64_t *.
20078         (insert_operand_rank): Change rank parameter type from long to
20079         int64_t.
20080         (get_rank): Change return type and rank variable type from long to
20081         int64_t.  Use PRId64 instead of ld to print the rank.
20082         (init_reassoc): Change rank variable type from long to int64_t
20083         and adjust correspondingly bb_rank and operand_rank initialization.
20084
20085 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
20086
20087         PR tree-optimization/96928
20088         * tree-ssa-phiopt.c (xor_replacement): New function.
20089         (tree_ssa_phiopt_worker): Call it.
20090
20091 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
20092
20093         PR tree-optimization/96930
20094         * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
20095         from narrower value which has the same type as 1 << B, perform
20096         the right shift on the narrower value followed by extension.
20097
20098 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
20099
20100         PR tree-optimization/96239
20101         * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
20102         function.
20103         (get_status_for_store_merging): Don't return BB_INVALID for blocks
20104         with potential bswap optimizable CONSTRUCTORs.
20105         (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
20106         if possible.
20107
20108 2021-01-05  Richard Biener  <rguenther@suse.de>
20109
20110         PR tree-optimization/98381
20111         * tree.c (vector_element_bits): Properly compute bool vector
20112         element size.
20113         * tree-vect-loop.c (vectorizable_live_operation): Properly
20114         compute the last lane bit offset.
20115
20116 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
20117
20118         PR target/98522
20119         * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
20120         Clear the top 64 bytes of the input XMM register.
20121         (sse_cvttps2pi): Ditto.
20122
20123 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
20124
20125         PR target/98521
20126         * config/i386/xopintrin.h (_mm256_cmov_si256): New.
20127
20128 2021-01-05  H.J. Lu  <hjl.tools@gmail.com>
20129
20130         PR target/98495
20131         * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
20132         short first.
20133
20134 2021-01-05  Claudiu Zissulescu  <claziss@synopsys.com>
20135
20136         * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
20137         (umaddsidi4_split): Likewise.
20138
20139 2021-01-05  liuhongt  <hongtao.liu@intel.com>
20140
20141         PR target/98461
20142         * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
20143         define_insn_and_split for zero_extend of subreg HI of pmovskb
20144         result.
20145         (*sse2_pmovskb_zexthisi): Add new combine splitters for
20146         zero_extend of not of subreg HI of pmovskb result.
20147
20148 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
20149
20150         PR target/97269
20151         * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
20152         nested in CONSTs.
20153         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
20154         convert_memory_address to convert symbolic immediates to ptr_mode
20155         before forcing them to memory.
20156
20157 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
20158
20159         PR rtl-optimization/97144
20160         * recog.c (constrain_operands): Initialize matching_operand
20161         for each alternative, rather than only doing it once.
20162
20163 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
20164
20165         PR rtl-optimization/98403
20166         * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
20167         why we don't remove call clobbers.
20168         (function_info::apply_changes_to_insn): Don't attempt to add
20169         call clobbers here.
20170
20171 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
20172
20173         PR tree-optimization/98371
20174         * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
20175         (vect_analyze_loop): If an epilogue loop appears to be cheaper
20176         than the main loop, re-analyze it as a main loop before adopting
20177         it as a main loop.
20178
20179 2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20180
20181         PR c++/98316
20182         * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
20183         * aclocal.m4, configure: Regenerate.
20184         * Makefile.in (NETLIBS): Define.
20185         (BACKEND): Remove $(CODYLIB).
20186
20187 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
20188
20189         PR rtl-optimization/98334
20190         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
20191         Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
20192
20193 2021-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20194
20195         * tree-inline.c (expand_call_inline): Restore input_location.
20196         Return result from recursive call.
20197
20198 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
20199
20200         PR tree-optimization/95401
20201         * config/aarch64/aarch64-sve-builtins.cc
20202         (gimple_folder::load_store_cookie): Use bits rather than bytes
20203         for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
20204         * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
20205         * tree-vect-stmts.c (vectorizable_store): Likewise.
20206         (vectorizable_load): Likewise.
20207
20208 2021-01-04  Richard Biener  <rguenther@suse.de>
20209
20210         PR tree-optimization/98308
20211         * tree-vect-stmts.c (vectorizable_load): Set invariant mask
20212         SLP vectype.
20213
20214 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
20215
20216         PR tree-optimization/95771
20217         * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
20218         with precision smaller than int's precision and types with precision
20219         twice as large as long long.  Formatting fixes.
20220
20221 2021-01-04  Richard Biener  <rguenther@suse.de>
20222
20223         PR tree-optimization/98464
20224         * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
20225         (vn_valueize_wrapper): ... this.  Temporarily adjust vn_context_bb.
20226         (process_bb): Adjust.
20227
20228 2021-01-04  Matthew Malcomson  <matthew.malcomson@arm.com>
20229
20230         PR other/98437
20231         * doc/invoke.texi (-fsanitize=address): Fix wording describing
20232         clash with -fsanitize=hwaddress.
20233
20234 2021-01-04  Richard Biener  <rguenther@suse.de>
20235
20236         PR tree-optimization/98282
20237         * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
20238         invariants as VN_NARY.
20239
20240 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
20241
20242         PR target/89057
20243         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
20244         aarch64_simd_reg_or_zero for operand 2.  Use the combinez patterns
20245         to handle zero operands.
20246
20247 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
20248
20249         * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
20250         (offset_6bit_unsigned_scaled_p): Fix typo in comment.
20251         (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
20252         [-32, 31].
20253
20254 2021-01-04  Richard Biener  <rguenther@suse.de>
20255
20256         PR tree-optimization/98393
20257         * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
20258         when hitting the limit.
20259
20260 2021-01-04  Richard Biener  <rguenther@suse.de>
20261
20262         PR tree-optimization/98291
20263         * tree-vect-loop.c (vectorizable_reduction): Bypass
20264         associativity check for SLP reductions with VF 1.
20265
20266 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
20267
20268         PR tree-optimization/96782
20269         * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
20270
20271 2021-01-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20272
20273         * collect-utils.c (collect_execute): Check dumppfx.
20274         * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
20275         to collect_execute.
20276         (do_link): Add new parameter atsuffix.
20277         (main): Handle -dumpdir option.  Skip one argument for
20278         -o, -isystem and -B options.
20279         * gcc.c (make_at_file): New helper function.
20280         (close_at_file): Use it.
20281
20282 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
20283
20284         * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
20285         Amend handling for LD64_VERSION fallback defaults.
20286
20287 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
20288
20289         * config.gcc: Compute default version information
20290         from the configured target.  Likewise defaults for
20291         ld64.
20292         * config/darwin10.h: Removed.
20293         * config/darwin12.h: Removed.
20294         * config/darwin9.h: Removed.
20295         * config/rs6000/darwin8.h: Removed.
20296
20297 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
20298
20299         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
20300
20301 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
20302
20303         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
20304         * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
20305
20306 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
20307
20308         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
20309         here...
20310         * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
20311
20312 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
20313
20314         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
20315         for the Darwin10 unwinder stub from here ...
20316         * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
20317
20318 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
20319
20320         * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
20321         (ASM_DEBUG_SPEC):Only define if the assembler supports
20322         stabs.
20323         (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
20324         (DARWIN_PREFER_DWARF): Define.
20325         * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
20326         (DARWIN_PREFER_DWARF): Likewise
20327         (DSYMUTIL_SPEC): Likewise.
20328         (COLLECT_RUN_DSYMUTIL): Likewise.
20329         (ASM_DEBUG_SPEC): Likewise.
20330         (ASM_DEBUG_OPTION_SPEC): Likewise.
20331
20332 2021-01-02  Jan Hubicka  <jh@suse.cz>
20333
20334         * cfg.c (free_block): ggc_free bb.
20335
20336 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
20337
20338         * gcc.c (process_command): Update copyright notice dates.
20339         * gcov-dump.c (print_version): Ditto.
20340         * gcov.c (print_version): Ditto.
20341         * gcov-tool.c (print_version): Ditto.
20342         * gengtype.c (create_file): Ditto.
20343         * doc/cpp.texi: Bump @copying's copyright year.
20344         * doc/cppinternals.texi: Ditto.
20345         * doc/gcc.texi: Ditto.
20346         * doc/gccint.texi: Ditto.
20347         * doc/gcov.texi: Ditto.
20348         * doc/install.texi: Ditto.
20349         * doc/invoke.texi: Ditto.
20350
20351 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
20352
20353         * ChangeLog-2020: Rotate ChangeLog.  New file.
20354
20355 \f
20356 Copyright (C) 2021 Free Software Foundation, Inc.
20357
20358 Copying and distribution of this file, with or without modification,
20359 are permitted in any medium without royalty provided the copyright
20360 notice and this notice are preserved.