Daily bump.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2021-08-15  Clément Chigot  <clement.chigot@atos.net>
2
3         * config/rs6000/rs6000.c (xcoff_tls_exec_model_detected): New.
4         (rs6000_legitimize_tls_address_aix): Use it.
5         (rs6000_xcoff_file_end): Add ".ref __tls_get_addr" when
6         xcoff_tls_exec_model_detected is true.
7
8 2021-08-15  Jeff Law  <jlaw@localhost.localdomain>
9
10         * config/h8300/h8300.c (shift_alg_si): Retune H8/300H shifts
11         to allow a bit more code growth, saving many dozens of cycles.
12         (h8300_option_override): Adjus shift_alg_si if optimizing for
13         code size.
14         (get_shift_alg): Use special + inline shifts for residuals
15         in more cases.
16
17 2021-08-14  Stafford Horne  <shorne@gmail.com>
18
19         PR target/99783
20         * config/or1k/or1k-opts.h: New file.
21         * config/or1k/or1k.c (or1k_legitimize_address_1, print_reloc):
22         Support generating gotha relocations if -mcmodel=large is
23         specified.
24         * config/or1k/or1k.h (TARGET_CMODEL_SMALL, TARGET_CMODEL_LARGE):
25         New macros.
26         * config/or1k/or1k.opt (mcmodel=): New option.
27         * doc/invoke.texi (OpenRISC Options): Document mcmodel.
28
29 2021-08-14  Martin Sebor  <msebor@redhat.com>
30
31         PR middle-end/101791
32         * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Use new argument
33         to valid_new_delete_pair_p.
34         * tree.c (valid_new_delete_pair_p): Add argument.
35         * tree.h (valid_new_delete_pair_p): Same.
36
37 2021-08-14  Jakub Jelinek  <jakub@redhat.com>
38
39         PR target/101896
40         * config/i386/i386-expand.c (expand_vec_perm_broadcast_1)
41         <case E_V64QImode>: For this mode assert
42         !TARGET_AVX512BW || d->perm[0] rather than !TARGET_AVX2 || d->perm[0].
43
44 2021-08-13  Michael Meissner  <meissner@linux.ibm.com>
45
46         PR target/99921
47         * config/rs6000/altivec.md (xxeval): Use register_predicate
48         instead of altivec_register_predicate.
49
50 2021-08-13  Martin Sebor  <msebor@redhat.com>
51
52         PR middle-end/101734
53         * tree-ssa-uninit.c (maybe_warn_read_write_only): New function.
54         (maybe_warn_operand): Call it.
55
56 2021-08-13  Martin Liska  <mliska@suse.cz>
57
58         PR ipa/101354
59         * attribs.c (decl_attributes): Make naked functions "noipa"
60           functions.
61
62 2021-08-13  Martin Liska  <mliska@suse.cz>
63
64         PR ipa/101261
65         * symtab.c (symtab_node::noninterposable_alias): Do not create
66           local aliases for target_clone functions as the clonning pass
67           rejects aliases.
68
69 2021-08-13  Martin Liska  <mliska@suse.cz>
70
71         * opts.c (LIVE_PATCHING_OPTION): Define.
72         (control_options_for_live_patching): Use it in error messages.
73
74 2021-08-13  Jan Hubicka  <hubicka@ucw.cz>
75
76         * ipa-modref.c (dump_eaf_flags): Dump EAF_NOREAD.
77         (implicit_const_eaf_flags, implicit_pure_eaf_flags,
78          ignore_stores_eaf_flags): New constants.
79         (remove_useless_eaf_flags): New function.
80         (eaf_flags_useful_p): Use it.
81         (deref_flags): Add EAF_NOT_RETURNED if flag is unused;
82         handle EAF_NOREAD.
83         (modref_lattice::init): Add EAF_NOREAD.
84         (modref_lattice::add_escape_point): Do not reacord escape point if
85         result is unused.
86         (modref_lattice::merge): EAF_NOESCAPE implies EAF_NODIRECTESCAPE;
87         use remove_useless_eaf_flags.
88         (modref_lattice::merge_deref): Use ignore_stores_eaf_flags.
89         (modref_lattice::merge_direct_load): Add EAF_NOREAD
90         (analyze_ssa_name_flags): Fix handling EAF_NOT_RETURNED
91         (analyze_parms): Use remove_useless_eaf_flags.
92         (ipa_merge_modref_summary_after_inlining): Use ignore_stores_eaf_flags.
93         (modref_merge_call_site_flags): Add caller and ecf_flags parameter;
94         use remove_useless_eaf_flags.
95         (modref_propagate_flags_in_scc): Update.
96         * ipa-modref.h: Turn eaf_flags_t back to char.
97         * tree-core.h (EAF_NOT_RETURNED): Fix.
98         (EAF_NOREAD): New constant
99         * tree-ssa-alias.c: (ref_maybe_used_by_call_p_1): Check for
100         EAF_NOREAD.
101         * tree-ssa-structalias.c (handle_rhs_call): Handle new flags.
102         (handle_pure_call): Likewise.
103
104 2021-08-12  Jakub Jelinek  <jakub@redhat.com>
105
106         * tree.def (OMP_MASKED): New tree code.
107         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_FILTER.
108         * tree.h (OMP_MASKED_BODY, OMP_MASKED_CLAUSES, OMP_MASKED_COMBINED,
109         OMP_CLAUSE_FILTER_EXPR): Define.
110         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FILTER entry.
111         (omp_clause_code_name): Likewise.
112         (walk_tree_1): Handle OMP_CLAUSE_FILTER.
113         * tree-nested.c (convert_nonlocal_omp_clauses,
114         convert_local_omp_clauses): Handle OMP_CLAUSE_FILTER.
115         (convert_nonlocal_reference_stmt, convert_local_reference_stmt,
116         convert_gimple_call): Handle GIMPLE_OMP_MASTER.
117         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FILTER.
118         (dump_generic_node): Handle OMP_MASTER.
119         * gimple.def (GIMPLE_OMP_MASKED): New gimple code.
120         * gimple.c (gimple_build_omp_masked): New function.
121         (gimple_copy): Handle GIMPLE_OMP_MASKED.
122         * gimple.h (gimple_build_omp_masked): Declare.
123         (gimple_has_substatements): Handle GIMPLE_OMP_MASKED.
124         (gimple_omp_masked_clauses, gimple_omp_masked_clauses_ptr,
125         gimple_omp_masked_set_clauses): New inline functions.
126         (CASE_GIMPLE_OMP): Add GIMPLE_OMP_MASKED.
127         * gimple-pretty-print.c (dump_gimple_omp_masked): New function.
128         (pp_gimple_stmt_1): Handle GIMPLE_OMP_MASKED.
129         * gimple-walk.c (walk_gimple_stmt): Likewise.
130         * gimple-low.c (lower_stmt): Likewise.
131         * gimplify.c (is_gimple_stmt): Handle OMP_MASTER.
132         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_FILTER.  For clauses
133         that take one expression rather than decl or constant, force
134         gimplification of that into a SSA_NAME or temporary unless min
135         invariant.
136         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_FILTER.
137         (gimplify_expr): Handle OMP_MASKED.
138         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_MASKED.
139         (estimate_num_insns): Likewise.
140         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FILTER.
141         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_MASKED.  Adjust
142         diagnostics for existence of masked construct.
143         (scan_omp_1_stmt, lower_omp_master, lower_omp_1, diagnose_sb_1,
144         diagnose_sb_2): Handle GIMPLE_OMP_MASKED.
145         * omp-expand.c (expand_omp_synch, expand_omp, omp_make_gimple_edges):
146         Likewise.
147
148 2021-08-12  Uroš Bizjak  <ubizjak@gmail.com>
149
150         PR target/98309
151         * config/i386/i386.md (avx512f_scalef<mode>2): New insn pattern.
152         (ldexp<mode>3): Use avx512f_scalef<mode>2.
153         (UNSPEC_SCALEF): Move from ...
154         * config/i386/sse.md (UNSPEC_SCALEF): ... here.
155
156 2021-08-12  Jan Hubicka  <hubicka@ucw.cz>
157
158         * ipa-split.c (consider_split): Fix condition testing void functions.
159
160 2021-08-12  Aldy Hernandez  <aldyh@redhat.com>
161
162         * doc/invoke.texi: Remove docs for threader-mode param.
163         * flag-types.h (enum threader_mode): Remove.
164         * params.opt: Remove threader-mode param.
165         * tree-ssa-threadbackward.c (class back_threader): Remove
166         path_is_unreachable_p.
167         Make find_paths private.
168         Add maybe_thread and thread_through_all_blocks.
169         Remove reference marker for m_registry.
170         Remove reference marker for m_profit.
171         (back_threader::back_threader): Adjust for registry and profit not
172         being references.
173         (dump_path): Move down.
174         (debug): Move down.
175         (class thread_jumps): Remove.
176         (class back_threader_registry): Remove m_all_paths.
177         Remove destructor.
178         (thread_jumps::thread_through_all_blocks): Move to back_threader
179         class.
180         (fsm_find_thread_path): Remove
181         (back_threader::maybe_thread): New.
182         (back_threader::thread_through_all_blocks): Move from
183         thread_jumps.
184         (back_threader_registry::back_threader_registry): Remove
185         m_all_paths.
186         (back_threader_registry::~back_threader_registry): Remove.
187         (thread_jumps::find_taken_edge): Remove.
188         (thread_jumps::check_subpath_and_update_thread_path): Remove.
189         (thread_jumps::maybe_register_path): Remove.
190         (thread_jumps::handle_phi): Remove.
191         (handle_assignment_p): Remove.
192         (thread_jumps::handle_assignment): Remove.
193         (thread_jumps::fsm_find_control_statement_thread_paths): Remove.
194         (thread_jumps::find_jump_threads_backwards): Remove.
195         (thread_jumps::find_jump_threads_backwards_with_ranger): Remove.
196         (try_thread_blocks): Rename find_jump_threads_backwards to
197         maybe_thread.
198         (pass_early_thread_jumps::execute): Same.
199
200 2021-08-12  Tobias Burnus  <tobias@codesourcery.com>
201
202         * tree-core.h (omp_clause_proc_bind_kind): Add
203         OMP_CLAUSE_PROC_BIND_PRIMARY.
204         * tree-pretty-print.c (dump_omp_clause): Add TODO comment to
205         change 'master' to 'primary' in proc_bind for OpenMP 5.1.
206
207 2021-08-12  Claudiu Zissulescu  <claziss@synopsys.com>
208
209         * common/config/arc/arc-common.c (arc_option_init_struct): Remove
210         fno-common reference.
211         * config/arc/arc.c (arc_override_options): Remove overriding of
212         flag_no_common.
213
214 2021-08-12  Jakub Jelinek  <jakub@redhat.com>
215
216         PR target/101860
217         * config/i386/i386-expand.c (ix86_expand_vec_one_operand_perm_avx512):
218         If d->testing_p, return true after performing checks instead of
219         actually expanding the insn.
220         (expand_vec_perm_broadcast_1): Handle V32HImode - assert
221         !TARGET_AVX512BW and return false.
222
223 2021-08-12  Eric Botcazou  <ebotcazou@gcc.gnu.org>
224
225         * configure.ac (PE linker --disable-dynamicbase support): New check.
226         * configure: Regenerate.
227         * config.in: Likewise.
228         * config/i386/mingw32.h (LINK_SPEC_DISABLE_DYNAMICBASE): New define.
229         (LINK_SPEC): Use it.
230         * config/i386/mingw-w64.h (LINK_SPEC_DISABLE_DYNAMICBASE): Likewise.
231         (LINK_SPEC): Likewise.
232
233 2021-08-12  liuhongt  <hongtao.liu@intel.com>
234
235         PR target/101846
236         * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_2): New
237         post_reload define_insn_and_split.
238         (*avx512bw_zero_extendv32qiv32hi2_2): Ditto.
239         (*sse4_1_zero_extendv8qiv8hi2_4): Ditto.
240         (*avx512f_zero_extendv16hiv16si2_2): Ditto.
241         (*avx2_zero_extendv8hiv8si2_2): Ditto.
242         (*sse4_1_zero_extendv4hiv4si2_4): Ditto.
243         (*avx512f_zero_extendv8siv8di2_2): Ditto.
244         (*avx2_zero_extendv4siv4di2_2): Ditto.
245         (*sse4_1_zero_extendv2siv2di2_4): Ditto.
246         (VI248_256, VI248_512, VI148_512, VI148_256, VI148_128): New
247         mode iterator.
248
249 2021-08-11  Bill Schmidt  <wschmidt@linux.ibm.com>
250
251         * config/rs6000/rs6000-builtin-new.def: Add always, power5, and
252         power6 stanzas.
253
254 2021-08-11  Bill Schmidt  <wschmidt@linux.ibm.com>
255
256         * config/rs6000/rs6000-builtin-new.def: Add vsx stanza.
257
258 2021-08-11  Bill Schmidt  <wschmidt@linux.ibm.com>
259
260         * config/rs6000/rs6000-builtin-new.def: Finish altivec stanza.
261         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Move
262         initialization of pcvoid_type_node here...
263         (altivec_init_builtins): ...from here.
264         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add
265         RS6000_BTI_const_ptr_void.
266         (pcvoid_type_node): New macro.
267
268 2021-08-11  Richard Biener  <rguenther@suse.de>
269
270         PR target/101877
271         * tree-ssa-forwprop.c (pass_forwprop::execute): Do not decompose
272         hard-register accesses.
273
274 2021-08-11  Richard Biener  <rguenther@suse.de>
275
276         * tree-ssa-operands.c (operands_scanner::get_expr_operands):
277         Do not look at COMPONENT_REF FIELD_DECLs TREE_THIS_VOLATILE
278         to determine has_volatile_ops.
279
280 2021-08-11  Eric Botcazou  <ebotcazou@gcc.gnu.org>
281
282         * cfgexpand.c (expand_used_vars): Reuse attribs local variable.
283
284 2021-08-11  Jan Hubicka  <hubicka@ucw.cz>
285             Alexandre Oliva  <oliva@adacore.com>
286
287         * ipa-modref.c (modref_lattice::dump): Fix escape_point's min_flags
288         dumping.
289         (modref_lattice::merge_deref): Fix handling of indirect scape points.
290         (update_escape_summary_1): Likewise.
291         (update_escape_summary): Likewise.
292         (ipa_merge_modref_summary_after_inlining): Likewise.
293
294 2021-08-11  Richard Biener  <rguenther@suse.de>
295
296         PR middle-end/101858
297         * fold-const.c (fold_binary_loc): Guard simplification
298         of  X < (cast) (1 << Y) to integer types.
299
300 2021-08-11  Richard Biener  <rguenther@suse.de>
301
302         PR tree-optimization/101861
303         * tree-vect-stmts.c (vectorizable_load): Fix error in
304         previous change with regard to gather vectorization.
305
306 2021-08-11  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
307
308         PR target/66791
309         * config/arm/arm_neon.h (vdup_n_s8): Replace call to builtin
310         with constructor.
311         (vdup_n_s16): Likewise.
312         (vdup_n_s32): Likewise.
313         (vdup_n_s64): Likewise.
314         (vdup_n_u8): Likewise.
315         (vdup_n_u16): Likewise.
316         (vdup_n_u32): Likewise.
317         (vdup_n_u64): Likewise.
318         (vdup_n_p8): Likewise.
319         (vdup_n_p16): Likewise.
320         (vdup_n_p64): Likewise.
321         (vdup_n_f16): Likewise.
322         (vdup_n_f32): Likewise.
323         (vdupq_n_s8): Likewise.
324         (vdupq_n_s16): Likewise.
325         (vdupq_n_s32): Likewise.
326         (vdupq_n_s64): Likewise.
327         (vdupq_n_u8): Likewise.
328         (vdupq_n_u16): Likewise.
329         (vdupq_n_u32): Likewise.
330         (vdupq_n_u64): Likewise.
331         (vdupq_n_p8): Likewise.
332         (vdupq_n_p16): Likewise.
333         (vdupq_n_p64): Likewise.
334         (vdupq_n_f16): Likewise.
335         (vdupq_n_f32): Likewise.
336         (vmov_n_s8): Replace call to builtin with call to corresponding
337         vdup_n intrinsic.
338         (vmov_n_s16): Likewise.
339         (vmov_n_s32): Likewise.
340         (vmov_n_s64): Likewise.
341         (vmov_n_u8): Likewise.
342         (vmov_n_u16): Likewise.
343         (vmov_n_u32): Likewise.
344         (vmov_n_u64): Likewise.
345         (vmov_n_p8): Likewise.
346         (vmov_n_p16): Likewise.
347         (vmov_n_f16): Likewise.
348         (vmov_n_f32): Likewise.
349         (vmovq_n_s8): Likewise.
350         (vmovq_n_s16): Likewise.
351         (vmovq_n_s32): Likewise.
352         (vmovq_n_s64): Likewise.
353         (vmovq_n_u8): Likewise.
354         (vmovq_n_u16): Likewise.
355         (vmovq_n_u32): Likewise.
356         (vmovq_n_u64): Likewise.
357         (vmovq_n_p8): Likewise.
358         (vmovq_n_p16): Likewise.
359         (vmovq_n_f16): Likewise.
360         (vmovq_n_f32): Likewise.
361         * config/arm/arm_neon_builtins.def: Remove entries for vdup_n.
362
363 2021-08-11  liuhongt  <hongtao.liu@intel.com>
364
365         PR target/98309
366         * config/i386/i386.md (ldexp<mode>3): Extend to vscalefs[sd]
367         when TARGET_AVX512F and TARGET_SSE_MATH.
368
369 2021-08-10  Jakub Jelinek  <jakub@redhat.com>
370
371         PR target/80355
372         * config/i386/i386-expand.c (expand_vec_perm_even_odd): Return false
373         for V32HImode if !TARGET_AVX512BW.
374         (ix86_vectorize_vec_perm_const) <case E_V32HImode, case E_V64QImode>:
375         If !TARGET_AVX512BW and TARGET_AVX512F and d.testing_p, don't fail
376         early, but actually check the permutation.
377
378 2021-08-10  Richard Biener  <rguenther@suse.de>
379
380         PR tree-optimization/101809
381         * tree-vect-stmts.c (get_load_store_type): Allow emulated
382         gathers with offset vector nunits being a constant multiple
383         of the data vector nunits.
384         (vect_get_gather_scatter_ops): Use the appropriate nunits
385         for the offset vector defs.
386         (vectorizable_store): Adjust call to
387         vect_get_gather_scatter_ops.
388         (vectorizable_load): Likewise.  Handle the case of less
389         offset vectors than data vectors.
390
391 2021-08-10  Jakub Jelinek  <jakub@redhat.com>
392
393         PR target/80355
394         * config/i386/sse.md (*avx512f_shuf_<shuffletype>64x2_1<mask_name>_1,
395         *avx512f_shuf_<shuffletype>32x4_1<mask_name>_1): New define_insn
396         patterns.
397
398 2021-08-10  Richard Biener  <rguenther@suse.de>
399
400         PR tree-optimization/101801
401         PR tree-optimization/101819
402         * tree-vectorizer.h (vect_emulated_vector_p): Declare.
403         * tree-vect-loop.c (vect_emulated_vector_p): New function.
404         (vectorizable_reduction): Re-instantiate a check for emulated
405         operations.
406         * tree-vect-stmts.c (vectorizable_shift): Likewise.
407         (vectorizable_operation): Likewise.  Cost emulated vector
408         operations according to the scalar sequence synthesized by
409         vector lowering.
410
411 2021-08-10  Richard Biener  <rguenther@suse.de>
412
413         PR middle-end/101824
414         * tree-nested.c (get_frame_field): Mark the COMPONENT_REF as
415         volatile in case the variable was.
416
417 2021-08-10  H.J. Lu  <hjl.tools@gmail.com>
418
419         PR target/101804
420         * config/i386/constraints.md (BC): Document for integer SSE
421         constant all bits set operand.
422         (BF): New constraint for const floating-point all bits set
423         vectors.
424         * config/i386/i386.c (standard_sse_constant_p): Likewise.
425         (standard_sse_constant_opcode): Likewise.
426         * config/i386/sse.md (sseconstm1): New mode attribute.
427         (mov<mode>_internal): Replace BC with <sseconstm1>.
428
429 2021-08-10  liuhongt  <hongtao.liu@intel.com>
430
431         * config/i386/sse.md (cond_<insn><mode>): New expander.
432         (VI248_AVX512VLBW): New mode iterator.
433         * config/i386/predicates.md
434         (nonimmediate_or_const_vec_dup_operand): New predicate.
435
436 2021-08-09  Andrew MacLeod  <amacleod@redhat.com>
437
438         PR tree-optimization/101741
439         * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Check
440         type of parameter for toupper/tolower.
441
442 2021-08-09  Martin Jambor  <mjambor@suse.cz>
443
444         PR testsuite/101654
445         * ipa-prop.c (propagate_controlled_uses): Removed a spurious space.
446
447 2021-08-09  Pat Haugen  <pthaugen@linux.ibm.com>
448
449         * config/rs6000/rs6000.c (is_load_insn1): Verify destination is a
450         register.
451         (is_store_insn1): Verify source is a register.
452
453 2021-08-09  Uroš Bizjak  <ubizjak@gmail.com>
454
455         PR target/101812
456         * config/i386/mmx.md (<any_logic:code>v2sf3):
457         Rename from *mmx_<any_logic:code>v2sf3
458
459 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
460
461         * config/nvptx/nvptx.c: Cross-reference parts adapted in
462         'gcc/omp-oacc-neuter-broadcast.cc'.
463         * omp-low.c: Likewise.
464         * omp-oacc-neuter-broadcast.cc: Cross-reference parts adapted from
465         the above files.
466
467 2021-08-09  Julian Brown  <julian@codesourcery.com>
468             Kwok Cheung Yeung  <kcy@codesourcery.com>
469             Thomas Schwinge  <thomas@codesourcery.com>
470
471         * config/gcn/gcn.c (gcn_init_builtins): Override decls for
472         BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START,
473         BUILT_IN_GOACC_SINGLE_COPY_END and BUILT_IN_GOACC_BARRIER.
474         (gcn_goacc_validate_dims): Turn on worker partitioning unconditionally.
475         (gcn_fork_join): Update comment.
476         * config/gcn/gcn.opt (flag_worker_partitioning): Remove.
477         (macc_experimental_workers): Remove unused option.
478
479 2021-08-09  Julian Brown  <julian@codesourcery.com>
480             Nathan Sidwell  <nathan@codesourcery.com> (via 'gcc/config/nvptx/nvptx.c' master)
481             Kwok Cheung Yeung  <kcy@codesourcery.com>
482             Thomas Schwinge  <thomas@codesourcery.com>
483
484         * Makefile.in (OBJS): Add omp-oacc-neuter-broadcast.o.
485         * doc/tm.texi.in (TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD):
486         Add documentation hook.
487         * doc/tm.texi: Regenerate.
488         * omp-oacc-neuter-broadcast.cc: New file.
489         * omp-builtins.def (BUILT_IN_GOACC_BARRIER)
490         (BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START)
491         (BUILT_IN_GOACC_SINGLE_COPY_END): New builtins.
492         * passes.def (pass_omp_oacc_neuter_broadcast): Add pass.
493         * target.def (goacc.create_worker_broadcast_record): Add target
494         hook.
495         * tree-pass.h (make_pass_omp_oacc_neuter_broadcast): Add
496         prototype.
497         * config/gcn/gcn-protos.h (gcn_goacc_adjust_propagation_record):
498         Rename prototype to...
499         (gcn_goacc_create_worker_broadcast_record): ... this.
500         * config/gcn/gcn-tree.c (gcn_goacc_adjust_propagation_record): Rename
501         function to...
502         (gcn_goacc_create_worker_broadcast_record): ... this.
503         * config/gcn/gcn.c (TARGET_GOACC_ADJUST_PROPAGATION_RECORD):
504         Rename to...
505         (TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD): ... this.
506
507 2021-08-09  Tejas Belagod  <tejas.belagod@arm.com>
508
509         PR target/101609
510         * config/aarch64/aarch64-simd.md (vlshr<mode>3, vashr<mode>3): Use
511         the right iterator.
512
513 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
514
515         * Makefile.in (GTFILES): Remove '$(srcdir)/omp-offload.c'.
516
517 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
518
519         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOMP_BUILTIN): Don't
520         consider '-foffload-abi'.
521         * common.opt (-foffload-abi): Remove 'Var', 'Init'.
522         * opts.c (common_handle_option) <-foffload-abi> [ACCEL_COMPILER]:
523         Ignore.
524
525 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
526
527         * optc-gen.awk: Sanity check that 'Init' doesn't appear without
528         'Var'.
529
530 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
531
532         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE): Remove.
533
534 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
535
536         * doc/gty.texi (Files): Update.
537
538 2021-08-09  Thomas Schwinge  <thomas@codesourcery.com>
539
540         * doc/gty.texi (Files): Fix GTY header file example.
541
542 2021-08-09  Roger Sayle  <roger@nextmovesoftware.com>
543
544         * tree-ssa-ccp.c (value_mask_to_min_max): Helper function to
545         determine the upper and lower bounds from a mask-value pair.
546         (bit_value_unop) [ABS_EXPR, ABSU_EXPR]: Add support for
547         absolute value and unsigned absolute value expressions.
548         (bit_value_binop):  Initialize *VAL's precision.
549         [LT_EXPR, LE_EXPR]: Use value_mask_to_min_max to determine
550         upper and lower bounds of operands.  Add LE_EXPR/GE_EXPR
551         support when the operands are unknown but potentially equal.
552         [MIN_EXPR, MAX_EXPR]: Support minimum/maximum expressions.
553
554 2021-08-09  Bin Cheng  <bin.cheng@linux.alibaba.com>
555
556         * config/aarch64/aarch64.md
557         (*extend<SHORT:mode><GPI:mode>2_aarch64): Use %<GPI:w>0.
558
559 2021-08-08  Sergei Trofimovich  <siarheit@google.com>
560
561         * lra-constraints.c: Fix s/otput/output/ typo.
562
563 2021-08-06  Martin Sebor  <msebor@redhat.com>
564
565         * builtins.c (expand_builtin_memchr): Move to gimple-ssa-warn-access.cc.
566         (expand_builtin_strcat): Same.
567         (expand_builtin_stpncpy): Same.
568         (expand_builtin_strncat): Same.
569         (check_read_access): Same.
570         (check_memop_access): Same.
571         (expand_builtin_strlen): Move checks to gimple-ssa-warn-access.cc.
572         (expand_builtin_strnlen): Same.
573         (expand_builtin_memcpy): Same.
574         (expand_builtin_memmove): Same.
575         (expand_builtin_mempcpy): Same.
576         (expand_builtin_strcpy): Same.
577         (expand_builtin_strcpy_args): Same.
578         (expand_builtin_stpcpy_1): Same.
579         (expand_builtin_strncpy): Same.
580         (expand_builtin_memset): Same.
581         (expand_builtin_bzero): Same.
582         (expand_builtin_strcmp): Same.
583         (expand_builtin_strncmp): Same.
584         (expand_builtin): Remove handlers.
585         (fold_builtin_strlen): Add a comment.
586         * builtins.h (check_access): Move to gimple-ssa-warn-access.cc.
587         * calls.c (maybe_warn_nonstring_arg): Same.
588         * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Add warning option.
589         * gimple-fold.c (gimple_fold_builtin_strcpy): Pass argument to callee.
590         (gimple_fold_builtin_stpcpy): Same.
591         * gimple-ssa-warn-access.cc (has_location): New function.
592         (get_location): Same.
593         (get_callee_fndecl): Same.
594         (call_nargs): Same.
595         (call_arg): Same.
596         (warn_string_no_nul): Define.
597         (unterminated_array): Same.
598         (check_nul_terminated_array): Same.
599         (maybe_warn_nonstring_arg): Same.
600         (maybe_warn_for_bound): Same.
601         (warn_for_access): Same.
602         (check_access): Same.
603         (check_memop_access): Same.
604         (check_read_access): Same.
605         (warn_dealloc_offset): Use helper functions.
606         (maybe_emit_free_warning): Same.
607         (class pass_waccess): Add members.
608         (check_strcat): New function.
609         (check_strncat): New function.
610         (check_stxcpy): New function.
611         (check_stxncpy): New function.
612         (check_strncmp): New function.
613         (pass_waccess::check_builtin): New function.
614         (pass_waccess::check): Call it.
615         * gimple-ssa-warn-access.h (warn_string_no_nul): Move here from
616         builtins.h.
617         (maybe_warn_for_bound): Same.
618         (check_access): Same.
619         (check_memop_access): Same.
620         (check_read_access): Same.
621         * pointer-query.h (struct access_data): Define a ctor overload.
622
623 2021-08-06  Richard Biener  <rguenther@suse.de>
624
625         PR tree-optimization/101801
626         * tree-vectorizer.h (vect_worthwhile_without_simd_p): Rename...
627         (vect_can_vectorize_without_simd_p): ... to this.
628         * tree-vect-loop.c (vect_worthwhile_without_simd_p): Rename...
629         (vect_can_vectorize_without_simd_p): ... to this and fold
630         in vect_min_worthwhile_factor.
631         (vect_min_worthwhile_factor): Remove.
632         (vectorizable_reduction): Adjust and remove the cost part.
633         * tree-vect-stmts.c (vectorizable_shift): Likewise.
634         (vectorizable_operation): Likewise.
635
636 2021-08-06  Uroš Bizjak  <ubizjak@gmail.com>
637
638         PR target/101797
639         * config/i386/i386.md (cmove reg-to-reg move elimination peephole2s):
640         Add general_gr_operand predicate to operand 3.
641
642 2021-08-06  Roger Sayle  <roger@nextmovesoftware.com>
643
644         * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern): Use
645         CFN_BUILT_IN_CLRSB* instead of BUILT_IN_CLRSB* for consistency.
646
647 2021-08-06  Tamar Christina  <tamar.christina@arm.com>
648
649         * config/aarch64/aarch64-sve-builtins.cc (register_svpattern,
650         register_svprfop): Pass vec<> by pointer.
651         * langhooks-def.h (lhd_simulate_enum_decl): Likewise.
652         * langhooks.c (lhd_simulate_enum_decl): Likewise.
653         * langhooks.h (struct lang_hooks_for_types): Likewise.
654
655 2021-08-06  Jonathan Wright  <jonathan.wright@arm.com>
656
657         * config/aarch64/arm_neon.h (vst1_bf16_x2): Use
658         __builtin_memcpy instead of constructing an additional
659         __builtin_aarch64_simd_oi one vector at a time.
660         (vst1q_bf16_x2): Likewise.
661         (vst1_bf16_x3): Use __builtin_memcpy instead of constructing
662         an additional __builtin_aarch64_simd_ci one vector at a time.
663         (vst1q_bf16_x3): Likewise.
664         (vst1_bf16_x4): Use __builtin_memcpy instead of a union.
665         (vst1q_bf16_x4): Likewise.
666         (vst2_bf16): Use __builtin_memcpy instead of constructing an
667         additional __builtin_aarch64_simd_oi one vector at a time.
668         (vst2q_bf16): Likewise.
669         (vst3_bf16): Use __builtin_memcpy instead of constructing an
670         additional __builtin_aarch64_simd_ci mode one vector at a
671         time.
672         (vst3q_bf16): Likewise.
673         (vst4_bf16): Use __builtin_memcpy instead of constructing an
674         additional __builtin_aarch64_simd_xi one vector at a time.
675         (vst4q_bf16): Likewise.
676
677 2021-08-06  Jonathan Wright  <jonathan.wright@arm.com>
678
679         * config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Delete.
680         (__ST2Q_LANE_FUNC): Delete.
681         (vst2_lane_f16): Use __builtin_memcpy to copy vector
682         structure instead of constructing __builtin_aarch64_simd_oi
683         one vector at a time.
684         (vst2_lane_f32): Likewise.
685         (vst2_lane_f64): Likewise.
686         (vst2_lane_p8): Likewise.
687         (vst2_lane_p16): Likewise.
688         (vst2_lane_p64): Likewise.
689         (vst2_lane_s8): Likewise.
690         (vst2_lane_s16): Likewise.
691         (vst2_lane_s32): Likewise.
692         (vst2_lane_s64): Likewise.
693         (vst2_lane_u8): Likewise.
694         (vst2_lane_u16): Likewise.
695         (vst2_lane_u32): Likewise.
696         (vst2_lane_u64): Likewise.
697         (vst2_lane_bf16): Likewise.
698         (vst2q_lane_f16): Use __builtin_memcpy to copy vector
699         structure instead of using a union.
700         (vst2q_lane_f32): Likewise.
701         (vst2q_lane_f64): Likewise.
702         (vst2q_lane_p8): Likewise.
703         (vst2q_lane_p16): Likewise.
704         (vst2q_lane_p64): Likewise.
705         (vst2q_lane_s8): Likewise.
706         (vst2q_lane_s16): Likewise.
707         (vst2q_lane_s32): Likewise.
708         (vst2q_lane_s64): Likewise.
709         (vst2q_lane_u8): Likewise.
710         (vst2q_lane_u16): Likewise.
711         (vst2q_lane_u32): Likewise.
712         (vst2q_lane_u64): Likewise.
713         (vst2q_lane_bf16): Likewise.
714
715 2021-08-06  Jonathan Wright  <jonathan.wright@arm.com>
716
717         * config/aarch64/arm_neon.h (__ST3_LANE_FUNC): Delete.
718         (__ST3Q_LANE_FUNC): Delete.
719         (vst3_lane_f16): Use __builtin_memcpy to copy vector
720         structure instead of constructing __builtin_aarch64_simd_ci
721         one vector at a time.
722         (vst3_lane_f32): Likewise.
723         (vst3_lane_f64): Likewise.
724         (vst3_lane_p8): Likewise.
725         (vst3_lane_p16): Likewise.
726         (vst3_lane_p64): Likewise.
727         (vst3_lane_s8): Likewise.
728         (vst3_lane_s16): Likewise.
729         (vst3_lane_s32): Likewise.
730         (vst3_lane_s64): Likewise.
731         (vst3_lane_u8): Likewise.
732         (vst3_lane_u16): Likewise.
733         (vst3_lane_u32): Likewise.
734         (vst3_lane_u64): Likewise.
735         (vst3_lane_bf16): Likewise.
736         (vst3q_lane_f16): Use __builtin_memcpy to copy vector
737         structure instead of using a union.
738         (vst3q_lane_f32): Likewise.
739         (vst3q_lane_f64): Likewise.
740         (vst3q_lane_p8): Likewise.
741         (vst3q_lane_p16): Likewise.
742         (vst3q_lane_p64): Likewise.
743         (vst3q_lane_s8): Likewise.
744         (vst3q_lane_s16): Likewise.
745         (vst3q_lane_s32): Likewise.
746         (vst3q_lane_s64): Likewise.
747         (vst3q_lane_u8): Likewise.
748         (vst3q_lane_u16): Likewise.
749         (vst3q_lane_u32): Likewise.
750         (vst3q_lane_u64): Likewise.
751         (vst3q_lane_bf16): Likewise.
752
753 2021-08-06  Jonathan Wright  <jonathan.wright@arm.com>
754
755         * config/aarch64/arm_neon.h (__ST4_LANE_FUNC): Delete.
756         (__ST4Q_LANE_FUNC): Delete.
757         (vst4_lane_f16): Use __builtin_memcpy to copy vector
758         structure instead of constructing __builtin_aarch64_simd_xi
759         one vector at a time.
760         (vst4_lane_f32): Likewise.
761         (vst4_lane_f64): Likewise.
762         (vst4_lane_p8): Likewise.
763         (vst4_lane_p16): Likewise.
764         (vst4_lane_p64): Likewise.
765         (vst4_lane_s8): Likewise.
766         (vst4_lane_s16): Likewise.
767         (vst4_lane_s32): Likewise.
768         (vst4_lane_s64): Likewise.
769         (vst4_lane_u8): Likewise.
770         (vst4_lane_u16): Likewise.
771         (vst4_lane_u32): Likewise.
772         (vst4_lane_u64): Likewise.
773         (vst4_lane_bf16): Likewise.
774         (vst4q_lane_f16): Use __builtin_memcpy to copy vector
775         structure instead of using a union.
776         (vst4q_lane_f32): Likewise.
777         (vst4q_lane_f64): Likewise.
778         (vst4q_lane_p8): Likewise.
779         (vst4q_lane_p16): Likewise.
780         (vst4q_lane_p64): Likewise.
781         (vst4q_lane_s8): Likewise.
782         (vst4q_lane_s16): Likewise.
783         (vst4q_lane_s32): Likewise.
784         (vst4q_lane_s64): Likewise.
785         (vst4q_lane_u8): Likewise.
786         (vst4q_lane_u16): Likewise.
787         (vst4q_lane_u32): Likewise.
788         (vst4q_lane_u64): Likewise.
789         (vst4q_lane_bf16): Likewise.
790
791 2021-08-06  Martin Liska  <mliska@suse.cz>
792
793         * config/rs6000/rs6000.c (rs6000_option_override_internal): When
794         a target option is restored, it can have
795         rs6000_long_double_type_size set to FLOAT_PRECISION_TFmode
796         and error should not be emitted.
797
798 2021-08-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
799
800         * gcov-io.h (gcov_write): Declare.
801         * gcov-io.c (gcov_write): New.
802         (gcov_write_counter): Remove.
803         (gcov_write_tag_length): Likewise.
804         (gcov_write_summary): Replace gcov_write_tag_length() with calls to
805         gcov_write_unsigned().
806         * doc/invoke.texi (fprofile-info-section): Mention
807         __gcov_info_to_gdca().
808
809 2021-08-06  Martin Sebor  <msebor@redhat.com>
810
811         * dominance.c (prune_bbs_to_update_dominators): Adjust by-value vec
812         arguments to by-reference.
813         (iterate_fix_dominators): Same.
814         * dominance.h (iterate_fix_dominators): Same.
815         * ipa-prop.h: Call auto_vec::to_vec_legacy.
816         * tree-data-ref.c (dump_data_dependence_relation): Adjust by-value vec
817         arguments to by-reference.
818         (debug_data_dependence_relation): Same.
819         (dump_data_dependence_relations): Same.
820         * tree-data-ref.h (debug_data_dependence_relation): Same.
821         (dump_data_dependence_relations): Same.
822         * tree-predcom.c (dump_chains): Same.
823         (initialize_root_vars_lm): Same.
824         (determine_unroll_factor): Same.
825         (replace_phis_by_defined_names): Same.
826         (insert_init_seqs): Same.
827         (pcom_worker::tree_predictive_commoning_loop): Call
828          auto_vec::to_vec_legacy.
829         * tree-ssa-pre.c (insert_into_preds_of_block): Adjust by-value vec
830         arguments to by-reference.
831         * tree-ssa-threadbackward.c (populate_worklist): Same.
832         (back_threader::resolve_def): Same.
833         * tree-vect-data-refs.c (vect_check_nonzero_value): Same.
834         (vect_enhance_data_refs_alignment): Same.
835         (vect_check_lower_bound): Same.
836         (vect_prune_runtime_alias_test_list): Same.
837         (vect_permute_store_chain): Same.
838         * tree-vect-slp-patterns.c (vect_normalize_conj_loc): Same.
839         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Same.
840         * tree-vectorizer.h (vect_permute_store_chain): Same.
841         * vec.c (test_init): New function.
842         (vec_c_tests): Call new function.
843         * vec.h (vec): Declare ctors, dtor, and assignment.
844         (auto_vec::vec_to_legacy): New function.
845         (vec::copy): Adjust initialization.
846
847 2021-08-05  H.J. Lu  <hjl.tools@gmail.com>
848
849         PR target/99744
850         * config/i386/i386.c (ix86_can_inline_p): Ignore MASK_80387 if
851         callee only uses GPRs.
852         * config/i386/ia32intrin.h: Revert commit 5463cee2770.
853         * config/i386/serializeintrin.h: Revert commit 71958f740f1.
854         * config/i386/x86gprintrin.h: Add
855         #pragma GCC target("general-regs-only") and #pragma GCC pop_options
856         to disable non-GPR ISAs.
857
858 2021-08-05  Richard Sandiford  <richard.sandiford@arm.com>
859
860         PR middle-end/101787
861         * doc/md.texi (cond_ashl, cond_ashr, cond_lshr): Document.
862
863 2021-08-05  Richard Sandiford  <richard.sandiford@arm.com>
864
865         * tree-vectorizer.h (vect_is_store_elt_extraction, vect_is_reduction)
866         (vect_reduc_type, vect_embedded_comparison_type, vect_comparison_type)
867         (vect_is_extending_load, vect_is_integer_truncation): New functions,
868         moved from aarch64.c but given different names.
869         * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction)
870         (aarch64_is_reduction, aarch64_reduc_type)
871         (aarch64_embedded_comparison_type, aarch64_comparison_type)
872         (aarch64_extending_load_p, aarch64_integer_truncation_p): Delete
873         in favor of the above.  Update callers accordingly.
874
875 2021-08-05  Richard Earnshaw  <rearnsha@arm.com>
876
877         PR target/101723
878         * config/arm/arm-cpus.in (generic-armv7-a): Add quirk to suppress
879         writing .cpu directive in asm output.
880         * config/arm/arm.c (arm_identify_fpu_from_isa): New variable.
881         (arm_last_printed_arch_string): Delete.
882         (arm_last-printed_fpu_string): Delete.
883         (arm_configure_build_target): If use of floating-point/SIMD is
884         disabled, remove all fp/simd related features from the target ISA.
885         (last_arm_targ_options): New variable.
886         (arm_print_asm_arch_directives): Add new parameters.  Change order
887         of emitted directives and handle all cases here.
888         (arm_file_start): Always call arm_print_asm_arch_directives, move
889         all generation of .arch/.arch_extension here.
890         (arm_file_end): Call arm_print_asm_arch.
891         (arm_declare_function_name): Call arm_print_asm_arch_directives
892         instead of printing .arch/.fpu directives directly.
893
894 2021-08-05  Richard Earnshaw  <rearnsha@arm.com>
895
896         * config/arm/arm.c (arm_configure_build_target): Don't call
897         arm_option_reconfigure_globals.
898         (arm_option_restore): Call arm_option_reconfigure_globals after
899         reconfiguring the target.
900         * config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
901
902 2021-08-05  Richard Earnshaw  <rearnsha@arm.com>
903
904         * config/arm/arm.c (arm_configure_build_target): Ensure the target's
905         arch_name is always set.
906
907 2021-08-05  Jonathan Wright  <jonathan.wright@arm.com>
908
909         * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost
910         of vec_select high-half from being added into Neon subtract
911         cost.
912
913 2021-08-05  Jonathan Wright  <jonathan.wright@arm.com>
914
915         * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost
916         of vec_select high-half from being added into Neon add cost.
917
918 2021-08-05  Kewen Lin  <linkw@linux.ibm.com>
919
920         * cfgloop.h (loops_list::loops_list): Add one optional argument
921         root and adjust accordingly, update loop tree walking and factor
922         out to ...
923         * cfgloop.c (loops_list::walk_loop_tree): ... this.  New function.
924
925 2021-08-05  Eric Botcazou  <ebotcazou@gcc.gnu.org>
926
927         PR tree-optimization/101626
928         * tree-sra.c (propagate_subaccesses_from_rhs): Do not set the
929         reverse scalar storage order on a pointer or vector component.
930
931 2021-08-05  liuhongt  <hongtao.liu@intel.com>
932
933         * config/i386/sse.md (cond_<code><mode>): New expander.
934
935 2021-08-05  liuhongt  <hongtao.liu@intel.com>
936
937         * config/i386/sse.md (cond_<code><mode>): New expander.
938
939 2021-08-05  liuhongt  <hongtao.liu@intel.com>
940
941         * config/i386/sse.md (cond_<code><mode>): New expander.
942
943 2021-08-04  David Malcolm  <dmalcolm@redhat.com>
944
945         PR analyzer/101570
946         * Makefile.in (ANALYZER_OBJS): Add analyzer/region-model-asm.o.
947
948 2021-08-04  H.J. Lu  <hjl.tools@gmail.com>
949
950         PR target/101742
951         * config/i386/i386.h (STORE_MAX_PIECES): Allow 16/32/64 bytes
952         only if TARGET_INTER_UNIT_MOVES_TO_VEC is true.
953
954 2021-08-04  H.J. Lu  <hjl.tools@gmail.com>
955
956         PR target/101772
957         * config/i386/i386-expand.c (ix86_expand_vector_move): Call
958         ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy
959         data with SSE register from one memory location to another.
960
961 2021-08-04  Andreas Krebbel  <krebbel@linux.ibm.com>
962
963         * config/s390/s390.c (expand_perm_with_vpdi): New function.
964         (vectorize_vec_perm_const_1): Call expand_perm_with_vpdi.
965         * config/s390/vector.md (*vpdi1<mode>, @vpdi1<mode>): Enable a
966         parameterized expander.
967         (*vpdi4<mode>, @vpdi4<mode>): Likewise.
968
969 2021-08-04  Andreas Krebbel  <krebbel@linux.ibm.com>
970
971         * config/s390/s390.c (MAX_VECT_LEN): Define macro.
972         (struct expand_vec_perm_d): Define struct.
973         (expand_perm_with_merge): New function.
974         (vectorize_vec_perm_const_1): New function.
975         (s390_vectorize_vec_perm_const): New function.
976         (TARGET_VECTORIZE_VEC_PERM_CONST): Define target macro.
977
978 2021-08-04  Andreas Krebbel  <krebbel@linux.ibm.com>
979
980         * config/s390/vector.md (V_HW_64): Remove mode iterator.
981         (*vec_load_pair<mode>): Use V_HW_2 instead of V_HW_64.
982         * config/s390/vx-builtins.md
983         (vec_scatter_element<V_HW_2:mode>_SI): Use V_HW_2 instead of
984         V_HW_64.
985
986 2021-08-04  Andreas Krebbel  <krebbel@linux.ibm.com>
987
988         * config/s390/s390.md (UNSPEC_VEC_PERMI): Remove constant
989         definition.
990         * config/s390/vector.md (*vpdi1<mode>, *vpdi4<mode>): New pattern
991         definitions.
992         * config/s390/vx-builtins.md (*vec_permi<mode>): Emit generic rtx
993         instead of an unspec.
994
995 2021-08-04  Andreas Krebbel  <krebbel@linux.ibm.com>
996
997         * config/s390/s390-modes.def: Add more vector modes to support
998         concatenation of two vectors.
999         * config/s390/s390-protos.h (s390_expand_merge_perm_const): Add
1000         prototype.
1001         (s390_expand_merge): Likewise.
1002         * config/s390/s390.c (s390_expand_merge_perm_const): New function.
1003         (s390_expand_merge): New function.
1004         * config/s390/s390.md (UNSPEC_VEC_MERGEH, UNSPEC_VEC_MERGEL):
1005         Remove constant definitions.
1006         * config/s390/vector.md (V_HW_2): Add mode iterators.
1007         (VI_HW_4, V_HW_4): Rename VI_HW_4 to V_HW_4.
1008         (vec_2x_nelts, vec_2x_wide): New mode attributes.
1009         (*vmrhb, *vmrlb, *vmrhh, *vmrlh, *vmrhf, *vmrlf, *vmrhg, *vmrlg):
1010         New pattern definitions.
1011         (vec_widen_umult_lo_<mode>, vec_widen_umult_hi_<mode>)
1012         (vec_widen_smult_lo_<mode>, vec_widen_smult_hi_<mode>)
1013         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf, vec_unpacks_lo_v2df)
1014         (vec_unpacks_hi_v2df): Adjust expanders to emit non-unspec RTX for
1015         vec merge.
1016         * config/s390/vx-builtins.md (V_HW_4): Remove mode iterator. Now
1017         in vector.md.
1018         (vec_mergeh<mode>, vec_mergel<mode>): Use s390_expand_merge to
1019         emit vec merge pattern.
1020
1021 2021-08-04  Jonathan Wright  <jonathan.wright@arm.com>
1022
1023         * config/aarch64/aarch64.c (aarch64_strip_extend_vec_half):
1024         Define.
1025         (aarch64_rtx_mult_cost): Traverse RTL tree to prevent cost of
1026         vec_select high-half from being added into Neon multiply
1027         cost.
1028         * rtlanal.c (vec_series_highpart_p): Define.
1029         * rtlanal.h (vec_series_highpart_p): Declare.
1030
1031 2021-08-04  Jonathan Wright  <jonathan.wright@arm.com>
1032
1033         * config/aarch64/aarch64.c (aarch64_strip_duplicate_vec_elt):
1034         Define.
1035         (aarch64_rtx_mult_cost): Traverse RTL tree to prevent
1036         vec_select cost from being added into Neon multiply cost.
1037
1038 2021-08-04  Richard Sandiford  <richard.sandiford@arm.com>
1039
1040         * tree-vect-loop.c (vect_better_loop_vinfo_p): Detect cases in
1041         which old_loop_vinfo is an epilogue loop that handles a constant
1042         number of iterations.
1043
1044 2021-08-04  Richard Sandiford  <richard.sandiford@arm.com>
1045
1046         * tree-vect-loop.c (vect_analyze_loop): Print a dump message
1047         when a reanalyzed loop fails to be cheaper than the current
1048         main loop.
1049
1050 2021-08-04  Richard Sandiford  <richard.sandiford@arm.com>
1051
1052         * config/aarch64/aarch64.c: Fix a typo.
1053
1054 2021-08-04  Vincent Lefèvre  <vincent-gcc@vinc17.net>
1055
1056         PR gcov-profile/101773
1057         * gcov-io.c (gcov_close): Check return code of a fclose.
1058
1059 2021-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1060
1061         PR ada/101575
1062         * dwarf2out.c (dwarf2out_assembly_start): Emit a dummy
1063         .file statement when needed.
1064
1065 2021-08-04  Richard Biener  <rguenther@suse.de>
1066
1067         * tree-vect-data-refs.c (vect_check_gather_scatter):
1068         Include widening conversions only when the result is
1069         still handed by native gather or the current offset
1070         size not already matches the data size.
1071         Also succeed analysis in case there's no native support,
1072         noted by a IFN_LAST ifn and a NULL decl.
1073         (vect_analyze_data_refs): Always consider gathers.
1074         * tree-vect-patterns.c (vect_recog_gather_scatter_pattern):
1075         Test for no IFN gather rather than decl gather.
1076         * tree-vect-stmts.c (vect_model_load_cost): Pass in the
1077         gather-scatter info and cost emulated gathers accordingly.
1078         (vect_truncate_gather_scatter_offset): Properly test for
1079         no IFN gather.
1080         (vect_use_strided_gather_scatters_p): Likewise.
1081         (get_load_store_type): Handle emulated gathers and its
1082         restrictions.
1083         (vectorizable_load): Likewise.  Emulate them by extracting
1084         scalar offsets, doing scalar loads and a vector construct.
1085
1086 2021-08-04  H.J. Lu  <hjl.tools@gmail.com>
1087
1088         PR target/101742
1089         * expr.c (op_by_pieces_d::op_by_pieces_d): Add a max_pieces
1090         argument to set m_max_size.
1091         (move_by_pieces_d): Pass MOVE_MAX_PIECES to op_by_pieces_d.
1092         (store_by_pieces_d): Pass STORE_MAX_PIECES to op_by_pieces_d.
1093         (compare_by_pieces_d): Pass COMPARE_MAX_PIECES to op_by_pieces_d.
1094
1095 2021-08-04  Roger Sayle  <roger@nextmovesoftware.com>
1096             Marc Glisse  <marc.glisse@inria.fr>
1097
1098         * match.pd (bit_ior, bit_xor): Canonicalize (X*C1)|(X*C2) and
1099         (X*C1)^(X*C2) as X*(C1+C2), and related variants, using
1100         tree_nonzero_bits to ensure that operands are bit-wise disjoint.
1101
1102 2021-08-04  Richard Biener  <rguenther@suse.de>
1103
1104         * tree-ssa-forwprop.c (pass_forwprop::execute): Split
1105         out code to decompose vector loads ...
1106         (optimize_vector_load): ... here.  Generalize it to
1107         handle intermediate widening and TARGET_MEM_REF loads
1108         and apply it to loads with a supported vector mode as well.
1109
1110 2021-08-04  Richard Biener  <rguenther@suse.de>
1111
1112         PR tree-optimization/101756
1113         * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Make sure
1114         the result of the reduction epilogue is compatible to the original
1115         scalar result.
1116
1117 2021-08-04  liuhongt  <hongtao.liu@intel.com>
1118
1119         PR target/101743
1120         * config/i386/i386.md (peephole2): Refine predicate from
1121         register_operand to general_reg_operand.
1122
1123 2021-08-04  Aldy Hernandez  <aldyh@redhat.com>
1124
1125         * gimple-range-path.h (path_range_query::dump): Mark override.
1126
1127 2021-08-04  Richard Biener  <rguenther@suse.de>
1128
1129         PR tree-optimization/101769
1130         * tree-tailcall.c (eliminate_tail_call): Add the created loop
1131         for the first recursion and return it via the new output parameter.
1132         (optimize_tail_call): Pass through new output param.
1133         (tree_optimize_tail_calls_1): After creating all latches,
1134         add the created loop to the loop tree.  Do not mark loops for fixup.
1135
1136 2021-08-04  Martin Liska  <mliska@suse.cz>
1137
1138         * doc/invoke.texi: Document threader-mode param.
1139
1140 2021-08-04  liuhongt  <hongtao.liu@intel.com>
1141
1142         * config/i386/sse.md (cond_fma<mode>): New expander.
1143         (cond_fms<mode>): Ditto.
1144         (cond_fnma<mode>): Ditto.
1145         (cond_fnms<mode>): Ditto.
1146
1147 2021-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
1148
1149         * config/rs6000/vsx.md (*vsx_le_perm_store_<mode>): Use && instead of &.
1150
1151 2021-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
1152
1153         * config/rs6000/constraints.md: Remove "e" from the list of available
1154         constraint characters.
1155
1156 2021-08-03  Eugene Rozenfeld  <erozen@microsoft.com>
1157
1158         PR gcov-profile/71672
1159         * auto-profile.c (afdo_indirect_call): Fix setup of the historgram value for indirect calls.
1160
1161 2021-08-03  Paul A. Clarke  <pc@us.ibm.com>
1162
1163         * config/rs6000/smmintrin.h (_mm_minpos_epu16): New.
1164
1165 2021-08-03  H.J. Lu  <hjl.tools@gmail.com>
1166
1167         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): In 64-bit mode,
1168         try XMM31 to avoid vzeroupper.
1169
1170 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
1171
1172         * doc/invoke.texi: Document -mtune=neoverse-512tvb and
1173         -mcpu=neoverse-512tvb.
1174         * config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry.
1175         * config/aarch64/aarch64-tune.md: Regenerate.
1176         * config/aarch64/aarch64.c (neoverse512tvb_sve_vector_cost)
1177         (neoverse512tvb_sve_issue_info, neoverse512tvb_vec_issue_info)
1178         (neoverse512tvb_vector_cost, neoverse512tvb_tunings): New structures.
1179         (aarch64_adjust_body_cost_sve): Handle -mtune=neoverse-512tvb.
1180         (aarch64_adjust_body_cost): Likewise.
1181
1182 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
1183
1184         * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Only
1185         record issue information for operations that occur in the
1186         innermost loop.
1187
1188 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
1189
1190         * config/aarch64/aarch64.c (aarch64_multiply_add_p): Add a vec_flags
1191         parameter.  Detect cases in which an Advanced SIMD MLA would almost
1192         certainly require a MOV.
1193         (aarch64_count_ops): Update accordingly.
1194
1195 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
1196
1197         * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction): New
1198         function, split out from...
1199         (aarch64_detect_vector_stmt_subtype): ...here.
1200         (aarch64_add_stmt_cost): Treat extracting element 0 as free.
1201
1202 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
1203
1204         * config/aarch64/aarch64-protos.h (sve_vec_cost):
1205         Add gather_load_x32_cost and gather_load_x64_cost.
1206         * config/aarch64/aarch64.c (generic_sve_vector_cost)
1207         (a64fx_sve_vector_cost, neoversev1_sve_vector_cost): Update
1208         accordingly, using the values given by the scalar_load * number
1209         of elements calculation that we used previously.
1210         (aarch64_detect_vector_stmt_subtype): Use the new fields.
1211
1212 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
1213
1214         * config/aarch64/aarch64.c (aarch64_adjust_body_cost_sve): New
1215         function, split out from...
1216         (aarch64_adjust_body_cost): ...here.
1217
1218 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
1219
1220         * config/aarch64/fractional-cost.h: New file.
1221         * config/aarch64/aarch64.c: Include <algorithm> (indirectly)
1222         and cost_fraction.h.
1223         (vec_cost_fraction): New typedef.
1224         (aarch64_detect_scalar_stmt_subtype): Use it for statement costs.
1225         (aarch64_detect_vector_stmt_subtype): Likewise.
1226         (aarch64_sve_adjust_stmt_cost, aarch64_adjust_stmt_cost): Likewise.
1227         (aarch64_estimate_min_cycles_per_iter): Use vec_cost_fraction
1228         for cycle counts.
1229         (aarch64_adjust_body_cost): Likewise.
1230         (aarch64_test_cost_fraction): New function.
1231         (aarch64_run_selftests): Call it.
1232
1233 2021-08-03  Richard Sandiford  <richard.sandiford@arm.com>
1234
1235         * config/aarch64/aarch64-protos.h (tune_params::sve_width): Turn
1236         into a bitmask.
1237         * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Update
1238         accordingly.
1239         (aarch64_estimated_poly_value): Likewise.  Use the least significant
1240         set bit for the minimum and likely values.  Use the most significant
1241         set bit for the maximum value.
1242
1243 2021-08-03  liuhongt  <hongtao.liu@intel.com>
1244
1245         * config/i386/sse.md (cond_<insn><mode>): New expander.
1246         (cond_mul<mode>): Ditto.
1247
1248 2021-08-03  Kewen Lin  <linkw@linux.ibm.com>
1249
1250         * tree-cfg.c (move_sese_region_to_fn): Fix typos on dloop.
1251
1252 2021-08-03  liuhongt  <hongtao.liu@intel.com>
1253
1254         * config/i386/sse.md (cond_<insn><mode>):New expander.
1255         (cond_mul<mode>): Ditto.
1256         (cond_div<mode>): Ditto.
1257
1258 2021-08-02  H.J. Lu  <hjl.tools@gmail.com>
1259
1260         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Also
1261         check stack_realign_needed for stack realignment.
1262         (ix86_legitimate_constant_p): Always allow CONST_WIDE_INT smaller
1263         than the largest integer supported by vector register.
1264         * config/i386/i386.h (MAX_MOVE_MAX): New.  Set to 64.
1265         (MOVE_MAX): Set to bytes of the largest integer supported by
1266         vector register.
1267         (STORE_MAX_PIECES): New.
1268
1269 2021-08-02  H.J. Lu  <hjl.tools@gmail.com>
1270
1271         * config/i386/i386-expand.c (ix86_expand_vector_move): Call
1272         ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy
1273         data from one memory location to another.
1274
1275 2021-08-02  H.J. Lu  <hjl.tools@gmail.com>
1276
1277         PR middle-end/90773
1278         * config/i386/i386.c (TARGET_GEN_MEMSET_SCRATCH_RTX): New.
1279
1280 2021-08-02  Aldy Hernandez  <aldyh@redhat.com>
1281
1282         PR tree-optimization/101724
1283         * params.opt: Remove --param=threader-iterative.
1284         * tree-ssa-threadbackward.c (pass_thread_jumps::execute): Remove
1285         iterative mode.
1286
1287 2021-08-02  Tom de Vries  <tdevries@suse.de>
1288
1289         PR middle-end/101665
1290         * doc/extend.texi (nonnull attribute): Improve documentation.
1291
1292 2021-08-02  Andrew Pinski  <apinski@marvell.com>
1293
1294         PR rtl-optimization/101683
1295         * rtlanal.c (may_trap_p_1): Handle UNSIGNED_FIX.
1296
1297 2021-08-02  Roger Sayle  <roger@nextmovesoftware.com>
1298
1299         * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern):
1300         Renamed from cond_removal_in_popcount_clz_ctz_pattern.
1301         Add support for BSWAP, FFS, PARITY and CLRSB builtins.
1302         (tree_ssa_phiop_worker): Update call to function above.
1303
1304 2021-08-01  H.J. Lu  <hjl.tools@gmail.com>
1305
1306         PR target/78103
1307         * config/i386/i386.md (bsr_rex64_1_zext): New.
1308         (combine splitter for constant - clzll): Replace gen_bsr_rex64_1
1309         with gen_bsr_rex64_1_zext.
1310
1311 2021-07-31  Jakub Jelinek  <jakub@redhat.com>
1312
1313         PR target/78103
1314         * config/i386/i386.md (bsr_rex64_1, bsr_1, bsr_zext_1): New
1315         define_insn patterns.
1316         (*bsr_rex64_2, *bsr_2): New define_insn_and_split patterns.
1317         Add combine splitters for constant - clz.
1318         (clz<mode>2): Use a temporary pseudo for bsr result.
1319
1320 2021-07-30  Paul A. Clarke  <pc@us.ibm.com>
1321
1322         * config/rs6000/smmintrin.h (_mm_floor_pd, _mm_floor_ps,
1323         _mm_floor_sd, _mm_floor_ss): New.
1324
1325 2021-07-30  Paul A. Clarke  <pc@us.ibm.com>
1326
1327         * config/rs6000/smmintrin.h (_mm_ceil_pd, _mm_ceil_ps,
1328         _mm_ceil_sd, _mm_ceil_ss): New.
1329
1330 2021-07-30  Paul A. Clarke  <pc@us.ibm.com>
1331
1332         * config/rs6000/smmintrin.h (_mm_blend_pd, _mm_blendv_pd,
1333         _mm_blend_ps, _mm_blendv_ps): New.
1334
1335 2021-07-30  Roger Sayle  <roger@nextmovesoftware.com>
1336             Uroš Bizjak  <ubizjak@gmail.com>
1337
1338         * config/i386/i386.md (*dec_cmov<mode>): New define_insn_and_split
1339         to generate a conditional move using the carry flag after sub $1.
1340         (peephole2): Eliminate a register-to-register move by inverting
1341         the condition of a conditional move.
1342
1343 2021-07-30  Hans-Peter Nilsson  <hp@bitrange.com>
1344
1345         * config/mmix/mmix.md ("call", "call_value", "*call_real")
1346         ("*call_value_real"): Don't generate rtx mentioning the generic
1347         operands 1 and 2 to "call", and similarly for "call_value".
1348         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p)
1349         (mmix_print_operand): Use '!' instead of 'p'.
1350
1351 2021-07-30  Hans-Peter Nilsson  <hp@bitrange.com>
1352
1353         * doc/md.texi (call): Correct information about operand 2.
1354         * config/mmix/mmix.md ("call", "call_value"): Remove fixed FIXMEs.
1355
1356 2021-07-30  Andrew MacLeod  <amacleod@redhat.com>
1357
1358         * range-op.cc (operator_trunc_mod::wi_fold): Fold constants.
1359
1360 2021-07-30  Andrew MacLeod  <amacleod@redhat.com>
1361
1362         * range-op.cc (operator_div::wi_fold): Return UNDEFINED for [0, 0] divisor.
1363
1364 2021-07-30  Andrew MacLeod  <amacleod@redhat.com>
1365
1366         * gimple-range-cache.cc (*::set_bb_range): Change const basic_block to
1367         const_basic_block..
1368         (*::get_bb_range): Ditto.
1369         (*::bb_range_p): Ditto.
1370         * gimple-range-cache.h: Change prototypes.
1371
1372 2021-07-30  H.J. Lu  <hjl.tools@gmail.com>
1373
1374         PR middle-end/90773
1375         * builtins.c (builtin_memcpy_read_str): Change the mode argument
1376         from scalar_int_mode to fixed_size_mode.
1377         (builtin_strncpy_read_str): Likewise.
1378         (gen_memset_value_from_prev): New function.
1379         (builtin_memset_read_str): Change the mode argument from
1380         scalar_int_mode to fixed_size_mode.  Use gen_memset_value_from_prev
1381         and support CONST_VECTOR.
1382         (builtin_memset_gen_str): Likewise.
1383         (try_store_by_multiple_pieces): Use by_pieces_constfn to declare
1384         constfun.
1385         * builtins.h (builtin_strncpy_read_str): Replace scalar_int_mode
1386         with fixed_size_mode.
1387         (builtin_memset_read_str): Likewise.
1388         * expr.c (widest_int_mode_for_size): Renamed to ...
1389         (widest_fixed_size_mode_for_size): Add a bool argument to
1390         indicate if QI vector mode can be used.
1391         (by_pieces_ninsns): Call widest_fixed_size_mode_for_size
1392         instead of widest_int_mode_for_size.
1393         (pieces_addr::adjust): Change the mode argument from
1394         scalar_int_mode to fixed_size_mode.
1395         (op_by_pieces_d): Make m_len read-only.  Add a bool member,
1396         m_qi_vector_mode, to indicate that QI vector mode can be used.
1397         (op_by_pieces_d::op_by_pieces_d): Add a bool argument to
1398         initialize m_qi_vector_mode.  Call widest_fixed_size_mode_for_size
1399         instead of widest_int_mode_for_size.
1400         (op_by_pieces_d::get_usable_mode): Change the mode argument from
1401         scalar_int_mode to fixed_size_mode.  Call
1402         widest_fixed_size_mode_for_size instead of
1403         widest_int_mode_for_size.
1404         (op_by_pieces_d::smallest_fixed_size_mode_for_size): New member
1405         function to return the smallest integer or QI vector mode.
1406         (op_by_pieces_d::run): Call widest_fixed_size_mode_for_size
1407         instead of widest_int_mode_for_size.  Call
1408         smallest_fixed_size_mode_for_size instead of
1409         smallest_int_mode_for_size.
1410         (store_by_pieces_d::store_by_pieces_d): Add a bool argument to
1411         indicate that QI vector mode can be used and pass it to
1412         op_by_pieces_d::op_by_pieces_d.
1413         (can_store_by_pieces): Call widest_fixed_size_mode_for_size
1414         instead of widest_int_mode_for_size.  Pass memsetp to
1415         widest_fixed_size_mode_for_size to support QI vector mode.
1416         Allow all CONST_VECTORs for memset if vec_duplicate is supported.
1417         (store_by_pieces): Pass memsetp to
1418         store_by_pieces_d::store_by_pieces_d.
1419         (clear_by_pieces_1): Removed.
1420         (clear_by_pieces): Replace clear_by_pieces_1 with
1421         builtin_memset_read_str and pass true to store_by_pieces_d to
1422         support vector mode broadcast.
1423         (string_cst_read_str): Change the mode argument from
1424         scalar_int_mode to fixed_size_mode.
1425         * expr.h (by_pieces_constfn): Change scalar_int_mode to
1426         fixed_size_mode.
1427         (by_pieces_prev): Likewise.
1428         * rtl.h (lowpart_subreg_regno): New.
1429         * rtlanal.c (lowpart_subreg_regno): New.  A wrapper around
1430         simplify_subreg_regno.
1431         * target.def (gen_memset_scratch_rtx): New hook.
1432         * doc/tm.texi.in: Add TARGET_GEN_MEMSET_SCRATCH_RTX.
1433         * doc/tm.texi: Regenerated.
1434
1435 2021-07-30  Xi Ruoyao  <xry111@mengyan1223.wang>
1436
1437         PR target/94780
1438         * config/mips/mips.c (mips_atomic_assign_expand_fenv): Use
1439           TARGET_EXPR instead of MODIFY_EXPR.
1440
1441 2021-07-30  Xi Ruoyao  <xry111@mengyan1223.wang>
1442
1443         PR target/101132
1444         * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Declare.
1445         * config/mips/mips.c (mips_expand_vec_cmp_expr): New function.
1446         * config/mips/mips-msa.md (vec_cmp<MSA:mode><mode_i>): New
1447           expander.
1448           (vec_cmpu<IMSA:mode><mode_i>): New expander.
1449
1450 2021-07-30  H.J. Lu  <hjl.tools@gmail.com>
1451
1452         PR target/101685
1453         * config/i386/i386-options.c (ix86_option_override_internal):
1454         Don't enable LZCNT/POPCNT if they have been disabled explicitly.
1455
1456 2021-07-30  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
1457
1458         PR target/66791
1459         * config/arm/arm_neon.h (vld1_p64): Replace call to builtin by
1460         explicitly dereferencing __a.
1461         (vld1_s64): Likewise.
1462         (vld1_u64): Likewise.
1463         * config/arm/arm_neon_builtins.def (vld1): Remove entry for di
1464         and change to VAR13.
1465
1466 2021-07-30  Aldy Hernandez  <aldyh@redhat.com>
1467
1468         * gimple-loop-versioning.cc (lv_dom_walker::lv_dom_walker): Remove
1469         use of m_range_analyzer.
1470         (loop_versioning::lv_dom_walker::before_dom_children): Same.
1471         (loop_versioning::lv_dom_walker::after_dom_children): Remove.
1472         (loop_versioning::prune_loop_conditions): Replace vr_values use
1473         with range_query interface.
1474         (pass_loop_versioning::execute): Use ranger.
1475
1476 2021-07-30  Xi Ruoyao  <xry111@mengyan1223.wang>
1477
1478         PR ipa/101396
1479         * ipa-devirt.c (ipa_odr_read_section): Compare the precision of
1480           enum values, and emit a warning if they mismatch.
1481
1482 2021-07-30  Kewen Lin  <linkw@linux.ibm.com>
1483
1484         * cfgloop.h (as_const): New function.
1485         (class loop_iterator): Rename to ...
1486         (class loops_list): ... this.
1487         (loop_iterator::next): Rename to ...
1488         (loops_list::Iter::fill_curr_loop): ... this and adjust.
1489         (loop_iterator::loop_iterator): Rename to ...
1490         (loops_list::loops_list): ... this and adjust.
1491         (loops_list::Iter): New class.
1492         (loops_list::iterator): New type.
1493         (loops_list::const_iterator): New type.
1494         (loops_list::begin): New function.
1495         (loops_list::end): Likewise.
1496         (loops_list::begin const): Likewise.
1497         (loops_list::end const): Likewise.
1498         (FOR_EACH_LOOP): Remove.
1499         (FOR_EACH_LOOP_FN): Remove.
1500         * cfgloop.c (flow_loops_dump): Adjust FOR_EACH_LOOP* with range-based
1501         for loop with loops_list instance.
1502         (sort_sibling_loops): Likewise.
1503         (disambiguate_loops_with_multiple_latches): Likewise.
1504         (verify_loop_structure): Likewise.
1505         * cfgloopmanip.c (create_preheaders): Likewise.
1506         (force_single_succ_latches): Likewise.
1507         * config/aarch64/falkor-tag-collision-avoidance.c
1508         (execute_tag_collision_avoidance): Likewise.
1509         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Likewise.
1510         * config/s390/s390.c (s390_adjust_loops): Likewise.
1511         * doc/loop.texi: Likewise.
1512         * gimple-loop-interchange.cc (pass_linterchange::execute): Likewise.
1513         * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
1514         * gimple-loop-versioning.cc (loop_versioning::analyze_blocks): Likewise.
1515         (loop_versioning::make_versioning_decisions): Likewise.
1516         * gimple-ssa-split-paths.c (split_paths): Likewise.
1517         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Likewise.
1518         * graphite.c (canonicalize_loop_form): Likewise.
1519         (graphite_transform_loops): Likewise.
1520         * ipa-fnsummary.c (analyze_function_body): Likewise.
1521         * ipa-pure-const.c (analyze_function): Likewise.
1522         * loop-doloop.c (doloop_optimize_loops): Likewise.
1523         * loop-init.c (loop_optimizer_finalize): Likewise.
1524         (fix_loop_structure): Likewise.
1525         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
1526         (move_loop_invariants): Likewise.
1527         * loop-unroll.c (decide_unrolling): Likewise.
1528         (unroll_loops): Likewise.
1529         * modulo-sched.c (sms_schedule): Likewise.
1530         * predict.c (predict_loops): Likewise.
1531         (pass_profile::execute): Likewise.
1532         * profile.c (branch_prob): Likewise.
1533         * sel-sched-ir.c (sel_finish_pipelining): Likewise.
1534         (sel_find_rgns): Likewise.
1535         * tree-cfg.c (replace_loop_annotate): Likewise.
1536         (replace_uses_by): Likewise.
1537         (move_sese_region_to_fn): Likewise.
1538         * tree-if-conv.c (pass_if_conversion::execute): Likewise.
1539         * tree-loop-distribution.c (loop_distribution::execute): Likewise.
1540         * tree-parloops.c (parallelize_loops): Likewise.
1541         * tree-predcom.c (tree_predictive_commoning): Likewise.
1542         * tree-scalar-evolution.c (scev_initialize): Likewise.
1543         (scev_reset): Likewise.
1544         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
1545         * tree-ssa-live.c (remove_unused_locals): Likewise.
1546         * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise.
1547         * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
1548         (tree_ssa_lim_initialize): Likewise.
1549         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
1550         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Likewise.
1551         * tree-ssa-loop-manip.c (get_loops_exits): Likewise.
1552         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): Likewise.
1553         (free_numbers_of_iterations_estimates): Likewise.
1554         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
1555         * tree-ssa-loop-split.c (tree_ssa_split_loops): Likewise.
1556         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Likewise.
1557         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
1558         (pass_scev_cprop::execute): Likewise.
1559         * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
1560         * tree-ssa-sccvn.c (do_rpo_vn): Likewise.
1561         * tree-ssa-threadupdate.c
1562         (jump_thread_path_registry::thread_through_all_blocks): Likewise.
1563         * tree-vectorizer.c (vectorize_loops): Likewise.
1564         * tree-vrp.c (vrp_asserts::find_assert_locations): Likewise.
1565
1566 2021-07-29  Hans-Peter Nilsson  <hp@bitrange.com>
1567
1568         * config/mmix/mmix.c (mmix_function_arg_1): Avoid
1569         generating a VOIDmode register for e.g the
1570         function_arg_info::end_marker.
1571
1572 2021-07-29  Jeff Law  <jeffreyalaw@gmail.com>
1573
1574         * config/h8300/h8300-modes.def: Add CCZ, CCV and CCC, drop CCZNV.
1575         * config/h8300/h8300.md (H8cc mode iterator): Add CCZ.
1576         (cc mode_attr): Similarly.
1577         (ccz subst_attr): Similarly.
1578         * config/h8300/jumpcall.md: Add new patterns for branch-on-bit.
1579         * config/h8300/testcompare.md: Remove various cc0 based patterns
1580         that had been commented out.  Add pattern to set CCZ from a bit
1581         test.
1582
1583 2021-07-29  Thomas Schwinge  <thomas@codesourcery.com>
1584             Julian Brown  <julian@codesourcery.com>
1585             Kwok Cheung Yeung  <kcy@codesourcery.com>
1586
1587         * omp-offload.c (oacc_loop_xform_head_tail, oacc_loop_process):
1588         'update_stmt' after modification.
1589         (pass_oacc_loop_designation): New function, extracted out of...
1590         (pass_oacc_device_lower): ... this.
1591         (pass_data_oacc_loop_designation, pass_oacc_loop_designation)
1592         (make_pass_oacc_loop_designation): New
1593         * passes.def: Add it.
1594         * tree-parloops.c (create_parallel_loop): Adjust.
1595         * tree-pass.h (make_pass_oacc_loop_designation): New.
1596
1597 2021-07-29  Aldy Hernandez  <aldyh@redhat.com>
1598
1599         * flag-types.h (enum threader_mode): New.
1600         * params.opt: Add entry for --param=threader-mode.
1601         * tree-ssa-threadbackward.c (THREADER_ITERATIVE_MODE): New.
1602         (class back_threader): New.
1603         (back_threader::back_threader): New.
1604         (back_threader::~back_threader): New.
1605         (back_threader::maybe_register_path): New.
1606         (back_threader::find_taken_edge): New.
1607         (back_threader::find_taken_edge_switch): New.
1608         (back_threader::find_taken_edge_cond): New.
1609         (back_threader::resolve_def): New.
1610         (back_threader::resolve_phi): New.
1611         (back_threader::find_paths_to_names): New.
1612         (back_threader::find_paths): New.
1613         (dump_path): New.
1614         (debug): New.
1615         (thread_jumps::find_jump_threads_backwards): Call ranger threader.
1616         (thread_jumps::find_jump_threads_backwards_with_ranger): New.
1617         (pass_thread_jumps::execute): Abstract out code...
1618         (try_thread_blocks): ...here.
1619         * tree-ssa-threadedge.c (jump_threader::thread_outgoing_edges):
1620         Abstract out threading candidate code to...
1621         (single_succ_to_potentially_threadable_block): ...here.
1622         * tree-ssa-threadedge.h (single_succ_to_potentially_threadable_block):
1623         New.
1624         * tree-ssa-threadupdate.c (register_jump_thread): Return boolean.
1625         * tree-ssa-threadupdate.h (class jump_thread_path_registry):
1626         Return bool from register_jump_thread.
1627
1628 2021-07-29  Andreas Krebbel  <krebbel@linux.ibm.com>
1629
1630         * target.def: in0 and in1 do not need to be registers.
1631         * doc/tm.texi: Regenerate.
1632
1633 2021-07-29  liuhongt  <hongtao.liu@intel.com>
1634
1635         PR target/39821
1636         * config/i386/i386.c (ix86_widen_mult_cost): New function.
1637         (ix86_add_stmt_cost): Use ix86_widen_mult_cost for
1638         WIDEN_MULT_EXPR.
1639
1640 2021-07-29  Jiufu Guo  <guojiufu@linux.ibm.com>
1641
1642         PR target/61837
1643         * config/rs6000/rs6000.c (TARGET_PREFERRED_DOLOOP_MODE): New hook.
1644         (rs6000_preferred_doloop_mode): New hook.
1645         * doc/tm.texi: Regenerate.
1646         * doc/tm.texi.in: Add hook preferred_doloop_mode.
1647         * target.def (preferred_doloop_mode): New hook.
1648         * targhooks.c (default_preferred_doloop_mode): New hook.
1649         * targhooks.h (default_preferred_doloop_mode): New hook.
1650         * tree-ssa-loop-ivopts.c (compute_doloop_base_on_mode): New function.
1651         (add_iv_candidate_for_doloop): Call targetm.preferred_doloop_mode
1652         and compute_doloop_base_on_mode.
1653
1654 2021-07-28  Martin Sebor  <msebor@redhat.com>
1655
1656         PR middle-end/101494
1657         * tree-ssa-uninit.c (maybe_warn_operand): Correct object offset
1658         and size computation.
1659
1660 2021-07-28  Martin Sebor  <msebor@redhat.com>
1661
1662         PR middle-end/101601
1663         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Remove
1664         a pointless test.
1665         Handle pointers to functions.
1666
1667 2021-07-28  Martin Sebor  <msebor@redhat.com>
1668
1669         * Makefile.in (OBJS): Add gimple-ssa-warn-access.o and pointer-query.o.
1670         * attribs.h (fndecl_dealloc_argno): Move fndecl_dealloc_argno to tree.h.
1671         * builtins.c (compute_objsize_r): Move to pointer-query.cc.
1672         (access_ref::access_ref): Same.
1673         (access_ref::phi): Same.
1674         (access_ref::get_ref): Same.
1675         (access_ref::size_remaining): Same.
1676         (access_ref::offset_in_range): Same.
1677         (access_ref::add_offset): Same.
1678         (access_ref::inform_access): Same.
1679         (ssa_name_limit_t::visit_phi): Same.
1680         (ssa_name_limit_t::leave_phi): Same.
1681         (ssa_name_limit_t::next): Same.
1682         (ssa_name_limit_t::next_phi): Same.
1683         (ssa_name_limit_t::~ssa_name_limit_t): Same.
1684         (pointer_query::pointer_query): Same.
1685         (pointer_query::get_ref): Same.
1686         (pointer_query::put_ref): Same.
1687         (pointer_query::flush_cache): Same.
1688         (warn_string_no_nul): Move to gimple-ssa-warn-access.cc.
1689         (check_nul_terminated_array): Same.
1690         (unterminated_array): Same.
1691         (maybe_warn_for_bound): Same.
1692         (check_read_access): Same.
1693         (warn_for_access): Same.
1694         (get_size_range): Same.
1695         (check_access): Same.
1696         (gimple_call_alloc_size): Move to tree.c.
1697         (gimple_parm_array_size): Move to pointer-query.cc.
1698         (get_offset_range): Same.
1699         (gimple_call_return_array): Same.
1700         (handle_min_max_size): Same.
1701         (handle_array_ref): Same.
1702         (handle_mem_ref): Same.
1703         (compute_objsize): Same.
1704         (gimple_call_alloc_p): Move to gimple-ssa-warn-access.cc.
1705         (call_dealloc_argno): Same.
1706         (fndecl_dealloc_argno): Same.
1707         (new_delete_mismatch_p): Same.
1708         (matching_alloc_calls_p): Same.
1709         (warn_dealloc_offset): Same.
1710         (maybe_emit_free_warning): Same.
1711         * builtins.h (check_nul_terminated_array): Move to
1712         gimple-ssa-warn-access.h.
1713         (check_nul_terminated_array): Same.
1714         (warn_string_no_nul): Same.
1715         (unterminated_array): Same.
1716         (class ssa_name_limit_t): Same.
1717         (class pointer_query): Same.
1718         (struct access_ref): Same.
1719         (class range_query): Same.
1720         (struct access_data): Same.
1721         (gimple_call_alloc_size): Same.
1722         (gimple_parm_array_size): Same.
1723         (compute_objsize): Same.
1724         (class access_data): Same.
1725         (maybe_emit_free_warning): Same.
1726         * calls.c (initialize_argument_information): Remove call to
1727         maybe_emit_free_warning.
1728         * gimple-array-bounds.cc: Include new header..
1729         * gimple-fold.c: Same.
1730         * gimple-ssa-sprintf.c: Same.
1731         * gimple-ssa-warn-restrict.c: Same.
1732         * passes.def: Add pass_warn_access.
1733         * tree-pass.h (make_pass_warn_access): Declare.
1734         * tree-ssa-strlen.c: Include new headers.
1735         * tree.c (fndecl_dealloc_argno): Move here from builtins.c.
1736         * tree.h (fndecl_dealloc_argno): Move here from attribs.h.
1737         * gimple-ssa-warn-access.cc: New file.
1738         * gimple-ssa-warn-access.h: New file.
1739         * pointer-query.cc: New file.
1740         * pointer-query.h: New file.
1741
1742 2021-07-28  Jakub Jelinek  <jakub@redhat.com>
1743
1744         PR middle-end/101624
1745         * ubsan.c (maybe_instrument_pointer_overflow,
1746         instrument_object_size): Only test DECL_REGISTER on VAR_DECLs,
1747         PARM_DECLs or RESULT_DECLs.
1748         * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise.
1749
1750 2021-07-28  Jakub Jelinek  <jakub@redhat.com>
1751
1752         PR middle-end/101642
1753         * match.pd (bswap16 (x) == bswap16 (y)): Cast both operands
1754         to type of bswap16 for comparison.
1755         (bswap16 (x) == cst): Cast bswap16 operand to type of cst.
1756
1757 2021-07-28  Richard Biener  <rguenther@suse.de>
1758
1759         PR tree-optimization/101615
1760         * tree-vect-slp.c (vect_optimize_slp): Materialize permutes
1761         at CTOR SLP graph entries.
1762
1763 2021-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1764
1765         * config/aarch64/aarch64.md (*extend<SHORT:mode><GPI:mode>2_aarch64):
1766         Add "r,w" alternative.
1767
1768 2021-07-28  H.J. Lu  <hjl.tools@gmail.com>
1769
1770         PR target/101456
1771         * config/i386/i386.c (ix86_avx_u128_mode_needed): Don't set
1772         AVX_U128_DIRTY when all bits are zero.
1773
1774 2021-07-28  Richard Biener  <rguenther@suse.de>
1775
1776         PR tree-optimization/101615
1777         * tree-vect-slp.c (vect_optimize_slp): Pre-existing vector
1778         external nodes cannot be permuted so make them perm_out 0.
1779
1780 2021-07-28  Andrew Stubbs  <ams@codesourcery.com>
1781
1782         PR target/100208
1783         * config.in: Regenerate.
1784         * config/gcn/gcn-hsa.h (A_FIJI): New define.
1785         (A_900): New define.
1786         (A_906): New define.
1787         (A_908): New define.
1788         (ASM_SPEC): Use A_FIJI, A_900, A_906 and A_908.
1789         * config/gcn/gcn.c (output_file_start): Adjust attributes according
1790         to the assembler capabilities.
1791         * config/gcn/mkoffload.c (main): Likewise.
1792         * configure: Regenerate.
1793         * configure.ac: Add tests for LLVM assembler attribute features.
1794
1795 2021-07-28  Andrew MacLeod  <amacleod@redhat.com>
1796
1797         * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Check for
1798         cond_false and cond_true on branches.
1799
1800 2021-07-28  Bin Cheng  <bin.cheng@linux.alibaba.com>
1801
1802         * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): use
1803         gcc_stablesort.
1804
1805 2021-07-28  Bin Cheng  <bin.cheng@linux.alibaba.com>
1806
1807         * alias.c (init_alias_analysis): Don't skip prologue/epilogue.
1808
1809 2021-07-28  Jakub Jelinek  <jakub@redhat.com>
1810
1811         PR target/101611
1812         * config/i386/sse.md (vashr<mode>3): Split into vashrv8di3 expander
1813         and vashrv4di3 expander, where the latter requires just TARGET_AVX2
1814         and has special !TARGET_AVX512VL expansion.
1815         (vashrv2di3<mask_name>): Rename to ...
1816         (vashrv2di3): ... this.  Change condition to TARGET_XOP || TARGET_AVX2
1817         and add special !TARGET_XOP && !TARGET_AVX512VL expansion.
1818
1819 2021-07-28  Martin Uecker  <muecker@gwdg.de>
1820
1821         * calls.c (maybe_warn_rdwr_sizes): Correct argument
1822         numbers in warning that were switched.
1823
1824 2021-07-28  Kewen Lin  <linkw@linux.ibm.com>
1825
1826         PR tree-optimization/101596
1827         * tree-vect-patterns.c (vect_recog_mulhs_pattern): Fix wrong check
1828         by using new_type's precision instead.
1829
1830 2021-07-28  liuhongt  <hongtao.liu@intel.com>
1831
1832         PR target/99881
1833         * config/i386/i386.h (processor_costs): Add new member
1834         integer_to_sse.
1835         * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost,
1836         i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost,
1837         geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost,
1838         bdver_cost, znver1_cost, znver2_cost, znver3_cost,
1839         btver1_cost, btver2_cost, btver3_cost, pentium4_cost,
1840         nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost,
1841         generic_cost, core_cost): Initialize integer_to_sse same value
1842         as sse_op.
1843         (skylake_cost): Initialize integer_to_sse twice as much as sse_op.
1844         * config/i386/i386.c (ix86_builtin_vectorization_cost):
1845         Use integer_to_sse instead of sse_op to calculate the cost of
1846         vec_construct.
1847
1848 2021-07-27  Bill Schmidt  <wschmidt@linux.ibm.com>
1849
1850         * config/rs6000/rs6000-gen-builtins.c (write_ovld_static_init): New
1851         function.
1852         (write_init_file): Call write_ovld_static_init.
1853
1854 2021-07-27  Bill Schmidt  <wschmidt@linux.ibm.com>
1855
1856         * config/rs6000/rs6000-gen-builtins.c (write_bif_static_init): New
1857         function.
1858         (write_init_file): Call write_bif_static_init.
1859
1860 2021-07-27  Bill Schmidt  <wschmidt@linux.ibm.com>
1861
1862         * config/rs6000/rs6000-gen-builtins.c (typemap): New struct.
1863         (TYPE_MAP_SIZE): New macro.
1864         (type_map): New initialized variable.
1865         (typemap_cmp): New function.
1866         (write_type_node): Likewise.
1867         (write_fntype_init): Implement.
1868
1869 2021-07-27  Martin Sebor  <msebor@redhat.com>
1870
1871         PR tree-optimization/101584
1872         * tree-ssa-uninit.c (builtin_call_nomodifying_p): New function.
1873         (check_defs): Call it.
1874
1875 2021-07-27  Aldy Hernandez  <aldyh@redhat.com>
1876
1877         * tree-ssa-dom.c (dom_jump_threader_simplifier):
1878         Put avail_exprs_stack in the class, instead of passing it to
1879         jump_threader_simplifier.
1880         (dom_jump_threader_simplifier::simplify): Add state argument.
1881         (dom_opt_dom_walker): Add state.
1882         (pass_dominator::execute): Pass state to threader.
1883         (dom_opt_dom_walker::before_dom_children): Use state.
1884         * tree-ssa-threadedge.c (jump_threader::jump_threader): Replace
1885         arguments by state.
1886         (jump_threader::record_temporary_equivalences_from_phis):
1887         Register equivalences through the state variable.
1888         (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
1889         Record ranges in a statement through the state variable.
1890         (jump_threader::simplify_control_stmt_condition): Pass state to
1891         simplify.
1892         (jump_threader::simplify_control_stmt_condition_1): Same.
1893         (jump_threader::thread_around_empty_blocks): Remove obsolete
1894         comment.
1895         (jump_threader::thread_through_normal_block): Record equivalences
1896         on edge through the state variable.
1897         (jump_threader::thread_across_edge): Abstract state pushing.
1898         (jt_state::jt_state): New.
1899         (jt_state::push): New.
1900         (jt_state::pop): New.
1901         (jt_state::register_equiv): New.
1902         (jt_state::record_ranges_from_stmt): New.
1903         (jt_state::register_equivs_on_edge): New.
1904         (jump_threader_simplifier::jump_threader_simplifier): Move from
1905         header.
1906         (jump_threader_simplifier::simplify): Add state argument.
1907         * tree-ssa-threadedge.h (class jt_state): New.
1908         (class jump_threader): Add state to constructor.
1909         (class jump_threader_simplifier): Add state to simplify.  Remove
1910         avail_exprs_stack from class.
1911         * tree-vrp.c (vrp_jump_threader_simplifier::simplify): Add state
1912         argument.
1913         (vrp_jump_threader::vrp_jump_threader): Add state.
1914         (vrp_jump_threader::~vrp_jump_threader): Cleanup state.
1915
1916 2021-07-27  Aldy Hernandez  <aldyh@redhat.com>
1917
1918         * Makefile.in (OBJS): Add gimple-range-path.o.
1919         * gimple-range-path.cc: New file.
1920         * gimple-range-path.h: New file.
1921
1922 2021-07-27  Jonathan Wright  <jonathan.wright@arm.com>
1923
1924         * config/aarch64/aarch64-simd.md: Push sign/zero-extension
1925         inside vec_duplicate for all patterns.
1926         * simplify-rtx.c (simplify_context::simplify_unary_operation_1):
1927         Push sign/zero-extension inside vec_duplicate.
1928
1929 2021-07-27  Richard Biener  <rguenther@suse.de>
1930
1931         PR tree-optimization/101573
1932         * tree-ssa-uninit.c (warn_uninit_phi_uses): New function
1933         looking at uninitialized PHI arg defs in some constrained cases.
1934         (warn_uninitialized_vars): Call it.
1935         (execute_early_warn_uninitialized): Calculate dominators.
1936
1937 2021-07-27  Richard Biener  <rguenther@suse.de>
1938
1939         PR tree-optimization/39821
1940         * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Use
1941         vector_stmt for widening arithmetic.
1942         (vectorizable_conversion): Adjust.
1943
1944 2021-07-27  Martin Jambor  <mjambor@suse.cz>
1945
1946         * cgraph.h (ipa_replace_map): New field force_load_ref.
1947         * ipa-prop.h (ipa_param_descriptor): Reduce precision of move_cost,
1948         aded new flag load_dereferenced, adjusted comments.
1949         (ipa_get_param_dereferenced): New function.
1950         (ipa_set_param_dereferenced): Likewise.
1951         * cgraphclones.c (cgraph_node::create_virtual_clone): Follow it.
1952         * ipa-cp.c: Include gimple.h.
1953         (ipcp_discover_new_direct_edges): Take into account dereferenced flag.
1954         (get_replacement_map): New parameter force_load_ref, set the
1955         appropriate flag in ipa_replace_map if set.
1956         (struct symbol_and_index_together): New type.
1957         (adjust_refs_in_act_callers): New function.
1958         (adjust_references_in_caller): Likewise.
1959         (create_specialized_node): When appropriate, call
1960         adjust_references_in_caller and force only load references.
1961         * ipa-prop.c (load_from_dereferenced_name): New function.
1962         (ipa_analyze_controlled_uses): Also detect loads from a
1963         dereference, harden testing of call statements.
1964         (ipa_write_node_info): Stream the dereferenced flag.
1965         (ipa_read_node_info): Likewise.
1966         (ipa_set_jf_constant): Also create refdesc when jump function
1967         references a variable.
1968         (cgraph_node_for_jfunc): Rename to symtab_node_for_jfunc, work
1969         also on references of variables and return a symtab_node.  Adjust
1970         all callers.
1971         (propagate_controlled_uses): Also remove references to VAR_DECLs.
1972
1973 2021-07-27  Jakub Jelinek  <jakub@redhat.com>
1974
1975         PR middle-end/101586
1976         * gimple-fold.c (clear_padding_type): Ignore FIELD_DECLs with byte
1977         positions above or equal to sz except for diagnostics of flexible
1978         array members.
1979
1980 2021-07-26  Andrew MacLeod  <amacleod@redhat.com>
1981
1982         PR tree-optimization/78888
1983         * gimple-range-fold.cc (get_letter_range): New.
1984         (fold_using_range::range_of_builtin_call): Call get_letter_range.
1985
1986 2021-07-26  Andrew MacLeod  <amacleod@redhat.com>
1987
1988         PR tree-optimization/78888
1989         * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Add cases
1990         for CFN_BUILT_IN_TOUPPER and CFN_BUILT_IN_TOLOWER.
1991
1992 2021-07-26  Roger Sayle  <roger@nextmovesoftware.com>
1993             Marc Glisse  <marc.glisse@inria.fr>
1994
1995         * match.pd (rotate): Simplify equality/inequality of rotations.
1996         (bswap): Simplify equality/inequality tests of byte swapping.
1997
1998 2021-07-26  Aldy Hernandez  <aldyh@redhat.com>
1999
2000         * range-op.cc (operator_bitwise_xor::op1_op2_relation_effect):
2001         New.
2002
2003 2021-07-26  Aldy Hernandez  <aldyh@redhat.com>
2004
2005         * range-op.cc (operator_lshift::fold_range): Pass rel to
2006         base class fold_range.
2007         (operator_rshift::fold_range): Same.
2008
2009 2021-07-26  Ashimida  <ashimida@linux.alibaba.com>
2010
2011         PR driver/101447
2012         * toplev.h (min_align_loops_log): Remove declaration.
2013         (min_align_jumps_log, min_align_labels_log): Likewise.
2014         (min_align_functions_log): Likewise.
2015
2016 2021-07-26  Aldy Hernandez  <aldyh@redhat.com>
2017
2018         * tree-vrp.c (vrp_simplify_cond_using_ranges): Rename vr_values
2019         with range_query.
2020         (execute_vrp): Abstract out simplification of conditionals...
2021         (simplify_casted_conds): ...here.
2022
2023 2021-07-26  Aldy Hernandez  <aldyh@redhat.com>
2024
2025         * gimple-array-bounds.cc (array_bounds_checker::get_value_range):
2026         Add gimple argument.
2027         (array_bounds_checker::check_array_ref): Same.
2028         (array_bounds_checker::check_addr_expr): Same.
2029         (array_bounds_checker::check_array_bounds): Pass statement to
2030         check_array_bounds and check_addr_expr.
2031         * gimple-array-bounds.h (check_array_bounds): Add gimple argument.
2032         (check_addr_expr): Same.
2033         (get_value_range): Same.
2034
2035 2021-07-26  Tamar Christina  <tamar.christina@arm.com>
2036
2037         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): Rename to..
2038         (sdot_prod, udot_prod): ... This.
2039         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): Merged
2040         into...
2041         (<sur>dot_prod<vsi2qi>): ... this.
2042         (aarch64_<sur>dot_lane<vsi2qi>, aarch64_<sur>dot_laneq<vsi2qi>):
2043         Change operands order.
2044         (<sur>sadv16qi): Use new operands order.
2045         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32,
2046         vdotq_s32): Use new RTL ordering.
2047
2048 2021-07-26  Tamar Christina  <tamar.christina@arm.com>
2049
2050         * config/aarch64/aarch64-builtins.c (TYPES_TERNOP_SUSS,
2051         aarch64_types_ternop_suss_qualifiers): New.
2052         * config/aarch64/aarch64-simd-builtins.def (usdot_prod): Use it.
2053         * config/aarch64/aarch64-simd.md (usdot_prod<vsi2qi>): Re-organize RTL.
2054         * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Use it.
2055
2056 2021-07-23  Jakub Jelinek  <jakub@redhat.com>
2057
2058         PR rtl-optimization/101562
2059         * expmed.c (store_integral_bit_field): Only use movstrict_optab
2060         if the operand isn't paradoxical.
2061
2062 2021-07-23  Aldy Hernandez  <aldyh@redhat.com>
2063
2064         * gimple-array-bounds.h (class array_bounds_checker): Change
2065         ranges type to range_query.
2066
2067 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
2068
2069         * config/aarch64/arm_neon.h (vst1_s64_x2): Use
2070         __builtin_memcpy instead of constructing
2071         __builtin_aarch64_simd_oi one vector at a time.
2072         (vst1_u64_x2): Likewise.
2073         (vst1_f64_x2): Likewise.
2074         (vst1_s8_x2): Likewise.
2075         (vst1_p8_x2): Likewise.
2076         (vst1_s16_x2): Likewise.
2077         (vst1_p16_x2): Likewise.
2078         (vst1_s32_x2): Likewise.
2079         (vst1_u8_x2): Likewise.
2080         (vst1_u16_x2): Likewise.
2081         (vst1_u32_x2): Likewise.
2082         (vst1_f16_x2): Likewise.
2083         (vst1_f32_x2): Likewise.
2084         (vst1_p64_x2): Likewise.
2085         (vst1q_s8_x2): Likewise.
2086         (vst1q_p8_x2): Likewise.
2087         (vst1q_s16_x2): Likewise.
2088         (vst1q_p16_x2): Likewise.
2089         (vst1q_s32_x2): Likewise.
2090         (vst1q_s64_x2): Likewise.
2091         (vst1q_u8_x2): Likewise.
2092         (vst1q_u16_x2): Likewise.
2093         (vst1q_u32_x2): Likewise.
2094         (vst1q_u64_x2): Likewise.
2095         (vst1q_f16_x2): Likewise.
2096         (vst1q_f32_x2): Likewise.
2097         (vst1q_f64_x2): Likewise.
2098         (vst1q_p64_x2): Likewise.
2099
2100 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
2101
2102         * config/aarch64/arm_neon.h (vst1_s64_x3): Use
2103         __builtin_memcpy instead of constructing
2104         __builtin_aarch64_simd_ci one vector at a time.
2105         (vst1_u64_x3): Likewise.
2106         (vst1_f64_x3): Likewise.
2107         (vst1_s8_x3): Likewise.
2108         (vst1_p8_x3): Likewise.
2109         (vst1_s16_x3): Likewise.
2110         (vst1_p16_x3): Likewise.
2111         (vst1_s32_x3): Likewise.
2112         (vst1_u8_x3): Likewise.
2113         (vst1_u16_x3): Likewise.
2114         (vst1_u32_x3): Likewise.
2115         (vst1_f16_x3): Likewise.
2116         (vst1_f32_x3): Likewise.
2117         (vst1_p64_x3): Likewise.
2118         (vst1q_s8_x3): Likewise.
2119         (vst1q_p8_x3): Likewise.
2120         (vst1q_s16_x3): Likewise.
2121         (vst1q_p16_x3): Likewise.
2122         (vst1q_s32_x3): Likewise.
2123         (vst1q_s64_x3): Likewise.
2124         (vst1q_u8_x3): Likewise.
2125         (vst1q_u16_x3): Likewise.
2126         (vst1q_u32_x3): Likewise.
2127         (vst1q_u64_x3): Likewise.
2128         (vst1q_f16_x3): Likewise.
2129         (vst1q_f32_x3): Likewise.
2130         (vst1q_f64_x3): Likewise.
2131         (vst1q_p64_x3): Likewise.
2132
2133 2021-07-23  H.J. Lu  <hjl.tools@gmail.com>
2134
2135         PR target/101504
2136         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): Don't return
2137         hard register when LRA is in progress.
2138
2139 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
2140
2141         * config/aarch64/arm_neon.h (vst1_s8_x4): Use
2142         __builtin_memcpy instead of using a union.
2143         (vst1q_s8_x4): Likewise.
2144         (vst1_s16_x4): Likewise.
2145         (vst1q_s16_x4): Likewise.
2146         (vst1_s32_x4): Likewise.
2147         (vst1q_s32_x4): Likewise.
2148         (vst1_u8_x4): Likewise.
2149         (vst1q_u8_x4): Likewise.
2150         (vst1_u16_x4): Likewise.
2151         (vst1q_u16_x4): Likewise.
2152         (vst1_u32_x4): Likewise.
2153         (vst1q_u32_x4): Likewise.
2154         (vst1_f16_x4): Likewise.
2155         (vst1q_f16_x4): Likewise.
2156         (vst1_f32_x4): Likewise.
2157         (vst1q_f32_x4): Likewise.
2158         (vst1_p8_x4): Likewise.
2159         (vst1q_p8_x4): Likewise.
2160         (vst1_p16_x4): Likewise.
2161         (vst1q_p16_x4): Likewise.
2162         (vst1_s64_x4): Likewise.
2163         (vst1_u64_x4): Likewise.
2164         (vst1_p64_x4): Likewise.
2165         (vst1q_s64_x4): Likewise.
2166         (vst1q_u64_x4): Likewise.
2167         (vst1q_p64_x4): Likewise.
2168         (vst1_f64_x4): Likewise.
2169         (vst1q_f64_x4): Likewise.
2170
2171 2021-07-23  Jonathan Wrightt  <jonathan.wright@arm.com>
2172
2173         * config/aarch64/arm_neon.h (vst2_s64): Use __builtin_memcpy
2174         instead of constructing __builtin_aarch64_simd_oi one vector
2175         at a time.
2176         (vst2_u64): Likewise.
2177         (vst2_f64): Likewise.
2178         (vst2_s8): Likewise.
2179         (vst2_p8): Likewise.
2180         (vst2_s16): Likewise.
2181         (vst2_p16): Likewise.
2182         (vst2_s32): Likewise.
2183         (vst2_u8): Likewise.
2184         (vst2_u16): Likewise.
2185         (vst2_u32): Likewise.
2186         (vst2_f16): Likewise.
2187         (vst2_f32): Likewise.
2188         (vst2_p64): Likewise.
2189         (vst2q_s8): Likewise.
2190         (vst2q_p8): Likewise.
2191         (vst2q_s16): Likewise.
2192         (vst2q_p16): Likewise.
2193         (vst2q_s32): Likewise.
2194         (vst2q_s64): Likewise.
2195         (vst2q_u8): Likewise.
2196         (vst2q_u16): Likewise.
2197         (vst2q_u32): Likewise.
2198         (vst2q_u64): Likewise.
2199         (vst2q_f16): Likewise.
2200         (vst2q_f32): Likewise.
2201         (vst2q_f64): Likewise.
2202         (vst2q_p64): Likewise.
2203
2204 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
2205
2206         * config/aarch64/arm_neon.h (vst3_s64): Use __builtin_memcpy
2207         instead of constructing __builtin_aarch64_simd_ci one vector
2208         at a time.
2209         (vst3_u64): Likewise.
2210         (vst3_f64): Likewise.
2211         (vst3_s8): Likewise.
2212         (vst3_p8): Likewise.
2213         (vst3_s16): Likewise.
2214         (vst3_p16): Likewise.
2215         (vst3_s32): Likewise.
2216         (vst3_u8): Likewise.
2217         (vst3_u16): Likewise.
2218         (vst3_u32): Likewise.
2219         (vst3_f16): Likewise.
2220         (vst3_f32): Likewise.
2221         (vst3_p64): Likewise.
2222         (vst3q_s8): Likewise.
2223         (vst3q_p8): Likewise.
2224         (vst3q_s16): Likewise.
2225         (vst3q_p16): Likewise.
2226         (vst3q_s32): Likewise.
2227         (vst3q_s64): Likewise.
2228         (vst3q_u8): Likewise.
2229         (vst3q_u16): Likewise.
2230         (vst3q_u32): Likewise.
2231         (vst3q_u64): Likewise.
2232         (vst3q_f16): Likewise.
2233         (vst3q_f32): Likewise.
2234         (vst3q_f64): Likewise.
2235         (vst3q_p64): Likewise.
2236
2237 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
2238
2239         * config/aarch64/arm_neon.h (vst4_s64): Use __builtin_memcpy
2240         instead of constructing __builtin_aarch64_simd_xi one vector
2241         at a time.
2242         (vst4_u64): Likewise.
2243         (vst4_f64): Likewise.
2244         (vst4_s8): Likewise.
2245         (vst4_p8): Likewise.
2246         (vst4_s16): Likewise.
2247         (vst4_p16): Likewise.
2248         (vst4_s32): Likewise.
2249         (vst4_u8): Likewise.
2250         (vst4_u16): Likewise.
2251         (vst4_u32): Likewise.
2252         (vst4_f16): Likewise.
2253         (vst4_f32): Likewise.
2254         (vst4_p64): Likewise.
2255         (vst4q_s8): Likewise.
2256         (vst4q_p8): Likewise.
2257         (vst4q_s16): Likewise.
2258         (vst4q_p16): Likewise.
2259         (vst4q_s32): Likewise.
2260         (vst4q_s64): Likewise.
2261         (vst4q_u8): Likewise.
2262         (vst4q_u16): Likewise.
2263         (vst4q_u32): Likewise.
2264         (vst4q_u64): Likewise.
2265         (vst4q_f16): Likewise.
2266         (vst4q_f32): Likewise.
2267         (vst4q_f64): Likewise.
2268         (vst4q_p64): Likewise.
2269
2270 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
2271
2272         * config/aarch64/arm_neon.h (vtbx4_s8): Use __builtin_memcpy
2273         instead of constructing __builtin_aarch64_simd_oi one vector
2274         at a time.
2275         (vtbx4_u8): Likewise.
2276         (vtbx4_p8): Likewise.
2277
2278 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
2279
2280         * config/aarch64/arm_neon.h (vtbl3_s8): Use __builtin_memcpy
2281         instead of constructing __builtin_aarch64_simd_oi one vector
2282         at a time.
2283         (vtbl3_u8): Likewise.
2284         (vtbl3_p8): Likewise.
2285         (vtbl4_s8): Likewise.
2286         (vtbl4_u8): Likewise.
2287         (vtbl4_p8): Likewise.
2288
2289 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
2290
2291         * config/aarch64/arm_neon.h (vqtbx2_s8): Use __builtin_memcpy
2292         instead of constructing __builtin_aarch64_simd_oi one vector
2293         at a time.
2294         (vqtbx2_u8): Likewise.
2295         (vqtbx2_p8): Likewise.
2296         (vqtbx2q_s8): Likewise.
2297         (vqtbx2q_u8): Likewise.
2298         (vqtbx2q_p8): Likewise.
2299         (vqtbx3_s8): Use __builtin_memcpy instead of constructing
2300         __builtin_aarch64_simd_ci one vector at a time.
2301         (vqtbx3_u8): Likewise.
2302         (vqtbx3_p8): Likewise.
2303         (vqtbx3q_s8): Likewise.
2304         (vqtbx3q_u8): Likewise.
2305         (vqtbx3q_p8): Likewise.
2306         (vqtbx4_s8): Use __builtin_memcpy instead of constructing
2307         __builtin_aarch64_simd_xi one vector at a time.
2308         (vqtbx4_u8): Likewise.
2309         (vqtbx4_p8): Likewise.
2310         (vqtbx4q_s8): Likewise.
2311         (vqtbx4q_u8): Likewise.
2312         (vqtbx4q_p8): Likewise.
2313
2314 2021-07-23  Jonathan Wright  <jonathan.wright@arm.com>
2315
2316         * config/aarch64/arm_neon.h (vqtbl2_s8): Use __builtin_memcpy
2317         instead of constructing __builtin_aarch64_simd_oi one vector
2318         at a time.
2319         (vqtbl2_u8): Likewise.
2320         (vqtbl2_p8): Likewise.
2321         (vqtbl2q_s8): Likewise.
2322         (vqtbl2q_u8): Likewise.
2323         (vqtbl2q_p8): Likewise.
2324         (vqtbl3_s8): Use __builtin_memcpy instead of constructing
2325         __builtin_aarch64_simd_ci one vector at a time.
2326         (vqtbl3_u8): Likewise.
2327         (vqtbl3_p8): Likewise.
2328         (vqtbl3q_s8): Likewise.
2329         (vqtbl3q_u8): Likewise.
2330         (vqtbl3q_p8): Likewise.
2331         (vqtbl4_s8): Use __builtin_memcpy instead of constructing
2332         __builtin_aarch64_simd_xi one vector at a time.
2333         (vqtbl4_u8): Likewise.
2334         (vqtbl4_p8): Likewise.
2335         (vqtbl4q_s8): Likewise.
2336         (vqtbl4q_u8): Likewise.
2337         (vqtbl4q_p8): Likewise.
2338
2339 2021-07-23  Haochen Gui  <guihaoc@gcc.gnu.org>
2340
2341         PR target/100952
2342         * config/rs6000/rs6000.md (cstore<mode>4): Fix wrong fall through.
2343
2344 2021-07-22  Andrew Pinski  <apinski@marvell.com>
2345
2346         PR tree-optimization/10153
2347         * tree-tailcall.c (create_tailcall_accumulator):
2348         Don't call fold_convert as the type should be correct already.
2349         (tree_optimize_tail_calls_1): Use build_{one,zero}_cst instead
2350         of integer_{one,zero}_node for the call of create_tailcall_accumulator.
2351
2352 2021-07-22  Aldy Hernandez  <aldyh@redhat.com>
2353
2354         * gimple-range-cache.cc (non_null_ref::adjust_range): Replace
2355         varying_p check for null/non-null check.
2356
2357 2021-07-22  Andrew MacLeod  <amacleod@redhat.com>
2358
2359         PR tree-optimization/101511
2360         * value-relation.cc (relation_oracle::query_relation): Check if ssa1
2361         is in ssa2's equiv set, and don't trap if so.
2362
2363 2021-07-22  Andrew MacLeod  <amacleod@redhat.com>
2364
2365         PR tree-optimization/101497
2366         * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Check
2367         for undefined.
2368
2369 2021-07-22  Andrew MacLeod  <amacleod@redhat.com>
2370
2371         PR tree-optimization/101496
2372         * vr-values.c (simplify_using_ranges::fold_cond): Call range_of_stmt
2373         first, then vrp_visit_cond_Stmt.
2374
2375 2021-07-22  liuhongt  <hongtao.liu@intel.com>
2376
2377         * config/i386/i386-expand.c
2378         (ix86_broadcast_from_integer_constant): Rename to ..
2379         (ix86_broadcast_from_constant): .. this, and extend it to
2380         handle float mode.
2381         (ix86_expand_vector_move): Extend to float mode.
2382         * config/i386/i386-features.c
2383         (replace_constant_pool_with_broadcast): Remove.
2384         (remove_partial_avx_dependency_gate): Ditto.
2385         (constant_pool_broadcast): Ditto.
2386         (class pass_constant_pool_broadcast): Ditto.
2387         (make_pass_constant_pool_broadcast): Ditto.
2388         (remove_partial_avx_dependency): Adjust gate.
2389         * config/i386/i386-passes.def: Remove pass_constant_pool_broadcast.
2390         * config/i386/i386-protos.h
2391         (make_pass_constant_pool_broadcast): Remove.
2392
2393 2021-07-22  liuhongt  <hongtao.liu@intel.com>
2394
2395         * config/i386/constraints.md (Wb): New constraint.
2396         (Ww): Ditto.
2397         * config/i386/i386.md (*ashlhi3_1): Extend to avx512 mask
2398         shift.
2399         (*ashlqi3_1): Ditto.
2400         (*<insn><mode>3_1): Split to ..
2401         (*ashr<mode>3_1): this, ...
2402         (*lshr<mode>3_1): and this, also extend this pattern to avx512
2403         mask registers.
2404         (*<insn><mode>3_1): Split to ..
2405         (*ashr<mode>3_1): this, ...
2406         (*lshrqi3_1): and this, also extend this pattern to avx512
2407         mask registers.
2408         (*lshrhi3_1): And this, also extend this pattern to avx512
2409         mask registers.
2410         * config/i386/sse.md (k<code><mode>): New define_split after
2411         it to convert generic shift pattern to mask shift ones.
2412
2413 2021-07-21  Thomas Schwinge  <thomas@codesourcery.com>
2414             Joseph Myers  <joseph@codesourcery.com>
2415             Cesar Philippidis  <cesar@codesourcery.com>
2416
2417         * tree-core.h (omp_clause_code): Add 'OMP_CLAUSE_NOHOST'.
2418         * tree.c (omp_clause_num_ops, omp_clause_code_name, walk_tree_1):
2419         Handle it.
2420         * tree-pretty-print.c (dump_omp_clause): Likewise.
2421         * omp-general.c (oacc_verify_routine_clauses): Likewise.
2422         * gimplify.c (gimplify_scan_omp_clauses)
2423         (gimplify_adjust_omp_clauses): Likewise.
2424         * tree-nested.c (convert_nonlocal_omp_clauses)
2425         (convert_local_omp_clauses): Likewise.
2426         * omp-low.c (scan_sharing_clauses): Likewise.
2427         * omp-offload.c (execute_oacc_device_lower): Update.
2428
2429 2021-07-21  Martin Sebor  <msebor@redhat.com>
2430
2431         * tree-ssa-alias.c (walk_aliased_vdefs_1): Fix typos in a comment.
2432
2433 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
2434
2435         * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table):
2436         Implement.
2437
2438 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
2439
2440         * config/rs6000/rs6000-gen-builtins.c (write_fntype): New
2441         callback function.
2442         (write_fntype_init): New stub function.
2443         (write_init_bif_table): Likewise.
2444         (write_init_ovld_table): New function.
2445         (write_init_file): Implement.
2446
2447 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
2448
2449         * config/rs6000/rs6000-gen-builtins.c
2450         (write_autogenerated_header): New function.
2451         (write_decls): Likewise.
2452         (write_extern_fntype): New callback function.
2453         (write_header_file): Implement.
2454
2455 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
2456
2457         * config/rs6000/rs6000-gen-builtins.c (write_defines_file):
2458         Implement.
2459
2460 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
2461
2462         * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New
2463         function.
2464         (complete_base_type): Likewise.
2465         (construct_fntype_id): Likewise.
2466         (parse_bif_entry): Call contruct_fntype_id.
2467         (parse_ovld_entry): Likewise.
2468
2469 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
2470
2471         * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct.
2472         (MAXOVLDSTANZAS): New macro.
2473         (ovld_stanzas): New variable.
2474         (curr_ovld_stanza): Likewise.
2475         (MAXOVLDS): New macro.
2476         (ovlddata): New struct.
2477         (ovlds): New variable.
2478         (curr_ovld): Likewise.
2479         (max_ovld_args): Likewise.
2480         (parse_ovld_entry): New function.
2481         (parse_ovld_stanza): Likewise.
2482         (parse_ovld): Implement.
2483
2484 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
2485
2486         * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs):
2487         Implement.
2488
2489 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
2490
2491         * config/rs6000/rs6000-gen-builtins.c (parse_args): New function.
2492         (parse_prototype): Implement.
2493
2494 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
2495
2496         * config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum.
2497         (curr_bif_stanza): New variable.
2498         (stanza_entry): New struct.
2499         (stanza_map): New initialized variable.
2500         (enable_string): Likewise.
2501         (fnkinds): New enum.
2502         (typelist): New struct.
2503         (attrinfo): Likewise.
2504         (MAXRESTROPNDS): New macro.
2505         (prototype): New struct.
2506         (MAXBIFS): New macro.
2507         (bifdata): New struct.
2508         (bifs): New variable.
2509         (curr_bif): Likewise.
2510         (bif_order): Likewise.
2511         (bif_index): Likewise.
2512         (fatal): New function.
2513         (stanza_name_to_stanza): Likewise.
2514         (parse_bif_attrs): New stub function.
2515         (parse_prototype): Likewise.
2516         (parse_bif_entry): New function.
2517         (parse_bif_stanza): Likewise.
2518         (parse_bif): Implement.
2519         (set_bif_order): New function.
2520         (create_bif_order): Implement.
2521
2522 2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>
2523
2524         * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include.
2525         (num_bifs): New variable.
2526         (num_ovld_stanzas): Likewise.
2527         (num_ovlds): Likewise.
2528         (parse_codes): New enum.
2529         (bif_rbt): New variable.
2530         (ovld_rbt): Likewise.
2531         (fntype_rbt): Likewise.
2532         (bifo_rbt): Likewise.
2533         (parse_bif): New stub function.
2534         (create_bif_order): Likewise.
2535         (parse_ovld): Likewise.
2536         (write_header_file): Likewise.
2537         (write_init_file): Likewise.
2538         (write_defines_file): Likewise.
2539         (delete_output_files): New function.
2540         (main): Likewise.
2541
2542 2021-07-21  H.J. Lu  <hjl.tools@gmail.com>
2543
2544         PR target/101549
2545         * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2
2546         from CRC32 _builtin functions.
2547
2548 2021-07-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2549
2550         * coverage.c (build_gcov_info_var_registration): Mark the object placed
2551         in the linker set as referenced so that it does not get optimized away.
2552
2553 2021-07-21  Kito Cheng  <kito.cheng@sifive.com>
2554
2555         Revert:
2556         2021-07-20  Kito Cheng  <kito.cheng@sifive.com>
2557
2558         * config.gcc (riscv*-*-*): Detect which python is available.
2559
2560 2021-07-21  Jakub Jelinek  <jakub@redhat.com>
2561
2562         PR middle-end/101535
2563         * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA
2564         contexts in which decl isn't privatized and for ORT_TARGET return
2565         false if decl is mapped.
2566
2567 2021-07-21  Richard Sandiford  <richard.sandiford@arm.com>
2568
2569         * gimple-loop-jam.c: Include tree-ssa-sccvn.h.
2570         (tree_loop_unroll_and_jam): Run value-numbering on a loop that
2571         has been successfully unrolled.
2572
2573 2021-07-21  Richard Sandiford  <richard.sandiford@arm.com>
2574
2575         * tree-ssa-loop-manip.c (determine_exit_conditions): Return a null
2576         exit condition if no tail loop is needed, and if the original exit
2577         condition should therefore be kept as-is.
2578         (tree_transform_and_unroll_loop): Handle that case here too.
2579
2580 2021-07-21  Kewen Lin  <linkw@linux.ibm.com>
2581
2582         * tree-data-ref.c (free_dependence_relations): Adjust to pass vec
2583         by reference.
2584         (free_data_refs): Likewise.
2585         * tree-data-ref.h (free_dependence_relations): Likewise.
2586         (free_data_refs): Likewise.
2587         * tree-predcom.c (struct chain): Use auto_vec instead of vec for
2588         members.
2589         (struct component): Likewise.
2590         (pcom_worker::pcom_worker): Adjust for auto_vec and renaming changes.
2591         (pcom_worker::~pcom_worker): Likewise.
2592         (pcom_worker::release_chain): Adjust as auto_vec changes.
2593         (pcom_worker::loop): Rename to ...
2594         (pcom_worker::m_loop): ... this.
2595         (pcom_worker::datarefs): Rename to ...
2596         (pcom_worker::m_datarefs): ... this.  Use auto_vec instead of vec.
2597         (pcom_worker::dependences): Rename to ...
2598         (pcom_worker::m_dependences): ... this.  Use auto_vec instead of vec.
2599         (pcom_worker::chains): Rename to ...
2600         (pcom_worker::m_chains): ... this.  Use auto_vec instead of vec.
2601         (pcom_worker::looparound_phis): Rename to ...
2602         (pcom_worker::m_looparound_phis): ... this.  Use auto_vec instead of
2603         vec.
2604         (pcom_worker::cache): Rename to ...
2605         (pcom_worker::m_cache): ... this.  Use auto_vec instead of vec.
2606         (pcom_worker::release_chain): Adjust for auto_vec changes.
2607         (pcom_worker::release_chains): Adjust for auto_vec and renaming
2608         changes.
2609         (release_component): Remove.
2610         (release_components): Adjust for release_component removal.
2611         (component_of): Adjust to use vec.
2612         (merge_comps): Likewise.
2613         (pcom_worker::aff_combination_dr_offset): Adjust for renaming changes.
2614         (pcom_worker::determine_offset): Likewise.
2615         (class comp_ptrs): Remove.
2616         (pcom_worker::split_data_refs_to_components): Adjust for renaming
2617         changes, for comp_ptrs removal with auto_vec.
2618         (pcom_worker::suitable_component_p): Adjust for renaming changes.
2619         (pcom_worker::filter_suitable_components): Adjust for release_component
2620         removal.
2621         (pcom_worker::valid_initializer_p): Adjust for renaming changes.
2622         (pcom_worker::find_looparound_phi): Likewise.
2623         (pcom_worker::add_looparound_copies): Likewise.
2624         (pcom_worker::determine_roots_comp): Likewise.
2625         (pcom_worker::single_nonlooparound_use): Likewise.
2626         (pcom_worker::execute_pred_commoning_chain): Likewise.
2627         (pcom_worker::execute_pred_commoning): Likewise.
2628         (pcom_worker::try_combine_chains): Likewise.
2629         (pcom_worker::prepare_initializers_chain): Likewise.
2630         (pcom_worker::prepare_initializers): Likewise.
2631         (pcom_worker::prepare_finalizers_chain): Likewise.
2632         (pcom_worker::prepare_finalizers): Likewise.
2633         (pcom_worker::tree_predictive_commoning_loop): Likewise.
2634
2635 2021-07-20  Martin Sebor  <msebor@redhat.com>
2636
2637         PR middle-end/101397
2638         * builtins.c (gimple_call_return_array): Add argument.  Correct
2639         offsets for memchr, mempcpy, stpcpy, and stpncpy.
2640         (compute_objsize_r): Adjust offset computation for argument returning
2641         built-ins.
2642
2643 2021-07-20  Martin Sebor  <msebor@redhat.com>
2644
2645         PR middle-end/101300
2646         * tree-ssa-uninit.c (check_defs): Handle UBSAN built-ins.
2647
2648 2021-07-20  Jeff Law  <jlaw@localhost.localdomain>
2649
2650         * function.c (assign_parm_setup_block): Use adjust_address instead
2651         of change_address to preserve MEM_EXPR and friends.
2652
2653 2021-07-20  Martin Sebor  <msebor@redhat.com>
2654
2655         * cfgloop.h (single_likely_exit): Adjust by-value argument to
2656         by-const-reference.
2657         * cfgloopanal.c (single_likely_exit): Same.
2658         * cgraph.h (struct cgraph_node): Same.
2659         * cgraphclones.c (cgraph_node::create_virtual_clone): Same.
2660         * genautomata.c (merge_states): Same.
2661         * genextract.c (VEC_char_to_string): Same.
2662         * genmatch.c (dt_node::gen_kids_1): Same.
2663         (walk_captures): Adjust by-value argument to by-reference.
2664         * gimple-ssa-store-merging.c (check_no_overlap): Adjust by-value argument
2665         to by-const-reference.
2666         * gimple.c (gimple_build_call_vec): Same.
2667         (gimple_build_call_internal_vec): Same.
2668         (gimple_build_switch): Same.
2669         (sort_case_labels): Same.
2670         (preprocess_case_label_vec_for_gimple): Adjust by-value argument to
2671         by-reference.
2672         * gimple.h (gimple_build_call_vec): Adjust by-value argument to
2673         by-const-reference.
2674         (gimple_build_call_internal_vec): Same.
2675         (gimple_build_switch): Same.
2676         (sort_case_labels): Same.
2677         (preprocess_case_label_vec_for_gimple): Adjust by-value argument to
2678         by-reference.
2679         * haifa-sched.c (calc_priorities): Adjust by-value argument to
2680         by-const-reference.
2681         (sched_init_luids): Same.
2682         (haifa_init_h_i_d): Same.
2683         * ipa-cp.c (ipa_get_indirect_edge_target_1): Same.
2684         (adjust_callers_for_value_intersection): Adjust by-value argument to
2685         by-reference.
2686         (find_more_scalar_values_for_callers_subset): Adjust by-value argument to
2687         by-const-reference.
2688         (find_more_contexts_for_caller_subset): Same.
2689         (find_aggregate_values_for_callers_subset): Same.
2690         (copy_useful_known_contexts): Same.
2691         * ipa-fnsummary.c (remap_edge_summaries): Same.
2692         (remap_freqcounting_predicate): Same.
2693         * ipa-inline.c (add_new_edges_to_heap): Adjust by-value argument to
2694         by-reference.
2695         * ipa-predicate.c (predicate::remap_after_inlining): Adjust by-value argument
2696         to by-const-reference.
2697         * ipa-predicate.h (predicate::remap_after_inlining): Same.
2698         * ipa-prop.c (ipa_find_agg_cst_for_param): Same.
2699         * ipa-prop.h (ipa_find_agg_cst_for_param): Same.
2700         * ira-build.c (ira_loop_tree_body_rev_postorder): Same.
2701         * read-rtl.c (add_overload_instance): Same.
2702         * rtl.h (native_decode_rtx): Same.
2703         (native_decode_vector_rtx): Same.
2704         * sched-int.h (sched_init_luids): Same.
2705         (haifa_init_h_i_d): Same.
2706         * simplify-rtx.c (native_decode_vector_rtx): Same.
2707         (native_decode_rtx): Same.
2708         * tree-call-cdce.c (gen_shrink_wrap_conditions): Same.
2709         (shrink_wrap_one_built_in_call_with_conds): Same.
2710         (shrink_wrap_conditional_dead_built_in_calls): Same.
2711         * tree-data-ref.c (create_runtime_alias_checks): Same.
2712         (compute_all_dependences): Same.
2713         * tree-data-ref.h (compute_all_dependences): Same.
2714         (create_runtime_alias_checks): Same.
2715         (index_in_loop_nest): Same.
2716         * tree-if-conv.c (mask_exists): Same.
2717         * tree-loop-distribution.c (class loop_distribution): Same.
2718         (loop_distribution::create_rdg_vertices): Same.
2719         (dump_rdg_partitions): Same.
2720         (debug_rdg_partitions): Same.
2721         (partition_contains_all_rw): Same.
2722         (loop_distribution::distribute_loop): Same.
2723         * tree-parloops.c (oacc_entry_exit_ok_1): Same.
2724         (oacc_entry_exit_single_gang): Same.
2725         * tree-ssa-loop-im.c (hoist_memory_references): Same.
2726         (loop_suitable_for_sm): Same.
2727         * tree-ssa-loop-niter.c (bound_index): Same.
2728         * tree-ssa-reassoc.c (update_ops): Same.
2729         (swap_ops_for_binary_stmt): Same.
2730         (rewrite_expr_tree): Same.
2731         (rewrite_expr_tree_parallel): Same.
2732         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Same.
2733         * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Same.
2734         * tree-ssa-structalias.c (process_all_all_constraints): Same.
2735         (make_constraints_to): Same.
2736         (handle_lhs_call): Same.
2737         (find_func_aliases_for_builtin_call): Same.
2738         (sort_fieldstack): Same.
2739         (check_for_overlaps): Same.
2740         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Same.
2741         (vect_create_cond_for_unequal_addrs): Same.
2742         (vect_create_cond_for_lower_bounds): Same.
2743         (vect_create_cond_for_alias_checks): Same.
2744         * tree-vect-slp-patterns.c (vect_validate_multiplication): Same.
2745         * tree-vect-slp.c (vect_analyze_slp_instance): Same.
2746         (vect_make_slp_decision): Same.
2747         (vect_slp_bbs): Same.
2748         (duplicate_and_interleave): Same.
2749         (vect_transform_slp_perm_load): Same.
2750         (vect_schedule_slp): Same.
2751         * tree-vectorizer.h (vect_transform_slp_perm_load): Same.
2752         (vect_schedule_slp): Same.
2753         (duplicate_and_interleave): Same.
2754         * tree.c (build_vector_from_ctor): Same.
2755         (build_vector): Same.
2756         (check_vector_cst): Same.
2757         (check_vector_cst_duplicate): Same.
2758         (check_vector_cst_fill): Same.
2759         (check_vector_cst_stepped): Same.
2760         * tree.h (build_vector_from_ctor): Same.
2761
2762 2021-07-20  Jakub Jelinek  <jakub@redhat.com>
2763
2764         PR target/101384
2765         * config/rs6000/rs6000-protos.h (easy_altivec_constant): Change return
2766         type from bool to int.
2767         * config/rs6000/rs6000.c (vspltis_constant): Fix up handling the
2768         EASY_VECTOR_MSB case if either step or copies is not 1.
2769         (vspltis_shifted): Fix comment typo.
2770         (easy_altivec_constant): Change return type from bool to int, instead
2771         of returning true return byte size of the element mode that should be
2772         used to synthetize the constant.
2773         * config/rs6000/predicates.md (easy_vector_constant_msb): Require
2774         that vspltis_shifted is 0, handle the case where easy_altivec_constant
2775         assumes using different vector mode from CONST_VECTOR's mode.
2776         * config/rs6000/altivec.md (easy_vector_constant_msb splitter): Use
2777         easy_altivec_constant to determine mode in which -1 >> -1 should be
2778         performed, use rs6000_expand_vector_init instead of gen_vec_initv4sisi.
2779
2780 2021-07-20  Richard Biener  <rguenther@suse.de>
2781
2782         PR debug/101473
2783         * dwarf2out.h (dwarf_file_data): Add key member.
2784         * dwarf2out.c (dwarf_file_hasher::equal): Compare key.
2785         (dwarf_file_hasher::hash): Hash key.
2786         (lookup_filename): Remap the filename and store it in the
2787         filename member of dwarf_file_data when creating a new
2788         dwarf_file_data.
2789         (file_name_acquire): Do not remap the filename again.
2790         (maybe_emit_file): Likewise.
2791
2792 2021-07-20  Jonathan Wright  <jonathan.wright@arm.com>
2793
2794         * config/aarch64/aarch64-simd-builtins.def: Use two variant
2795         generators for all TBL/TBX intrinsics and rename to
2796         consistent forms: qtbl[1234] or qtbx[1234].
2797         * config/aarch64/aarch64-simd.md (aarch64_tbl1<mode>):
2798         Rename to...
2799         (aarch64_qtbl1<mode>): This.
2800         (aarch64_tbx1<mode>): Rename to...
2801         (aarch64_qtbx1<mode>): This.
2802         (aarch64_tbl2v16qi): Delete.
2803         (aarch64_tbl3<mode>): Rename to...
2804         (aarch64_qtbl2<mode>): This.
2805         (aarch64_tbx4<mode>): Rename to...
2806         (aarch64_qtbx2<mode>): This.
2807         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Use
2808         renamed qtbl1 and qtbl2 RTL patterns.
2809         * config/aarch64/arm_neon.h (vqtbl1_p8): Use renamed qtbl1
2810         RTL pattern.
2811         (vqtbl1_s8): Likewise.
2812         (vqtbl1_u8): Likewise.
2813         (vqtbl1q_p8): Likewise.
2814         (vqtbl1q_s8): Likewise.
2815         (vqtbl1q_u8): Likewise.
2816         (vqtbx1_s8): Use renamed qtbx1 RTL pattern.
2817         (vqtbx1_u8): Likewise.
2818         (vqtbx1_p8): Likewise.
2819         (vqtbx1q_s8): Likewise.
2820         (vqtbx1q_u8): Likewise.
2821         (vqtbx1q_p8): Likewise.
2822         (vtbl1_s8): Use renamed qtbl1 RTL pattern.
2823         (vtbl1_u8): Likewise.
2824         (vtbl1_p8): Likewise.
2825         (vtbl2_s8): Likewise
2826         (vtbl2_u8): Likewise.
2827         (vtbl2_p8): Likewise.
2828         (vtbl3_s8): Use renamed qtbl2 RTL pattern.
2829         (vtbl3_u8): Likewise.
2830         (vtbl3_p8): Likewise.
2831         (vtbl4_s8): Likewise.
2832         (vtbl4_u8): Likewise.
2833         (vtbl4_p8): Likewise.
2834         (vtbx2_s8): Use renamed qtbx2 RTL pattern.
2835         (vtbx2_u8): Likewise.
2836         (vtbx2_p8): Likewise.
2837         (vqtbl2_s8): Use renamed qtbl2 RTL pattern.
2838         (vqtbl2_u8): Likewise.
2839         (vqtbl2_p8): Likewise.
2840         (vqtbl2q_s8): Likewise.
2841         (vqtbl2q_u8): Likewise.
2842         (vqtbl2q_p8): Likewise.
2843         (vqtbx2_s8): Use renamed qtbx2 RTL pattern.
2844         (vqtbx2_u8): Likewise.
2845         (vqtbx2_p8): Likewise.
2846         (vqtbx2q_s8): Likewise.
2847         (vqtbx2q_u8): Likewise.
2848         (vqtbx2q_p8): Likewise.
2849         (vtbx4_s8): Likewise.
2850         (vtbx4_u8): Likewise.
2851         (vtbx4_p8): Likewise.
2852
2853 2021-07-20  Uroš Bizjak  <ubizjak@gmail.com>
2854
2855         PR target/100182
2856         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
2857         Remove.
2858         (define_peephole2 atomic_loaddi_fpu): Ditto.
2859
2860 2021-07-20  Kito Cheng  <kito.cheng@sifive.com>
2861
2862         * config.gcc (riscv*-*-*): Detect which python is available.
2863
2864 2021-07-20  Kewen Lin  <linkw@linux.ibm.com>
2865
2866         * config/rs6000/vsx.md (mulhs_<mode>): Rename to...
2867         (smul<mode>3_highpart): ... this.
2868         (mulhu_<mode>): Rename to...
2869         (umul<mode>3_highpart): ... this.
2870         * config/rs6000/rs6000-builtin.def (MULHS_V2DI, MULHS_V4SI,
2871         MULHU_V2DI, MULHU_V4SI): Adjust.
2872
2873 2021-07-20  Kewen Lin  <linkw@linux.ibm.com>
2874
2875         PR tree-optimization/100696
2876         * internal-fn.c (first_commutative_argument): Add info for IFN_MULH.
2877         * internal-fn.def (IFN_MULH): New internal function.
2878         * tree-vect-patterns.c (vect_recog_mulhs_pattern): Add support to
2879         recog normal multiply highpart as IFN_MULH.
2880         * config/i386/i386.c (ix86_add_stmt_cost): Adjust for combined
2881         function CFN_MULH.
2882
2883 2021-07-19  Indu Bhagat  <indu.bhagat@oracle.com>
2884
2885         * config/elfos.h (CTF_DEBUGGING_INFO): New definition.
2886         (BTF_DEBUGGING_INFO): Likewise.
2887         * doc/tm.texi.in: Document the new macros.
2888         * doc/tm.texi: Regenerated.
2889         * toplev.c: Guard initialization of debug hooks.
2890
2891 2021-07-19  Indu Bhagat  <indu.bhagat@oracle.com>
2892
2893         * flags.h (ctf_debuginfo_p): New function declaration.
2894         * opts.c (ctf_debuginfo_p): New function definition.
2895
2896 2021-07-19  Andrew Stubbs  <ams@codesourcery.com>
2897
2898         PR target/100208
2899         * config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New.
2900         (ASM_SPEC): Set -mattr for xnack and sram-ecc.
2901         * config/gcn/gcn-opts.h (enum sram_ecc_type): New.
2902         * config/gcn/gcn-valu.md: Add a warning comment.
2903         * config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack.
2904         (output_file_start): Add xnack and sram-ecc state to ".amdgcn_target".
2905         * config/gcn/gcn.md: Add a warning comment.
2906         * config/gcn/gcn.opt: Add -mxnack and -msram-ecc.
2907         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove
2908         SRAM-ECC flag.
2909         (EF_AMDGPU_XNACK): New.
2910         (EF_AMDGPU_SRAM_ECC): New.
2911         (elf_flags): New.
2912         (copy_early_debug_info): Use elf_flags.
2913         (main): Handle -mxnack and -msram-ecc options.
2914         * doc/invoke.texi: Document -mxnack and -msram-ecc.
2915
2916 2021-07-19  Andrew Pinski  <apinski@marvell.com>
2917
2918         PR target/101205
2919         * config/aarch64/aarch64.md (csneg3_uxtw_insn): Rename to ...
2920         (*cs<neg_not_cs>3_uxtw_insn4): and extend to NEG_NOT.
2921
2922 2021-07-19  Richard Biener  <rguenther@suse.de>
2923
2924         PR tree-optimization/101505
2925         * tree-vect-patterns.c (vect_determine_precisions): Walk
2926         PHIs also for loop vectorization.
2927
2928 2021-07-19  Richard Biener  <rguenther@suse.de>
2929
2930         * gimple.h (gimple_expr_type): Remove.
2931         * doc/gimple.texi: Remove gimple_expr_type documentation.
2932
2933 2021-07-19  Richard Biener  <rguenther@suse.de>
2934
2935         * tree-ssa-sccvn.c (vn_reference_eq): Handle NULL vr->type.
2936         (ao_ref_init_from_vn_reference): Likewise.
2937         (fully_constant_reference): Likewise.
2938         (vn_reference_lookup_call): Do not set vr->type to random
2939         values.
2940         * tree-ssa-pre.c (compute_avail): Do not try to PRE calls
2941         without a value.
2942         * tree-vect-generic.c (expand_vector_piecewise): Pass in
2943         whether we expanded parallel.
2944         (expand_vector_parallel): Adjust.
2945         (expand_vector_addition): Likewise.
2946         (expand_vector_comparison): Likewise.
2947         (expand_vector_operation): Likewise.
2948         (expand_vector_scalar_condition): Likewise.
2949         (expand_vector_conversion): Likewise.
2950
2951 2021-07-19  Richard Biener  <rguenther@suse.de>
2952
2953         * tree-vrp.c (register_edge_assert_for_2): Use the
2954         type from the LHS.
2955         (vrp_folder::fold_predicate_in): Likewise.
2956         * vr-values.c (gimple_assign_nonzero_p): Likewise.
2957         (vr_values::extract_range_from_comparison): Likewise.
2958         (vr_values::extract_range_from_ubsan_builtin): Use the
2959         type of the first operand.
2960         (vr_values::extract_range_basic): Push down type
2961         computation, use the appropriate LHS.
2962         (vr_values::extract_range_from_assignment): Use the
2963         type of the LHS.
2964
2965 2021-07-18  H.J. Lu  <hjl.tools@gmail.com>
2966
2967         PR target/101492
2968         * common/config/i386/i386-common.c (ix86_handle_option): For
2969         -mgeneral-regs-only, enable the GPR only instructions which are
2970         enabled implicitly by SSE ISAs unless they have been disabled
2971         explicitly.
2972
2973 2021-07-18  H.J. Lu  <hjl.tools@gmail.com>
2974
2975         PR target/101495
2976         * config/i386/i386.c (ix86_check_avx_upper_stores): Moved before
2977         ix86_avx_u128_mode_needed.
2978         (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY if callee
2979         returns AVX register.
2980
2981 2021-07-17  Jan Hubicka  <hubicka@ucw.cz>
2982
2983         * tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED.
2984         (handle_const_call): Liekise
2985         (handle_pure_call): Liekise
2986
2987 2021-07-17  Andrew MacLeod  <amacleod@redhat.com>
2988
2989         PR tree-optimization/96542
2990         * range-op.cc (range_operator::wi_fold_in_parts): New.
2991         (range_operator::fold_range): Call wi_fold_in_parts.
2992         (operator_lshift::wi_fold): Fix broken lshift by [0,0].
2993         * range-op.h (wi_fold_in_parts): Add prototype.
2994
2995 2021-07-16  David Malcolm  <dmalcolm@redhat.com>
2996
2997         * doc/analyzer.texi: Add __analyzer_dump_state.
2998
2999 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
3000
3001         * config/rs6000/rbtree.c: New file.
3002         * config/rs6000/rbtree.h: New file.
3003
3004 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
3005
3006         * config/rs6000/rs6000-gen-builtins.c (restriction): New enum.
3007         (typeinfo): Add restr field.
3008         (match_bracketed_pair): New function.
3009         (match_const_restriction): Implement.
3010
3011 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
3012
3013         * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement.
3014
3015 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
3016
3017         * config/rs6000/rs6000-gen-builtins.c (void_status): New enum.
3018         (basetype): Likewise.
3019         (typeinfo): Likewise.
3020         (handle_pointer): New function.
3021         (match_basetype): New stub function.
3022         (match_const_restriction): Likewise.
3023         (match_type): New function.
3024
3025 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
3026
3027         * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New
3028         function.
3029         (advance_line): Likewise.
3030         (safe_inc_pos): Likewise.
3031         (match_identifier): Likewise.
3032         (match_integer): Likewise.
3033         (match_to_right_bracket): Likewise.
3034
3035 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
3036
3037         * config/rs6000/rs6000-gen-builtins.c (bif_file): New variable.
3038         (ovld_file): Likewise.
3039         (header_file): Likewise.
3040         (init_file): Likewise.
3041         (defines_file): Likewise.
3042         (pgm_path): Likewise.
3043         (bif_path): Likewise.
3044         (ovld_path): Likewise.
3045         (header_path): Likewise.
3046         (init_path): Likewise.
3047         (defines_path): Likewise.
3048         (LINELEN): New macro.
3049         (linebuf): New variable.
3050         (line): Likewise.
3051         (pos): Likewise.
3052         (diag): Likewise.
3053         (bif_diag): New function.
3054         (ovld_diag): Likewise.
3055
3056 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
3057
3058         * config/rs6000/rs6000-builtin-new.def: New.
3059         * config/rs6000/rs6000-overload.def: New.
3060
3061 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
3062
3063         * config/rs6000/rs6000-gen-builtins.c: New.
3064
3065 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
3066
3067         * Makefile.in (EXTRA_GTYPE_DEPS): New variable.
3068         (s-gtype): Depend on EXTRA_GTYPE_DEPS.
3069         * gengtype-state.c (state_writer::write_state_file_list): Add a
3070         parameter to the fileslist expression for the number of build
3071         headers to scan.
3072         (read_state_files_list): Detect build headers and strip the
3073         initial "./" or ".\" from their names.
3074         * gengtype.c (build_headers): New global variable.
3075         (num_build_headers): Likewise.
3076         (open_base_files): Emit #include for each build header.
3077         (main): Detect and count build headers.
3078         * gengtype.h (build_headers): New extern variable.
3079         (num_build_headers): Likewise.
3080
3081 2021-07-16  Richard Biener   <rguenther@suse.de>
3082
3083         * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use
3084         the type of the LHS.
3085         (find_bswap_or_nop_1): Likewise.
3086         (find_bswap_or_nop): Likewise.
3087         * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust
3088         prototype.
3089         * tree-vect-data-refs.c (vect_get_smallest_scalar_type):
3090         Remove unused parameters, pass in the scalar type.  Fix
3091         internal store function handling.
3092         * tree-vect-stmts.c (vect_analyze_stmt): Remove assert.
3093         (vect_get_vector_types_for_stmt): Move down check for
3094         existing vector stmt after we've determined a scalar type.
3095         Pass down the used scalar type to vect_get_smallest_scalar_type.
3096         * tree-vect-generic.c (expand_vector_condition): Use
3097         the type of the LHS.
3098         (expand_vector_scalar_condition): Likewise.
3099         (expand_vector_operations_1): Likewise.
3100         * tree-vect-patterns.c (vect_widened_op_tree): Likewise.
3101         (vect_recog_dot_prod_pattern): Likewise.
3102         (vect_recog_sad_pattern): Likewise.
3103         (vect_recog_widen_op_pattern): Likewise.
3104         (vect_recog_widen_sum_pattern): Likewise.
3105         (vect_recog_mixed_size_cond_pattern): Likewise.
3106
3107 2021-07-16  Jan Hubicka  <hubicka@ucw.cz>
3108
3109         * ipa-modref.c (struct escape_entry): Use eaf_fleags_t.
3110         (dump_eaf_flags): Dump EAF_NOT_RETURNED
3111         (eaf_flags_useful_p): Use eaf_fleags_t; handle const functions
3112         and EAF_NOT_RETURNED.
3113         (modref_summary::useful_p): Likewise.
3114         (modref_summary_lto::useful_p): Likewise.
3115         (struct) modref_summary_lto: Use eaf_fleags_t.
3116         (deref_flags): Handle EAF_NOT_RETURNED.
3117         (struct escape_point): Use min_flags.
3118         (modref_lattice::init): Add EAF_NOT_RETURNED.
3119         (merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions
3120         (analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return;
3121         handle call flags.
3122         (analyze_parms): Also analyze const functions; update conition on
3123         flags usefulness.
3124         (modref_write): Update streaming.
3125         (read_section): Update streaming.
3126         (remap_arg_flags): Use eaf_flags_t.
3127         (modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED.
3128         * ipa-modref.h: (eaf_flags_t): New typedef.
3129         (struct modref_summary): Use eaf_flags_t.
3130         * tree-core.h (EAF_NOT_RETURNED): New constant.
3131
3132 2021-07-16  Richard Biener  <rguenther@suse.de>
3133
3134         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use
3135         the type of the LHS.
3136         (gimple_assign_nonnegative_warnv_p): Likewise.
3137         (gimple_call_nonnegative_warnv_p): Likewise.  Return false
3138         if the call has no LHS.
3139         * gimple.c (gimple_could_trap_p_1): Use the type of the LHS.
3140         * tree-eh.c (stmt_could_throw_1_p): Likewise.
3141         * tree-inline.c (insert_init_stmt): Likewise.
3142         * tree-ssa-loop-niter.c (get_val_for): Likewise.
3143         * tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of
3144         the def.
3145         * tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a
3146         gassign *.  Use the type of the lhs.
3147         (vn_nary_op_lookup_stmt): Adjust.
3148         (vn_nary_op_insert_stmt): Likewise.
3149
3150 2021-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>
3151
3152         * config/s390/predicates.md (bras_sym_operand): Accept all
3153         functions in 64-bit mode, use UNSPEC_PLT31.
3154         (larl_operand): Use UNSPEC_PLT31.
3155         * config/s390/s390.c (s390_loadrelative_operand_p): Likewise.
3156         (legitimize_pic_address): Likewise.
3157         (s390_emit_tls_call_insn): Mark __tls_get_offset as function,
3158         use UNSPEC_PLT31.
3159         (s390_delegitimize_address): Use UNSPEC_PLT31.
3160         (s390_output_addr_const_extra): Likewise.
3161         (print_operand): Add @PLT to TLS calls, handle %K.
3162         (s390_function_profiler): Mark __fentry__/_mcount as function,
3163         use %K, use UNSPEC_PLT31.
3164         (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K.
3165         (s390_emit_call): Use UNSPEC_PLT31.
3166         (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function.
3167         * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT.
3168         (*movdi_64): Use %K.
3169         (reload_base_64): Likewise.
3170         (*sibcall_brc): Likewise.
3171         (*sibcall_brcl): Likewise.
3172         (*sibcall_value_brc): Likewise.
3173         (*sibcall_value_brcl): Likewise.
3174         (*bras): Likewise.
3175         (*brasl): Likewise.
3176         (*bras_r): Likewise.
3177         (*brasl_r): Likewise.
3178         (*bras_tls): Likewise.
3179         (*brasl_tls): Likewise.
3180         (main_base_64): Likewise.
3181         (reload_base_64): Likewise.
3182         (@split_stack_call<mode>): Likewise.
3183
3184 2021-07-16  Richard Biener  <rguenther@suse.de>
3185
3186         PR tree-optimization/101467
3187         * tree-vect-stmts.c (vect_gen_while): Properly guard
3188         make_temp_ssa_name usage.
3189
3190 2021-07-16  Cooper Qu  <cooper.qu@linux.alibaba.com>
3191
3192         * config.gcc: Don't use forked print-sysroot-suffix.sh and
3193         t-sysroot-suffix for C-SKY.
3194         * config/csky/print-sysroot-suffix.sh: Delete.
3195         * config/csky/t-csky-linux: Delete.
3196         * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES
3197         instead of CSKY_MULTILIB_DIRNAMES.
3198
3199 2021-07-16  Richard Biener  <rguenther@suse.de>
3200
3201         * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign
3202         conversion issues with the partial reduction of the reused
3203         vector accumulator.
3204
3205 2021-07-16  Richard Biener  <rguenther@suse.de>
3206
3207         * config/i386/i386-options.c (ix86_option_override_internal): Set
3208         param_vect_partial_vector_usage to zero if not set.
3209
3210 2021-07-15  Uroš Bizjak  <ubizjak@gmail.com>
3211
3212         PR target/101346
3213         * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode.
3214         (VALID_INT_MODE_P): Add SDmode and DDmode.
3215         Add TDmode for TARGET_64BIT.
3216         (VALID_DFP_MODE_P): Remove.
3217         * config/i386/i386.c (ix86_hard_regno_mode_ok):
3218         Do not use VALID_DFP_MODE_P.
3219
3220 2021-07-15  Andrew MacLeod  <amacleod@redhat.com>
3221
3222         * gimple-range-fold.cc (adjust_pointer_diff_expr): Use
3223         gimple_range_type.
3224         (fold_using_range::fold_stmt): Ditto.
3225         (fold_using_range::range_of_range_op): Ditto.
3226         (fold_using_range::range_of_phi): Ditto.
3227         (fold_using_range::range_of_call): Ditto.
3228         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
3229         (fold_using_range::range_of_builtin_call): Ditto.
3230         (fold_using_range::range_of_cond_expr): Ditto.
3231         * gimple-range-fold.h (gimple_range_type): New.
3232
3233 2021-07-15  Martin Sebor  <msebor@redhat.com>
3234
3235         PR middle-end/97027
3236         * tree-ssa-strlen.c (handle_assign): New function.
3237         (maybe_warn_overflow): Add argument.
3238         (nonzero_bytes_for_type): New function.
3239         (count_nonzero_bytes): Handle more tree types.  Call
3240         nonzero_bytes_for_tye.
3241         (count_nonzero_bytes): Handle types.
3242         (handle_store): Handle stores from function calls.
3243         (strlen_check_and_optimize_call): Move code to handle_assign.  Call
3244         it for assignments from function calls.
3245
3246 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
3247
3248         PR analyzer/95006
3249         PR analyzer/94713
3250         PR analyzer/94714
3251         * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value.
3252
3253 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
3254
3255         * doc/invoke.texi (-fdump-analyzer-exploded-paths): New.
3256
3257 2021-07-15  Martin Sebor  <msebor@redhat.com>
3258
3259         PR c/101289
3260         PR c/97548
3261         * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME.
3262         (operand_compare::verify_hash_value): Same.
3263         * tree-core.h (OEP_DECL_NAME): New.
3264
3265 2021-07-15  Martin Jambor  <mjambor@suse.cz>
3266
3267         * profile-count.h (profile_count::value): Change the return type to
3268         uint64_t.
3269         * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print
3270         statement.
3271         * tree-cfg.c (dump_function_to_file): Likewise.
3272
3273 2021-07-15  Bill Schmidt  <wschmidt@linux.ibm.com>
3274
3275         PR target/101129
3276         * config/rs6000/rs6000-p8swap.c (has_part_mult): New.
3277         (rs6000_analyze_swaps): Insns containing a subreg of a mult are
3278         not swappable.
3279
3280 2021-07-15  Richard Biener  <rguenther@suse.de>
3281
3282         * tree-vectorizer.h (vect_gen_while): Match up with
3283         vect_gen_while_not.
3284         * tree-vect-stmts.c (vect_gen_while): Adjust API to that
3285         of vect_gen_while_not.
3286         (vect_gen_while_not): Adjust.
3287         * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise.
3288
3289 2021-07-15  Aldy Hernandez  <aldyh@redhat.com>
3290
3291         * gimple-range-cache.cc (non_null_ref::adjust_range): New.
3292         (ranger_cache::range_of_def): Call adjust_range.
3293         (ranger_cache::entry_range): Same.
3294         * gimple-range-cache.h (non_null_ref::adjust_range): New.
3295         * gimple-range.cc (gimple_ranger::range_of_expr): Call
3296         adjust_range.
3297         (gimple_ranger::range_on_entry): Same.
3298
3299 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
3300
3301         Revert:
3302         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
3303
3304         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
3305
3306 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
3307
3308         Revert:
3309         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
3310
3311         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
3312         (sdot_prod, udot_prod): ...These.
3313         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
3314         (aarch64_<sur>dot<vsi2qi>): Rename to...
3315         (<sur>dot_prod<vsi2qi>): ...This.
3316         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
3317         Update builtins.
3318
3319 2021-07-15  Jakub Jelinek  <jakub@redhat.com>
3320
3321         PR middle-end/101437
3322         * gimplify.c (gimplify_expr): Throw away volatile reads from empty
3323         types even if they have non-BLKmode TYPE_MODE.
3324
3325 2021-07-15  Richard Biener  <rguenther@suse.de>
3326
3327         PR driver/101383
3328         * gcc.c (process_command): Process -gtoggle like process_options
3329         would after parsing options.
3330
3331 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
3332
3333         * cfgexpand.c (expand_asm_loc): Adjust.
3334         (expand_asm_stmt): Likewise.
3335         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise.
3336         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
3337         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
3338         * config/avr/avr.c (avr_md_asm_adjust): Likewise.
3339         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
3340         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
3341         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
3342         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
3343         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
3344         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
3345         * config/s390/s390.c (s390_md_asm_adjust): Likewise.
3346         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
3347         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
3348         * doc/tm.texi: Regenerate.
3349         * target.def: Add location argument to md_asm_adjust.
3350
3351 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
3352
3353         * tree-diagnostic.c (diagnostic_report_current_function): Use the
3354         diagnostic's location, not input_location.
3355
3356 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
3357
3358         * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to
3359         diagnostics.
3360         (expand_asm_stmt): Likewise.
3361
3362 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
3363
3364         * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower
3365         addressed memory rtx, if any.
3366         (rs6000_split_multireg_move): Fix code formatting.
3367         Handle MMA build built-ins with operands in adjacent memory locations.
3368
3369 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
3370
3371         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later
3372         in the file.
3373
3374 2021-07-14  Jason Merrill  <jason@redhat.com>
3375
3376         * sel-sched-ir.h (get_all_loop_exits): Use auto_vec.
3377
3378 2021-07-14  Jason Merrill  <jason@redhat.com>
3379
3380         * doc/invoke.texi: -fdelete-dead-exceptions is on by default for
3381         C++.
3382
3383 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
3384
3385         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
3386         Remove erroneous line.
3387
3388 2021-07-14  Andrew MacLeod  <amacleod@redhat.com>
3389
3390         * params.opt (param_evrp_mode): Change default.
3391
3392 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
3393
3394         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
3395         (sdot_prod, udot_prod): ...These.
3396         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
3397         (aarch64_<sur>dot<vsi2qi>): Rename to...
3398         (<sur>dot_prod<vsi2qi>): ...This.
3399         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
3400         Update builtins.
3401
3402 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
3403
3404         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
3405
3406 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
3407
3408         * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document.
3409
3410 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
3411
3412         * config/arm/neon.md (usdot_prod<vsi2qi>): New.
3413
3414 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
3415
3416         * config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to...
3417         (usdot_prod<vsi2qi>): ... This.
3418         * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to...
3419         (usdot_prod): ...This.
3420         * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise.
3421         * config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>):
3422         Rename to...
3423         (@<sur>dot_prod<vsi2qi>): ...This.
3424         * config/aarch64/aarch64-sve-builtins-base.cc
3425         (svusdot_impl::expand): Use it.
3426
3427 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
3428
3429         * optabs.def (usdot_prod_optab): New.
3430         * doc/md.texi: Document it and clarify other dot prod optabs.
3431         * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign.
3432         * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab.
3433         * optabs.c (expand_widen_pattern_expr): Likewise.
3434         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
3435         * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind.
3436         * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional
3437         optab subtype.
3438         (vect_widened_op_tree): Optionally ignore
3439         mismatch types.
3440         (vect_recog_dot_prod_pattern): Support usdot_prod_optab.
3441
3442 2021-07-14  H.J. Lu  <hjl.tools@gmail.com>
3443
3444         PR target/101395
3445         * config/i386/driver-i386.c (host_detect_local_cpu): Check
3446         "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen.
3447         Enable UINTR only for 64-bit codegen.
3448         * config/i386/i386-options.c
3449         (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not
3450         in 64-bit mode.
3451         * config/i386/i386.h (ARCH_ARG): New.
3452         (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and
3453         "[arch|tune] 64" for 64-bit codegen.
3454
3455 2021-07-14  Richard Biener  <rguenther@suse.de>
3456
3457         PR tree-optimization/101445
3458         * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment
3459         of the IV in the correct direction for negative stride
3460         accesses.
3461
3462 2021-07-14  Jakub Jelinek  <jakub@redhat.com>
3463
3464         PR go/101407
3465         * godump.c (godump_str_hash): New type.
3466         (godump_container::pot_dummy_types): Use string_hash instead of
3467         ptr_hash in the hash_set.
3468
3469 2021-07-14  Richard Biener  <rguenther@suse.de>
3470
3471         * tree-vect-loop.c (vect_find_reusable_accumulator): Handle
3472         vector types where the old vector type has a multiple of
3473         the new vector type elements.
3474         (vect_create_partial_epilog): New function, split out from...
3475         (vect_create_epilog_for_reduction): ... here.
3476         (vect_transform_cycle_phi): Reduce the re-used accumulator
3477         to the new vector type.
3478
3479 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
3480
3481         * tree-ssa-alias.c (attr_fnspec::verify): Fix index in
3482         non-'t'-sized arg check.
3483
3484 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
3485
3486         * tree-cfg.c (cleanup_dead_labels_eh): Update
3487         post_landing_pad label upon change of landing pad block's
3488         primary label.
3489         (cleanup_dead_labels): Check that a removed label is not that
3490         of a landing pad.
3491
3492 2021-07-13  Jonathan Wright  <jonathan.wright@arm.com>
3493
3494         * combine.c (combine_simplify_rtx): Add vec_select -> subreg
3495         simplification.
3496         * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64):
3497         Add Neon to general purpose register case for zero-extend
3498         pattern.
3499         * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r
3500         case to prevent some cases opting to go through memory.
3501         * cse.c (fold_rtx): Add vec_select -> subreg simplification.
3502         * rtl.c (rtvec_series_p): Define predicate to determine
3503         whether a vector contains a linear series of integers.
3504         * rtl.h (rtvec_series_p): Define.
3505         * rtlanal.c (vec_series_lowpart_p): Define predicate to
3506         determine if a vector selection is equivalent to the low part
3507         of the vector.
3508         * rtlanal.h (vec_series_lowpart_p): Define.
3509         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
3510         Add vec_select -> subreg simplification.
3511
3512 2021-07-13  Paul A. Clarke  <pc@us.ibm.com>
3513
3514         * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128,
3515         _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros,
3516         _mm_test_mix_ones_zeros): New.
3517
3518 2021-07-13  Roger Sayle  <roger@nextmovesoftware.com>
3519             Richard Biener  <rguenther@suse.de>
3520
3521         * gimple.c (gimple_could_trap_p_1):  Make S argument a
3522         "const gimple*".  Preserve constness in call to
3523         gimple_asm_volatile_p.
3524         (gimple_could_trap_p): Make S argument a "const gimple*".
3525         * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p):
3526         Update function prototypes.
3527
3528 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
3529
3530         * tree-vectorizer.h (vect_reusable_accumulator): New structure.
3531         (_loop_vec_info::main_loop_edge): New field.
3532         (_loop_vec_info::skip_main_loop_edge): Likewise.
3533         (_loop_vec_info::skip_this_loop_edge): Likewise.
3534         (_loop_vec_info::reusable_accumulators): Likewise.
3535         (_stmt_vec_info::reduc_scalar_results): Likewise.
3536         (_stmt_vec_info::reused_accumulator): Likewise.
3537         (vect_get_main_loop_result): Declare.
3538         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
3539         reduc_scalar_inputs.
3540         (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs.
3541         * tree-vect-loop-manip.c (vect_get_main_loop_result): New function.
3542         (vect_do_peeling): Fill an epilogue loop's main_loop_edge,
3543         skip_main_loop_edge and skip_this_loop_edge fields.
3544         * tree-vect-loop.c (INCLUDE_ALGORITHM): Define.
3545         (vect_emit_reduction_init_stmts): New function.
3546         (get_initial_def_for_reduction): Use it.
3547         (get_initial_defs_for_reduction): Likewise.  Change the vinfo
3548         parameter to a loop_vec_info.
3549         (vect_create_epilog_for_reduction): Store the scalar results
3550         in the reduc_info.  If an epilogue loop is reusing an accumulator
3551         from the main loop, and if the epilogue loop can also be skipped,
3552         try to place the reduction code in the join block.  Record
3553         accumulators that could potentially be reused by epilogue loops.
3554         (vect_transform_cycle_phi): When vectorizing epilogue loops,
3555         try to reuse accumulators from the main loop.  Record the initial
3556         value in reduc_info for non-SLP reductions too.
3557
3558 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
3559
3560         * tree-vect-loop.c (get_initial_def_for_reduction): Remove
3561         adjustment handling.  Take the neutral value as an argument,
3562         in place of the code argument.
3563         (vect_transform_cycle_phi): Update accordingly.  Handle the
3564         initial values of cond reductions separately from code reductions.
3565         Choose the adjustment here rather than in
3566         get_initial_def_for_reduction.  Sink the splat of vec_initial_def.
3567
3568 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
3569
3570         * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with...
3571         (neutral_op_for_reduction): ...this, providing a more general
3572         interface.
3573         (vect_create_epilog_for_reduction): Update accordingly.
3574         (vectorizable_reduction): Likewise.
3575         (vect_transform_cycle_phi): Likewise.
3576
3577 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
3578
3579         * tree-vect-loop.c (get_initial_def_for_reduction): Take the
3580         reduc_info instead of the original stmt_vec_info.
3581         (vect_transform_cycle_phi): Update accordingly.
3582
3583 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
3584
3585         * tree-vect-loop.c (get_initial_defs_for_reduction): Take the
3586         reduc_info as an additional parameter.
3587         (vect_transform_cycle_phi): Update accordingly.
3588
3589 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
3590
3591         * tree-vectorizer.h: Include tree-ssa-operands.h.
3592         (vect_phi_initial_value): New function.
3593         * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it.
3594         (get_initial_defs_for_reduction, info_for_reduction): Likewise.
3595         (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise.
3596         (vect_transform_cycle_phi, vectorizable_induction): Likewise.
3597
3598 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
3599
3600         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
3601         the phi results to vectype after creating them.  Remove later
3602         conversion code that thus becomes redundant.
3603
3604 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
3605
3606         * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace
3607         the new_phis vector with a reduc_inputs vector.  Combine handling
3608         of reduction chains and ncopies > 1.
3609
3610 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
3611
3612         * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate
3613         scalar_results to group_size elements after reducing down from
3614         N*group_size elements.  Construct an array_slice of the live-out
3615         stmts and assert that there is one stmt per scalar result.
3616
3617 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
3618
3619         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
3620         nested_in_vect_loop and use double_reduc everywhere.  Remove dead
3621         assignment to "loop".
3622
3623 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
3624
3625         * internal-fn.c (vectorized_internal_fn_supported_p): Handle
3626         vector types first.  For scalar types, consider both the preferred
3627         vector mode and the alternative vector modes.
3628         * optabs-query.c (can_vec_mask_load_store_p): Use the same
3629         structure as above, in particular using related_vector_mode
3630         for modes provided by autovectorize_vector_modes.
3631
3632 2021-07-13  Jakub Jelinek  <jakub@redhat.com>
3633             Richard Biener  <rguenther@suse.de>
3634
3635         PR tree-optimization/101419
3636         * tree-pass.h (PROP_objsz): Define.
3637         (make_pass_early_object_sizes): Declare.
3638         * passes.def (pass_all_early_optimizations): Rename pass_object_sizes
3639         there to pass_early_object_sizes, drop parameter.
3640         (pass_all_optimizations): Move pass_object_sizes right after pass_ccp,
3641         drop parameter, move pass_post_ipa_warn right after that.
3642         * tree-object-size.c (pass_object_sizes::execute): Rename to...
3643         (object_sizes_execute): ... this.  Add insert_min_max_p argument.
3644         (pass_data_object_sizes): Move after object_sizes_execute.
3645         (pass_object_sizes): Likewise.  In execute method call
3646         object_sizes_execute, drop set_pass_param method and insert_min_max_p
3647         non-static data member and its initializer in the ctor.
3648         (pass_data_early_object_sizes, pass_early_object_sizes,
3649         make_pass_early_object_sizes): New.
3650         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use
3651         (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining.
3652
3653 2021-07-13  Kito Cheng  <kito.cheng@sifive.com>
3654
3655         PR target/101275
3656         * config/riscv/constraints.md ("S"): Update description and remove
3657         @internal.
3658         * doc/md.texi (Machine Constraints): Document the 'S' constraints
3659         for RISC-V.
3660
3661 2021-07-13  Richard Biener  <rguenther@suse.de>
3662
3663         Revert:
3664         2021-07-12  Richard Biener  <rguenther@suse.de>
3665
3666         * tree-vect-slp.c (vect_slp_region): Show the number of
3667         SLP graph entries in the optimization message.
3668
3669 2021-07-13  Michael Meissner  <meissner@linux.ibm.com>
3670
3671         * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable
3672         value to to long.
3673         * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change
3674         return type to long.
3675         * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return
3676         type to long.
3677
3678 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
3679
3680         * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call):
3681         Query relation between the 2 operands and use it.
3682
3683 2021-07-12  Sergei Trofimovich  <siarheit@google.com>
3684
3685         * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo.
3686
3687 2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>
3688
3689         PR target/101424
3690         * config/i386/predicates.md (vec_setm_sse41_operand):
3691         Rename from vec_setm_operand.
3692         (vec_setm_avx2_operand): New predicate.
3693         * config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator.
3694         Use vec_setm_sse41_operand as operand 2 predicate.
3695         (vec_set<V_256_512:mode): New expander.
3696         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand
3697         as operand 2 predicate.
3698
3699 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
3700
3701         PR tree-optimization/101335
3702         * range-op.cc (operator_cast::lhs_op1_relation): Delete.
3703
3704 2021-07-12  Andrew Pinski  <apinski@marvell.com>
3705
3706         * tree-ssa-phiopt.c (match_simplify_replacement): Move
3707         insert of the sequence before the movement of the
3708         statement. Check if to see if the statement is used
3709         outside of the original phi to see if we should move it.
3710
3711 2021-07-12  Richard Biener  <rguenther@suse.de>
3712
3713         * dump-context.h (debug_dump_context::debug_dump_context):
3714         Add FILE * parameter defaulted to stderr.
3715         * dumpfile.c (debug_dump_context::debug_dump_context): Adjust.
3716         * tree-vect-slp.c (dot_slp_tree): New functions.
3717
3718 2021-07-12  Richard Biener  <rguenther@suse.de>
3719
3720         PR tree-optimization/101373
3721         * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping
3722         references when the BB may not return.
3723         (compute_avail): Pass in the function we're working on and
3724         replace cfun references with it.  Externally throwing
3725         const calls also possibly terminate the function.
3726         (pass_pre::execute): Pass down the function we're working on.
3727         * gcse.c (compute_hash_table_work): Externally throwing
3728         const/pure calls also need record_last_mem_set_info.
3729         * postreload-gcse.c (record_opr_changes): Looping or externally
3730         throwing const/pure calls also need record_last_mem_set_info.
3731
3732 2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>
3733
3734         * recog.c (memory_address_addr_space_p): Change the type to bool.
3735         Return true/false instead of 1/0.
3736         (offsettable_memref_p): Ditto.
3737         (offsettable_nonstrict_memref_p): Ditto.
3738         (offsettable_address_addr_space_p): Ditto.
3739         Change the type of addressp indirect function to bool.
3740         * recog.h (memory_address_addr_space_p): Change the type to bool.
3741         (strict_memory_address_addr_space_p): Ditto.
3742         (offsettable_memref_p): Ditto.
3743         (offsettable_nonstrict_memref_p): Ditto.
3744         (offsettable_address_addr_space_p): Ditto.
3745         * reload.c (maybe_memory_address_addr_space_p): Ditto.
3746         (strict_memory_address_addr_space_p): Change the type to bool.
3747         Return true/false instead of 1/0.
3748         (maybe_memory_address_addr_space_p): Change the type to bool.
3749
3750 2021-07-12  Richard Biener  <rguenther@suse.de>
3751
3752         * tree-vect-slp.c (vect_slp_region): Show the number of
3753         SLP graph entries in the optimization message.
3754
3755 2021-07-12  Richard Biener  <rguenther@suse.de>
3756
3757         PR tree-optimization/101394
3758         * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting
3759         copies from abnormals for a full redundancy.
3760
3761 2021-07-12  Richard Biener  <rguenther@suse.de>
3762
3763         PR middle-end/101423
3764         * gimple.c (gimple_could_trap_p_1): Internal function calls
3765         do not trap.
3766         * tree-eh.c (tree_could_trap_p): Likewise.
3767
3768 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
3769
3770         PR target/66791
3771         * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with
3772         __a * __b.
3773         (vmulq_n_u32): Likewise.
3774         (vmul_n_f32): Gate __a * __b on __FAST_MATH__.
3775         (vmulq_n_f32): Likewise.
3776         (vmul_n_f16): Likewise.
3777         (vmulq_n_f16): Likewise.
3778
3779 2021-07-12  Martin Liska  <mliska@suse.cz>
3780
3781         PR sanitizer/101425
3782         * gcc.c (check_offload_target_name): Call
3783           candidates_list_and_hint only if we have a candidate.
3784
3785 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
3786
3787         PR target/98435
3788         * config/arm/neon.md (vec_init): Move to ...
3789         * config/arm/vec-common.md (vec_init): ... here.
3790         Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE.
3791
3792 2021-07-12  Roger Sayle  <roger@nextmovesoftware.com>
3793
3794         PR tree-optimization/101403
3795         * match.pd ((T)bswap(X)>>C): Correctly handle cases where
3796         signedness of the shift is not the same as the signedness of
3797         the type extension.
3798
3799 2021-07-09  Roger Sayle  <roger@nextmovesoftware.com>
3800             Uroš Bizjak  <ubizjak@gmail.com>
3801
3802         * config/i386/i386.md (*divmodsi4_const): Optimize SImode
3803         divmod of a constant numerator with new define_insn_and_split.
3804
3805 2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>
3806
3807         PR target/100152
3808         * config/i386/i386-expand.c (ix86_expand_call): If a call is
3809         to a non-local-binding, or local but to a public symbol, then
3810         assume that it might be indirected via the lazy symbol binder.
3811         Mark R10 and R10 as clobbered in that case.
3812
3813 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
3814
3815         PR target/101377
3816         * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in
3817         the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined
3818         and HAVE_LD_BROKEN_PE_DWARF5 is defined.
3819
3820 2021-07-09  Uroš Bizjak  <ubizjak@gmail.com>
3821
3822         * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the
3823         log2 range of operands[3] to [1,31].
3824         (*udivmodsi4_pow2_zext_2): Ditto.  Correct insn RTX pattern.
3825
3826 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
3827
3828         * doc/md.texi: Don't split @smallexample in multiple @groups.
3829
3830 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
3831
3832         * doc/md.texi: Add missing 'see' word.
3833
3834 2021-07-09  Andrew Pinski  <apinski@marvell.com>
3835
3836         * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments
3837         to take sequence and gimple_match_op.  Accept the case where
3838         op is a SSA_NAME and one statement in the sequence.
3839         Also allow constants.
3840         (gimple_simplify_phiopt): Always pass a sequence to resimplify.
3841         Update call to phiopt_early_allow.  Discard the sequence if not
3842         used.
3843
3844 2021-07-09  Xi Ruoyao  <xry111@mengyan1223.wang>
3845
3846         PR target/100760
3847         PR target/100761
3848         PR target/100762
3849         * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P
3850         instead of ISA_HAS_MSA.
3851         (mips_expand_vec_unpack): Likewise.
3852         (mips_expand_vector_init): Likewise.
3853
3854 2021-07-09  Kewen Lin  <linkw@linux.ibm.com>
3855
3856         * config/rs6000/vsx.md (mods_<mode>): Rename to...
3857         (mod<mode>3): ... this.
3858         (modu_<mode>): Rename to...
3859         (umod<mode>3): ... this.
3860         * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI,
3861         MODU_V4SI): Adjust.
3862
3863 2021-07-08  Jeff Law  <jeffreyalaw@gmail.com>
3864
3865         * config/h8300/shiftrotate.md (variable shifts): Expose condition
3866         code handling for the test before the loop.
3867
3868 2021-07-08  Martin Jambor  <mjambor@suse.cz>
3869
3870         PR ipa/101066
3871         * ipa-sra.c (class isra_call_summary): New member
3872         m_before_any_store, initialize it in the constructor.
3873         (isra_call_summary::dump): Dump the new field.
3874         (ipa_sra_call_summaries::duplicate): Copy it.
3875         (process_scan_results): Set it.
3876         (isra_write_edge_summary): Stream it.
3877         (isra_read_edge_summary): Likewise.
3878         (param_splitting_across_edge): Only override
3879         safe_to_import_accesses if m_before_any_store is set.
3880
3881 2021-07-08  Martin Sebor  <msebor@redhat.com>
3882
3883         PR bootstrap/101374
3884         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
3885         Use Object Size Type 0 instead of 1.
3886
3887 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
3888
3889         * tree-vect-loop.c (vectorizable_reduction): Remove always-true
3890         if condition.
3891
3892 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
3893
3894         * match.pd: Simplify an extend-operate-truncate sequence involving
3895         a POLY_INT_CST.
3896
3897 2021-07-08  Roger Sayle  <roger@nextmovesoftware.com>
3898             Richard Biener  <rguenther@suse.de>
3899
3900         PR tree-optimization/40210
3901         * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as
3902         (x>>C3)&C2 when possible.  Simplify bswap(x)>>C1 as ((T)x)>>C2
3903         when possible.  Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255.
3904
3905 2021-07-08  Uroš Bizjak  <ubizjak@gmail.com>
3906
3907         PR target/100637
3908         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
3909         Handle V4QI mode.
3910         * config/i386/mmx.md (V_32): New mode iterator.
3911         (mov<V_32:mode>): Use V_32 mode iterator.
3912         (*mov<V_32:mode>_internal): Ditto.
3913         (*push<V_32:mode>2_rex64): Ditto.
3914         (*push<V_32:mode>2): Ditto.
3915         (movmisalign<V_32:mode>): Ditto.
3916         (mmx_<any_shiftrt:insn>v1si3): New insn pattern.
3917         (sse4_1_<any_extend:code>v2qiv2hi2): Ditto.
3918         (vec_unpacks_lo_v4qi): New expander.
3919         (vec_unpacks_hi_v4qi): Ditto.
3920         (vec_unpacku_lo_v4qi): Ditto.
3921         (vec_unpacku_hi_v4qi): Ditto.
3922         * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode.
3923         (VALID_INT_MODE_P): Ditto.
3924
3925 2021-07-08  Michael Meissner  <meissner@linux.ibm.com>
3926
3927         PR target/100809
3928         * config/rs6000/rs6000.md (udivti3): New insn.
3929         (divti3): New insn.
3930         (umodti3): New insn.
3931         (modti3): New insn.
3932
3933 2021-07-07  Martin Sebor  <msebor@redhat.com>
3934
3935         PR tree-optimization/100137
3936         PR tree-optimization/99121
3937         PR tree-optimization/97027
3938         * builtins.c (access_ref::access_ref): Also set offmax.
3939         (access_ref::offset_in_range): Define new function.
3940         (access_ref::add_offset): Set offmax.
3941         (access_ref::inform_access): Handle access_none.
3942         (handle_mem_ref): Clear ostype.
3943         (compute_objsize_r): Handle ASSERT_EXPR.
3944         * builtins.h (struct access_ref): Add offmax member.
3945         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use
3946         compute_objsize() and simplify.
3947
3948 2021-07-07  Peter Bergner  <bergner@linux.ibm.com>
3949
3950         * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP
3951         and VSX_BUILTIN_STXVP.
3952
3953 2021-07-07  Martin Sebor  <msebor@redhat.com>
3954
3955         PR target/101363
3956         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove
3957         a stray %K from error_at() missed in r12-2088.
3958
3959 2021-07-07  Richard Biener  <rguenther@suse.de>
3960
3961         PR tree-optimization/99728
3962         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record
3963         aggregate copies.
3964         (mem_refs_may_alias_p): Add assert we handled aggregate
3965         copies elsewhere.
3966         (sm_seq_valid_bb): Give up when running into aggregate copies.
3967         (ref_indep_loop_p): Handle aggregate copies as never
3968         being invariant themselves but allow other refs to be
3969         disambiguated against them.
3970         (can_sm_ref_p): Do not try to apply store-motion to aggregate
3971         copies.
3972
3973 2021-07-06  Indu Bhagat  <indu.bhagat@oracle.com>
3974
3975         PR debug/101283
3976         * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get
3977         number of bits.
3978
3979 2021-07-06  Martin Sebor  <msebor@redhat.com>
3980
3981         * gimple-pretty-print.c (percent_G_format): Remove.
3982         * tree-diagnostic.c (default_tree_printer): Remove calls.
3983         * tree-pretty-print.c (percent_K_format): Remove.
3984         * tree-pretty-print.h (percent_K_format): Remove.
3985
3986 2021-07-06  Martin Sebor  <msebor@redhat.com>
3987
3988         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
3989         Remove %K and use error_at.
3990         (aarch64_expand_fcmla_builtin): Same.
3991         (aarch64_expand_builtin_tme): Same.
3992         (aarch64_expand_builtin_memtag): Same.
3993         * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same.
3994         (arm_expand_builtin): Same.
3995         * config/arm/arm.c (bounds_check): Same.
3996
3997 2021-07-06  Martin Sebor  <msebor@redhat.com>
3998
3999         * builtins.c (warn_string_no_nul): Remove %G.
4000         (maybe_warn_for_bound): Same.
4001         (warn_for_access): Same.
4002         (check_access): Same.
4003         (check_strncat_sizes): Same.
4004         (expand_builtin_strncat): Same.
4005         (expand_builtin_strncmp): Same.
4006         (expand_builtin): Same.
4007         (expand_builtin_object_size): Same.
4008         (warn_dealloc_offset): Same.
4009         (maybe_emit_free_warning): Same.
4010         * calls.c (maybe_warn_alloc_args_overflow): Same.
4011         (maybe_warn_nonstring_arg): Same.
4012         (maybe_warn_rdwr_sizes): Same.
4013         * expr.c (expand_expr_real_1): Remove %K.
4014         * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G.
4015         (gimple_fold_builtin_strncat): Same.
4016         * gimple-ssa-sprintf.c (format_directive): Same.
4017         (handle_printf_call): Same.
4018         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same.
4019         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
4020         (maybe_diag_access_bounds): Same.  Call gimple_location.
4021         (check_bounds_or_overlap): Same.
4022         * trans-mem.c (ipa_tm_scan_irr_block): Remove %K.  Simplify.
4023         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G.
4024         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
4025         (maybe_diag_stxncpy_trunc): Same.
4026         (handle_builtin_stxncpy_strncat): Same.
4027         (maybe_warn_pointless_strcmp): Same.
4028         * tree-ssa-uninit.c (maybe_warn_operand): Same.
4029
4030 2021-07-06  Uroš Bizjak  <ubizjak@gmail.com>
4031
4032         PR target/97194
4033         * config/i386/predicates.md (vec_setm_operand): Enable
4034         register_operand for TARGET_SSE4_1.
4035         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand
4036         as operand 2 predicate.  Call ix86_expand_vector_set_var
4037         for non-constant index operand.
4038         (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate.
4039         Call ix86_expand_vector_set_var for non-constant index operand.
4040
4041 2021-07-06  Jeff Law  <jeffreyalaw@gmail.com>
4042
4043         * config/h8300/jumpcall.md (*branch): When possible, generate
4044         the comparison in CCZN mode.
4045         * config/h8300/predicates.md (simple_memory_operand): Reject all
4046         auto-increment addressing modes.
4047
4048 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
4049
4050         PR bootstrap/100246
4051         * config/i386/i386.h (struct stringop_algs): Define a CTOR for
4052         this type.
4053
4054 2021-07-06  Richard Biener  <rguenther@suse.de>
4055
4056         * doc/md.texi (vec_fmaddsub<mode>4): Document.
4057         (vec_fmsubadd<mode>4): Likewise.
4058         * optabs.def (vec_fmaddsub$a4): Add.
4059         (vec_fmsubadd$a4): Likewise.
4060         * internal-fn.def (IFN_VEC_FMADDSUB): Add.
4061         (IFN_VEC_FMSUBADD): Likewise.
4062         * tree-vect-slp-patterns.c (addsub_pattern::recognize):
4063         Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD.
4064         (addsub_pattern::build): Likewise.
4065         * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB
4066         and CFN_VEC_FMSUBADD are not transparent for permutes.
4067         * config/i386/sse.md (vec_fmaddsub<mode>4): New expander.
4068         (vec_fmsubadd<mode>4): Likewise.
4069
4070 2021-07-06  Richard Biener  <rguenther@suse.de>
4071
4072         * doc/invoke.texi (fmove-loop-stores): Document.
4073         * common.opt (fmove-loop-stores): New option.
4074         * opts.c (default_options_table): Enable -fmove-loop-stores
4075         at -O1 but not -Og.
4076         * tree-ssa-loop-im.c (pass_lim::execute): Pass
4077         flag_move_loop_stores instead of true to
4078         loop_invariant_motion_in_fun.
4079
4080 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
4081
4082         * doc/install.texi: Document --with-dsymutil.
4083
4084 2021-07-06  Andrew Pinski  <apinski@marvell.com>
4085
4086         PR tree-optimization/101256
4087         * dbgcnt.def (phiopt_edge_range): New counter.
4088         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
4089         Check to make sure the new name is defined in the same
4090         bb as the conditional before duplicating range info.
4091         Also add debug counter.
4092
4093 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
4094
4095         PR rtl-optimization/100328
4096         * config/i386/i386-options.c (ix86_option_override_internal):
4097         Set param_ira_consider_dup_in_all_alts to 0.
4098
4099 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
4100
4101         PR rtl-optimization/100328
4102         * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new
4103         parameter.
4104         * ira.c (ira_get_dup_out_num): Adjust as parameter
4105         param_ira_consider_dup_in_all_alts.
4106         * params.opt (ira-consider-dup-in-all-alts): New.
4107         * ira-conflicts.c (process_regs_for_copy): Add one parameter
4108         single_input_op_has_cstr_p.
4109         (get_freq_for_shuffle_copy): New function.
4110         (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p.
4111         * ira-int.h (ira_get_dup_out_num): Add one bool parameter.
4112
4113 2021-07-05  Jeff Law  <jeffreyalaw@gmail.com>
4114
4115         * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to
4116         generate condition code aware RTL directly.
4117
4118 2021-07-05  Andrew Pinski  <apinski@marvell.com>
4119
4120         PR tree-optimization/101039
4121         * match.pd (A CMP 0 ? A : -A): New patterns.
4122         * tree-ssa-phiopt.c (abs_replacement): Delete function.
4123         (tree_ssa_phiopt_worker): Don't call abs_replacement.
4124         Update comment about abs_replacement.
4125
4126 2021-07-05  Andrew Pinski  <apinski@marvell.com>
4127
4128         * tree-ssa-phiopt.c (gimple_simplify_phiopt):
4129         If "A ? B : C" fails to simplify, try "(!A) ? C : B".
4130
4131 2021-07-05  Andrew Pinski  <apinski@marvell.com>
4132
4133         * tree-ssa-phiopt.c (match_simplify_replacement):
4134         Add early_p argument. Call gimple_simplify_phiopt
4135         instead of gimple_simplify.
4136         (tree_ssa_phiopt_worker): Update call to
4137         match_simplify_replacement and allow unconditionally.
4138         (phiopt_early_allow): New function.
4139         (gimple_simplify_phiopt): New function.
4140
4141 2021-07-05  Andrew Pinski  <apinski@marvell.com>
4142
4143         PR middle-end/101237
4144         * fold-const.c (negate_expr_p): Remove call to element_mode
4145         and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS,
4146         HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS.
4147         (fold_negate_expr_1): Likewise.
4148         (const_unop): Likewise.
4149         (fold_cond_expr_with_comparison): Likewise.
4150         (fold_binary_loc): Likewise.
4151         (fold_ternary_loc): Likewise.
4152         (tree_call_nonnegative_warnv_p): Likewise.
4153         * match.pd (-(A + B) -> (-B) - A): Likewise.
4154
4155 2021-07-05  Iain Sandoe  <iain@sandoe.co.uk>
4156
4157         * configure.ac: Handle --with-dsymutil in the same way as we
4158         do for the assembler and linker.  (DEFAULT_DSYMUTIL): New.
4159         Extract the type and version for the dsymutil configured or
4160         found by the default searches.
4161         * config.in: Regenerated.
4162         * configure: Regenerated.
4163         * collect2.c (do_dsymutil): Handle locating dsymutil in the
4164         same way as for the assembler and  linker.
4165         * config/darwin.h (DSYMUTIL): Delete.
4166         * gcc.c: Report a configured dsymutil correctly.
4167         * exec-tool.in: Allow for dsymutil.
4168
4169 2021-07-05  Uroš Bizjak  <ubizjak@gmail.com>
4170
4171         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
4172         Handle V4QI and V2HI modes.
4173         (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1.
4174         Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes.
4175         (expand_vec_perm_pshufb): Rewrite to use switch statemets.
4176         Handle 4-byte dual operands with TARGET_XOP and single operands
4177         with TARGET_SSSE3.  Emit mmx_ppermv32 for TARGET_XOP and
4178         mmx_pshufbv4qi3 for TARGET_SSSE3.
4179         (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1.
4180         (expand_vec_perm_interleave2): Allow 4-byte vector modes.
4181         (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3.
4182         (expand_vec_perm_even_odd_1): Handle V4QI mode.
4183         (expand_vec_perm_broadcast_1): Handle V4QI mode.
4184         (ix86_vectorize_vec_perm_const): Handle V4QI mode.
4185         * config/i386/mmx.md (mmx_ppermv32): New insn pattern.
4186         (mmx_pshufbv4qi3): Ditto.
4187         (*mmx_pblendw32): Ditto.
4188         (*mmx_pblendw64): Rename from *mmx_pblendw.
4189         (mmx_punpckhbw_low): New insn_and_split pattern.
4190         (mmx_punpcklbw_low): Ditto.
4191
4192 2021-07-05  Richard Biener  <rguenther@suse.de>
4193
4194         * tree-vect-loop-manip.c (vect_loop_versioning): Do not
4195         set LOOP_C_INFINITE on the vectorized loop.
4196
4197 2021-07-05  Richard Biener  <rguenther@suse.de>
4198
4199         PR middle-end/101291
4200         * cfgloopmanip.c (loop_version): Set the loop copy of the
4201         versioned loop to the new loop.
4202
4203 2021-07-04  Iain Sandoe  <iain@sandoe.co.uk>
4204
4205         PR target/100269
4206         * config.gcc: Ensure that Darwin biarch definitions are
4207         added before i386.h.
4208         * config/i386/darwin.h (TARGET_64BIT): Remove.
4209         (PR80556_WORKAROUND): New.
4210         (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND.
4211         (DARWIN_SUBARCH_SPEC): New.
4212         * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT,
4213         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
4214         (REAL_LIBGCC_SPEC): Remove.
4215         * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT,
4216         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
4217         (REAL_LIBGCC_SPEC): Remove.
4218
4219 2021-07-03  H.J. Lu  <hjl.tools@gmail.com>
4220
4221         PR middle-end/101294
4222         * expr.c (store_constructor): Don't use vec_duplicate on vector.
4223
4224 2021-07-02  Martin Sebor  <msebor@redhat.com>
4225
4226         PR middle-end/98871
4227         PR middle-end/98512
4228         * diagnostic.c (get_any_inlining_info): New.
4229         (update_effective_level_from_pragmas): Handle inlining context.
4230         (diagnostic_enabled): Same.
4231         (diagnostic_report_diagnostic): Same.
4232         * diagnostic.h (struct diagnostic_info): Add ctor.
4233         (struct diagnostic_context): Add new member.
4234         * tree-diagnostic.c (set_inlining_locations): New.
4235         (tree_diagnostics_defaults): Set new callback pointer.
4236
4237 2021-07-02  Peter Bergner  <bergner@linux.ibm.com>
4238
4239         * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
4240         New macros.
4241         (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins.
4242         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand
4243         lxvp and stxvp built-ins.
4244         (mma_init_builtins): Handle lxvp and stxvp built-ins.
4245         (builtin_function_type): Likewise.
4246         * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document.
4247
4248 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
4249
4250         * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept
4251         additional argument for the code.
4252         * config/h8300/h8300.c (compute_a_shift_cc): Accept additional
4253         argument for the code.  Just return if the ZN bits are useful or
4254         not rather than the old style CC_* enums.
4255         * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before
4256         more generic shiftqi patterns.
4257         (shifthi_noscratch, shiftsi_noscratch): Similarly.
4258         (shiftqi_noscratch_set_flags): New pattern.
4259         (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise.
4260
4261 2021-07-02  Andrew MacLeod  <amacleod@redhat.com>
4262
4263         PR tree-optimization/101223
4264         * range-op.cc (build_lt): Add -1 for signed values.
4265         (built_gt): Subtract -1 for signed values.
4266
4267 2021-07-02  David Faust  <david.faust@oracle.com>
4268
4269         * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT.
4270         (btf_asm_type): Likewise.
4271
4272 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
4273
4274         * config/h8300/h8300-protos.h (output_a_shift): Make first argument
4275         an array of rtx rather than a pointer to rtx.  Add code argument.
4276         (compute_a_shift_length): Similarly.
4277         * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the
4278         shift itself isn't an operand.  Create dummy operand[0] to carry
4279         a mode and pass a suitable rtx code to compute_a_shift_length.
4280         (get_shift_alg): Adjust operand number of clobber in output templates.
4281         (output_a_shift): Make first argument an array of rtx rather than
4282         a pointer to rtx.  Add code argument for the type of shift.
4283         Adjust now that the shift itself is no longer an operand.
4284         (compute_a_shift_length): Similarly.
4285         * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an
4286         iterator rather than nshift_operator.
4287         (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise.
4288         (shiftqi_clobber_flags): Adjust to API changes in output_a_shift
4289         and compute_a_shift_length.
4290         (shiftqi_noscratch_clobber_flags): Likewise.
4291         (shifthi_noscratch_clobber_flags): Likewise.
4292         (shiftsi_noscratch_clobber_flags): Likewise.
4293
4294 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
4295
4296         PR debug/101283
4297         * config/darwin.h (DSYMUTIL_SPEC): Do not try to run
4298         dsymutil for BTF/CTF.
4299
4300 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
4301
4302         PR debug/101283
4303         * config/darwin.h (CTF_INFO_SECTION_NAME): Update the
4304         segment to include BTF.
4305         (BTF_INFO_SECTION_NAME): New.
4306
4307 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
4308
4309         * config/m32r/m32r-protos.h (call_operand): Adjust return type.
4310         (small_data_operand, memreg_operand, small_insn_p): Likewise.
4311         * config/m32r/m32r.c (call_operand): Adjust return type.
4312         (small_data_operand, memreg_operand): Likewise.
4313
4314 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
4315
4316         * config/frv/frv-protos.h  (integer_register_operand): Adjust return
4317         type.
4318         (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise.
4319         (fpr_or_int6_operand, gpr_or_int_operand); Likewise.
4320         (gpr_or_int12_operand, gpr_or_int10_operand); Likewise.
4321         (move_source_operand, move_destination_operand): Likewise.
4322         (condexec_source_operand, condexec_dest_operand): Likewise.
4323         (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise.
4324         (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise.
4325         (fcr_operand, icr_operand, cr_operand, call_operand): Likewise.
4326         (fpr_operand, even_reg_operand, odd_reg_operand): Likewise.
4327         (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise.
4328         (even_fpr_operand, odd_fpr_operand): Likewise.
4329         (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise.
4330         (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise.
4331         (uint4_operand, uint1_operand, int_2word_operand): Likewise
4332         (upper_int16_operand, uint16_operand, symbolic_operand): Likewise.
4333         (relational_operator, float_relational_operator): Likewise.
4334         (ccr_eqne_operator, minmax_operator): Likewise.
4335         (condexec_si_binary_operator, condexec_si_media_operator): Likewise.
4336         (condexec_si_divide_operator, condexec_si_unary_operator): Likewise.
4337         (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise.
4338         (intop_compare_operator, acc_operand, even_acc_operand): Likewise.
4339         (quad_acc_operand, accg_operand): Likewise.
4340
4341 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
4342
4343         * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change
4344         return type to a bool.
4345         (nonimmediate_nonstack_operand): Likewise.
4346         (xstormy16_splittable_below100_operand): Likewise.
4347         * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix
4348         return type.
4349         (xstormy16_splittable_below100_operand): Likewise.
4350
4351 2021-07-02  Richard Biener  <rguenther@suse.de>
4352
4353         PR tree-optimization/101293
4354         * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases
4355         with combined offsets.
4356         (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were
4357         combined with the rest of the offset.
4358
4359 2021-07-02  Eric Botcazou  <ebotcazou@adacore.com>
4360
4361         * config/i386/i386.c (asm_preferred_eh_data_format): Always use the
4362         PIC encodings for PE-COFF targets.
4363
4364 2021-07-02  Jakub Jelinek  <jakub@redhat.com>
4365
4366         PR target/101286
4367         * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant):
4368         Return nullptr for TImode inner mode.
4369
4370 2021-07-02  Richard Biener  <rguenther@suse.de>
4371
4372         PR tree-optimization/101280
4373         PR tree-optimization/101173
4374         * gimple-loop-interchange.cc
4375         (tree_loop_interchange::valid_data_dependences): Properly
4376         guard all dependence checks with DDR_REVERSED_P or its
4377         inverse.
4378
4379 2021-07-02  Hongyu Wang  <hongyu.wang@intel.com>
4380
4381         * config/i386/i386-expand.c (ix86_expand_builtin):
4382         Add branch to clear odata when ZF is set for asedecenc_expand
4383         and wideaesdecenc_expand.
4384
4385 2021-07-02  Eugene Rozenfeld  <erozen@microsoft.com>
4386
4387         * config/i386/gcc-auto-profile: regenerate
4388
4389 2021-07-02  liuhongt  <hongtao.liu@intel.com>
4390
4391         * config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to ..
4392         (trunc<mode><pmov_dst_4_lower>2): this.
4393
4394 2021-07-01  David Malcolm  <dmalcolm@redhat.com>
4395
4396         * diagnostic.h (diagnostic_context::m_file_cache): New field.
4397         * input.c (class fcache): Rename to...
4398         (class file_cache_slot): ...this, making most members private and
4399         prefixing fields with "m_".
4400         (file_cache_slot::get_file_path): New accessor.
4401         (file_cache_slot::get_use_count): New accessor.
4402         (file_cache_slot::missing_trailing_newline_p): New accessor.
4403         (file_cache_slot::inc_use_count): New.
4404         (fcache_buffer_size): Move to...
4405         (file_cache_slot::buffer_size): ...here.
4406         (fcache_line_record_size): Move to...
4407         (file_cache_slot::line_record_size): ...here.
4408         (fcache_tab): Delete, in favor of global_dc->m_file_cache.
4409         (fcache_tab_size): Move to file_cache::num_file_slots.
4410         (diagnostic_file_cache_init): Update for move of fcache_tab
4411         to global_dc->m_file_cache.
4412         (diagnostic_file_cache_fini): Likewise.
4413         (lookup_file_in_cache_tab): Convert to...
4414         (file_cache::lookup_file): ...this.
4415         (diagnostics_file_cache_forcibly_evict_file): Update for move of
4416         fcache_tab to global_dc->m_file_cache, moving most of
4417         implementation to...
4418         (file_cache::forcibly_evict_file): ...this new function and...
4419         (file_cache_slot::evict): ...this new function.
4420         (evicted_cache_tab_entry): Convert to...
4421         (file_cache::evicted_cache_tab_entry): ...this.
4422         (add_file_to_cache_tab): Convert to...
4423         (file_cache::add_file): ...this, moving bulk of implementation
4424         to...
4425         (file_cache_slot::create): ..this new function.
4426         (file_cache::file_cache): New.
4427         (file_cache::~file_cache): New.
4428         (lookup_or_add_file_to_cache_tab): Convert to...
4429         (file_cache::lookup_or_add_file): ..this new function.
4430         (fcache::fcache): Rename to...
4431         (file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes
4432         to fields.
4433         (fcache::~fcache): Rename to...
4434         (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes
4435         to fields.
4436         (needs_read): Convert to...
4437         (file_cache_slot::needs_read_p): ...this.
4438         (needs_grow): Convert to...
4439         (file_cache_slot::needs_grow_p): ...this.
4440         (maybe_grow): Convert to...
4441         (file_cache_slot::maybe_grow): ...this.
4442         (read_data): Convert to...
4443         (file_cache_slot::read_data): ...this.
4444         (maybe_read_data): Convert to...
4445         (file_cache_slot::maybe_read_data): ...this.
4446         (get_next_line): Convert to...
4447         (file_cache_slot::get_next_line): ...this.
4448         (goto_next_line): Convert to...
4449         (file_cache_slot::goto_next_line): ...this.
4450         (read_line_num): Convert to...
4451         (file_cache_slot::read_line_num): ...this.
4452         (location_get_source_line): Update for moving of globals to
4453         global_dc->m_file_cache.
4454         (location_missing_trailing_newline): Likewise.
4455         * input.h (class file_cache_slot): New forward decl.
4456         (class file_cache): New.
4457
4458 2021-07-01  Michael Meissner  <meissner@linux.ibm.com>
4459
4460         * config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE
4461         128-bit floating point conditional move support.
4462         (have_compare_and_set_mask): Add IEEE 128-bit floating point
4463         types.
4464         * config/rs6000/rs6000.md (mov<mode>cc, IEEE128 iterator): New insn.
4465         (mov<mode>cc_p10, IEEE128 iterator): New insn.
4466         (mov<mode>cc_invert_p10, IEEE128 iterator): New insn.
4467         (fpmask<mode>, IEEE128 iterator): New insn.
4468         (xxsel<mode>, IEEE128 iterator): New insn.
4469
4470 2021-07-01  Iain Sandoe  <iain@sandoe.co.uk>
4471
4472         PR debug/101283
4473         * config/darwin.h (CTF_INFO_SECTION_NAME): New.
4474
4475 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
4476
4477         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
4478         Make it global.
4479         * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate):
4480         New prototype.
4481         * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator.
4482         (vec_duplicate<mode>): New expander.
4483
4484 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
4485
4486         PR target/100865
4487         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
4488         New prototype.
4489         (ix86_byte_broadcast): New function.
4490         (ix86_convert_const_wide_int_to_broadcast): Likewise.
4491         (ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode
4492         size is 16 bytes or bigger.
4493         (ix86_broadcast_from_integer_constant): New function.
4494         (ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR
4495         to broadcast if mode size is 16 bytes or bigger.
4496         * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New
4497         prototype.
4498         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function.
4499
4500 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
4501
4502         * config/i386/predicates.md (ix86_endbr_immediate_operand):
4503         Return true/false instead of 1/0.
4504         (movq_parallel): Ditto.
4505
4506 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
4507
4508         * recog.c (general_operand): Return true/false instead of 1/0.
4509         (register_operand): Ditto.
4510         (immediate_operand): Ditto.
4511         (const_int_operand): Ditto.
4512         (const_scalar_int_operand): Ditto.
4513         (const_double_operand): Ditto.
4514         (push_operand): Ditto.
4515         (pop_operand): Ditto.
4516         (memory_operand): Ditto.
4517         (indirect_operand): Ditto.
4518
4519 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
4520
4521         * genpreds.c (write_predicate_subfunction):
4522         Change the type of written subfunction to bool.
4523         (write_one_predicate_function):
4524         Change the type of written function to bool.
4525         (write_tm_preds_h): Ditto.
4526         * recog.h (*insn_operand_predicate_fn): Change the type to bool.
4527         * recog.c (general_operand): Change the type to bool.
4528         (address_operand): Ditto.
4529         (register_operand): Ditto.
4530         (pmode_register_operand): Ditto.
4531         (scratch_operand): Ditto.
4532         (immediate_operand): Ditto.
4533         (const_int_operand): Ditto.
4534         (const_scalar_int_operand): Ditto.
4535         (const_double_operand): Ditto.
4536         (nonimmediate_operand): Ditto.
4537         (nonmemory_operand): Ditto.
4538         (push_operand): Ditto.
4539         (pop_operand): Ditto.
4540         (memory_operand): Ditto.
4541         (indirect_operand): Ditto.
4542         (ordered_comparison_operator): Ditto.
4543         (comparison_operator): Ditto.
4544         * config/i386/i386-expand.c (ix86_expand_sse_cmp):
4545         Change the type of indirect predicate function to bool.
4546         * config/rs6000/rs6000.c (easy_vector_constant):
4547         Change the type to bool.
4548         * config/mips/mips-protos.h (m16_based_address_p):
4549         Change the type of operand 3 to bool.
4550
4551 2021-07-01  Richard Biener  <rguenther@suse.de>
4552
4553         PR tree-optimization/101280
4554         PR tree-optimization/101173
4555         * gimple-loop-interchange.cc
4556         (tree_loop_interchange::valid_data_dependences): Revert
4557         previous change and instead correctly handle DDR_REVERSED_P
4558         dependence.
4559
4560 2021-07-01  Richard Biener  <rguenther@suse.de>
4561
4562         PR tree-optimization/101278
4563         * tree-ssa-dse.c (dse_classify_store): First check for
4564         uses, then ignore stmt for chaining purposes.
4565
4566 2021-07-01  Richard Biener  <rguenther@suse.de>
4567
4568         PR tree-optimization/100778
4569         * tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping
4570         vectorized ops ahead of their scalar BB.
4571
4572 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
4573
4574         PR target/101044
4575         * config/i386/i386.md (*nabs<dwi>2_doubleword):
4576         New insn_and_split pattern.
4577         (*nabs<dwi>2_1): Ditto.
4578         * config/i386/i386-features.c
4579         (general_scalar_chain::compute_convert_gain):
4580         Handle (NEG (ABS (...))) RTX.  Rewrite src code
4581         scanner as switch statement.
4582         (general_scalar_chain::convert_insn):
4583         Handle (NEG (ABS (...))) RTX.
4584         (general_scalar_to_vector_candidate_p):
4585         Detect  (NEG (ABS (...))) RTX.  Reorder case statements
4586         for (AND (NOT (...) ...)) fallthrough.
4587
4588 2021-07-01  Richard Biener  <rguenther@suse.de>
4589
4590         PR tree-optimization/101178
4591         * tree-vect-slp.c (slpg_vertex::materialize): Remove.
4592         (slpg::perm_in): Add.
4593         (slpg::get_perm_in): Remove.
4594         (slpg::get_perm_materialized): Add.
4595         (vect_optimize_slp): Handle VEC_PERM nodes more optimally
4596         during permute propagation and materialization.
4597
4598 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
4599
4600         PR debug/101266
4601         * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR.
4602
4603 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
4604
4605         PR middle-end/94366
4606         * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to
4607         is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type,
4608         use boolean_type_node instead of integer_type_node as NE_EXPR type.
4609         (lower_reduction_clauses): Likewise.
4610
4611 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
4612
4613         * config/gcn/gcn.c: Include dwarf2.h.
4614         (gcn_addr_space_debug): New function.
4615         (TARGET_ADDR_SPACE_DEBUG): New hook.
4616
4617 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
4618
4619         * common/config/gcn/gcn-common.c
4620         (gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3.
4621         * config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer
4622         when emitting CFI.
4623         (gcn_expand_prologue): Prefer the frame pointer when emitting CFI.
4624         (gcn_frame_pointer_rqd): New function.
4625         (TARGET_FRAME_POINTER_REQUIRED): New hook.
4626
4627 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
4628
4629         * config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for
4630         prologue register saves.
4631         (gcn_debug_unwind_info): Use UI_DWARF2.
4632         (gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC.
4633         (gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span.
4634         * config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define.
4635         (DWARF_LINK_REGISTER): New define.
4636         (FIRST_PSEUDO_REGISTER): Increment.
4637         (FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER.
4638         (CALL_USED_REGISTERS): Likewise.
4639         (REGISTER_NAMES): Likewise.
4640
4641 2021-06-30  Richard Biener  <rguenther@suse.de>
4642
4643         PR tree-optimization/101267
4644         * tree-vect-stmts.c (vect_check_scalar_mask): Adjust
4645         API and use SLP compatible interface of vect_is_simple_use.
4646         Reject not vectorized SLP defs for callers that do not support
4647         that.
4648         (vect_check_store_rhs): Handle masked stores and pass down
4649         the appropriate operator index.
4650         (vectorizable_call): Adjust.
4651         (vectorizable_store): Likewise.
4652         (vectorizable_load): Likewise.  Handle SLP pecularity of
4653         masked loads.
4654         (vect_is_simple_use): Remove special-casing of masked stores.
4655
4656 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
4657
4658         * common.opt (foffload): Remove help as Driver only.
4659         * gcc.c (display_help): Add -foffload.
4660
4661 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
4662
4663         * gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC.
4664         (check_offload_target_name): Fix splitting OFFLOAD_TARGETS into
4665         a candidate list; better inform no offload target is configured
4666         and fix hint extraction when passed target is not '\0' at [len].
4667         * common.opt (foffload): Add tailing '.'.
4668         (foffload-options): Likewise; fix flag name in the help string.
4669
4670 2021-06-30  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
4671
4672         PR target/66791
4673         * config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32.
4674         (vcage_f32): Gate comparison on __FAST_MATH__.
4675         (vcageq_f32): Likewise.
4676         (vcale_f32): Likewise.
4677         (vcaleq_f32): Likewise.
4678         (vcagt_f32): Likewise.
4679         (vcagtq_f32): Likewise.
4680         (vcalt_f32): Likewise.
4681         (vcaltq_f32): Likewise.
4682         (vcage_f16): Likewise.
4683         (vcageq_f16): Likewise.
4684         (vcale_f16): Likewise.
4685         (vcaleq_f16): Likewise.
4686         (vcagt_f16): Likewise.
4687         (vcagtq_f16): Likewise.
4688         (vcalt_f16): Likewise.
4689         (vcaltq_f16): Likewise.
4690
4691 2021-06-30  Richard Biener  <rguenther@suse.de>
4692
4693         PR tree-optimization/101264
4694         * tree-vect-slp.c (vect_optimize_slp): Propagate the
4695         computed perm_in to all "any" permute successors
4696         we cannot de-duplicate immediately.
4697
4698 2021-06-30  liuhongt  <hongtao.liu@intel.com>
4699
4700         PR target/101248
4701         * config/i386/sse.md
4702         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>):
4703         Refined to ..
4704         (avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>):
4705         this.
4706         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>"): Refined.
4707         * config/i386/subst.md (maskz_scalar): New define_subst.
4708         (maskz_scalar_name): New subst_attr.
4709         (maskz_scalar_op5): Ditto.
4710         (round_saeonly_maskz_scalar_op5): Ditto.
4711         (round_saeonly_maskz_scalar_operand5): Ditto.
4712
4713 2021-06-30  David Edelsohn  <dje.gcc@gmail.com>
4714
4715         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
4716         Increase code CSECT alignment to at least 32 bytes.
4717         * config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte
4718         alignment designation.
4719
4720 2021-06-29  Sergei Trofimovich  <siarheit@google.com>
4721
4722         * doc/generic.texi: Fix s/net yet/not yet/ typo.
4723
4724 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
4725
4726         PR tree-optimization/101254
4727         * range-op.cc (operator_minus::op1_op2_relation_effect): Check for
4728         wrapping/non-wrapping when setting the result range.
4729
4730 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
4731
4732         * value-query.cc (gimple_range_global): Allow phis.
4733
4734 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
4735
4736         * vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt.
4737         (simplify_using_ranges::op_with_boolean_value_range_p): Add a
4738         statement for location context.
4739         (check_for_binary_op_overflow): Ditto.
4740         (simplify_using_ranges::get_vr_for_comparison): Ditto.
4741         (simplify_using_ranges::compare_name_with_value): Ditto.
4742         (simplify_using_ranges::compare_names): Ditto.
4743         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto.
4744         (simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto.
4745         (simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto.
4746         (simplify_using_ranges::simplify_internal_call_using_ranges): Ditto.
4747         (simplify_using_ranges::two_valued_val_range_p): Ditto.
4748         (simplify_using_ranges::simplify): Ditto.
4749         * vr-values.h: Adjust prototypes.
4750
4751 2021-06-29  Uroš Bizjak  <ubizjak@gmail.com>
4752
4753         PR target/95046
4754         * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern.
4755
4756 2021-06-29  Julian Brown  <julian@codesourcery.com>
4757
4758         * config/gcn/gcn.c (gcn_init_libfuncs): New function.
4759         (TARGET_INIT_LIBFUNCS): Define target hook using above function.
4760         * config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4
4761         otherwise.
4762         (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions.
4763         (MAX_FIXED_MODE_SIZE): Change to 128.
4764
4765 2021-06-29  Julian Brown  <julian@codesourcery.com>
4766
4767         * config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant.
4768         (s_mnemonic): Add clrsb.
4769         (gcn_flbit<mode>_int): Add insn pattern for SImode/DImode.
4770         (clrsb<mode>2): Add expander for SImode/DImode.
4771
4772 2021-06-29  Julian Brown  <julian@codesourcery.com>
4773
4774         * config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm,
4775         muldi3): Add patterns.
4776
4777 2021-06-29  Julian Brown  <julian@codesourcery.com>
4778
4779         * config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander.
4780         (<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns.
4781
4782 2021-06-29  Julian Brown  <julian@codesourcery.com>
4783
4784         * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.
4785
4786 2021-06-29  Joseph Myers  <joseph@codesourcery.com>
4787
4788         * btfout.c, ctfout.c: Include "memmodel.h".
4789
4790 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
4791
4792         * gcc.c (check_offload_target_name): Cast len argument to
4793         %q.*s to 'int'; avoid -Wstringop-truncation warning.
4794
4795 2021-06-29  Richard Biener  <rguenther@suse.de>
4796
4797         * tree-vect-slp.c (vect_optimize_slp): Forward propagate
4798         to "any" permute nodes and relax "any" permute proapgation
4799         during iterative backward propagation.
4800
4801 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
4802
4803         PR other/67300
4804         * common.opt (-foffload=): Update description.
4805         (-foffload-options=): New.
4806         * doc/invoke.texi (C Language Options): Document
4807         -foffload and -foffload-options.
4808         * gcc.c (check_offload_target_name): New, split off from
4809         handle_foffload_option.
4810         (check_foffload_target_names): New.
4811         (handle_foffload_option): Handle -foffload=default.
4812         (driver_handle_option): Update for -foffload-options.
4813         * lto-opts.c (lto_write_options): Use -foffload-options
4814         instead of -foffload.
4815         * lto-wrapper.c (merge_and_complain, append_offload_options):
4816         Likewise.
4817         * opts.c (common_handle_option): Likewise.
4818
4819 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
4820
4821         * doc/invoke.texi (C Language Options): Sort options
4822         alphabetically in optlist and also the description itself.
4823         Remove leftover -fallow-single-precision from and add missing
4824         -fgnu-tm to the optlist.
4825
4826 2021-06-29  Richard Biener  <rguenther@suse.de>
4827
4828         * tree-vect-slp.c (slpg_vertex::visited): Remove.
4829         (vect_slp_perms_eq): Handle -1 permutes.
4830         (vect_optimize_slp): Rewrite permute propagation.
4831
4832 2021-06-29  Jakub Jelinek  <jakub@redhat.com>
4833
4834         PR c++/101210
4835         * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't
4836         perform the optimization in GENERIC when sanitizing and x has a
4837         reference type.
4838
4839 2021-06-29  Richard Biener  <rguenther@suse.de>
4840
4841         PR tree-optimization/101242
4842         * tree-vect-slp.c (vect_slp_build_vertices): Force-add
4843         PHIs with not represented initial values as leafs.
4844
4845 2021-06-29  Jan-Benedict Glaw  <jbglaw@getslash.de>
4846
4847         * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning.
4848         * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove
4849         "register" keyword.
4850         (pdp11_initial_elimination_offset) Remove unused variable.
4851         (pdp11_cmp_length) Ditto.
4852         (pdp11_insn_cost): Ditto, and fix signedness warning.
4853
4854 2021-06-29  David Edelsohn  <dje.gcc@gmail.com>
4855
4856         * btfout.c: Include tm_p.h.
4857         * ctfout.c: Same.
4858
4859 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
4860
4861         * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as
4862         frame related.
4863         (bpf_expand_epilogue): Likewise.
4864         * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0.
4865         Do not define DBX_DEBUGGING_INFO.
4866
4867 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
4868
4869         * doc/invoke.texi: Document the CTF and BTF debug info options.
4870
4871 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
4872             David Faust  <david.faust@oracle.com>
4873             Jose E. Marchesi  <jose.marchesi@oracle.com>
4874             Weimin Pan  <weimin.pan@oracle.com>
4875
4876         * Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to
4877         GTFILES.  Add new object files.
4878         * common.opt: Add CTF and BTF debug info options.
4879         * btfout.c: New file.
4880         * ctfc.c: Likewise.
4881         * ctfc.h: Likewise.
4882         * ctfout.c: Likewise.
4883         * dwarf2ctf.c: Likewise.
4884         * dwarf2ctf.h: Likewise.
4885         * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and
4886         BTF_DEBUG.
4887         * dwarf2out.c (dwarf2out_source_line): Likewise.
4888         (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to
4889         be generated.
4890         (debug_format_do_cu): New function.
4891         (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for
4892         them if requested.
4893         Include dwarf2ctf.c.
4894         * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug
4895         formats.
4896         * flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG.
4897         (CTF_DEBUG): New bitmask.
4898         (BTF_DEBUG): Likewise.
4899         (enum ctf_debug_info_levels): New enum.
4900         * gengtype.c (open_base_files): Handle ctfc.h.
4901         (main): Handle uint32_t type.
4902         * flags.h (btf_debuginfo_p): New definition.
4903         (dwarf_based_debuginfo_p): Likewise.
4904         * opts.c (debug_type_names): Add entries for CTF and BTF.
4905         (btf_debuginfo_p): New function.
4906         (dwarf_based_debuginfo_p): Likewise.
4907         (common_handle_option): Handle -gctfN and -gbtf options.
4908         (set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate.
4909         * toplev.c (process_options): Inform the user and ignore -gctfLEVEL if
4910         frontend is not C.
4911
4912 2021-06-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
4913
4914         * dwarf2out.c (AT_class): Function is no longer static.
4915         (AT_int): Likewise.
4916         (AT_unsigned): Likewise.
4917         (AT_loc): Likewise.
4918         (get_AT): Likewise.
4919         (get_AT_string): Likewise.
4920         (get_AT_flag): Likewise.
4921         (get_AT_unsigned): Likewise.
4922         (get_AT_ref): Likewise.
4923         (new_die_raw): Likewise.
4924         (lookup_decl_die): Likewise.
4925         (base_type_die): Likewise.
4926         (add_name_attribute): Likewise.
4927         (add_AT_int): Likewise.
4928         (add_AT_unsigned): Likewise.
4929         (add_AT_loc): Likewise.
4930         (dw_get_die_tag): New function.
4931         (dw_get_die_child): Likewise.
4932         (dw_get_die_sib): Likewise.
4933         (struct dwarf_file_data): Move from here to dwarf2out.h
4934         (struct dw_attr_struct): Likewise.
4935         * dwarf2out.h: Analogous changes.
4936
4937 2021-06-28  Martin Jambor  <mjambor@suse.cz>
4938
4939         PR ipa/93385
4940         * ipa-param-manipulation.h (class ipa_param_body_adjustments): New
4941         members m_dead_stmts and m_dead_ssas.
4942         * ipa-param-manipulation.c
4943         (ipa_param_body_adjustments::mark_dead_statements): New function.
4944         (ipa_param_body_adjustments::common_initialization): Call it on
4945         all removed but not split parameters.
4946         (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
4947         new mwmbers.
4948         (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that
4949         are dead.
4950         * tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset
4951         dead debug statements.
4952         (copy_phis_for_bb): Do not copy dead PHI nodes.
4953
4954 2021-06-28  Martin Jambor  <mjambor@suse.cz>
4955
4956         PR ipa/93385
4957         * symtab-clones.h (clone_info): Removed member param_adjustments.
4958         * ipa-param-manipulation.h: Adjust initial comment to reflect how we
4959         deal with pass-through splits now.
4960         (ipa_param_performed_split): Removed.
4961         (ipa_param_adjustments::modify_call): Adjusted parameters.
4962         (class ipa_param_body_adjustments): Adjusted parameters of
4963         register_replacement, modify_gimple_stmt and modify_call_stmt.
4964         (ipa_verify_edge_has_no_modifications): Declare.
4965         (ipa_edge_modifications_finalize): Declare.
4966         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove
4967         performed_splits processing, pas only edge to padjs->modify_call,
4968         check that call arguments were not modified if they should not have
4969         been.
4970         * cgraphclones.c (cgraph_node::create_clone): Do not copy performed
4971         splits.
4972         * ipa-param-manipulation.c (struct pass_through_split_map): New type.
4973         (ipa_edge_modification_info): Likewise.
4974         (ipa_edge_modification_sum): Likewise.
4975         (ipa_edge_modifications): New edge summary.
4976         (ipa_verify_edge_has_no_modifications): New function.
4977         (transitive_split_p): Removed.
4978         (transitive_split_map): Likewise.
4979         (init_transitive_splits): Likewise.
4980         (ipa_param_adjustments::modify_call): Adjusted to use the new edge
4981         summary instead of performed_splits.
4982         (ipa_param_body_adjustments::register_replacement): Drop dummy
4983         parameter, set base_index of the created ipa_param_body_replacement.
4984         (phi_arg_will_live_p): New function.
4985         (ipa_param_body_adjustments::common_initialization): Do not create
4986         IPA_SRA dummy decls.
4987         (simple_tree_swap_info): Removed.
4988         (remap_split_decl_to_dummy): Likewise.
4989         (record_argument_state_1): New function.
4990         (record_argument_state): Likewise.
4991         (ipa_param_body_adjustments::modify_call_stmt): New parameter
4992         orig_stmt.  Do not work with dummy decls, save necessary info about
4993         changes to ipa_edge_modifications.
4994         (ipa_param_body_adjustments::modify_gimple_stmt): New parameter
4995         orig_stmt, pass it to modify_call_stmt.
4996         (ipa_param_body_adjustments::modify_cfun_body): Adjust call to
4997         modify_gimple_stmt.
4998         (ipa_edge_modifications_finalize): New function.
4999         * tree-inline.c (remap_gimple_stmt): Pass original statement to
5000         modify_gimple_stmt.
5001         (copy_phis_for_bb): Do not copy dead PHI nodes.
5002         (expand_call_inline): Do not remap performed_splits.
5003         (update_clone_info): Likewise.
5004         * toplev.c: Include ipa-param-manipulation.h.
5005         (toplev::finalize): Call ipa_edge_modifications_finalize.
5006
5007 2021-06-28  Andrew Pinski  <apinski@marvell.com>
5008
5009         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range
5010         info if we're the only things setting the target PHI.
5011         (value_replacement): Don't duplicate range here.
5012         (minmax_replacement): Likewise.
5013
5014 2021-06-28  Richard Biener  <rguenther@suse.de>
5015
5016         PR tree-optimization/101229
5017         * gimple-walk.c (gimple_walk_op): Handle PHIs.
5018
5019 2021-06-28  Martin Liska  <mliska@suse.cz>
5020
5021         * config/v850/v850.c (construct_dispose_instruction): Allocate
5022         a bigger buffer.
5023         (construct_prepare_instruction): Likewise.
5024
5025 2021-06-28  Martin Liska  <mliska@suse.cz>
5026
5027         * config/v850/v850.c (v850_option_override): Build default
5028         target node.
5029         (v850_can_inline_p): New.  Allow MASK_PROLOG_FUNCTION to be
5030         ignored for inlining.
5031         (TARGET_CAN_INLINE_P): New.
5032
5033 2021-06-28  Richard Biener  <rguenther@suse.de>
5034
5035         PR tree-optimization/101207
5036         * tree-vect-slp.c (vect_optimize_slp): Do BB reduction
5037         permute eliding for load permutations properly.
5038
5039 2021-06-28  Richard Biener  <rguenther@suse.de>
5040
5041         PR tree-optimization/101173
5042         * gimple-loop-interchange.cc
5043         (tree_loop_interchange::valid_data_dependences): Disallow outer
5044         loop dependence distance of zero.
5045
5046 2021-06-28  liuhongt  <hongtao.liu@intel.com>
5047
5048         PR target/100648
5049         * config/i386/sse.md (*avx_cmp<mode>3_lt): New
5050         define_insn_and_split.
5051         (*avx_cmp<mode>3_ltint): Ditto.
5052         (*avx2_pcmp<mode>3_3): Ditto.
5053         (*avx2_pcmp<mode>3_4): Ditto.
5054         (*avx2_pcmp<mode>3_5): Ditto.
5055
5056 2021-06-28  liuhongt  <hongtao.liu@intel.com>
5057
5058         * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256,
5059         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256,
5060         IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS,
5061         IX86_BUILTIN_PBLENDVB128): Replace icode with
5062         CODE_FOR_nothing.
5063         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv
5064         builtins.
5065         * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not):
5066         New pre_reload splitter.
5067
5068 2021-06-27  Andrew Pinski  <apinski@marvell.com>
5069
5070         PR middle-end/101230
5071         * fold-const.c (fold_ternary_loc): Check
5072         the return value of invert_tree_comparison.
5073
5074 2021-06-27  David Edelsohn  <dje.gcc@gmail.com>
5075
5076         * config.gcc: Add SPDX License Identifier.
5077         (powerpc-ibm-aix789): Default to aix73.h.
5078         (powerpc-ibm-aix7.2.*.*): New stanza.
5079         * config/rs6000/aix72.h: Add SPDX License Identifier.
5080         * config/rs6000/aix73.h: New file.
5081
5082 2021-06-26  Jason Merrill  <jason@redhat.com>
5083
5084         * except.c: #include "dwarf2.h" instead of "dwarf2out.h".
5085
5086 2021-06-26  Andrew Pinski  <apinski@marvell.com>
5087
5088         * genmatch.c (lower_cond): Copy for_subst_vec
5089         for the simplify also.
5090         (lower): Swap the order for lower_for and lower_cond.
5091
5092 2021-06-26  Andrew Pinski  <apinski@marvell.com>
5093
5094         * tree-ssa-phiopt.c (match_simplify_replacement): Reset
5095         flow senatitive info on the moved ssa set.
5096
5097 2021-06-26  Andrew Pinski  <apinski@marvell.com>
5098
5099         * fold-const.c (fold_cond_expr_with_comparison):
5100         Exand arg0 into comp_code, arg00, and arg01.
5101         (fold_ternary_loc): Use invert_tree_comparison
5102         instead of fold_invert_truthvalue for the case
5103         where we have A CMP B ? C : A.
5104
5105 2021-06-25  Martin Sebor  <msebor@redhat.com>
5106
5107         PR middle-end/101216
5108         * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant.
5109
5110 2021-06-25  Jeff Law  <jeffreyalaw@gmail.com>
5111
5112         * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT.
5113
5114 2021-06-25  Richard Biener  <rguenther@suse.de>
5115
5116         PR tree-optimization/101202
5117         * tree-vect-slp.c (vect_optimize_slp): Explicitely handle
5118         failed nodes.
5119
5120 2021-06-25  Richard Biener  <rguenther@suse.de>
5121
5122         * tree-vect-slp-patterns.c (addsub_pattern::build): Copy
5123         STMT_VINFO_REDUC_DEF from the original representative.
5124
5125 2021-06-25  Martin Sebor  <msebor@redhat.com>
5126
5127         * builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING,
5128         gimple_no_warning_p and gimple_set_no_warning with
5129         warning_suppressed_p, and suppress_warning.
5130         (c_strlen): Same.
5131         (maybe_warn_for_bound): Same.
5132         (warn_for_access): Same.
5133         (check_access): Same.
5134         (expand_builtin_strncmp): Same.
5135         (fold_builtin_varargs): Same.
5136         * calls.c (maybe_warn_nonstring_arg): Same.
5137         (maybe_warn_rdwr_sizes): Same.
5138         * cfgexpand.c (expand_call_stmt): Same.
5139         * cgraphunit.c (check_global_declaration): Same.
5140         * fold-const.c (fold_undefer_overflow_warnings): Same.
5141         (fold_truth_not_expr): Same.
5142         (fold_unary_loc): Same.
5143         (fold_checksum_tree): Same.
5144         * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same.
5145         (array_bounds_checker::check_mem_ref): Same.
5146         (array_bounds_checker::check_addr_expr): Same.
5147         (array_bounds_checker::check_array_bounds): Same.
5148         * gimple-expr.c (copy_var_decl): Same.
5149         * gimple-fold.c (gimple_fold_builtin_strcpy): Same.
5150         (gimple_fold_builtin_strncat): Same.
5151         (gimple_fold_builtin_stxcpy_chk): Same.
5152         (gimple_fold_builtin_stpcpy): Same.
5153         (gimple_fold_builtin_sprintf): Same.
5154         (fold_stmt_1): Same.
5155         * gimple-ssa-isolate-paths.c (diag_returned_locals): Same.
5156         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
5157         * gimple-ssa-sprintf.c (handle_printf_call): Same.
5158         * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same.
5159         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
5160         * gimple-ssa-warn-restrict.h: Adjust declarations.
5161         (maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING,
5162         gimple_no_warning_p and gimple_set_no_warning with
5163         warning_suppressed_p, and suppress_warning.
5164         (check_call): Same.
5165         (check_bounds_or_overlap): Same.
5166         * gimple.c (gimple_build_call_from_tree): Same.
5167         * gimplify.c (gimplify_return_expr): Same.
5168         (gimplify_cond_expr): Same.
5169         (gimplify_modify_expr_complex_part): Same.
5170         (gimplify_modify_expr): Same.
5171         (gimple_push_cleanup): Same.
5172         (gimplify_expr): Same.
5173         * omp-expand.c (expand_omp_for_generic): Same.
5174         (expand_omp_taskloop_for_outer): Same.
5175         * omp-low.c (lower_rec_input_clauses): Same.
5176         (lower_lastprivate_clauses): Same.
5177         (lower_send_clauses): Same.
5178         (lower_omp_target): Same.
5179         * tree-cfg.c (pass_warn_function_return::execute): Same.
5180         * tree-complex.c (create_one_component_var): Same.
5181         * tree-inline.c (remap_gimple_op_r): Same.
5182         (copy_tree_body_r): Same.
5183         (declare_return_variable): Same.
5184         (expand_call_inline): Same.
5185         * tree-nested.c (lookup_field_for_decl): Same.
5186         * tree-sra.c (create_access_replacement): Same.
5187         (generate_subtree_copies): Same.
5188         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same.
5189         * tree-ssa-forwprop.c (combine_cond_expr_cond): Same.
5190         * tree-ssa-loop-ch.c (ch_base::copy_headers): Same.
5191         * tree-ssa-loop-im.c (execute_sm): Same.
5192         * tree-ssa-phiopt.c (cond_store_replacement): Same.
5193         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
5194         (handle_builtin_strcpy): Same.
5195         (maybe_diag_stxncpy_trunc): Same.
5196         (handle_builtin_stxncpy_strncat): Same.
5197         (handle_builtin_strcat): Same.
5198         * tree-ssa-uninit.c (get_no_uninit_warning): Same.
5199         (set_no_uninit_warning): Same.
5200         (uninit_undefined_value_p): Same.
5201         (warn_uninit): Same.
5202         (maybe_warn_operand): Same.
5203         * tree-vrp.c (compare_values_warnv): Same.
5204         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same.
5205         (test_for_singularity): Same.
5206         * gimple.h (warning_suppressed_p): New function.
5207         (suppress_warning): Same.
5208         (copy_no_warning): Same.
5209         (gimple_set_block): Call gimple_set_location.
5210         (gimple_set_location): Call copy_warning.
5211
5212 2021-06-25  Martin Sebor  <msebor@redhat.com>
5213
5214         * tree.h (warning_suppressed_at, copy_warning,
5215         warning_suppressed_p, suppress_warning): New functions.
5216
5217 2021-06-25  Martin Sebor  <msebor@redhat.com>
5218
5219         * Makefile.in (OBJS-libcommon): Add diagnostic-spec.o.
5220         * gengtype.c (open_base_files): Add diagnostic-spec.h.
5221         * diagnostic-spec.c: New file.
5222         * diagnostic-spec.h: New file.
5223         * tree.h (no_warning, all_warnings, suppress_warning_at): New
5224         declarations.
5225         * warning-control.cc: New file.
5226
5227 2021-06-25  liuhongt  <hongtao.liu@intel.com>
5228
5229         PR target/101185
5230         * config/i386/i386.c (x86_order_regs_for_local_alloc):
5231         Revert r12-1669.
5232
5233 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
5234
5235         PR tree-optimization/101189
5236         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass
5237         LHS range of condition to postfold routine.
5238         (fold_using_range::postfold_gcond_edges): Only process the TRUE or
5239         FALSE edge if the LHS range supports it being taken.
5240         * gimple-range-fold.h (postfold_gcond_edges): Add range parameter.
5241
5242 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
5243
5244         * value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks.
5245         (relation_oracle::find_relation_block): Check correct bitmap.
5246         (relation_oracle::dump): Do not dump NULL blocks.
5247
5248 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
5249
5250         * gimple-range-cache.cc (ranger_cache::propagate_cache): Call
5251         range_on_edge instead of manually calculating.
5252
5253 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
5254
5255         * range-op.cc: Fix comment.
5256
5257 2021-06-24  Uroš Bizjak  <ubizjak@gmail.com>
5258
5259         PR target/89021
5260         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
5261         Handle V8QI and V4HI modes.
5262         * config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2):
5263         New insn pattern.
5264         (sse4_1_<any_extend:code>v4qiv4hi2): Ditto.
5265         (mmxpackmode): New mode attribute.
5266         (vec_pack_trunc_<mmxpackmode:mode>): New expander.
5267         (mmxunpackmode): New mode attribute.
5268         (vec_unpacks_lo_<mmxunpackmode:mode>): New expander.
5269         (vec_unpacks_hi_<mmxunpackmode:mode>): Ditto.
5270         (vec_unpacku_lo_<mmxunpackmode:mode>): Ditto.
5271         (vec_unpacku_hi_<mmxunpackmode:mode>): Ditto.
5272         * config/i386/i386.md (extsuffix): Move from ...
5273         * config/i386/sse.md: ... here.
5274
5275 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
5276
5277         * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here..
5278         (dwarf2out_finish): ...instead of here.
5279
5280 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
5281
5282         * configure.ac (--gdwarf-5 option): Use objdump instead of readelf.
5283         (working --gdwarf-4/--gdwarf-5 for all sources): Likewise.
5284         (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows.
5285         * configure: Regenerate.
5286
5287 2021-06-24  Richard Biener  <rguenther@suse.de>
5288
5289         * config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3,
5290         vec_addsubv8sf3, vec_addsubv4sf3): Merge into ...
5291         (vec_addsub<mode>3): ... using a new addsub_cst mode attribute.
5292
5293 2021-06-24  Richard Biener  <rguenther@suse.de>
5294
5295         * config/i386/sse.md (avx_addsubv4df3): Rename to
5296         vec_addsubv4df3.
5297         (avx_addsubv8sf3): Rename to vec_addsubv8sf3.
5298         (sse3_addsubv2df3): Rename to vec_addsubv2df3.
5299         (sse3_addsubv4sf3): Rename to vec_addsubv4sf3.
5300         * config/i386/i386-builtin.def: Adjust.
5301         * internal-fn.def (VEC_ADDSUB): New internal optab fn.
5302         * optabs.def (vec_addsub_optab): New optab.
5303         * tree-vect-slp-patterns.c (class addsub_pattern): New.
5304         (slp_patterns): Add addsub_pattern.
5305         * tree-vect-slp.c (vect_optimize_slp): Disable propagation
5306         across CFN_VEC_ADDSUB.
5307         * tree-vectorizer.h (vect_pattern::vect_pattern): Make
5308         m_ops optional.
5309         * doc/md.texi (vec_addsub<mode>3): Document.
5310
5311 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
5312
5313         PR middle-end/101170
5314         * df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs
5315         where regno + subreg_regno_offset wraps around use 0 as starting
5316         regno.
5317
5318 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
5319
5320         PR middle-end/101172
5321         * stor-layout.c (finish_bitfield_representative): If nextf has
5322         error_mark_node type, set repr type to error_mark_node too.
5323
5324 2021-06-24  Ilya Leoshkevich  <iii@linux.ibm.com>
5325
5326         * config/s390/s390.c (s390_function_profiler): Ignore labelno
5327         parameter.
5328         * config/s390/s390.h (NO_PROFILE_COUNTERS): Define.
5329
5330 2021-06-24  Richard Biener  <rguenther@suse.de>
5331
5332         * tree-vect-slp.c (vect_optimize_slp): Do not propagate
5333         across operations that have different semantics on different
5334         lanes.
5335
5336 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
5337
5338         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP.
5339         * gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses
5340         with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification
5341         of non-decl OMP_CLAUSE_DECL.  For OMP_CLAUSE_IN_REDUCTION on
5342         OMP_TARGET user outer_ctx instead of ctx for placeholders and
5343         initializer/combiner gimplification.
5344         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION
5345         on target constructs.
5346         (lower_rec_input_clauses): Likewise.
5347         (lower_omp_target): Likewise.
5348         * omp-expand.c (expand_omp_target): Temporarily ignore nowait clause
5349         on target if in_reduction is present.
5350
5351 2021-06-24  Kewen Lin  <linkw@linux.ibm.com>
5352
5353         * tree-predcom.c (class pcom_worker): New class.
5354         (release_chain): Renamed to...
5355         (pcom_worker::release_chain): ...this.
5356         (release_chains): Renamed to...
5357         (pcom_worker::release_chains): ...this.
5358         (aff_combination_dr_offset): Renamed to...
5359         (pcom_worker::aff_combination_dr_offset): ...this.
5360         (determine_offset): Renamed to...
5361         (pcom_worker::determine_offset): ...this.
5362         (class comp_ptrs): New class.
5363         (split_data_refs_to_components): Renamed to...
5364         (pcom_worker::split_data_refs_to_components): ...this,
5365         and update with class comp_ptrs.
5366         (suitable_component_p): Renamed to...
5367         (pcom_worker::suitable_component_p): ...this.
5368         (filter_suitable_components): Renamed to...
5369         (pcom_worker::filter_suitable_components): ...this.
5370         (valid_initializer_p): Renamed to...
5371         (pcom_worker::valid_initializer_p): ...this.
5372         (find_looparound_phi): Renamed to...
5373         (pcom_worker::find_looparound_phi): ...this.
5374         (add_looparound_copies): Renamed to...
5375         (pcom_worker::add_looparound_copies): ...this.
5376         (determine_roots_comp): Renamed to...
5377         (pcom_worker::determine_roots_comp): ...this.
5378         (determine_roots): Renamed to...
5379         (pcom_worker::determine_roots): ...this.
5380         (single_nonlooparound_use): Renamed to...
5381         (pcom_worker::single_nonlooparound_use): ...this.
5382         (remove_stmt): Renamed to...
5383         (pcom_worker::remove_stmt): ...this.
5384         (execute_pred_commoning_chain): Renamed to...
5385         (pcom_worker::execute_pred_commoning_chain): ...this.
5386         (execute_pred_commoning): Renamed to...
5387         (pcom_worker::execute_pred_commoning): ...this.
5388         (struct epcc_data): New member worker.
5389         (execute_pred_commoning_cbck): Call execute_pred_commoning
5390         with pcom_worker pointer.
5391         (find_use_stmt): Renamed to...
5392         (pcom_worker::find_use_stmt): ...this.
5393         (find_associative_operation_root): Renamed to...
5394         (pcom_worker::find_associative_operation_root): ...this.
5395         (find_common_use_stmt): Renamed to...
5396         (pcom_worker::find_common_use_stmt): ...this.
5397         (combinable_refs_p): Renamed to...
5398         (pcom_worker::combinable_refs_p): ...this.
5399         (reassociate_to_the_same_stmt): Renamed to...
5400         (pcom_worker::reassociate_to_the_same_stmt): ...this.
5401         (stmt_combining_refs): Renamed to...
5402         (pcom_worker::stmt_combining_refs): ...this.
5403         (combine_chains): Renamed to...
5404         (pcom_worker::combine_chains): ...this.
5405         (try_combine_chains): Renamed to...
5406         (pcom_worker::try_combine_chains): ...this.
5407         (prepare_initializers_chain): Renamed to...
5408         (pcom_worker::prepare_initializers_chain): ...this.
5409         (prepare_initializers): Renamed to...
5410         (pcom_worker::prepare_initializers): ...this.
5411         (prepare_finalizers_chain): Renamed to...
5412         (pcom_worker::prepare_finalizers_chain): ...this.
5413         (prepare_finalizers): Renamed to...
5414         (pcom_worker::prepare_finalizers): ...this.
5415         (tree_predictive_commoning_loop): Renamed to...
5416         (pcom_worker::tree_predictive_commoning_loop): ...this, adjust
5417         some calls and remove some cleanup code.
5418         (tree_predictive_commoning): Adjusted to use pcom_worker instance.
5419         (static variable looparound_phis): Remove.
5420         (static variable name_expansions): Remove.
5421
5422 2021-06-24  Richard Biener  <rguenther@suse.de>
5423
5424         * tree-vect-slp.c (slpg_vertex): New struct.
5425         (vect_slp_build_vertices): Adjust.
5426         (vect_optimize_slp): Likewise.  Maintain an outgoing permute
5427         and a materialized one.
5428
5429 2021-06-24  Richard Biener  <rguenther@suse.de>
5430
5431         PR tree-optimization/101105
5432         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
5433         Only ignore steps when they are equal or scalar order is preserved.
5434
5435 2021-06-24  liuhongt  <hongtao.liu@intel.com>
5436
5437         PR target/98434
5438         * config/i386/i386-expand.c (ix86_expand_vec_interleave):
5439         Adjust comments for ix86_expand_vecop_qihi2.
5440         (ix86_expand_vecmul_qihi): Renamed to ..
5441         (ix86_expand_vecop_qihi2): Adjust function prototype to
5442         support shift operation, add static to definition.
5443         (ix86_expand_vec_shift_qihi_constant): Add static to definition.
5444         (ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and
5445         ix86_expand_vec_shift_qihi_constant.
5446         * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted.
5447         (ix86_expand_vec_shift_qihi_constant): Deleted.
5448         * config/i386/sse.md (VI12_256_512_AVX512VL): New mode
5449         iterator.
5450         (mulv8qi3): Call ix86_expand_vecop_qihi directly, add
5451         condition TARGET_64BIT.
5452         (mul<mode>3): Ditto.
5453         (<insn><mode>3): Ditto.
5454         (vlshr<mode>3): Extend to support avx512 vlshr.
5455         (v<insn><mode>3): New expander for
5456         vashr/vlshr/vashl.
5457         (v<insn>v8qi3): Ditto.
5458         (vashrv8hi3<mask_name>): Renamed to ..
5459         (vashr<mode>3): And extend to support V16QImode for avx512.
5460         (vashrv16qi3): Deleted.
5461         (vashrv2di3<mask_name>): Extend expander to support avx512
5462         instruction.
5463
5464 2021-06-23  Dimitar Dimitrov  <dimitar@dinux.eu>
5465
5466         * doc/lto.texi (Design Overview): Update that slim objects are
5467         the default.
5468
5469 2021-06-23  Aaron Sawdey  <acsawdey@linux.ibm.com>
5470
5471         * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out
5472         of OTHER_POWER10_MASKS so it will not be enabled by default.
5473
5474 2021-06-23  Richard Biener  <rguenther@suse.de>
5475             Martin Jambor  <mjambor@suse.cz>
5476
5477         * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the
5478         param replacement unconditionally.  Adjust comment.
5479
5480 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
5481
5482         * Makefile.in (OBJS): Add gimple-range-fold.o
5483         * gimple-range-fold.cc: New.
5484         * gimple-range-fold.h: New.
5485         * gimple-range-gori.cc (gimple_range_calc_op1): Move to here.
5486         (gimple_range_calc_op2): Ditto.
5487         * gimple-range-gori.h: Move prototypes to here.
5488         * gimple-range.cc: Adjust include files.
5489         (fur_source:fur_source): Relocate to gimple-range-fold.cc.
5490         (fur_source::get_operand): Ditto.
5491         (fur_source::get_phi_operand): Ditto.
5492         (fur_source::query_relation): Ditto.
5493         (fur_source::register_relation): Ditto.
5494         (class fur_edge): Ditto.
5495         (fur_edge::fur_edge): Ditto.
5496         (fur_edge::get_operand): Ditto.
5497         (fur_edge::get_phi_operand): Ditto.
5498         (fur_stmt::fur_stmt): Ditto.
5499         (fur_stmt::get_operand): Ditto.
5500         (fur_stmt::get_phi_operand): Ditto.
5501         (fur_stmt::query_relation): Ditto.
5502         (class fur_depend): Relocate to gimple-range-fold.h.
5503         (fur_depend::fur_depend): Relocate to gimple-range-fold.cc.
5504         (fur_depend::register_relation): Ditto.
5505         (fur_depend::register_relation): Ditto.
5506         (class fur_list): Ditto.
5507         (fur_list::fur_list): Ditto.
5508         (fur_list::get_operand): Ditto.
5509         (fur_list::get_phi_operand): Ditto.
5510         (fold_range): Ditto.
5511         (adjust_pointer_diff_expr): Ditto.
5512         (gimple_range_adjustment): Ditto.
5513         (gimple_range_base_of_assignment): Ditto.
5514         (gimple_range_operand1): Ditto.
5515         (gimple_range_operand2): Ditto.
5516         (gimple_range_calc_op1): Relocate to gimple-range-gori.cc.
5517         (gimple_range_calc_op2): Ditto.
5518         (fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc.
5519         (fold_using_range::range_of_range_op): Ditto.
5520         (fold_using_range::range_of_address): Ditto.
5521         (fold_using_range::range_of_phi): Ditto.
5522         (fold_using_range::range_of_call): Ditto.
5523         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
5524         (fold_using_range::range_of_builtin_call): Ditto.
5525         (fold_using_range::range_of_cond_expr): Ditto.
5526         (fold_using_range::range_of_ssa_name_with_loop_info): Ditto.
5527         (fold_using_range::relation_fold_and_or): Ditto.
5528         (fold_using_range::postfold_gcond_edges): Ditto.
5529         * gimple-range.h: Add gimple-range-fold.h to include files. Change
5530         GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H.
5531         (gimple_range_handler): Relocate to gimple-range-fold.h.
5532         (gimple_range_ssa_p): Ditto.
5533         (range_compatible_p): Ditto.
5534         (class fur_source): Ditto.
5535         (class fur_stmt): Ditto.
5536         (class fold_using_range): Ditto.
5537         (gimple_range_calc_op1): Relocate to gimple-range-gori.h
5538         (gimple_range_calc_op2): Ditto.
5539
5540 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
5541
5542         PR tree-optimization/101148
5543         PR tree-optimization/101014
5544         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
5545         (ranger_cache::~ranger_cache): Adjust.
5546         (ranger_cache::block_range): Check if propagation disallowed.
5547         (ranger_cache::propagate_cache): Disallow propagation if new value
5548         can't be stored properly.
5549         * gimple-range-cache.h (ranger_cache::m_propfail): New member.
5550
5551 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
5552
5553         * gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype.
5554         (sbr_vector::set_bb_range): Return true.
5555         (class sbr_sparse_bitmap): Adjust.
5556         (sbr_sparse_bitmap::set_bb_range): Return value.
5557         (block_range_cache::set_bb_range): Return value.
5558         (ranger_cache::propagate_cache): Use return value to print msg.
5559         * gimple-range-cache.h (class block_range_cache): Adjust.
5560
5561 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
5562
5563         * gimple-range.cc (dump_bb): Use range_on_edge from the cache.
5564
5565 2021-06-23  Jeff Law  <jeffreyalaw@gmail.com>
5566
5567         * config/h8300/logical.md (<code><mode>3<ccnz>): Use <cczn>
5568         so this pattern can be used for test/compare removal.  Pass
5569         current insn to compute_logical_op_length and output_logical_op.
5570         * config/h8300/h8300.c (compute_logical_op_cc): Remove.
5571         (h8300_and_costs): Add argument to compute_logical_op_length.
5572         (output_logical_op): Add new argument.  Use it to determine if the
5573         condition codes are used and adjust the output accordingly.
5574         (compute_logical_op_length): Add new argument and update length
5575         computations when condition codes are used.
5576         * config/h8300/h8300-protos.h (compute_logical_op_length): Update
5577         prototype.
5578         (output_logical_op): Likewise.
5579
5580 2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>
5581
5582         PR target/89021
5583         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
5584         Handle 64bit modes for TARGET_XOP.  Use indirect gen_* functions.
5585         * config/i386/mmx.md (mmx_ppermv64): New insn pattern.
5586         * config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ...
5587         * config/i386/sse.md (unspec): ... here.
5588
5589 2021-06-23  Martin Liska  <mliska@suse.cz>
5590
5591         PR target/98636
5592         * optc-save-gen.awk: Put back arm_fp16_format to
5593         checked_options.
5594
5595 2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>
5596
5597         PR target/101175
5598         * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX.
5599         (bsr): Ditto.
5600         (*bsrhi): Remove.
5601         (clz<mode>2): Update RTX pattern for additions.
5602
5603 2021-06-23  Jakub Jelinek  <jakub@redhat.com>
5604
5605         PR middle-end/101167
5606         * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs
5607         and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set.
5608
5609 2021-06-22  Sergei Trofimovich  <siarheit@google.com>
5610
5611         * doc/rtl.texi: drop unbalanced parenthesis.
5612
5613 2021-06-22  Richard Biener  <rguenther@suse.de>
5614
5615         PR middle-end/101156
5616         * gimplify.c (gimplify_expr): Remove premature incorrect
5617         optimization.
5618
5619 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
5620
5621         PR tree-optimization/101159
5622         * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some
5623         comment typos.
5624
5625 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
5626
5627         PR middle-end/101160
5628         * function.c (assign_parms): For decl_result with TYPE_EMPTY_P type
5629         clear crtl->return_rtx instead of keeping it referencing a pseudo.
5630
5631 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
5632             Andrew Pinski  <apinski@marvell.com>
5633
5634         PR tree-optimization/101162
5635         * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer
5636         types.
5637
5638 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
5639
5640         * range-op.cc (range_relational_tests): New.
5641         (range_op_tests): Call range_relational_tests.
5642
5643 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
5644
5645         * range-op.cc (operator_cast::lhs_op1_relation): New.
5646         (operator_identity::lhs_op1_relation): Mew.
5647
5648 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
5649
5650         * range-op.cc (operator_minus::op1_op2_relation_effect): New.
5651
5652 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
5653
5654         * range-op.cc (operator_plus::lhs_op1_relation): New.
5655         (operator_plus::lhs_op2_relation): New.
5656
5657 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
5658
5659         * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a
5660         relation_oracle if dominators exist.
5661         (ranger_cache::~ranger_cache): Dispose of oracle.
5662         (ranger_cache::dump_bb): Dump oracle.
5663         * gimple-range.cc (fur_source::fur_source): New.
5664         (fur_source::get_operand): Use mmeber query.
5665         (fur_source::get_phi_operand): Use member_query.
5666         (fur_source::query_relation): New.
5667         (fur_source::register_dependency): Delete.
5668         (fur_source::register_relation): New.
5669         (fur_edge::fur_edge): Adjust.
5670         (fur_edge::get_phi_operand): Fix comment.
5671         (fur_edge::query): Delete.
5672         (fur_stmt::fur_stmt): Adjust.
5673         (fur_stmt::query): Delete.
5674         (fur_depend::fur_depend): Adjust.
5675         (fur_depend::register_relation): New.
5676         (fur_depend::register_relation): New.
5677         (fur_list::fur_list): Adjust.
5678         (fur_list::get_operand): Use member query.
5679         (fold_using_range::range_of_range_op): Process and query relations.
5680         (fold_using_range::range_of_address): Adjust dependency call.
5681         (fold_using_range::range_of_phi): Ditto.
5682         (gimple_ranger::gimple_ranger): New.  Use ranger_ache oracle.
5683         (fold_using_range::relation_fold_and_or): New.
5684         (fold_using_range::postfold_gcond_edges): New.
5685         * gimple-range.h (class gimple_ranger): Adjust.
5686         (class fur_source): Adjust members.
5687         (class fur_stmt): Ditto.
5688         (class fold_using_range): Ditto.
5689
5690 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
5691
5692         * range-op.cc (range_operator::wi_fold): Apply relation effect.
5693         (range_operator::fold_range): Adjust and apply relation effect.
5694         (*::fold_range): Add relation parameters.
5695         (*::op1_range): Ditto.
5696         (*::op2_range): Ditto.
5697         (range_operator::lhs_op1_relation): New.
5698         (range_operator::lhs_op2_relation): New.
5699         (range_operator::op1_op2_relation): New.
5700         (range_operator::op1_op2_relation_effect): New.
5701         (relop_early_resolve): New.
5702         (operator_equal::op1_op2_relation): New.
5703         (operator_equal::fold_range): Call relop_early_resolve.
5704         (operator_not_equal::op1_op2_relation): New.
5705         (operator_not_equal::fold_range): Call relop_early_resolve.
5706         (operator_lt::op1_op2_relation): New.
5707         (operator_lt::fold_range): Call relop_early_resolve.
5708         (operator_le::op1_op2_relation): New.
5709         (operator_le::fold_range): Call relop_early_resolve.
5710         (operator_gt::op1_op2_relation): New.
5711         (operator_gt::fold_range): Call relop_early_resolve.
5712         (operator_ge::op1_op2_relation): New.
5713         (operator_ge::fold_range): Call relop_early_resolve.
5714         * range-op.h (class range_operator): Adjust parameters and methods.
5715
5716 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
5717
5718         * Makefile.in (OBJS): Add value-relation.o.
5719         * gimple-range.h: Adjust include files.
5720         * tree-data-ref.c: Adjust include file order.
5721         * value-query.cc (range_query::get_value_range): Default to no oracle.
5722         (range_query::query_relation): New.
5723         (range_query::query_relation): New.
5724         * value-query.h (class range_query): Adjust.
5725         * value-relation.cc: New.
5726         * value-relation.h: New.
5727
5728 2021-06-22  Richard Biener  <rguenther@suse.de>
5729
5730         PR tree-optimization/101151
5731         * tree-ssa-sink.c (statement_sink_location): Expand irreducible
5732         region check.
5733
5734 2021-06-22  Jojo R  <rjiejie@linux.alibaba.com>
5735
5736         * config/riscv/riscv.c (thead_c906_tune_info): New.
5737         (riscv_tune_info_table): Use new tune.
5738
5739 2021-06-22  Richard Biener  <rguenther@suse.de>
5740
5741         PR tree-optimization/101158
5742         * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand
5743         checking after checking for matching operation.
5744
5745 2021-06-22  Richard Biener  <rguenther@suse.de>
5746
5747         PR tree-optimization/101159
5748         * tree-vect-patterns.c (vect_recog_popcount_pattern): Add
5749         missing NULL vectype check.
5750
5751 2021-06-22  Richard Biener  <rguenther@suse.de>
5752
5753         PR tree-optimization/101154
5754         * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access.
5755
5756 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
5757
5758         PR target/11877
5759         * config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare.
5760         * config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable.
5761         * config/i386/i386.c (ix86_expand_prologue): Clear it.
5762         * config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx):
5763         Remove "" from match_operand.  Emit new insns using emit_move_insn and
5764         set ix86_last_zero_store_uid to INSN_UID of the last store.
5765         Add peephole2s for 1/2/4 stores of const0_rtx following previous
5766         successful peep2s.
5767
5768 2021-06-22  Martin Liska  <mliska@suse.cz>
5769
5770         * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format
5771         was changed.
5772
5773 2021-06-22  Martin Liska  <mliska@suse.cz>
5774
5775         * gcov-io.h: Remove padding entries.
5776
5777 2021-06-22  liuhongt  <hongtao.liu@intel.com>
5778
5779         PR tree-optimization/97770
5780         * tree-vect-patterns.c (vect_recog_popcount_pattern):
5781         New.
5782         (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern.
5783
5784 2021-06-22  liuhongt  <hongtao.liu@intel.com>
5785
5786         PR target/100267
5787         * config/i386/i386-builtin.def (BDESC): Adjust builtin name.
5788         * config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to ..
5789         (expand<mode>_mask): this ..
5790         (*expand<mode>_mask): New pre_reload splitter to transform
5791         v{,p}expand* to vmov* when mask is zero, all ones, or has all
5792         ones in it's lower part, otherwise still generate
5793         v{,p}expand*.
5794
5795 2021-06-22  liuhongt  <hongtao.liu@intel.com>
5796
5797         PR target/100310
5798         * config/i386/i386-expand.c
5799         (ix86_expand_special_args_builtin): Keep constm1_operand only
5800         if it satisfies insn's operand predicate.
5801
5802 2021-06-21  Jason Merrill  <jason@redhat.com>
5803
5804         PR target/88529
5805         * df-scan.c (df_ref_record): Check that regno < endregno.
5806         * function.c (assign_parms, expand_function_end): Do nothing with a
5807         TYPE_EMPTY_P result.
5808
5809 2021-06-21  Richard Biener  <rguenther@suse.de>
5810
5811         PR tree-optimization/101120
5812         * tree-vect-data-refs.c (bump_vector_ptr): Fold the
5813         built increment.
5814         * tree-vect-slp.c (vect_transform_slp_perm_load): Add
5815         DR chain DCE capability.
5816         * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
5817         * tree-vect-stmts.c (vectorizable_load): Remove unused
5818         loads in the DR chain for SLP.
5819
5820 2021-06-21  Jakub Jelinek  <jakub@redhat.com>
5821
5822         PR inline-asm/100785
5823         * gimplify.c (gimplify_asm_expr): Don't diagnose errors if
5824         output or input operands were already error_mark_node.
5825         * cfgexpand.c (expand_asm_stmt): If errors are emitted,
5826         remove all inputs, outputs and clobbers from the asm and
5827         set template to "".
5828
5829 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
5830
5831         * config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b.
5832         (vceq_s16): Likewise.
5833         (vceq_s32): Likewise.
5834         (vceq_u8): Likewise.
5835         (vceq_u16): Likewise.
5836         (vceq_u32): Likewise.
5837         (vceq_p8): Likewise.
5838         (vceqq_s8): Likewise.
5839         (vceqq_s16): Likewise.
5840         (vceqq_s32): Likewise.
5841         (vceqq_u8): Likewise.
5842         (vceqq_u16): Likewise.
5843         (vceqq_u32): Likewise.
5844         (vceqq_p8): Likewise.
5845         (vceq_f32): Gate __a == __b on __FAST_MATH__.
5846         (vceqq_f32): Likewise.
5847         (vceq_f16): Likewise.
5848         (vceqq_f16): Likewise.
5849
5850 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
5851
5852         PR target/97906
5853         * config/arm/iterators.md (NEON_VACMP): Remove.
5854         * config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE
5855         iterator.
5856         (neon_vca<cmp_op><mode>_insn): Likewise.
5857         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of
5858         NEON_VACMP.
5859
5860 2021-06-21  Richard Biener  <rguenther@suse.de>
5861
5862         PR tree-optimization/101121
5863         * tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally
5864         when we just lack a stmt with the desired op when doing permutation.
5865         (vect_build_slp_tree): When caching a failed SLP build attempt
5866         assert that at least one lane is marked as not matching.
5867
5868 2021-06-21  liuhongt  <hongtao.liu@intel.com>
5869
5870         PR target/101142
5871         * config/i386/i386.md: (*anddi_1): Disparage slightly the mask
5872         register alternative.
5873         (*and<mode>_1): Ditto.
5874         (*andqi_1): Ditto.
5875         (*andn<mode>_1): Ditto.
5876         (*<code><mode>_1): Ditto.
5877         (*<code>qi_1): Ditto.
5878         (*one_cmpl<mode>2_1): Ditto.
5879         (*one_cmplsi2_1_zext): Ditto.
5880         (*one_cmplqi2_1): Ditto.
5881         * config/i386/i386.c (x86_order_regs_for_local_alloc): Change
5882         the order of mask registers to be before general registers.
5883
5884 2021-06-21  Roger Sayle  <roger@nextmovesoftware.com>
5885
5886         PR target/11877
5887         * config/i386/i386.md: New define_peephole2s to shrink writing
5888         1, 2 or 4 consecutive zeros to memory when optimizing for size.
5889
5890 2021-06-18  Jeff Law  <jeffreyalaw@gmail.com>
5891
5892         * config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF.
5893         * config/h8300/logical.md (<code><mode>3 logcial expander): Generate
5894         more efficient code when the source can be trivially simplified.
5895
5896 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
5897
5898         * gimple-range-cache.cc (ranger_cache::range_of_def):  Calculate
5899         a range if global is not available.
5900         (ranger_cache::entry_range): Fallback to range_of_def.
5901         * gimple-range-cache.h (range_of_def): Adjust prototype.
5902
5903 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
5904
5905         PR tree-optimization/101014
5906         * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor
5907         value list.
5908         (ranger_cache::~ranger_cache): Ditto.
5909         (ranger_cache::enable_new_values): Delete.
5910         (ranger_cache::push_poor_value): Delete.
5911         (ranger_cache::range_of_def): Remove poor value processing.
5912         (ranger_cache::entry_range): Ditto.
5913         (ranger_cache::fill_block_cache): Ditto.
5914         * gimple-range-cache.h (class ranger_cache): Remove poor value members.
5915         * gimple-range.cc (gimple_ranger::range_of_expr): Remove call.
5916         * gimple-range.h (class gimple_ranger): Adjust.
5917
5918 2021-06-18  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
5919
5920         PR target/100856
5921         * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function
5922         derived from arm_canon_arch.
5923         (arm_canon_arch_option): Call it.
5924         (arm_canon_arch_multilib_option): New function.
5925         * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup.
5926         * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype.
5927         (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro.
5928         (MULTILIB_ARCH_CANONICAL_SPECS): New macro.
5929         (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS.
5930         * config/arm/arm.opt (mlibarch): New option.
5931         * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use
5932         of march on RHS with mlibarch.
5933
5934 2021-06-18  Marcel Vollweiler  <marcel@codesourcery.com>
5935
5936         * config.in: Regenerate.
5937         * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
5938         functions.
5939         * configure: Regenerate.
5940         * configure.ac: Fix for global_load assembler functions.
5941
5942 2021-06-18  Richard Biener  <rguenther@suse.de>
5943
5944         PR tree-optimization/101112
5945         * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition
5946         to lookup a pattern stmt def.
5947
5948 2021-06-18  Jakub Jelinek  <jakub@redhat.com>
5949
5950         PR middle-end/101062
5951         * stor-layout.c (finish_bitfield_layout): Don't add bitfield
5952         representatives in QUAL_UNION_TYPE.
5953
5954 2021-06-18  Andrew Pinski  <apinski@marvell.com>
5955
5956         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
5957         Add counting of how many times it is done.
5958         (factor_out_conditional_conversion): Likewise.
5959         (match_simplify_replacement): Likewise.
5960         (value_replacement): Likewise.
5961         (spaceship_replacement): Likewise.
5962         (cond_store_replacement): Likewise.
5963         (cond_if_else_store_replacement_1): Likewise.
5964         (hoist_adjacent_loads): Likewise.
5965
5966 2021-06-18  Andrew Pinski  <apinski@marvell.com>
5967
5968         * tree-cfg.c (verify_gimple_assign_unary): Reject point and offset
5969         types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR.
5970         (verify_gimple_assign_binary): Reject point and offset types on
5971         MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR,
5972         FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR,
5973         FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR.
5974
5975 2021-06-18  Michael Meissner  <meissner@linux.ibm.com>
5976
5977         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA
5978         3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions.
5979         * config/rs6000/rs6000.md (s<minmax><mode>3, IEEE128 iterator):
5980         New insns.
5981
5982 2021-06-17  Aaron Sawdey  <acsawdey@linux.ibm.com>
5983
5984         * config/rs6000/genfusion.pl (gen_logical_addsubf): Add
5985         earlyclobber to alts 0/1.
5986         (gen_addadd): Add earlyclobber to alts 0/1.
5987         * config/rs6000/fusion.md: Regenerate file.
5988
5989 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
5990
5991         * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec.
5992
5993 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
5994
5995         * gimple-range-cache.cc: Comment cleanups.
5996         * gimple-range-gori.cc: Comment cleanups.
5997         * gimple-range.cc: Comment/spacing cleanups
5998         * value-range.h: Comment cleanups.
5999
6000 2021-06-17  H.J. Lu  <hjl.tools@gmail.com>
6001
6002         PR target/100704
6003         * calls.c (expand_call): Replace PUSH_ARGS with
6004         targetm.calls.push_argument (0).
6005         (emit_library_call_value_1): Likewise.
6006         * defaults.h (PUSH_ARGS): Removed.
6007         (PUSH_ARGS_REVERSED): Replace PUSH_ARGS with
6008         targetm.calls.push_argument (0).
6009         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
6010         (emit_push_insn): Pass the number bytes to push to
6011         targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0.
6012         * hooks.c (hook_bool_uint_true): New.
6013         * hooks.h (hook_bool_uint_true): Likewise.
6014         * rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with
6015         targetm.calls.push_argument (0).
6016         * target.def (push_argument): Add a targetm.calls hook.
6017         * targhooks.c (default_push_argument): New.
6018         * targhooks.h (default_push_argument): Likewise.
6019         * config/bpf/bpf.h (PUSH_ARGS): Removed.
6020         * config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New.
6021         * config/cr16/cr16.h (PUSH_ARGS): Removed.
6022         * config/i386/i386.c (ix86_push_argument): New.
6023         (TARGET_PUSH_ARGUMENT): Likewise.
6024         * config/i386/i386.h (PUSH_ARGS): Removed.
6025         * config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New.
6026         * config/m32c/m32c.h (PUSH_ARGS): Removed.
6027         * config/nios2/nios2.h (PUSH_ARGS): Likewise.
6028         * config/pru/pru.h (PUSH_ARGS): Likewise.
6029         * doc/tm.texi.in: Remove PUSH_ARGS documentation.  Add
6030         TARGET_PUSH_ARGUMENT hook.
6031         * doc/tm.texi: Regenerated.
6032
6033 2021-06-17  Uroš Bizjak  <ubizjak@gmail.com>
6034
6035         PR target/97194
6036         * config/i386/i386-expand.c (expand_vector_set_var):
6037         Handle V2FS mode remapping.  Pass TARGET_MMX_WITH_SSE to
6038         ix86_expand_vector_init_duplicate.
6039         (ix86_expand_vector_init_duplicate): Emit insv_1 for
6040         QImode for !TARGET_PARTIAL_REG_STALL.
6041         * config/i386/predicates.md (vec_setm_mmx_operand): New predicate.
6042         * config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand
6043         as operand 2 predicate.  Call ix86_expand_vector_set_var
6044         for non-constant index operand.
6045         (vec_setv2si): Ditto.
6046         (vec_setv4hi): Ditto.
6047         (vec_setv8qi): ditto.
6048
6049 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
6050
6051         PR tree-optimization/100790
6052         * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz
6053         code.
6054
6055 2021-06-17  Martin Liska  <mliska@suse.cz>
6056
6057         * doc/invoke.texi: Use consistently -O1 instead of -O.
6058
6059 2021-06-17  Martin Liska  <mliska@suse.cz>
6060
6061         * gcov-io.h: Update documentation entry about string format.
6062
6063 2021-06-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
6064
6065         PR target/100871
6066         * config/s390/vecintrin.h (vec_doublee): Fix to use
6067           __builtin_s390_vflls.
6068         (vec_floate): Fix to use __builtin_s390_vflrd.
6069
6070 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
6071
6072         * dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>.
6073         * dominance.h (get_dominated_to_depth): Likewise.
6074         (get_all_dominated_blocks): Likewise.
6075         * cfgcleanup.c (delete_unreachable_blocks): Adjust.
6076         * gcse.c (hoist_code): Likewise.
6077         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
6078         * tree-parloops.c (oacc_entry_exit_ok): Likewise.
6079         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
6080         * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise.
6081
6082 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
6083
6084         * dominance.c (get_dominated_by_region): Return auto_vec<basic_block>.
6085         * dominance.h (get_dominated_by_region): Likewise.
6086         * tree-cfg.c (gimple_duplicate_sese_region): Adjust.
6087         (gimple_duplicate_sese_tail): Likewise.
6088         (move_sese_region_to_fn): Likewise.
6089
6090 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
6091
6092         * dominance.c (get_dominated_by): Return auto_vec<basic_block>.
6093         * dominance.h (get_dominated_by): Likewise.
6094         * auto-profile.c (afdo_find_equiv_class): Adjust.
6095         * cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise.
6096         * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
6097         * tree-cfg.c (test_linear_chain): Likewise.
6098         (test_diamond): Likewise.
6099
6100 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
6101
6102         * cfgloop.h (get_loop_hot_path): Return auto_vec<basic_block>.
6103         * cfgloopanal.c (get_loop_hot_path): Likewise.
6104         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
6105
6106 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
6107
6108         * cgraph.c (cgraph_node::collect_callers): Return
6109         auto_vec<cgraph_edge *>.
6110         * cgraph.h (cgraph_node::collect_callers): Likewise.
6111         * ipa-cp.c (create_specialized_node): Adjust.
6112         (decide_about_value): Likewise.
6113         (decide_whether_version_node): Likewise.
6114         * ipa-sra.c (process_isra_node_results): Likewise.
6115
6116 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
6117
6118         * vec.h (vl_ptr>::using_auto_storage): Handle null m_vec.
6119         (auto_vec<T, 0>::auto_vec): Define move constructor, and delete copy
6120         constructor.
6121         (auto_vec<T, 0>::operator=): Define move assignment and delete copy
6122         assignment.
6123
6124 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
6125
6126         * gimple-range.cc (debug_seed_ranger): New.
6127         (dump_ranger): New.
6128         (debug_ranger): New.
6129
6130 2021-06-17  Richard Biener   <rguenther@suse.de>
6131
6132         PR tree-optimization/54400
6133         * tree-vectorizer.h (enum slp_instance_kind): Add
6134         slp_inst_kind_bb_reduc.
6135         (reduction_fn_for_scalar_code): Declare.
6136         * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
6137         Check SLP_INSTANCE_KIND instead of looking at the
6138         representative.
6139         (vect_slp_analyze_instance_alignment): Likewise.
6140         * tree-vect-loop.c (reduction_fn_for_scalar_code): Export.
6141         * tree-vect-slp.c (vect_slp_linearize_chain): Split out
6142         chain linearization from vect_build_slp_tree_2 and generalize
6143         for the use of BB reduction vectorization.
6144         (vect_build_slp_tree_2): Adjust accordingly.
6145         (vect_optimize_slp): Elide permutes at the root of BB reduction
6146         instances.
6147         (vectorizable_bb_reduc_epilogue): New function.
6148         (vect_slp_prune_covered_roots): Likewise.
6149         (vect_slp_analyze_operations): Use them.
6150         (vect_slp_check_for_constructors): Recognize associatable
6151         chains for BB reduction vectorization.
6152         (vectorize_slp_instance_root_stmt): Generate code for the
6153         BB reduction epilogue.
6154
6155 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
6156
6157         * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with
6158         may_recompute_p.
6159         (gori_compute::may_recompute_p): New.
6160         (gori_compute::outgoing_edge_range_p): Perform recomputations.
6161         * gimple-range-gori.h (class gori_compute): Add prototype.
6162
6163 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
6164
6165         * gimple-range-cache.cc (ranger_cache::range_on_edge): Always return
6166         true when a range can be calculated.
6167         * gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p.
6168
6169 2021-06-16  Martin Sebor  <msebor@redhat.com>
6170
6171         * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete):
6172         Correct documented defaults.
6173
6174 2021-06-16  Andrew MacLeod  <amacleod@redhat.com>
6175
6176         * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize
6177         m_new_value_p directly.
6178
6179 2021-06-16  Uroš Bizjak  <ubizjak@gmail.com>
6180
6181         PR target/89021
6182         * config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv):
6183         Handle 64bit modes for TARGET_SSE4_1.
6184         (expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3.
6185         (expand_vec_perm_even_odd_pack): Handle V4HI mode.
6186         (expand_vec_perm_even_odd_1) <case E_V4HImode>: Expand via
6187         expand_vec_perm_pshufb2 for TARGET_SSSE3 and via
6188         expand_vec_perm_even_odd_pack for TARGET_SSE4_1.
6189         * config/i386/mmx.md (mmx_packusdw): New insn pattern.
6190
6191 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
6192
6193         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>):
6194         Change to an expander that emits the correct instruction
6195         depending on endianness.
6196         (aarch64_<sur><addsub>hn<mode>_insn_le): Define.
6197         (aarch64_<sur><addsub>hn<mode>_insn_be): Define.
6198
6199 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
6200
6201         * config/aarch64/aarch64-simd-builtins.def: Split generator
6202         for aarch64_<su>qmovn builtins into scalar and vector
6203         variants.
6204         * config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le):
6205         Define.
6206         (aarch64_<su>qmovn<mode>_insn_be): Define.
6207         (aarch64_<su>qmovn<mode>): Split into scalar and vector
6208         variants. Change vector variant to an expander that emits the
6209         correct instruction depending on endianness.
6210
6211 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
6212
6213         * config/aarch64/aarch64-simd-builtins.def: Split generator
6214         for aarch64_sqmovun builtins into scalar and vector variants.
6215         * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>):
6216         Split into scalar and vector variants. Change vector variant
6217         to an expander that emits the correct instruction depending
6218         on endianness.
6219         (aarch64_sqmovun<mode>_insn_le): Define.
6220         (aarch64_sqmovun<mode>_insn_be): Define.
6221
6222 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
6223
6224         * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le):
6225         Define - modeling zero-high-half semantics.
6226         (aarch64_xtn<mode>): Change to an expander that emits the
6227         appropriate instruction depending on endianness.
6228         (aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half
6229         semantics.
6230         (aarch64_xtn2<mode>_le): Rename to...
6231         (aarch64_xtn2<mode>_insn_le): This.
6232         (aarch64_xtn2<mode>_be): Rename to...
6233         (aarch64_xtn2<mode>_insn_be): This.
6234         (vec_pack_trunc_<mode>): Emit truncation instruction instead
6235         of aarch64_xtn.
6236         * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode
6237         attribute iterator.
6238
6239 2021-06-16  Martin Jambor  <mjambor@suse.cz>
6240
6241         PR tree-optimization/100453
6242         * tree-sra.c (create_access): Disqualify any const candidates
6243         which are written to.
6244         (sra_modify_expr): Do not store sub-replacements back to a const base.
6245         (handle_unscalarized_data_in_subtree): Likewise.
6246         (sra_modify_assign): Likewise.  Earlier, use TREE_READONLy test
6247         instead of constant_decl_p.
6248
6249 2021-06-16  Jakub Jelinek  <jakub@redhat.com>
6250
6251         PR middle-end/101062
6252         * stor-layout.c (finish_bitfield_representative): For fields in unions
6253         assume nextf is always NULL.
6254         (finish_bitfield_layout): Compute bit field representatives also in
6255         unions, but handle it as if each bitfield was the only field in the
6256         aggregate.
6257
6258 2021-06-16  Richard Biener  <rguenther@suse.de>
6259
6260         PR tree-optimization/101088
6261         * tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for
6262         supported refs on edges.  Do not assert same ref but
6263         different kind stores are unsuported but mark them so.
6264         (hoist_memory_references): Only look for supported refs
6265         on exits.
6266
6267 2021-06-16  Roger Sayle  <roger@nextmovesoftware.com>
6268
6269         PR rtl-optimization/46235
6270         * config/i386/i386.md: New define_split for bt followed by cmov.
6271         (*bt<mode>_setcqi): New define_insn_and_split for bt followed by setc.
6272         (*bt<mode>_setncqi): New define_insn_and_split for bt then setnc.
6273         (*bt<mode>_setnc<mode>): New define_insn_and_split for bt followed
6274         by setnc with zero extension.
6275
6276 2021-06-16  Richard Biener  <rguenther@suse.de>
6277
6278         PR tree-optimization/101083
6279         * tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get
6280         vectype as argument.
6281         (vect_build_slp_tree_2): Adjust.
6282
6283 2021-06-15  Martin Sebor  <msebor@redhat.com>
6284
6285         PR middle-end/100876
6286         * builtins.c: (gimple_call_return_array): Account for size_t
6287         mangling as either unsigned int or unsigned long
6288
6289 2021-06-15  Jeff Law  <jeffreyalaw@gmail.com>
6290
6291         * compare-elim.c (try_eliminate_compare): Run DCE to clean things
6292         up before eliminating comparisons.
6293
6294 2021-06-15  Aldy Hernandez  <aldyh@redhat.com>
6295
6296         * range-op.cc (operator_bitwise_or::wi_fold): Make sure
6297         nonzero|X is nonzero.
6298         (range_op_bitwise_and_tests): Add tests for above.
6299
6300 2021-06-15  Carl Love  <cel@us.ibm.com>
6301
6302         PR target/101022
6303         * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the
6304         enum definition.
6305         (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2
6306         definitions.
6307
6308 2021-06-15  Tobias Burnus  <tobias@codesourcery.com>
6309
6310         PR fortran/92568
6311         * gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET.
6312         (struct gimplify_omp_ctx): Extend defaultmap array by one.
6313         (new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET].
6314         (omp_notice_variable): Update type classification for Fortran.
6315         (gimplify_scan_omp_clauses): Update calls for new argument; handle
6316         GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY.
6317         * langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument.
6318         * langhooks.c (lhd_omp_scalar_p): Likewise.
6319         (LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
6320         (LANG_HOOKS_DECLS): Add them.
6321         * langhooks.h (struct lang_hooks_for_decls): Add new hooks, update
6322         omp_scalar_p pointer type to include the new bool argument.
6323
6324 2021-06-15  David Malcolm  <dmalcolm@redhat.com>
6325
6326         * doc/analyzer.texi
6327         (Special Functions for Debugging the Analyzer): Add
6328         __analyzer_dump_capacity.
6329
6330 2021-06-15  Jakub Jelinek  <jakub@redhat.com>
6331
6332         PR target/101046
6333         * expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR,
6334         case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode.
6335
6336 2021-06-15  Richard Biener  <rguenther@suse.de>
6337
6338         * cfgloopanal.c (mark_irreducible_loops): Use a dominance
6339         check to identify loop latches.
6340         * cfgloop.c (verify_loop_structure): Likewise.
6341         * loop-init.c (apply_loop_flags): Allow marked irreducible
6342         regions even with multiple latches.
6343         * predict.c (rebuild_frequencies): Simplify.
6344
6345 2021-06-15  Richard Biener  <rguenther@suse.de>
6346
6347         * tree-ssa-threadupdate.c
6348         (jump_thread_path_registry::mark_threaded_blocks): Assert we
6349         have marked irreducible regions.
6350
6351 2021-06-14  Martin Sebor  <msebor@redhat.com>
6352
6353         PR c++/100876
6354         * builtins.c (gimple_call_return_array): Check for attribute fn spec.
6355         Handle calls to placement new.
6356         (ndecl_dealloc_argno): Avoid placement delete.
6357
6358 2021-06-14  Peter Bergner  <bergner@linux.ibm.com>
6359
6360         PR target/100777
6361         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use
6362         create_tmp_reg_or_ssa_name().
6363
6364 2021-06-14  Andrew MacLeod  <amacleod@redhat.com>
6365
6366         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
6367         (ranger_cache::enable_new_values): Set to specified value and
6368         return the old value.
6369         (ranger_cache::disable_new_values): Delete.
6370         (ranger_cache::fill_block_cache): Disable non 1st order derived
6371         poor values.
6372         * gimple-range-cache.h (ranger_cache): Adjust prototypes.
6373         * gimple-range.cc (gimple_ranger::range_of_expr): Adjust.
6374
6375 2021-06-14  Uroš Bizjak  <ubizjak@gmail.com>
6376
6377         PR target/101058
6378         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
6379         Return true early when testing with V2HImode.
6380         * config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1.
6381
6382 2021-06-14  Christophe Lyon  <christophe.lyon@linaro.org>
6383
6384         * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): New pattern.
6385         (mve_vec_unpack<US>_hi_<mode>): New pattern.
6386         (@mve_vec_pack_trunc_lo_<mode>): New pattern.
6387         (mve_vmovntq_<supf><mode>): Prefix with '@'.
6388         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move to
6389         vec-common.md.
6390         (vec_unpack<US>_lo_<mode>): Likewise.
6391         (vec_pack_trunc_<mode>): Rename to
6392         neon_quad_vec_pack_trunc_<mode>.
6393         * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): New
6394         pattern.
6395         (vec_unpack<US>_lo_<mode>): New.
6396         (vec_pack_trunc_<mode>): New.
6397
6398 2021-06-14  Richard Biener  <rguenther@suse.de>
6399
6400         PR tree-optimization/100934
6401         * tree-ssa-dom.c (pass_dominator::execute): Properly
6402         mark irreducible regions.
6403
6404 2021-06-14  Martin Liska  <mliska@suse.cz>
6405
6406         * doc/invoke.texi: Put r{...} on the same line as @item.
6407
6408 2021-06-14  Martin Liska  <mliska@suse.cz>
6409
6410         * doc/invoke.texi: Add missing newline.
6411
6412 2021-06-14  Martin Liska  <mliska@suse.cz>
6413
6414         * doc/invoke.texi: Remove '+' charasters.
6415
6416 2021-06-14  Claudiu Zissulescu  <claziss@synopsys.com>
6417
6418         * config.gcc (arc): Add support for with_cpu option.
6419         * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu.
6420
6421 2021-06-14  Richard Biener  <rguenther@suse.de>
6422
6423         PR tree-optimization/101031
6424         * tree-ssa-strlen.c (maybe_invalidate): Increment max_size
6425         instead of size when accounting for a possibly string
6426         terminating nul.
6427
6428 2021-06-14  Martin Liska  <mliska@suse.cz>
6429
6430         * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[].
6431
6432 2021-06-14  Aldy Hernandez  <aldyh@redhat.com>
6433
6434         * value-query.cc (gimple_range_global): Call get_range_global
6435         if called after inlining.
6436
6437 2021-06-13  Uroš Bizjak  <ubizjak@gmail.com>
6438
6439         PR target/101021
6440         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
6441         Emit constant permutation insn directly from here.
6442
6443 2021-06-13  Trevor Saunders  <tbsaunde@tbsaunde.org>
6444
6445         * attribs.c (find_attribute_namespace): Iterate over vec<> with
6446         range based for.
6447         * auto-profile.c (afdo_find_equiv_class): Likewise.
6448         * gcc.c (do_specs_vec): Likewise.
6449         (do_spec_1): Likewise.
6450         (driver::set_up_specs): Likewise.
6451         * gimple-loop-jam.c (any_access_function_variant_p): Likewise.
6452         * gimple-ssa-store-merging.c (compatible_load_p): Likewise.
6453         (imm_store_chain_info::try_coalesce_bswap): Likewise.
6454         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
6455         (get_location_for_stmts): Likewise.
6456         * graphite-poly.c (print_iteration_domains): Likewise.
6457         (free_poly_bb): Likewise.
6458         (remove_gbbs_in_scop): Likewise.
6459         (free_scop): Likewise.
6460         (dump_gbb_cases): Likewise.
6461         (dump_gbb_conditions): Likewise.
6462         (print_pdrs): Likewise.
6463         (print_scop): Likewise.
6464         * ifcvt.c (cond_move_process_if_block): Likewise.
6465         * lower-subreg.c (decompose_multiword_subregs): Likewise.
6466         * regcprop.c (pass_cprop_hardreg::execute): Likewise.
6467         * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
6468         * sel-sched-dump.c (dump_insn_vector): Likewise.
6469         * store-motion.c (store_ops_ok): Likewise.
6470         (store_killed_in_insn): Likewise.
6471         * timevar.c (timer::named_items::print): Likewise.
6472         * tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise.
6473         (cleanup_tree_cfg_noloop): Likewise.
6474         * tree-data-ref.c (dump_data_references): Likewise.
6475         (print_dir_vectors): Likewise.
6476         (print_dist_vectors): Likewise.
6477         (dump_data_dependence_relations): Likewise.
6478         (dump_dist_dir_vectors): Likewise.
6479         (dump_ddrs): Likewise.
6480         (create_runtime_alias_checks): Likewise.
6481         (free_subscripts): Likewise.
6482         (save_dist_v): Likewise.
6483         (save_dir_v): Likewise.
6484         (invariant_access_functions): Likewise.
6485         (same_access_functions): Likewise.
6486         (access_functions_are_affine_or_constant_p): Likewise.
6487         (find_data_references_in_stmt): Likewise.
6488         (graphite_find_data_references_in_stmt): Likewise.
6489         (free_dependence_relations): Likewise.
6490         (free_data_refs): Likewise.
6491         * tree-inline.c (copy_debug_stmts): Likewise.
6492         * tree-into-ssa.c (dump_currdefs): Likewise.
6493         (rewrite_update_phi_arguments): Likewise.
6494         * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
6495         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
6496         Likewise.
6497         (vect_slp_analyze_node_dependences): Likewise.
6498         (vect_slp_analyze_instance_dependence): Likewise.
6499         (vect_record_base_alignments): Likewise.
6500         (vect_get_peeling_costs_all_drs): Likewise.
6501         (vect_peeling_supportable): Likewise.
6502         * tree-vectorizer.c (vec_info::~vec_info): Likewise.
6503         (vec_info::free_stmt_vec_infos): Likewise.
6504
6505 2021-06-13  Jeff Law  <jeffreyalaw@gmail.com>
6506
6507         * config/h8300/logical.md (<code>qi3_1<cczn>): New pattern.
6508         (andqi3_1<cczn>): Removed.
6509         (<ors>qi3_1): Do not split for IOR/XOR a single bit.
6510         (H8/SX bit logicals): Split out from other patterns.
6511         * config/h8300/multiply.md (mulqihi3_const<cczn>): Renamed from
6512         mulqihi3_const_clobber_flags.
6513         (mulqihi3<cczn>, mulhisi3_const<cczn>, mulhisi3<cczn>): Similarly
6514
6515 2021-06-13  H.J. Lu  <hjl.tools@gmail.com>
6516
6517         PR target/101023
6518         * config/i386/i386.c (ix86_expand_prologue): Set red_zone_used
6519         to true if red zone is used.
6520         (ix86_output_indirect_jmp): Replace ix86_red_zone_size with
6521         ix86_red_zone_used.
6522         * config/i386/i386.h (machine_function): Add red_zone_used.
6523         (ix86_red_zone_size): Removed.
6524         (ix86_red_zone_used): New.
6525         * config/i386/i386.md (peephole2 patterns): Replace
6526         ix86_red_zone_size with ix86_red_zone_used.
6527
6528 2021-06-12  Jason Merrill  <jason@redhat.com>
6529
6530         * doc/extend.texi (unused variable attribute): Applies to
6531         structure fields as well.
6532
6533 2021-06-12  Eugene Rozenfeld  <erozen@microsoft.com>
6534
6535         * auto-profile.c (read_profile): fix a typo in an error string
6536
6537 2021-06-11  Thomas Schwinge  <thomas@codesourcery.com>
6538
6539         * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
6540         default argument.
6541         * tree-pretty-print.c (dump_omp_clauses): Update.
6542         (dump_generic_node) <OMP_CLAUSE>: Use it.
6543
6544 2021-06-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
6545
6546         PR target/101016
6547         * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0,
6548         int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for
6549         the polymorphic variants matching code.
6550         (__arm_vld1q_z): Likewise.
6551         (__arm_vld2q): Likewise.
6552         (__arm_vld4q): Likewise.
6553         (__arm_vldrbq_gather_offset): Likewise.
6554         (__arm_vldrbq_gather_offset_z): Likewise.
6555
6556 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
6557
6558         PR tree-optimization/96392
6559         * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype.
6560
6561 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
6562
6563         PR tree-optimization/96392
6564         * fold-const.c (fold_real_zero_addition_p): Take both arguments
6565         of the addition or subtraction, not just the zero.  Use this
6566         other argument in tests for signaling NaNs and signed zeros.
6567         (tree_expr_maybe_real_minus_zero_p): New predicate.
6568         * fold-const.h (fold_real_zero_addition_p): Update prototype.
6569         (tree_expr_maybe_real_minus_zero_p): New function prototype.
6570         * match.pd: Update calls to fold_real_zero_addition_p.
6571         Replace HONOR_NANS with tree_expr_maybe_nan_p.
6572         Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p.
6573         Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p.
6574         * tree-ssa-reassoc.c (eliminate_using_constants): Update
6575         call to fold_real_zero_addition_p.
6576
6577 2021-06-11  Richard Biener  <rguenther@suse.de>
6578
6579         PR tree-optimization/101025
6580         * tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process
6581         all refs that require dependence checking.
6582
6583 2021-06-11  Richard Biener  <rguenther@suse.de>
6584
6585         PR tree-optimization/101028
6586         * tree-vect-slp.c (vect_build_slp_tree_2): When SLP
6587         reassoc discovery fails fatally, mark appropriate lanes
6588         in matches[] so.
6589
6590 2021-06-11  Richard Biener  <rguenther@suse.de>
6591
6592         PR tree-optimization/101026
6593         * tree-vect-slp.c (vect_build_slp_tree_2): Make sure we
6594         have a representative for the associated chain nodes.
6595
6596 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
6597
6598         PR rtl-optimization/101008
6599         * simplify-rtx.c (relational_result): New function.
6600         (simplify_logical_relational_operation,
6601         simplify_relational_operation): Use it.
6602
6603 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
6604
6605         PR target/101007
6606         * config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2.
6607
6608 2021-06-11  Uroš Bizjak  <ubizjak@gmail.com>
6609
6610         PR target/101021
6611         * config/i386/i386-expand.c (expand_vec_perm_pshufb): Return
6612         false if the permutation can be implemented with constant
6613         permutation instruction in wider mode.
6614         (canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb.
6615         Handle V8QImode and V4HImode.
6616
6617 2021-06-11  Martin Liska  <mliska@suse.cz>
6618
6619         PR gcov-profile/100788
6620         * common.opt: Add new option.
6621         * coverage.c (coverage_begin_function): Emit warning instead on
6622         the internal compiler error.
6623         * doc/invoke.texi: Document the option.
6624         * toplev.c (process_options): Enable it by default.
6625
6626 2021-06-11  Richard Biener  <rguenther@suse.de>
6627
6628         PR middle-end/101009
6629         * tree-data-ref.c (build_classic_dist_vector_1): Make sure
6630         to set *init_b to true when we encounter a constant equal
6631         index pair.
6632         (compute_affine_dependence): Also dump the actual DR_REF.
6633
6634 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
6635
6636         PR tree-optimization/100984
6637         * gimple-ssa-evrp.c  (ssa_equiv_stack): Use auto_vec for
6638         replacements table.
6639         (ssa_equiv_stack::~ssa_equiv_stack): Remove.
6640
6641 2021-06-11  Kewen Lin  <linkw@linux.ibm.com>
6642
6643         * config/rs6000/rs6000.md
6644         (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New
6645         define_insn_and_split.
6646
6647 2021-06-11  Richard Biener  <rguenther@suse.de>
6648
6649         * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort
6650         to sort operands of the associative chain.
6651
6652 2021-06-11  Richard Biener  <rguenther@suse.de>
6653
6654         * system.h (gcc_stablesort_r): Declare.
6655         * sort.cc (gcc_sort_r): Support stable sort.
6656         (gcc_stablesort_r): Define.
6657         * vec.h (vec<>::stablesort): Add.
6658
6659 2021-06-10  Uroš Bizjak  <ubizjak@gmail.com>
6660
6661         PR target/89021
6662         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
6663         Handle V2SF mode.  Emit SHUFPS to fixup unpack-high for V2SF mode.
6664         (expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1.
6665         (expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3.
6666         (expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1.
6667         (expand_vec_perm_interleave2): Handle 64bit modes.
6668         (expand_vec_perm_even_odd_pack): Handle V8QI mode.
6669         (expand_vec_perm_even_odd_1): Ditto.
6670         (ix86_vectorize_vec_perm_const): Ditto.
6671         * config/i386/i386.md (UNSPEC_PSHUFB): Move from ...
6672         * config/i386/sse.md: ... here.
6673         * config/i386/mmx.md (*vec_interleave_lowv2sf):
6674         New insn_and_split pattern.
6675         (*vec_interleave_highv2sf): Ditto.
6676         (mmx_pshufbv8qi3): New insn pattern.
6677         (*mmx_pblendw): Ditto.
6678
6679 2021-06-10  Peter Bergner  <bergner@linux.ibm.com>
6680
6681         * config/rs6000/rs6000-builtin.def (build_pair): New built-in.
6682         (build_acc): Likewise.
6683         * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble
6684         source operands in little-endian mode.
6685         (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR.
6686         (mma_init_builtins): Likewise.
6687         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness
6688         ordering for the MMA assemble and build source operands.
6689         * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair):
6690         Document.
6691         (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove
6692         documentation.
6693
6694 2021-06-10  Jeff Law  <jeffreyalaw@gmail.com>
6695
6696         * config/h8300/h8300.c (select_cc_mode): Handle MEM.  Use
6697         REG_P.
6698         * config/h8300/extensions.md: Replace _clobber_flags patterns
6699         with <cczn>.
6700
6701 2021-06-10  Robin Dapp  <rdapp@linux.ibm.com>
6702
6703         * config/s390/vector.md (vcond_mask_<mode><mode>): Change to
6704         (vcond_mask_<mode><tointvec>): this.
6705
6706 2021-06-10  Andrew Stubbs  <ams@codesourcery.com>
6707             Thomas Schwinge  <thomas@codesourcery.com>
6708
6709         * omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into...
6710         (BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these.
6711         * gimple.h (enum gf_mask): Split
6712         'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into
6713         'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and
6714         'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'.
6715         (is_gimple_omp_oacc): Update.
6716         * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
6717         * gimplify.c (gimplify_omp_target_update): Likewise.
6718         * omp-expand.c (expand_omp_target, build_omp_regions_1)
6719         (omp_make_gimple_edges): Likewise.
6720         * omp-low.c (check_omp_nesting_restrictions, lower_omp_target):
6721         Likewise.
6722
6723 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
6724
6725         * value-query.cc (value_query::value_on_edge): Rename name to
6726         expr.
6727         (range_query::range_on_edge): Same.
6728         (range_query::value_of_expr): Same.
6729         (range_query::value_on_edge): Same.
6730         * value-query.h (class value_query): Same.
6731         (class range_query): Same.
6732
6733 2021-06-10  Richard Biener  <rguenther@suse.de>
6734
6735         PR tree-optimization/101003
6736         * tree-vect-slp.c (vect_build_slp_tree_2): Appropriately
6737         use the pattern stmt defs when linearizing a chain.
6738
6739 2021-06-10  Jakub Jelinek  <jakub@redhat.com>
6740
6741         PR debug/100852
6742         * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use
6743         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
6744
6745 2021-06-10  Clement Chigot  <clement.chigot@atos.net>
6746
6747         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive.
6748         * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
6749
6750 2021-06-09  Andrew Pinski  <apinski@marvell.com>
6751
6752         PR tree-optimization/100925
6753         * match.pd (a ? CST1 : CST2): Limit transformations
6754         that would produce a negative to integeral types only.
6755         Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also.
6756
6757 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
6758
6759         Revert:
6760         2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
6761
6762         * doc/tm.texi: Correctly update.
6763
6764 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
6765
6766         * doc/tm.texi: Correctly update.
6767
6768 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
6769
6770         PR other/100735
6771         * doc/tm.texi.in (Trampolines): Add a missing blank line.
6772
6773 2021-06-09  Paul Eggert  <eggert@cs.ucla.edu>
6774
6775         PR other/100735
6776         * doc/invoke.texi (Code Gen Options); Document that -fno-trampolines
6777         and -ftrampolines work only with Ada.
6778         * doc/tm.texi.in (Trampolines): Likewise.
6779         * doc/tm.texi: Regenerated.
6780
6781 2021-06-09  Carl Love  <cel@us.ibm.com>
6782
6783         * config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq):
6784         Add define for new builtins.
6785         * config/rs6000/altivec.md(altivec_vreveti2): Add define_expand.
6786         * config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL):  Add
6787         overloaded builtin definitions.
6788         (VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D,
6789         VSIGNEXTSD2Q):  Add builtin expansions.
6790         (SIGNEXT): Add P10 overload definition.
6791         * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL,
6792         P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions.
6793         * config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn.
6794         (vsignextend_v2di_v1ti, vsignextend_qi_<mode>, vsignextend_hi_<mode>,
6795         vsignextend_si_v2di)[VIlong]: Add define_expand.
6796         Make define_insn vsx_sign_extend_si_v2di visible.
6797         * doc/extend.texi:  Add documentation for the vec_signexti,
6798         vec_signextll builtins and vec_signextq.
6799
6800 2021-06-09  Carl Love  <cel@us.ibm.com>
6801
6802         * config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf,
6803         __floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw,
6804         __floattikf_sw, __floatuntikf_sw respectively.
6805         * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
6806         fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add
6807         define_insn for mode IEEE 128.
6808
6809 2021-06-09  Carl Love  <cel@us.ibm.com>
6810
6811         * config/rs6000/altivec.md (altivec_vslq, altivec_vsrq):
6812         Rename to altivec_vslq_<mode>, altivec_vsrq_<mode>, mode VEC_TI.
6813         * config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md.
6814         (vashlv1ti3): Change to vashl<mode>3, mode VEC_TI.
6815         (vlshrv1ti3): Change to vlshr<mode>3, mode VEC_TI.
6816         * config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update
6817         uses of VSX_TI to VEC_TI.
6818
6819 2021-06-09  Carl Love  <cel@us.ibm.com>
6820
6821         * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns.
6822
6823 2021-06-09  Carl Love  <cel@us.ibm.com>
6824
6825         * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new
6826         builtins.
6827         * config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD,
6828         UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs.
6829         (altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud,
6830         altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq,
6831         altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm,
6832         altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq,
6833         altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New
6834         define_insn.
6835         (vec_widen_umult_even_v2di, vec_widen_smult_even_v2di,
6836         vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi,
6837         altivec_vrlqnm): New define_expands.
6838         * config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P,
6839         VCMPGTUT_P): Add macro expansions.
6840         (BU_P10V_AV_P): Add builtin predicate definition.
6841         (VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI,
6842         CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P,
6843         VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ,
6844         VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI,
6845         MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions.
6846         (VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions.
6847         * config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT,
6848         P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI,
6849         P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST,
6850         P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI,
6851         P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI,
6852         P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD,
6853         P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD,
6854         P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS,
6855         P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI,
6856         P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ,
6857         P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ,
6858         P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P,
6859         P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P,
6860         P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET,
6861         P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P,
6862         P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI,
6863         P10V_BUILTIN_MODU_V1TI):
6864         New overloaded definitions.
6865         (rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT,
6866         P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI,
6867         P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT,
6868         P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI,
6869         P10V_BUILTIN_CMPLE_U1TI]: New case statements.
6870         (rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]:
6871         New assignments.
6872         (altivec_init_builtins): New E_V1TImode case statement.
6873         (builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD,
6874         P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI,
6875         P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI,
6876         P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements.
6877         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode,
6878         E_V1TImode]: New case statements.
6879         * config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum
6880         value RS6000_BTI_bool_V1TI.
6881         * config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti,
6882         vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti,
6883         vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p,
6884         vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3,
6885         vlshrv1ti3, vashrv1ti3): New define_expands.
6886         * config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ,
6887         UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ,
6888         UNSPEC_VSX_MODUQ): New unspecs.
6889         (mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti,
6890         vsx_diveu_v1ti, vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New
6891         define_insns.
6892         (vcmpnet): New define_expand.
6893         * doc/extend.texi: Add documentation for the new builtins vec_rl,
6894         vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo,
6895         vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt,
6896         vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt,
6897         vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt,
6898         vec_any_ge, vec_any_le.
6899
6900 2021-06-09  Carl Love  <cel@us.ibm.com>
6901
6902         * config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix
6903         bug in argument generation.
6904
6905 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
6906
6907         * config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S.
6908         (VCLZQ): Remove.
6909         * config/arm/mve.md (mve_vclzq_<supf><mode>): Add '@' prefix,
6910         remove <supf> iterator.
6911         (mve_vclzq_u<mode>): New.
6912         * config/arm/neon.md (clz<mode>2): Rename to neon_vclz<mode>.
6913         (neon_vclz<mode): Move to ...
6914         * config/arm/unspecs.md (VCLZQ_U, VCLZQ_S): Remove.
6915         * config/arm/vec-common.md: ... here. Add support for MVE.
6916
6917 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
6918
6919         * config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'.
6920         (@mve_vrhaddq_<supf><mode): Likewise.
6921         * config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise.
6922         * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
6923         (avg<mode>3_ceil", uavg<mode>3_ceil): New patterns.
6924
6925 2021-06-09  imba-tjd  <109224573@qq.com>
6926
6927         * doc/invoke.texi: Fix typo.
6928
6929 2021-06-09  Roger Sayle  <roger@nextmovesoftware.com>
6930
6931         PR middle-end/53267
6932         * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]:
6933         Support evaluation of fmod/fmodf/fmodl at compile-time.
6934
6935 2021-06-09  Richard Biener  <rguenther@suse.de>
6936
6937         PR tree-optimization/100981
6938         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
6939         gimple_get_lhs to also handle calls.
6940         * tree-vect-slp-patterns.c (complex_pattern::build): Transfer
6941         reduction info.
6942
6943 2021-06-09  Richard Biener  <rguenther@suse.de>
6944
6945         PR tree-optimization/97832
6946         * tree-vectorizer.h (_slp_tree::failed): New.
6947         * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
6948         failed member.
6949         (_slp_tree::~_slp_tree): Free failed.
6950         (vect_build_slp_tree): Retain failed nodes and record
6951         matches in them, copying that back out when running
6952         into a cached fail.  Dump start and end of discovery.
6953         (dt_sort_cmp): New.
6954         (vect_build_slp_tree_2): Handle associatable chains
6955         together doing more aggressive operand swapping.
6956
6957 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
6958
6959         PR target/100896
6960         * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and
6961         GNU targets.
6962         * doc/install.texi: Require glibc 2.1 and binutils 2.12 for
6963         Linux and GNU targets.
6964
6965 2021-06-09  Richard Biener  <rguenther@suse.de>
6966
6967         * tree-vect-stmts.c (vect_is_simple_use): Always get dt
6968         from the stmt.
6969
6970 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
6971
6972         * config/arc/arc.md (loop_end): Change it to
6973         define_insn_and_split.
6974
6975 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
6976
6977         * config/arc/arc.md (maddhisi4): Use VMAC2H instruction.
6978         (machi): New pattern.
6979         (umaddhisi4): Use VMAC2HU instruction.
6980         (umachi): New pattern.
6981
6982 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
6983
6984         * config/arc/arc-protos.h (arc_split_move_p): New prototype.
6985         * config/arc/arc.c (arc_split_move_p): New function.
6986         (arc_split_move): Clean up.
6987         * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p.
6988         (movdf_insn): Likewise.
6989         * config/arc/simdext.md (mov<VWH>_insn): Likewise.
6990
6991 2021-06-09  Uroš Bizjak  <ubizjak@gmail.com>
6992
6993         PR target/100936
6994         * config/i386/i386.c (print_operand_address_as): Rename "no_rip"
6995         argument to "raw".  Do not emit segment overrides when "raw" is true.
6996
6997 2021-06-09  Martin Liska  <mliska@suse.cz>
6998
6999         * doc/gcov.texi: Create a proper JSON files.
7000         * doc/invoke.texi: Remove dots in order to make it a valid
7001         JSON object.
7002
7003 2021-06-09  Xionghu Luo  <luoxhu@linux.ibm.com>
7004
7005         * config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New.
7006         (insn_is_load_p): Use pattern_is_rotate64.
7007         (insn_is_swap_p): Likewise.
7008         (quad_aligned_load_p): Likewise.
7009         (const_load_sequence_p): Likewise.
7010         (replace_swapped_aligned_load): Likewise.
7011         (recombine_lvx_pattern): Likewise.
7012         (recombine_stvx_pattern): Likewise.
7013
7014 2021-06-09  Andrew MacLeod  <amacleod@redhat.com>
7015
7016         * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a
7017         fur_stmt source record.
7018         * gimple-range.cc (fur_source::get_operand): Generic range query.
7019         (fur_source::get_phi_operand): New.
7020         (fur_source::register_dependency): New.
7021         (fur_source::query): New.
7022         (class fur_edge): New.  Edge source for operands.
7023         (fur_edge::fur_edge): New.
7024         (fur_edge::get_operand): New.
7025         (fur_edge::get_phi_operand): New.
7026         (fur_edge::query): New.
7027         (fur_stmt::fur_stmt): New.
7028         (fur_stmt::get_operand): New.
7029         (fur_stmt::get_phi_operand): New.
7030         (fur_stmt::query): New.
7031         (class fur_depend): New.  Statement source and process dependencies.
7032         (fur_depend::fur_depend): New.
7033         (fur_depend::register_dependency): New.
7034         (class fur_list): New.  List source for operands.
7035         (fur_list::fur_list): New.
7036         (fur_list::get_operand): New.
7037         (fur_list::get_phi_operand): New.
7038         (fold_range): New.  Instantiate appropriate fur_source class and fold.
7039         (fold_using_range::range_of_range_op): Use new API.
7040         (fold_using_range::range_of_address): Ditto.
7041         (fold_using_range::range_of_phi): Ditto.
7042         (imple_ranger::fold_range_internal): Use fur_depend class.
7043         (fold_using_range::range_of_ssa_name_with_loop_info): Use new API.
7044         * gimple-range.h (class fur_source): Now a base class.
7045         (class fur_stmt): New.
7046         (fold_range): New prototypes.
7047         (fur_source::fur_source): Delete.
7048
7049 2021-06-08  Andrew Pinski  <apinski@marvell.com>
7050
7051         PR tree-optimization/25290
7052         * tree-ssa-phiopt.c (xor_replacement): Delete.
7053         (tree_ssa_phiopt_worker): Delete use of xor_replacement.
7054         (match_simplify_replacement): Allow one cheap preparation
7055         statement that can be moved to before the if.
7056
7057 2021-06-08  Pat Haugen  <pthaugen@linux.ibm.com>
7058
7059         * config/rs6000/power10.md (power10-fused-load, power10-fused-store,
7060         power10-fused_alu, power10-fused-vec, power10-fused-branch): New.
7061
7062 2021-06-08  Jeff Law  <jeffreyalaw@gmail.com>
7063
7064         * config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split.
7065         Create length attribute on define_insn_and_split.  Only split for cases which we
7066         know will use AND.
7067         (andqi3_1<cczn>): Renamed from andqi3_1_clobber_flags.  Only handle AND here and
7068         fix length computation.
7069         (b<code><mode>msx): Combine QImode and HImode H8/SX patterns using iterator.
7070
7071 2021-06-08  Richard Biener  <rguenther@suse.de>
7072
7073         PR tree-optimization/100923
7074         * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to
7075         the operand vector to be valueized.
7076         (valueize_refs): Likewise.
7077         (valueize_shared_reference_ops_from_ref): Adjust.
7078         (valueize_shared_reference_ops_from_call): Likewise.
7079         (vn_reference_lookup_3): Likewise.
7080         (vn_reference_lookup_pieces): Likewise.  Re-valueize
7081         with honoring availability when we are about to create
7082         the ao_ref and valueized before.
7083         (vn_reference_lookup): Likewise.
7084         (vn_reference_insert_pieces): Adjust.
7085
7086 2021-06-08  Richard Biener  <rguenther@suse.de>
7087
7088         * tree-vectorizer.h (_slp_instance::root_stmt): Change to...
7089         (_slp_instance::root_stmts): ... a vector.
7090         (SLP_INSTANCE_ROOT_STMT): Rename to ...
7091         (SLP_INSTANCE_ROOT_STMTS): ... this.
7092         (slp_root::root): Change to...
7093         (slp_root::roots): ... a vector.
7094         (slp_root::slp_root): Adjust.
7095         * tree-vect-slp.c (_slp_instance::location): Adjust.
7096         (vect_free_slp_instance): Release the root stmt vector.
7097         (vect_build_slp_instance): Adjust.
7098         (vect_analyze_slp): Likewise.
7099         (_bb_vec_info::~_bb_vec_info): Likewise.
7100         (vect_slp_analyze_operations): Likewise.
7101         (vect_bb_vectorization_profitable_p): Likewise.  Adjust
7102         costs for the root stmt.
7103         (vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs
7104         as root stmts.
7105         (vect_slp_analyze_bb_1): Simplify by marking all root stmts
7106         as pure_slp.
7107         (vectorize_slp_instance_root_stmt): Adjust.
7108         (vect_schedule_slp): Likewise.
7109
7110 2021-06-08  Aldy Hernandez  <aldyh@redhat.com>
7111
7112         * gimple-ssa-evrp.c (class ssa_equiv_stack): New.
7113         (ssa_equiv_stack::ssa_equiv_stack): New.
7114         (ssa_equiv_stack::~ssa_equiv_stack): New.
7115         (ssa_equiv_stack::enter): New.
7116         (ssa_equiv_stack::leave): New.
7117         (ssa_equiv_stack::push_replacement): New.
7118         (ssa_equiv_stack::get_replacement): New.
7119         (is_pointer_ssa): New.
7120         (class pointer_equiv_analyzer): New.
7121         (pointer_equiv_analyzer::pointer_equiv_analyzer): New.
7122         (pointer_equiv_analyzer::~pointer_equiv_analyzer): New.
7123         (pointer_equiv_analyzer::set_global_equiv): New.
7124         (pointer_equiv_analyzer::set_cond_equiv): New.
7125         (pointer_equiv_analyzer::get_equiv): New.
7126         (pointer_equiv_analyzer::enter): New.
7127         (pointer_equiv_analyzer::leave): New.
7128         (pointer_equiv_analyzer::get_equiv_expr): New.
7129         (pta_valueize): New.
7130         (pointer_equiv_analyzer::visit_stmt): New.
7131         (pointer_equiv_analyzer::visit_edge): New.
7132         (hybrid_folder::value_of_expr): Call PTA.
7133         (hybrid_folder::value_on_edge): Same.
7134         (hybrid_folder::pre_fold_bb): New.
7135         (hybrid_folder::post_fold_bb): New.
7136         (hybrid_folder::pre_fold_stmt): New.
7137         (rvrp_folder::pre_fold_bb): New.
7138         (rvrp_folder::post_fold_bb): New.
7139         (rvrp_folder::pre_fold_stmt): New.
7140         (rvrp_folder::value_of_expr): Call PTA.
7141         (rvrp_folder::value_on_edge): Same.
7142
7143 2021-06-08  Jakub Jelinek  <jakub@redhat.com>
7144
7145         PR c++/100957
7146         * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't
7147         check TREE_CODE if OMP_CLAUSE_DECL is NULL.
7148
7149 2021-06-08  Richard Biener  <rguenther@suse.de>
7150
7151         PR middle-end/100951
7152         * tree-vect-generic.c (expand_vector_piecewise): Build a
7153         VECTOR_CST if all elements are constant.
7154         (expand_vector_condition): Likewise.
7155         (lower_vec_perm): Likewise.
7156         (expand_vector_conversion): Likewise.
7157
7158 2021-06-08  Martin Liska  <mliska@suse.cz>
7159
7160         * doc/invoke.texi: Document new param evrp-sparse-threshold.
7161
7162 2021-06-08  Martin Liska  <mliska@suse.cz>
7163
7164         * genautomata.c (create_automata): Fix typo.
7165
7166 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
7167
7168         PR tree-optimization/100794
7169         * tree-predcom.c (tree_predictive_commoning_loop): Add parameter
7170         allow_unroll_p and only allow unrolling when it's true.
7171         (tree_predictive_commoning): Add parameter allow_unroll_p and
7172         adjust for it.
7173         (run_tree_predictive_commoning): Likewise.
7174         (pass_predcom::gate): Check flag_tree_loop_vectorize and
7175         global_options_set.x_flag_predictive_commoning.
7176         (pass_predcom::execute): Adjust for allow_unroll_p.
7177
7178 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
7179
7180         * tree-predcom.c (execute_pred_commoning): Remove update_ssa call.
7181         (tree_predictive_commoning_loop): Factor some cleanup stuffs into
7182         lambda function cleanup, remove scev_reset call, and adjust return
7183         value.
7184         (tree_predictive_commoning): Adjust for different changed values,
7185         only set flag TODO_update_ssa_only_virtuals if changed.
7186         (pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals
7187         from todo_flags_finish.
7188
7189 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
7190
7191         * gimple-range-cache.cc (class sbr_sparse_bitmap): New.
7192         (sbr_sparse_bitmap::sbr_sparse_bitmap): New.
7193         (sbr_sparse_bitmap::bitmap_set_quad): New.
7194         (sbr_sparse_bitmap::bitmap_get_quad): New.
7195         (sbr_sparse_bitmap::set_bb_range): New.
7196         (sbr_sparse_bitmap::get_bb_range): New.
7197         (sbr_sparse_bitmap::bb_range_p): New.
7198         (block_range_cache::block_range_cache): initialize bitmap obstack.
7199         (block_range_cache::~block_range_cache): Destruct obstack.
7200         (block_range_cache::set_bb_range): Decide when to utilze the
7201         sparse on entry cache.
7202         * gimple-range-cache.h (block_range_cache): Add bitmap obstack.
7203         * params.opt (-param=evrp-sparse-threshold): New.
7204
7205 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
7206
7207         * bitmap.c (bitmap_set_aligned_chunk): New.
7208         (bitmap_get_aligned_chunk): New.
7209         (test_aligned_chunk): New.
7210         (bitmap_c_tests): Call test_aligned_chunk.
7211         * bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New.
7212
7213 2021-06-07  Uroš Bizjak  <ubizjak@gmail.com>
7214
7215         PR target/100637
7216         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
7217         Handle V4QI mode.
7218         (ix86_expand_vector_init_one_nonzero): Ditto.
7219         (ix86_expand_vector_init_one_var): Ditto.
7220         (ix86_expand_vector_init_general): Ditto.
7221         * config/i386/mmx.md (vec_initv4qiqi): New expander.
7222
7223 2021-06-07  Jeff Law  <jeffreyalaw@gmail.com>
7224
7225         * config/h8300/movepush.md: Change most _clobber_flags
7226         patterns to instead use <cczn> subst.
7227         (movsi_cczn): New pattern with usable CC cases split out.
7228         (movsi_h8sx_cczn): Likewise.
7229
7230 2021-06-07  Martin Liska  <mliska@suse.cz>
7231
7232         * common/common-target.def: Split long lines and replace them
7233         with '\n\'.
7234         * target.def: Likewise.
7235         * doc/tm.texi: Re-generated.
7236
7237 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
7238
7239         PR target/100887
7240         * fold-const.c (fold_read_from_vector): Return NULL if trying to
7241         read from a CONSTRUCTOR with vector type elements.
7242
7243 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
7244
7245         PR middle-end/100898
7246         * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy
7247         should copy any arguments.  Don't call gimple_call_num_args
7248         on id->call_stmt or call_stmt more than once.
7249
7250 2021-06-07  liuhongt  <hongtao.liu@intel.com>
7251
7252         PR target/100885
7253         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine
7254         constraints.
7255         (<insn>v4siv4di2): Delete constraints for define_expand.
7256
7257 2021-06-07  liuhongt  <hongtao.liu@intel.com>
7258
7259         PR target/82735
7260         * config/i386/i386-expand.c (ix86_expand_builtin): Remove
7261         assignment of cfun->machine->has_explicit_vzeroupper.
7262         * config/i386/i386-features.c
7263         (ix86_add_reg_usage_to_vzerouppers): Delete.
7264         (ix86_add_reg_usage_to_vzeroupper): Ditto.
7265         (rest_of_handle_insert_vzeroupper): Remove
7266         ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end
7267         of the function.
7268         (gate): Remove cfun->machine->has_explicit_vzeroupper.
7269         * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper):
7270         Declared.
7271         * config/i386/i386.c (ix86_insn_callee_abi): New function.
7272         (ix86_initialize_callee_abi): Ditto.
7273         (ix86_expand_avx_vzeroupper): Ditto.
7274         (ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper
7275         ABI.
7276         (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi.
7277         (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper
7278         directly.
7279         * config/i386/i386.h (struct GTY(()) machine_function): Delete
7280         has_explicit_vzeroupper.
7281         * config/i386/i386.md (enum unspec): New member
7282         UNSPEC_CALLEE_ABI.
7283         (ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New
7284         define_constants for insn callee abi index.
7285         * config/i386/predicates.md (vzeroupper_pattern): Adjust.
7286         * config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted.
7287         (avx_vzeroupper): Call ix86_expand_avx_vzeroupper.
7288         (*avx_vzeroupper): Rename to ..
7289         (avx_vzeroupper_callee_abi): .. this, and adjust pattern as
7290         call_insn which has a special vzeroupper ABI.
7291         (*avx_vzeroupper_1): Deleted.
7292
7293 2021-06-07  liuhongt  <hongtao.liu@intel.com>
7294
7295         PR target/82735
7296         * df-scan.c (df_get_call_refs): When call_insn is a fake call,
7297         it won't use stack pointer reg.
7298         * final.c (leaf_function_p): When call_insn is a fake call, it
7299         won't affect caller as a leaf function.
7300         * reg-stack.c (callee_clobbers_any_stack_reg): New.
7301         (subst_stack_regs): When call_insn doesn't clobber any stack
7302         reg, don't clear the arguments.
7303         * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is
7304         a insn.
7305         * shrink-wrap.c (requires_stack_frame_p): No need for stack
7306         frame for a fake call.
7307         * rtl.h (FAKE_CALL_P): New macro.
7308
7309 2021-06-06  Eric Botcazou  <ebotcazou@adacore.com>
7310
7311         * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename
7312         to...
7313         (sparc_order_regs_for_local_alloc): ...this.
7314         (sparc_leaf_reg_remap): Declare.
7315         * config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust.
7316         (LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap.
7317         * config/sparc/sparc.c (leaf_reg_remap): Delete.
7318         (order_regs_for_local_alloc): Rename to...
7319         (sparc_order_regs_for_local_alloc): ...this.
7320         (sparc_leaf_reg_remap): New function.
7321         (sparc_conditional_register_usage): Do not modify leaf_reg_remap.
7322
7323 2021-06-06  David Edelsohn  <dje.gcc@gmail.com>
7324
7325         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common):
7326         Use assemble_name to output BSS section name.
7327
7328 2021-06-06  Uroš Bizjak  <ubizjak@gmail.com>
7329
7330         * config/i386/constraints.md (Bs):
7331         Remove boolean operators from match_test RTX.
7332         (Bw): Ditto.
7333         (L): Ditto.
7334         (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX.
7335         (Wz): Ditto.
7336
7337 2021-06-06  Martin Liska  <mliska@suse.cz>
7338
7339         * doc/extend.texi: Add missing @headitem.
7340         * doc/invoke.texi: Likewise.
7341         * doc/objc.texi: Likewise.
7342
7343 2021-06-06  Martin Liska  <mliska@suse.cz>
7344
7345         * genhooks.c (emit_findices): Remove unused function.
7346         (emit_documentation): Do not call emit_findices
7347         and do not search for @Fcode directives.
7348
7349 2021-06-06  Martin Liska  <mliska@suse.cz>
7350
7351         * doc/invoke.texi: Remove extra character.
7352
7353 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
7354
7355         * config/sh/sh.md (doloop_end_split): Fix empty split condition.
7356
7357 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
7358
7359         * config/sparc/sparc.md (*snedi<W:mode>_zero_vis3,
7360         *neg_snedi<W:mode>_zero_subxc, *plus_snedi<W:mode>_zero,
7361         *plus_plus_snedi<W:mode>_zero, *minus_snedi<W:mode>_zero,
7362         *minus_minus_snedi<W:mode>_zero): Fix empty split condition.
7363
7364 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
7365
7366         * config/or1k/or1k.md (*movdi): Fix empty split condition.
7367
7368 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
7369
7370         * config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty
7371         split condition.
7372
7373 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
7374
7375         * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec,
7376         *zero_extendsidi2): Fix empty split condition.
7377
7378 2021-06-05  Jeff Law  <jeffreyalaw@gmail.com>
7379
7380         * config/h8300/addsub.md: Fix split condition in define_insn_and_split
7381         patterns.
7382         * config/h8300/bitfield.md: Likewise.
7383         * config/h8300/combiner.md: Likewise.
7384         * config/h8300/divmod.md: Likewise.
7385         * config/h8300/extensions.md: Likewise.
7386         * config/h8300/jumpcall.md: Likewise.
7387         * config/h8300/movepush.md: Likewise.
7388         * config/h8300/multiply.md: Likewise.
7389         * config/h8300/other.md: Likewise.
7390         * config/h8300/shiftrotate.md: Likewise.
7391         * config/h8300/logical.md: Likewise.  Fix split pattern to use
7392         code iterator that somehow slipped through.
7393
7394 2021-06-04  Tobias Burnus  <tobias@codesourcery.com>
7395
7396         PR middle-end/100905
7397         * tree-nested.c (convert_nonlocal_omp_clauses,
7398         convert_local_omp_clauses): Handle OMP_CLAUSE_BIND.
7399
7400 2021-06-04  Martin Sebor  <msebor@redhat.com>
7401
7402         PR middle-end/100732
7403         * gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls
7404         with either source or destination argument of invalid type.
7405         * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking
7406         calls with arguments of invalid type.
7407
7408 2021-06-04  Martin Sebor  <msebor@redhat.com>
7409
7410         * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected
7411         order.
7412         (attr_access::vla_bounds): Also handle VLA bounds.
7413
7414 2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>
7415
7416         * config/i386/predicates.md (GOT_memory_operand):
7417         Implement using match_code RTXes.
7418         (GOT32_symbol_operand): Ditto.
7419
7420 2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>
7421
7422         PR target/100637
7423         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
7424         Handle V2HI mode.
7425         (ix86_expand_vector_init_general): Ditto.
7426         Use SImode instead of word_mode for logic operations
7427         when GET_MODE_SIZE (mode) < UNITS_PER_WORD.
7428         (expand_vec_perm_even_odd_1): Assert that V2HI mode should be
7429         implemented by expand_vec_perm_1.
7430         (expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes
7431         should be implemented using standard shuffle patterns.
7432         (ix86_vectorize_vec_perm_const): Handle V2HImode.  Add V4HI and
7433         V2HI modes to modes, implementable with shuffle for one operand.
7434         * config/i386/mmx.md (*punpckwd): New insn_and_split pattern.
7435         (*pshufw_1): New insn pattern.
7436         (*vec_dupv2hi): Ditto.
7437         (vec_initv2hihi): New expander.
7438
7439 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
7440
7441         * config/arm/vfp.md (no_literal_pool_df_immediate,
7442         no_literal_pool_sf_immediate): Fix empty split condition.
7443
7444 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
7445
7446         * config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext,
7447         *tls_dynamic_gnu2_combine_32): Fix empty split condition.
7448         * config/i386/sse.md (*<sse2_avx2>_pmovmskb_lt,
7449         *<sse2_avx2>_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt,
7450         *<sse4_1_avx2>_pblendvb_lt): Likewise.
7451
7452 2021-06-04  Jakub Jelinek  <jakub@redhat.com>
7453
7454         PR target/100887
7455         * config/i386/i386-expand.c (ix86_expand_vector_init): Handle
7456         concatenation from half-sized modes with TImode elements.
7457
7458 2021-06-04  Claudiu Zissulescu  <claziss@synopsys.com>
7459
7460         * config/arc/arc.c (arc_override_options): Disable millicode
7461         thunks when RF16 is on.
7462
7463 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
7464
7465         * config/rs6000/rs6000.h (PROMOTE_MODE): Remove.
7466
7467 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
7468
7469         * config/rs6000/rs6000-call.c (rs6000_promote_function_mode):
7470         Replace PROMOTE_MODE marco with its content.
7471
7472 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
7473
7474         * config/cris/cris.md (*addi_reload): Fix empty split condition.
7475
7476 2021-06-03  Jim Wilson  <jimw@sifive.com>
7477
7478         * config.gcc (riscv*-*-*): If --with-riscv-attribute not used,
7479         turn it on for all riscv targets.
7480
7481 2021-06-03  Uroš Bizjak  <ubizjak@gmail.com>
7482
7483         PR target/100637
7484         * config/i386/i386-expand.c (ix86_expand_vector_set):
7485         Handle V2HI and V4QI modes.
7486         (ix86_expand_vector_extract): Ditto.
7487         * config/i386/mmx.md (*pinsrw): New insn pattern.
7488         (*pinsrb): Ditto.
7489         (*pextrw): Ditto.
7490         (*pextrw_zext): Ditto.
7491         (*pextrb): Ditto.
7492         (*pextrb_zext): Ditto.
7493         (vec_setv2hi): New expander.
7494         (vec_extractv2hihi): Ditto.
7495         (vec_setv4qi): Ditto.
7496         (vec_extractv4qiqi): Ditto.
7497         (vec_setv8qi): Enable only for TARGET_SSE4_1.
7498         (vec_extractv8qiqi): Ditto.
7499
7500 2021-06-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
7501
7502         * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input
7503         order to subf instruction.
7504         * config/rs6000/fusion.md: Regenerate.
7505
7506 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
7507
7508         * calls.c (get_size_range): Use range_of_expr instead of
7509         determine_value_range.
7510         * tree-affine.c (expr_to_aff_combination): Same.
7511         * tree-data-ref.c (split_constant_offset): Same.
7512         * tree-vrp.c (determine_value_range_1): Remove.
7513         (determine_value_range): Remove.
7514         * tree-vrp.h (determine_value_range): Remove.
7515
7516 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
7517
7518         * function-tests.c (test_ranges): Call gimple_range_tests.
7519         * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt
7520         to get_tree_range.
7521         * gimple-range.cc (fur_source::get_operand): Do not call
7522         get_tree_range or gimple_range_global.
7523         get_tree_range.
7524         (get_tree_range): Move to value-query.cc.
7525         Call get_arith_expr_range.
7526         (gimple_ranger::range_of_expr): Add argument to get_tree_range.
7527         Include gimple-range-tests.cc.
7528         * gimple-range.h (fold_range): Add argument.
7529         (get_tree_range): Remove.
7530         * selftest.h (gimple_range_tests): New.
7531         * value-query.cc (global_range_query::range_of_expr): Add
7532         stmt argument.
7533         (range_query::get_tree_range): Move from gimple-range.cc.
7534         * value-query.h (class range_query): Add get_tree_range and
7535         get_arith_expr_range.  Make fur_source a friend.
7536         * vr-values.c (vr_values::range_of_expr): Pass stmt to
7537         get_tree_range.
7538         * gimple-range-tests.cc: New file.
7539
7540 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
7541
7542         * gimple-range.cc (gimple_ranger::export_global_ranges): Call
7543           update_global_range.
7544         * value-query.cc (update_global_range): New.
7545         * value-query.h (update_global_range): New.
7546
7547 2021-06-03  David Malcolm  <dmalcolm@redhat.com>
7548
7549         * diagnostic-show-locus.c (diagnostic_show_locus): Don't reject
7550         printing the same location twice if there are fix-it hints,
7551         multiple locations, or a label.
7552
7553 2021-06-03  Andre Vieira  <andre.simoesdiasvieira@arm.com>
7554
7555         * tree-vect-loop.c (vect_transform_loop): Use main loop's various'
7556         thresholds to narrow the upper bound on epilogue iterations.
7557
7558 2021-06-03  Christophe Lyon  <christophe.lyon@linaro.org>
7559
7560         * config/arm/mve.md (mve_vabsq_f<mode>): Use 'abs' instead of unspec.
7561         (mve_vabsq_s<mode>): Likewise.
7562         * config/arm/neon.md (abs<mode>2): Rename to neon_abs<mode>2.
7563         * config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete.
7564         * config/arm/vec-common.md (neg<mode>2): Rename to
7565         <absneg_str><mode>2.
7566
7567 2021-06-03  Claudiu Zissulescu  <claziss@synopsys.com>
7568
7569         * common/config/arc/arc-common.c (arc_option_optimization_table):
7570         Remove malign-call.
7571         * config/arc/arc.c (arc_unalign_branch_p): Remove unused function.
7572         * config/arc/arc.h (TARGET_MIXED_CODE): Remove macro.
7573         (INDEX_REG_CLASS): Only refer to GENERAL_REGS.
7574         * config/arc/arc.md (abssi2_mixed): Remove pattern.
7575         * config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete.
7576         (malign-call): Likewise.
7577         (mmixed-code): Likewise.
7578         * doc/invoke.texi (ARC): Update doc.
7579
7580 2021-06-03  Martin Liska  <mliska@suse.cz>
7581
7582         * common.opt: Use proper Enum values.
7583         * opts.c (COVERAGE_SANITIZER_OPT): Remove.
7584         (parse_sanitizer_options): Handle only sanitizer_opts.
7585         (common_handle_option): Just assign value.
7586
7587 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
7588
7589         PR ipa/99122
7590         * tree-inline.c (inline_forbidden_p): Remove test on return type.
7591
7592 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
7593
7594         * dwarf2out.c (loc_list_from_tree_1) <FUNCTION_DECL>: Also generate
7595         DW_OP_GNU_variable_value referencing an existing DIE at file scope.
7596         (type_byte_size): Inline into...
7597         (add_byte_size_attribute): ...this and call add_scalar_info.
7598
7599 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
7600
7601         * dwarf2out.c (mem_loc_descriptor) <UDIV>: Fix typo.
7602         (typed_binop_from_tree): New function.
7603         (loc_list_from_tree_1) <EXACT_DIV_EXPR>: For an unsigned type,
7604         turn a divide by a power of 2 into a shift.
7605         <CEIL_DIV_EXPR>: For an unsigned type, use a signed divide if the
7606         size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a
7607         typed divide by calling typed_binop_from_tree.
7608
7609 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
7610
7611         * dwarf2out.c (scompare_loc_descriptor): Fix head comment.
7612         (is_handled_procedure_type): Likewise.
7613         (struct loc_descr_context): Add strict_signedness field.
7614         (resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type,
7615         DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret.
7616         (resolve_args_picking): Minor tweak.
7617         (function_to_dwarf_procedure): Initialize strict_signedness field.
7618         (type_byte_size): Likewise.
7619         (field_byte_offset): Likewise.
7620         (gen_descr_array_type_die): Likewise.
7621         (gen_variant_part): Likewise.
7622         (loc_list_from_tree_1) <CALL_EXPR>: Tidy up and set strict_signedness
7623         to true when a context is present before evaluating the arguments.
7624         <COND_EXPR>: Do not generate a useless comparison with zero.
7625         When dereferencing an address, if strict_signedness is true and the
7626         type is small and signed, use DW_OP_deref_type to do the dereference
7627         and then DW_OP_convert to convert back to the generic type.
7628
7629 2021-06-03  Jakub Jelinek  <jakub@redhat.com>
7630
7631         PR c++/100859
7632         * tree-inline.c (copy_tree_body_r): Handle iterators on
7633         OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND.
7634
7635 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
7636
7637         * config/arc/arc.md (*bbit_di): Remove.
7638
7639 2021-06-02  Christoph Muellner  <cmuellner@gcc.gnu.org>
7640
7641         PR rtl-optimization/100264
7642         * ree.c (get_sub_rtx): Ignore SET expressions without register
7643         destinations and remove assertion, as it is not valid anymore
7644         with this new behaviour.
7645         (merge_def_and_ext): Eliminate destination check for register
7646         as such SET expressions can't occur anymore.
7647         (combine_reaching_defs): Likewise.
7648
7649 2021-06-02  Jakub Jelinek  <jakub@redhat.com>
7650
7651         PR target/100841
7652         * config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid
7653         -Wtype-limits warnings.
7654         (DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition
7655         in operands to avoid -Wsign-compare warnings.
7656
7657 2021-06-02  Pat Haugen  <pthaugen@linux.ibm.com>
7658
7659         * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use
7660         gen_frame_store.
7661
7662 2021-06-02  Vineet Gupta  <vgupta@synopsys.com>
7663
7664         * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux.
7665
7666 2021-06-02  Ilya Leoshkevich  <iii@linux.ibm.com>
7667
7668         * config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single
7669         constraint.
7670         * config/s390/subst.md(cconly_subst): Use a single constraint
7671         in (match_scratch).
7672
7673 2021-06-02  Martin Liska  <mliska@suse.cz>
7674
7675         * ipa-icf.h: Use auto_vec for memory_access_types.
7676
7677 2021-06-02  Jeff Law  <jeffreyalaw@gmail.com>
7678
7679         * config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused
7680         argument from prototype.
7681         (output_logical_op): Add rtx_code argument.
7682         (compute_logical_op_length): Likewise.
7683         * config/h8300/h8300.c (h8300_and_costs): Pass additional argument
7684         to compute_a_shift_length.
7685         (output_logical_op); New argument with the rtx code rather than
7686         extracting it from an operand.  Handle QImode too.
7687         (compute_logical_op_length): Similary.
7688         (compute_a_shift_length): Drop unused argument.
7689         * config/h8300/h8300.md (logicals): New code iterator.
7690         * config/h8300/logical.md (<code><mode>3 expander): Combine
7691         the "and" expander with the "ior"/"xor" expander.
7692         (bclr<mode>msx): Combine the QI/HI mode patterns.
7693         (<logical><mode>3 insns): Use code iterator rather than match_operator.
7694         Handle QImode as well.   Update call to output_logical_op and
7695         compute_logical_op_length to pass in rtx_code
7696         Fix split condition on all define_insn_and_split patterns.
7697         (one_cmpl<mode>2<cczn>): Use <cczn> to support both clobbering
7698         the flags and setting ZN via existing define_subst.
7699         * config/h8300/shiftrotate.md: Drop unused argument from
7700         calls to compute_a_shift_length.
7701         Signed-off-by: Jeff Law <jeffreyalaw@gmail.com>
7702
7703 2021-06-01  Andrew Pinski  <apinski@marvell.com>
7704
7705         PR tree-optimization/25290
7706         * tree-ssa-phiopt.c (match_simplify_replacement):
7707         New function.
7708         (tree_ssa_phiopt_worker): Use match_simplify_replacement.
7709         (two_value_replacement): Change the comment about
7710         conditional_replacement.
7711         (conditional_replacement): Delete.
7712
7713 2021-06-01  Andrew Pinski  <apinski@marvell.com>
7714
7715         PR tree-optimization/95481
7716         * tree-tailcall.c (find_tail_calls): Handle empty typed
7717         return decls.
7718
7719 2021-06-01  Andrew Pinski  <apinski@marvell.com>
7720
7721         * gimplify.c (zero_sized_field_decl): Delete
7722         (zero_sized_type): Delete
7723         (gimplify_init_ctor_eval): Use is_empty_type instead
7724         of zero_sized_field_decl.
7725         (gimplify_modify_expr): Use is_empty_type instead of
7726         zero_sized_type.
7727
7728 2021-06-01  Jason Merrill  <jason@redhat.com>
7729
7730         PR c++/91859
7731         * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment.
7732
7733 2021-06-01  Jason Merrill  <jason@redhat.com>
7734
7735         PR c++/94492
7736         * diagnostic.h (warning_enabled_at): Declare.
7737         * diagnostic.c (diagnostic_enabled): Factor out from...
7738         (diagnostic_report_diagnostic): ...here.
7739         (warning_enabled_at): New.
7740
7741 2021-06-01  Aldy Hernandez  <aldyh@redhat.com>
7742
7743         * gimple-ssa-evrp.c: Enable exporting of global ranges.
7744
7745 2021-06-01  Martin Liska  <mliska@suse.cz>
7746
7747         PR other/100826
7748         * doc/invoke.texi: Mention that -fgcse-after-reload
7749         is enabled with -O3.
7750
7751 2021-06-01  liuhongt  <hongtao.liu@intel.com>
7752
7753         PR tree-optimization/98365
7754         * tree-if-conv.c (strip_nop_cond_scalar_reduction): New function.
7755         (is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction.
7756         (convert_scalar_cond_reduction): Ditto.
7757         (predicate_scalar_phi): Ditto.
7758
7759 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
7760
7761         PR tree-optimization/100781
7762         * gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new
7763         value calculation by default.
7764         (ranger_cache::enable_new_values): New.
7765         (ranger_cache::disable_new_values): New.
7766         (ranger_cache::push_poor_value): Check if new values are allowed.
7767         * gimple-range-cache.h (class ranger_cache): New member/methods.
7768         * gimple-range.cc (gimple_ranger::range_of_expr): Check for debug
7769         statement, and disable/renable new value calculation.
7770
7771 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
7772
7773         * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete.
7774         (ranger_cache::range_of_def): New.
7775         (ranger_cache::entry_range): New.
7776         (ranger_cache::exit_range): New.
7777         (ranger_cache::range_of_expr): Adjust.
7778         (ranger_cache::range_on_edge): Adjust.
7779         (ranger_cache::propagate_cache): Call exit_range directly.
7780         * gimple-range-cache.h (class ranger_cache): Adjust.
7781
7782 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
7783
7784         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for
7785         gori_compute being a member rather than base class.
7786         dervied call to member call.
7787         (ranger_cache::dump): No longer dump gori_map.
7788         (ranger_cache::dump_bb): New.
7789         (ranger_cache::get_non_stale_global_range): Adjust for gori_compute
7790         being a member rather than base class.
7791         (ranger_cache::set_global_range): Ditto.
7792         (ranger_cache::ssa_range_in_bb): Ditto.
7793         (ranger_cache::range_of_expr): New.
7794         (ranger_cache::range_on_edge): New.
7795         (ranger_cache::block_range): Adjust for gori_computes.  Debug changes.
7796         (ranger_cache::propagate_cache):  Adjust debugging output.
7797         (ranger_cache::fill_block_cache): Adjust for gori_computes.  Debug
7798         output changes.
7799         * gimple-range-cache.h (class ranger_cache): Make gori_compute a
7800         member, and inherit from range_query instead.
7801         (ranger_cache::dump_bb): New. split from dump.
7802         * gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete.
7803         (gori_compute::expr_range_at_stmt): Delete.
7804         (gori_compute::compute_name_range_op): Delete.
7805         (gori_compute::compute_operand_range_switch): Add fur_source.
7806         (gori_compute::compute_operand_range): Add fur_source param, inline
7807         old compute_name_range_op and optimize_logical_operands.
7808         (struct tf_range): Delete.
7809         (gori_compute::logical_combine): Adjust
7810         (gori_compute::optimize_logical_operands): Delete.
7811         (gori_compute::compute_logical_operands_in_chain): Delete.
7812         (gori_compute::compute_logical_operands): Adjust.
7813         (gori_compute::compute_operand1_range): Adjust to fur_source.
7814         (gori_compute::compute_operand2_range): Ditto.
7815         (gori_compute::compute_operand1_and_operand2_range): Ditto.
7816         (gori_compute::outgoing_edge_range_p): Add range_query parameter,
7817         and adjust to fur_source.
7818         * gimple-range-gori.h (class gori_compute): Simplify and adjust to
7819         range_query and fur_source.
7820         * gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge
7821         from the ranger_cache..
7822         (gimple_ranger::fold_range_internal): Adjust to base class change of
7823         ranger_cache.
7824         (gimple_ranger::dump_bb): Adjust dump.
7825         * gimple-range.h (gimple_ranger):export gori computes object.
7826
7827 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
7828
7829         PR tree-optimization/100774
7830         * gimple-range-cache.cc (ranger_cache::get_non_stale_global_range):
7831         Constant values are also not stale.
7832         (ranger_cache::set_global_range): Range invariant values should also
7833         have the correct timestamp.
7834
7835 2021-05-31  Martin Liska  <mliska@suse.cz>
7836
7837         * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
7838         Unpack FUNCTION_DECL_DECL_TYPE.
7839         * tree-streamer-out.c (pack_ts_function_decl_value_fields):
7840         Stream FUNCTION_DECL_DECL_TYPE instead of
7841         DECL_IS_OPERATOR_NEW_P.
7842         * tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE
7843         macro.
7844         (DECL_IS_OPERATOR_NEW_P): Likewise.
7845         (DECL_IS_OPERATOR_DELETE_P): Likewise.
7846         (DECL_LAMBDA_FUNCTION_P): Likewise.
7847
7848 2021-05-31  Richard Biener  <rguenther@suse.de>
7849
7850         PR c++/88601
7851         * internal-fn.c (expand_SHUFFLEVECTOR): Define.
7852         * internal-fn.def (SHUFFLEVECTOR): New.
7853         * internal-fn.h (expand_SHUFFLEVECTOR): Declare.
7854         * doc/extend.texi: Document __builtin_shufflevector.
7855
7856 2021-05-31  Peter Bergner  <bergner@linux.ibm.com>
7857
7858         PR target/99842
7859         * config/rs6000/predicates.md(mma_assemble_input_operand): Allow
7860         indexed form addresses.
7861
7862 2021-05-29  Jeff Law  <jlaw@tachyum.com>
7863
7864         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused
7865         parameter.  Call callers fixed.
7866         (push): Likewise.
7867         (output_plussi): Add FALLTHRU markers.
7868         (h8300_shift_needs_scratch_p): Add gcc_unreachable marker.
7869
7870 2021-05-29  Jakub Jelinek  <jakub@redhat.com>
7871
7872         PR middle-end/99928
7873         * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd
7874         combined with parallel, make sure to add shared clause to
7875         parallel for explicit linear clause.
7876
7877 2021-05-29  Aldy Hernandez  <aldyh@redhat.com>
7878
7879         PR tree-optimization/100787
7880         * gimple-ssa-evrp.c: Disable exporting of global ranges.
7881
7882 2021-05-28  Jason Merrill  <jason@redhat.com>
7883
7884         * tree-iterator.h (struct tree_stmt_iterator): Add operator++,
7885         operator--, operator*, operator==, and operator!=.
7886         (class tsi_range): New.
7887
7888 2021-05-28  Richard Biener  <rguenther@suse.de>
7889
7890         PR tree-optimization/100778
7891         * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly
7892         trapping ops in different BBs.
7893
7894 2021-05-28  Richard Biener  <rguenther@suse.de>
7895
7896         PR ipa/100791
7897         * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack
7898         copy fntype from original call.
7899
7900 2021-05-28  Martin Liska  <mliska@suse.cz>
7901
7902         PR gcov-profile/100751
7903         * doc/gcov.texi: Revert partially a hunk that was wrong.
7904
7905 2021-05-28  Cooper Qu  <cooper.qu@linux.alibaba.com>
7906
7907         * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi):
7908         Defined.
7909         (HAVE_sync_compare_and_swaphi): Likewise.
7910         (HAVE_sync_compare_and_swapsi): Likewise.
7911
7912 2021-05-28  Jakub Jelinek  <jakub@redhat.com>
7913
7914         PR middle-end/99928
7915         * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define.
7916
7917 2021-05-28  Tobias Burnus  <tobias@codesourcery.com>
7918
7919         * gimplify.c (gimplify_omp_affinity): New.
7920         (gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards.
7921         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY.
7922         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY.
7923         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause.
7924         (walk_tree_1): Handle OMP_CLAUSE_AFFINITY.
7925
7926 2021-05-28  Joern Rennecke  <joern.rennecke@riscy-ip.com>
7927             Richard Biener   <rguenther@suse.de>
7928
7929         * match.pd <popcount & / + pattern matching>:
7930         When generating popcount directly fails, try doing it in two halves.
7931
7932 2021-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7933
7934         * Makefile.in (generated_files): Add gimple-match.c and
7935         generic-match.c
7936
7937 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7938
7939         * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP.
7940
7941 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7942
7943         * gensupport.c (alter_constraints): Add MATCH_SCRATCH case.
7944
7945 2021-05-28  Kewen Lin  <linkw@linux.ibm.com>
7946
7947         PR tree-optimization/99398
7948         * tree-ssa-forwprop.c (simplify_permutation): Optimize some cases
7949         where the fed operands are CTOR/CST and propagated through
7950         VIEW_CONVERT_EXPR.  Call vec_perm_indices::new_shrunk_vector.
7951         * vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New
7952         function.
7953         * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New
7954         declare.
7955
7956 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
7957
7958         * config/i386/mmx.md (addv2sf3): Do not call
7959         ix86_fixup_binary_operands_no_copy.
7960         (subv2sf3): Ditto.
7961         (mulv2sf3): Ditto.
7962         (<smaxmin:code>v2sf3): Ditto.
7963         (<plusminus:insn><MMXMODEI:mode>3): Ditto.
7964         (<plusminus:insn><VI_32:mode>3): Remove expander.
7965         (<plusminus:insn><VI_32:mode>3): Rename from
7966         "*<plusminus:insn><VI_32:mode>3".
7967         (mulv4hi): Do not call ix86_fixup_binary_operands_no_copy.
7968         (mulv2hi3): Remove expander.
7969         (mulv2hi3): Rename from *mulv2hi3.
7970         (<s>mulv2hi3_highpart): Remove expander.
7971         (<s>mulv2hi3_highpart): Rename from *<s>mulv2hi3_highpart.
7972         (<smaxmin:code><MMXMODE14:mode>3): Rename from
7973         "*mmx_<smaxmin:code><MMXMODE14:mode>3".
7974         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Remove expander.
7975         (SMAXMIN_MMXMODEI): Remove mode iterator.
7976         (<smaxmin:code>v4hi3): New expander.
7977         (<smaxmin:code>v4qi3): Rename from *<smaxmin:code>v4qi3.
7978         (<smaxmin:code>v2hi3): Rename from *<smaxmin:code>v2hi3.
7979         (<smaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
7980         (SMAXMIN_VI_32): Remove mode iterator.
7981         (<umaxmin:code><MMXMODE24:mode>3): Rename from
7982         "*mmx_<umaxmin:code><MMXMODE24:mode>3".
7983         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Remove expander.
7984         (UMAXMIN_MMXMODEI): Remove mode iterator.
7985         (<umaxmin:code>v8qi3): New expander.
7986         (<umaxmin:code>v4qi3): Rename from *<umaxmin:code>v4qi3.
7987         (<umaxmin:code>v2hi3): Rename from *<umaxmin:code>v2hi3.
7988         (<umaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
7989         (UMAXMIN_VI_32): Remove mode iterator.
7990         (<any_shift:insn>v2hi3): Remove expander.
7991         (<any_shift:insn>v2hi3): Rename from *<any_shift:insn>v2hi3.
7992         (<any_logic:code><MMXMODEI:mode>3): Do not call
7993         ix86_fixup_binary_operands_no_copy.
7994         (<any_logic:code><VI_32:mode>3): Remove expander.
7995         (<any_logic:code><VI_32:mode>3): Rename from
7996         "*<any_logic:code><VI_32:mode>3".
7997         (uavg<mode>3_ceil): Do not call ix86_fixup_binary_operands_no_copy.
7998         * config/i386/sse.md (div<VF2:mode>3): Do not call
7999         ix86_fixup_binary_operands_no_copy.
8000         (div<VF1:mode>3): Ditto.
8001         (<maxmin:code><VI8_AVX2_AVX512F:mode>3): Ditto.
8002         (smulhrsv4hi3): Ditto.
8003         (smulhrsv2hi3): Ditto.
8004
8005 2021-05-27  Martin Sebor  <msebor@redhat.com>
8006
8007         * ggc.h (gt_ggc_mx): Add overloads for all integers.
8008         (gt_pch_nx):  Same.
8009         * hash-map.h (class hash_map): Add pch_nx_helper overloads for all
8010         integers.
8011         (hash_map::operator==): New function.
8012
8013 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
8014
8015         PR target/100637
8016         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
8017         For TARGET_XOP bypass SSE comparisons for all supported vector modes.
8018         * config/i386/mmx.md (*xop_maskcmp<MMXMODEI:mode>3): New insn pattern.
8019         (*xop_maskcmp<VI_32:mode>3): Ditto.
8020         (*xop_maskcmp_uns<MMXMODEI:mode>3): Ditto.
8021         (*xop_maskcmp_uns<VI_32:mode>3): Ditto.
8022
8023 2021-05-27  Richard Earnshaw  <rearnsha@arm.com>
8024
8025         PR target/100767
8026         * config/arm/arm.c (arm_configure_build_target): Remove parameter
8027         opts_set, directly check opts parameters for being non-null.
8028         (arm_option_restore): Update call to arm_configure_build_target.
8029         (arm_option_override): Likewise.
8030         (arm_can_inline_p): Likewise.
8031         (arm_valid_target_attribute_tree): Likewise.
8032         * config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
8033         * config/arm/arm-protos.h (arm_configure_build_target): Adjust
8034         prototype.
8035
8036 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
8037
8038         * vr-values.c (simplify_conversion_using_ranges): Use
8039         get_range_query instead of get_global_range_query.
8040
8041 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
8042
8043         * gimple-range.cc (get_range_global): Move to value-query.cc.
8044         (gimple_range_global): Same.
8045         (get_global_range_query): Same.
8046         (global_range_query::range_of_expr): Same.
8047         * gimple-range.h (class global_range_query): Move to
8048         value-query.h.
8049         (gimple_range_global): Same.
8050         * tree-ssanames.c (get_range_info): Move to value-query.cc.
8051         (get_ptr_nonnull): Same.
8052         * tree-ssanames.h (get_range_info): Remove.
8053         (get_ptr_nonnull): Remove.
8054         * value-query.cc (get_ssa_name_range_info): Move from
8055         tree-ssanames.c.
8056         (get_ssa_name_ptr_info_nonnull): Same.
8057         (get_range_global): Move from gimple-range.cc.
8058         (gimple_range_global): Same.
8059         (get_global_range_query): Same.
8060         (global_range_query::range_of_expr): Same.
8061         * value-query.h (class global_range_query): Move from
8062         gimple-range.h.
8063         (gimple_range_global): Same.
8064
8065 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
8066
8067         PR target/100637
8068         * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern.
8069         (uavgv2hi3_ceil): Ditto.
8070
8071 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
8072
8073         PR c/100653
8074         * doc/extend.texi (scalar_storage_order): Rephrase slightly.
8075
8076 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
8077
8078         * tree-ssanames.c (get_range_info): Merge both copies of
8079         get_range_info into one that works with irange.
8080         * tree-ssanames.h (get_range_info): Remove version that works on
8081         wide_ints.
8082
8083 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
8084
8085         * builtins.c (check_nul_terminated_array): Convert to get_range_query.
8086         (expand_builtin_strnlen): Same.
8087         (determine_block_size): Same.
8088         * fold-const.c (expr_not_equal_to): Same.
8089         * gimple-fold.c (size_must_be_zero_p): Same.
8090         * gimple-match-head.c: Include gimple-range.h.
8091         * gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query.
8092         * gimple-ssa-warn-restrict.c
8093         (builtin_memref::extend_offset_range): Same.
8094         * graphite-sese-to-poly.c (add_param_constraints): Same.
8095         * internal-fn.c (get_min_precision): Same.
8096         * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same.
8097         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
8098         * match.pd: Same.
8099         * tree-data-ref.c (split_constant_offset): Same.
8100         (dr_step_indicator): Same.
8101         * tree-dfa.c (get_ref_base_and_extent): Same.
8102         * tree-scalar-evolution.c (iv_can_overflow_p): Same.
8103         * tree-ssa-loop-niter.c (refine_value_range_using_guard): Same.
8104         (determine_value_range): Same.
8105         (record_nonwrapping_iv): Same.
8106         (infer_loop_bounds_from_signedness): Same.
8107         (scev_var_range_cant_overflow): Same.
8108         * tree-ssa-phiopt.c (two_value_replacement): Same.
8109         * tree-ssa-pre.c (insert_into_preds_of_block): Same.
8110         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same.
8111         * tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same.
8112         (get_range): Same.
8113         (dump_strlen_info): Same.
8114         (set_strlen_range): Same.
8115         (maybe_diag_stxncpy_trunc): Same.
8116         (get_len_or_size): Same.
8117         (handle_integral_assign): Same.
8118         * tree-ssa-structalias.c (find_what_p_points_to): Same.
8119         * tree-ssa-uninit.c (find_var_cmp_const): Same.
8120         * tree-switch-conversion.c (bit_test_cluster::emit): Same.
8121         * tree-vect-patterns.c (vect_get_range_info): Same.
8122         (vect_recog_divmod_pattern): Same.
8123         * tree-vrp.c (intersect_range_with_nonzero_bits): Same.
8124         (register_edge_assert_for_2): Same.
8125         (determine_value_range_1): Same.
8126         * tree.c (get_range_pos_neg): Same.
8127         * vr-values.c (vr_values::get_lattice_entry): Same.
8128         (vr_values::update_value_range): Same.
8129         (simplify_conversion_using_ranges): Same.
8130
8131 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
8132
8133         * gimple-ssa-warn-alloca.c (alloca_call_type): Use
8134           get_range_query instead of query argument.
8135         (pass_walloca::execute): Enable and disable global ranger.
8136
8137 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
8138
8139         * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call
8140         enable_ranger.
8141         (rvrp_folder::~rvrp_folder): Call disable_ranger.
8142         (hybrid_folder::hybrid_folder): Call enable_ranger.
8143         (hybrid_folder::~hybrid_folder): Call disable_ranger.
8144
8145 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
8146
8147         * function.c (allocate_struct_function): Set cfun->x_range_query.
8148         * function.h (struct function): Declare x_range_query.
8149         (get_range_query): New.
8150         (get_global_range_query): New.
8151         * gimple-range-cache.cc (ssa_global_cache::ssa_global_cache):
8152         Remove call to safe_grow_cleared.
8153         * gimple-range.cc (get_range_global): New.
8154         (gimple_range_global): Move from gimple-range.h.
8155         (get_global_range_query): New.
8156         (global_range_query::range_of_expr): New.
8157         (enable_ranger): New.
8158         (disable_ranger): New.
8159         * gimple-range.h (gimple_range_global): Move to gimple-range.cc.
8160         (class global_range_query): New.
8161         (enable_ranger): New.
8162         (disable_ranger): New.
8163         * gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename
8164         dump_all_value_ranges to dump.
8165         * tree-vrp.c (vrp_prop::finalize): Same.
8166         * value-query.cc (range_query::dump): New.
8167         * value-query.h (range_query::dump): New.
8168         * vr-values.c (vr_values::dump_all_value_ranges): Rename to...
8169         (vr_values::dump): ...this.
8170         * vr-values.h (class vr_values): Rename dump_all_value_ranges to
8171         dump and make virtual.
8172
8173 2021-05-26  Uroš Bizjak  <ubizjak@gmail.com>
8174
8175         * config/i386/i386.c (ix86_autovectorize_vector_modes):
8176         Add V4QImode and V16QImode for TARGET_SSE2.
8177         * doc/sourcebuild.texi (Vector-specific attributes):
8178         Add vect64 and vect32 description.
8179
8180 2021-05-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8181
8182         * gimple-range-gori.cc (range_def_chain::register_dependency):
8183         Resize m_def_chain when needed.
8184
8185 2021-05-26  Christophe Lyon  <christophe.lyon@linaro.org>
8186
8187         * config/arm/mve.md (mve_vaddvq_<supf><mode>): Prefix with '@'.
8188         * config/arm/neon.md (reduc_plus_scal_<mode>): Move to ..
8189         * config/arm/vec-common.md: .. here. Add support for MVE.
8190
8191 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
8192
8193         * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove
8194         register keywords.
8195         * config/microblaze/microblaze.c (microblaze_legitimize_address,
8196         call_internal1,
8197         microblaze_option_override, print_operand): Likewise.
8198         * config/microblaze/microblaze.md (call_internal_plt,
8199         call_value_intern_plt, call_value_intern): Likewise.
8200         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise.
8201         * config/iq2000/iq2000.md (call_internal1, call_value_internal1,
8202         call_value_multiple_internal1): Likewise.
8203         * config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise.
8204
8205 2021-05-26  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8206
8207         * config/arc/arc.c (arc_address_cost, arc_print_operand_address,
8208         arc_ccfsm_advance, symbolic_reference_mentioned_p,
8209         arc_raw_symbolic_reference_mentioned_p): Remove register
8210         keyword.
8211
8212 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
8213
8214         PR libgomp/100573
8215         * omp-low.c: Include omp-offload.h.
8216         (create_omp_child_function): If current_function_decl has
8217         "omp declare target" attribute and is_gimple_omp_offloaded,
8218         remove that attribute from the copy of attribute list and
8219         add "omp target entrypoint" attribute instead.
8220         (lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.*
8221         variables for offloading if in omp_maybe_offloaded_ctx.
8222         * omp-offload.c (pass_omp_target_link::execute): Nullify second
8223         argument to GOMP_target_data_ext in offloaded code.
8224
8225 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
8226
8227         * config/csky/csky.c (csky_can_change_mode_class): Delete.
8228         For csky, HF/SF mode use the low bits of VREGS.
8229
8230 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
8231
8232         * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a
8233         DECL which is a reference for OMP.
8234
8235 2021-05-26  Martin Liska  <mliska@suse.cz>
8236
8237         PR gcov-profile/100751
8238         * doc/gcov.texi: Document that __gcov_dump can be called just
8239         once and that __gcov_reset resets run-time counters.
8240
8241 2021-05-26  Martin Liska  <mliska@suse.cz>
8242
8243         * doc/install.texi: Port relevant part from install-old.texi
8244         and re-generate list of CPUs and systems.
8245
8246 2021-05-26  Martin Liska  <mliska@suse.cz>
8247
8248         * Makefile.in: Remove it.
8249         * doc/include/fdl.texi: Update next/previous chapters.
8250         * doc/install.texi: Likewise.
8251         * doc/install-old.texi: Removed.
8252
8253 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
8254
8255         * config/csky/csky.c (ck810_legitimate_index_p): Support
8256         "base + index" with DF mode.
8257         * config/csky/constraints.md ("Y"): New constraint for memory operands
8258         without index register.
8259         * config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m"
8260         when mov between memory and general registers, and lower their priority.
8261         * config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise.
8262
8263 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
8264
8265         * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete.
8266
8267 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
8268
8269         * config/csky/csky.md (untyped_call): Emit clobber for return
8270         registers to mark them used.
8271
8272 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
8273
8274         * config/csky/csky.md (cskyv2_sextend_ldbs): New.
8275
8276 2021-05-26  Andrew Pinski  <apinski@marvell.com>
8277
8278         * match.pd (x < 0 ? ~y : y): New patterns.
8279
8280 2021-05-26  Andrew Pinski  <apinski@marvell.com>
8281
8282         * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0,
8283         A?POW2:0 and A?0:POW2.
8284
8285 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
8286
8287         * gimple-range-gori.cc (class logical_stmt_cache): Delete
8288         (logical_stmt_cache::logical_stmt_cache ): Delete.
8289         (logical_stmt_cache::~logical_stmt_cache): Delete.
8290         (logical_stmt_cache::cache_entry::dump): Delete.
8291         (logical_stmt_cache::get_range): Delete.
8292         (logical_stmt_cache::cached_name ): Delete.
8293         (logical_stmt_cache::same_cached_name): Delete.
8294         (logical_stmt_cache::cacheable_p): Delete.
8295         (logical_stmt_cache::slot_diagnostics ): Delete.
8296         (logical_stmt_cache::dump): Delete.
8297         (gori_compute_cache::gori_compute_cache): Delete.
8298         (gori_compute_cache::~gori_compute_cache): Delete.
8299         (gori_compute_cache::compute_operand_range): Delete.
8300         (gori_compute_cache::cache_stmt): Delete.
8301         * gimple-range-gori.h (gori_compute::compute_operand_range): Remove
8302         virtual.
8303         (class gori_compute_cache): Delete.
8304
8305 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
8306
8307         * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori
8308         intead of m_cache.
8309         (fold_using_range::range_of_address): Adjust.
8310         (fold_using_range::range_of_phi): Adjust.
8311         * gimple-range.h (class fur_source): Adjust.
8312         (fur_source::fur_source): Adjust.
8313
8314 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
8315
8316         * gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename
8317         from expr_range_in_bb and adjust.
8318         (gori_compute::compute_name_range_op): Adjust.
8319         (gori_compute::optimize_logical_operands): Adjust.
8320         (gori_compute::compute_logical_operands_in_chain): Adjust.
8321         (gori_compute::compute_operand1_range): Adjust.
8322         (gori_compute::compute_operand2_range): Adjust.
8323         (ori_compute_cache::cache_stmt): Adjust.
8324         * gimple-range-gori.h (gori_compute): Rename prototype.
8325
8326 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
8327
8328         * gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be
8329         checked only after range_of_stmt, not range_on_entry.
8330         (gimple_ranger::range_on_entry): Check for non-null in any
8331         predecessor block, if it is not already non-null.
8332         (gimple_ranger::range_on_exit): DOnt check for non-null after
8333         range on entry call.
8334         (gimple_ranger::dump_bb): New.  Split from dump.
8335         (gimple_ranger::dump): Adjust.
8336         * gimple-range.h (class gimple_ranger): Adjust.
8337
8338 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
8339
8340         * gimple-range-cache.cc (struct range_timestamp): Delete.
8341         (class temporal_cache): Adjust.
8342         (temporal_cache::get_timestamp): Delete.
8343         (temporal_cache::set_dependency): Delete.
8344         (temporal_cache::temporal_value): Adjust.
8345         (temporal_cache::current_p): Take dependencies as params.
8346         (temporal_cache::set_timestamp): Adjust.
8347         (temporal_cache::set_always_current): Adjust.
8348         (ranger_cache::get_non_stale_global_range): Adjust.
8349         (ranger_cache::register_dependency): Delete.
8350         * gimple-range-cache.h (class range_cache): Adjust.
8351
8352 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
8353
8354         * gimple-range-gori.cc (range_def_chain::range_def_chain): init
8355         bitmap obstack.
8356         (range_def_chain::~range_def_chain): Dispose of obstack rather than
8357         each individual bitmap.
8358         (range_def_chain::set_import): New.
8359         (range_def_chain::get_imports): New.
8360         (range_def_chain::chain_import_p): New.
8361         (range_def_chain::register_dependency): Rename from build_def_chain
8362         and set imports.
8363         (range_def_chain::def_chain_in_bitmap_p): New.
8364         (range_def_chain::add_def_chain_to_bitmap): New.
8365         (range_def_chain::has_def_chain): Just check first depenedence.
8366         (range_def_chain::get_def_chain): Process imports, use generic
8367         register_dependency routine.
8368         (range_def_chain::dump): New.
8369         (gori_map::gori_map): Allocate import list.
8370         (gori_map::~gori_map): Release imports.
8371         (gori_map::exports): Check for past allocated block size.
8372         (gori_map::imports): New.
8373         (gori_map::def_chain_in_export_p): Delete.
8374         (gori_map::is_import_p): New.
8375         (gori_map::maybe_add_gori): Handle imports.
8376         (gori_map::dump): Adjust output, add imports.
8377         (gori_compute::has_edge_range_p): Remove def_chain_in_export call.
8378         (gori_export_iterator::gori_export_iterator): New.
8379         (gori_export_iterator::next): New.
8380         (gori_export_iterator::get_name): New.
8381         * gimple-range-gori.h (range_def_chain): Add imports and direct
8382         dependecies via struct rdc.
8383         (range_def_chain::depend1): New.
8384         (range_def_chain::depend2): New.
8385         (class gori_map): Adjust.
8386         (FOR_EACH_GORI_IMPORT_NAME): New.
8387         (FOR_EACH_GORI_EXPORT_NAME): New.
8388         (class gori_export_iterator): New.
8389
8390 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
8391
8392         * gimple-range-cache.cc (ranger_cache::ranger_cache):  Move initial
8393         export cache filling to here.
8394         * gimple-range-gori.cc (gori_compute::gori_compute) : From Here.
8395
8396 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
8397
8398         * gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h.
8399         (gori_map): Move to gimple-range-gori.h.
8400         (gori_compute::gori_compute): Adjust.
8401         (gori_compute::~gori_compute): Delete.
8402         (gori_compute::compute_operand_range_switch): Adjust.
8403         (gori_compute::compute_operand_range): Adjust.
8404         (gori_compute::compute_logical_operands): Adjust.
8405         (gori_compute::has_edge_range_p ): Adjust.
8406         (gori_compute::set_range_invariant): Delete.
8407         (gori_compute::dump): Adjust.
8408         (gori_compute::outgoing_edge_range_p): Adjust.
8409         * gimple-range-gori.h (class range_def_chain): Relocate here.
8410         (class gori_map): Relocate here.
8411         (class gori_compute): Inherit from gori_map, and adjust.
8412
8413 2021-05-25  Aldy Hernandez  <aldyh@redhat.com>
8414
8415         * value-range.cc (range_tests_legacy): Use
8416         build_nonstandard_integer_type instead of int and short.
8417
8418 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8419
8420         * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL
8421         when really creating an initialization statement for it.
8422
8423 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8424
8425         * tree-inline.c (setup_one_parameter): Fix thinko in new condition.
8426
8427 2021-05-25  Kito Cheng  <kito.cheng@sifive.com>
8428
8429         * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax.
8430
8431 2021-05-25  Martin Liska  <mliska@suse.cz>
8432
8433         PR tree-optimization/92860
8434         PR target/99592
8435         * optc-save-gen.awk: Remove exceptions.
8436
8437 2021-05-25  Martin Liska  <mliska@suse.cz>
8438
8439         * asan.h (sanitize_coverage_p): New function.
8440         * doc/extend.texi: Document it.
8441         * fold-const.c (fold_range_test): Use sanitize_flags_p
8442         instead of flag_sanitize_coverage.
8443         (fold_truth_andor): Likewise.
8444         * sancov.c: Likewise.
8445         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
8446         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle
8447         -fsanitize-coverage when inlining.
8448
8449 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
8450
8451         * config/csky/csky-modes.def : Fix copyright.
8452
8453 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
8454
8455         * config/csky/csky-modes.def : Amend copyright.
8456         * config/csky/csky_insn_fpuv2.md : Likewise.
8457         * config/csky/csky_insn_fpuv3.md : Likewise.
8458
8459 2021-05-25  Richard Biener  <rguenther@suse.de>
8460
8461         PR middle-end/100727
8462         * calls.c (initialize_argument_information): Explicitely test
8463         for WITH_SIZE_EXPR.
8464         * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR.
8465
8466 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
8467
8468         * config/csky/csky.h (FRAME_POINTER_REGNUM): Use
8469         HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of
8470         the signle definition. The signle definition may not work well
8471         at simplify_subreg_regno().
8472         (HARD_FRAME_POINTER_REGNUM): New.
8473         (ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM.
8474         * config/csky/csky.c (get_csky_live_regs, csky_can_eliminate,
8475         csky_initial_elimination_offset, csky_expand_prologue,
8476         csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM.
8477
8478 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
8479
8480         * config/csky/csky.c (csky_option_override):
8481         Init csky_arch_isa_features[] in advance, so TARGET_DSP
8482         and TARGET_DIV can be set well.
8483
8484 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
8485
8486         * config/csky/constraints.md ("l", "h"): Delete.
8487         * config/csky/csky.h (reg_class, REG_CLASS_NAMES,
8488         REG_CLASS_CONTENTS):  Delete LO_REGS and HI_REGS.
8489         * config/csky/csky.c (regno_reg_classm,
8490         csky_secondary_reload, csky_register_move_cost):
8491         Use HILO_REGS instead of LO_REGS and HI_REGS.
8492
8493 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
8494
8495         * config/csky/constraints.md ("W"): New constriant for mem operand
8496         with base reg, index register.
8497         ("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to
8498         "csky_valid_mem_constraint_operand" to deal with both "Q" and "W"
8499         constraint.
8500         ("Dv"): New constraint for const double value that can be used at
8501         fmovi instruction.
8502         * config/csky/csky-modes.def (HFmode): New mode.
8503         * config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename
8504         to "csky_valid_mem_constraint_operand" and support new constraint
8505         "W".
8506         (csky_get_movedouble_length): New.
8507         (fpuv3_output_move): New.
8508         (fpuv3_const_double): New.
8509         * config/csky/csky.c (csky_option_override): New arch CK860 with fpv3.
8510         (decompose_csky_address): Refine.
8511         (csky_print_operand): New "CONST_DOUBLE" operand.
8512         (csky_output_move): Support fpv3 instructions.
8513         (csky_get_movedouble_length): New.
8514         (fpuv3_output_move): New.
8515         (fpuv3_const_double): New.
8516         (csky_emit_compare): Cover float comparsion.
8517         (csky_emit_compare_float): Refine.
8518         (csky_vaild_fpuv2_mem_operand): Rename to
8519         "csky_valid_mem_constraint_operand" and support new constraint "W".
8520         (ck860_rtx_costs): New.
8521         (csky_rtx_costs): Add the cost calculation of CK860.
8522         (regno_reg_class): New vregs for fpuv3.
8523         (csky_dbx_regno): Likewise.
8524         (csky_cpu_cpp_builtins): New builtin macro for fpuv3.
8525         (csky_conditional_register_usage): Suporrot fpuv3.
8526         (csky_dwarf_register_span): Suporrot fpuv3.
8527         (csky_init_builtins, csky_mangle_type): Support "__fp16" type.
8528         (ck810_legitimate_index_p): Support fp16.
8529         * config/csky/csky.h (TARGET_TLS): ADD CK860.
8530         (CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3.
8531         (TARGET_SINGLE_FPU): Support fpuv3.
8532         (TARGET_SUPPORT_FPV3): New.
8533         (FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers.
8534         (FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES,
8535          REG_CLASS_CONTENTS): Support fpuv3.
8536         * config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine.
8537         (csky_movsf_fpv2): Likewise.
8538         (ck801_movsf): Likewise.
8539         (csky_movsf): Likewise.
8540         (movdf): Likewise.
8541         (csky_movdf_fpv2): Likewise.
8542         (ck801_movdf): Likewise.
8543         (csky_movdf): Likewise.
8544         (movsicc): Refine. Use "comparison_operatior" instead of
8545         "ordered_comparison_operatior".
8546         (addsicc): Likewise.
8547         (CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant.
8548         (call_value_internal_vh): New.
8549         * config/csky/csky_cores.def (CK860): New arch and cpu.
8550         (fpv3_hf): New.
8551         (fpv3_hsf): New.
8552         (fpv3_sdf): New.
8553         (fpv3): New.
8554         * config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns
8555         into emit-patterns and match-patterns, remain the emit-patterns here,
8556         and move the match-patterns to csky_insn_fpuv2.md or
8557         csky_insn_fpuv3.md.
8558         * config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions.
8559         * config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3
8560         isntructions.
8561         * config/csky/csky_isa.def (fcr): New.
8562         (fpv3_hi): New.
8563         (fpv3_hf): New.
8564         (fpv3_sf): New.
8565         (fpv3_df): New.
8566         (CK860): New definition for ck860.
8567         * config/csky/csky_tables.opt (ck860): New processors ck860,
8568         ck860f. And new arch ck860.
8569         (fpv3_hf): New.
8570         (fpv3_hsf): New.
8571         (fpv3_hdf): New.
8572         (fpv3): New.
8573         * config/csky/predicates.md (csky_float_comparsion_operator): Delete
8574         "geu", "gtu", "leu", "ltu", which will never appear at float comparison.
8575         * config/csky/t-csky-elf: Support 860.
8576         * config/csky/t-csky-linux: Likewise.
8577         * doc/md.texi: Add "Q" and "W" constraints for C-SKY.
8578
8579 2021-05-24  Aaron Sawdey  <acsawdey@linux.ibm.com>
8580
8581         * config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to
8582         add generation of logical-add and add-logical fusion pairs.
8583         * config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask
8584         and powerpc mask.
8585         * config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on
8586         logical-add and add-logical fusion by default.
8587         * config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and
8588         -mpower10-fusion-add-logical options.
8589         * config/rs6000/fusion.md: Regenerate file.
8590
8591 2021-05-24  Aldy Hernandez  <aldyh@redhat.com>
8592
8593         * value-range.cc (irange::legacy_equal_p): Check type when
8594         comparing VR_VARYING types.
8595         (range_tests_legacy): Test comparing VARYING ranges of different
8596         sizes.
8597
8598 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
8599
8600         * config/aarch64/aarch64.c (neoversen1_tunings):
8601         Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
8602
8603 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
8604
8605         * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for
8606         extern weak symbols.  Limit symbol offsets for non-GOT symbols with
8607         PIC/PIE.
8608
8609 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
8610
8611         * config/arm/neon.md (vec_load_lanesxi<mode>)
8612         (vec_store_lanexoi<mode>): Move ...
8613         * config/arm/vec-common.md: here.
8614
8615 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
8616
8617         * config/arm/neon.md (vec_load_lanesoi<mode>)
8618         (vec_store_lanesoi<mode>): Move ...
8619         * config/arm/vec-common.md: here.
8620
8621 2021-05-24  liuhongt  <hongtao.liu@intel.com>
8622
8623         PR target/100660
8624         * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing
8625         stmt with GIMPLE_NOP when lhs doesn't exist.
8626
8627 2021-05-23  Uroš Bizjak  <ubizjak@gmail.com>
8628
8629         PR target/100722
8630         * config/i386/mmx.md (*push<VI_32:mode>2_rex64):
8631         New instruction pattern.
8632         (*push<VI_32:mode>2): Ditto.
8633         (push splitter for SSE registers): New splitter.
8634
8635 2021-05-23  Andrew Pinski  <apinski@marvell.com>
8636
8637         * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types.
8638
8639 2021-05-22  Aaron Sawdey  <acsawdey@linux.ibm.com>
8640
8641         * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types.
8642         * config/rs6000/fusion.md: Regenerate file.
8643
8644 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
8645
8646         * config/rs6000/genfusion.pl (gen_addadd): New function.
8647         * config/rs6000/fusion.md: Regenerate file.
8648         * config/rs6000/rs6000-cpus.def: Add
8649         OPTION_MASK_P10_FUSION_2ADD to masks.
8650         * config/rs6000/rs6000.c (rs6000_option_override_internal):
8651         Handle default value of OPTION_MASK_P10_FUSION_2ADD.
8652         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2add.
8653
8654 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
8655
8656         PR middle-end/99928
8657         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define.
8658         * gimplify.c (enum gimplify_omp_var_data): Fix up
8659         GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT.
8660         (omp_lastprivate_for_combined_outer_constructs): If combined target
8661         has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to
8662         GOVD_MAP | GOVD_SEEN.
8663         (gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for
8664         firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT.
8665         (gimplify_adjust_omp_clauses): For firstprivate clauses with
8666         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and
8667         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and
8668         let it be replaced by implicit map clause.
8669
8670 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
8671
8672         PR middle-end/99928
8673         * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New
8674         function.
8675         (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it.
8676         (gimplify_omp_for): Likewise.
8677
8678 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
8679
8680         PR middle-end/90115
8681         * omp-low.c (oacc_privatization_candidate_p): Reject 'static',
8682         'external' in blocks.
8683
8684 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
8685
8686         PR middle-end/90115
8687         * flag-types.h (enum openacc_privatization): New.
8688         * params.opt (-param=openacc-privatization): New.
8689         * doc/invoke.texi (openacc-privatization): Document it.
8690         * omp-general.h (get_openacc_privatization_dump_flags): New
8691         function.
8692         * omp-low.c (oacc_privatization_candidate_p): Add diagnostics.
8693         * omp-offload.c (execute_oacc_device_lower)
8694         <IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics.
8695         * target.def (goacc.adjust_private_decl): Add 'location_t'
8696         parameter.
8697         * doc/tm.texi: Regenerate.
8698         * config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust.
8699         * config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise.
8700         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl):
8701         Likewise.  Preserve it for...
8702         (nvptx_goacc_expand_var_decl): ... use here.
8703
8704 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
8705
8706         * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__'
8707         DejaGnu selector.
8708
8709 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
8710
8711         PR middle-end/90115
8712         * omp-low.c (oacc_privatization_candidate_p): New function.
8713         (oacc_privatization_scan_clause_chain)
8714         (oacc_privatization_scan_decl_chain): Use it.  Also
8715         'gcc_checking_assert' that we're not seeing duplicates.
8716
8717 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
8718
8719         PR middle-end/90115
8720         * omp-offload.c (execute_oacc_device_lower): Skip processing if no
8721         work to be done.
8722
8723 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
8724
8725         PR middle-end/90115
8726         * omp-offload.c (execute_oacc_device_lower): Explain.
8727
8728 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
8729
8730         PR middle-end/90115
8731         * omp-offload.c (execute_oacc_device_lower)
8732         <IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1'
8733         case, too.
8734         * internal-fn.c (expand_UNIQUE): Don't expect
8735         'IFN_UNIQUE_OACC_PRIVATE'.
8736
8737 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
8738
8739         PR middle-end/90115
8740         * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses.
8741
8742 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
8743
8744         PR middle-end/90115
8745         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl)
8746         (nvptx_goacc_expand_var_decl): Tighten.
8747
8748 2021-05-21  Julian Brown  <julian@codesourcery.com>
8749             Chung-Lin Tang  <cltang@codesourcery.com>
8750             Thomas Schwinge  <thomas@codesourcery.com>
8751
8752         PR middle-end/90115
8753         * doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL)
8754         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks.
8755         * doc/tm.texi: Regenerate.
8756         * expr.c (expand_expr_real_1): Expand decls using the
8757         expand_var_decl OpenACC hook if defined.
8758         * internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE.
8759         * internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE.
8760         * omp-low.c (omp_context): Add oacc_privatization_candidates
8761         field.
8762         (lower_oacc_reductions): Add PRIVATE_MARKER parameter.  Insert
8763         before fork.
8764         (lower_oacc_head_tail): Add PRIVATE_MARKER parameter.  Modify
8765         private marker's gimple call arguments, and pass it to
8766         lower_oacc_reductions.
8767         (oacc_privatization_scan_clause_chain)
8768         (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
8769         New functions.
8770         (lower_omp_for, lower_omp_target, lower_omp_1): Use these.
8771         * omp-offload.c (convert.h): Include.
8772         (oacc_loop_xform_head_tail): Treat private-variable markers like
8773         fork/join when transforming head/tail sequences.
8774         (struct var_decl_rewrite_info): Add struct.
8775         (oacc_rewrite_var_decl, is_sync_builtin_call): New functions.
8776         (execute_oacc_device_lower): Support rewriting gang-private
8777         variables using target hook, and fix up addr_expr and var_decl
8778         nodes afterwards.
8779         * target.def (adjust_private_decl, expand_var_decl): New hooks.
8780         * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl):
8781         Rename to...
8782         (gcn_goacc_adjust_private_decl): ...this.
8783         * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl):
8784         Rename to...
8785         (gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter.
8786         * config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename
8787         definition using gcn_goacc_adjust_gangprivate_decl...
8788         (TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using
8789         gcn_goacc_adjust_private_decl.
8790         * config/nvptx/nvptx.c (tree-pretty-print.h): Include.
8791         (gang_private_shared_size): New global variable.
8792         (gang_private_shared_align): Likewise.
8793         (gang_private_shared_sym): Likewise.
8794         (gang_private_shared_hmap): Likewise.
8795         (nvptx_option_override): Initialize these.
8796         (nvptx_file_end): Output gang_private_shared_sym.
8797         (nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl):
8798         New functions.
8799         (nvptx_set_current_function): Clear gang_private_shared_hmap.
8800         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook.
8801         (TARGET_GOACC_EXPAND_VAR_DECL): Likewise.
8802
8803 2021-05-21  H.J. Lu  <hjl.tools@gmail.com>
8804
8805         * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed.
8806
8807 2021-05-21  Richard Biener  <rguenther@suse.de>
8808             H.J. Lu  <hjl.tools@gmail.com>
8809
8810         PR middle-end/90773
8811         * expr.c (expand_constructor): Elide expand_constructor if
8812         move by pieces is preferred.
8813
8814 2021-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8815
8816         * config/aarch64/aarch64-builtins.c (aarch64_call_properties):
8817         Take a flag and mode value as arguments.
8818         (aarch64_modifies_global_state_p): Likewise.
8819         (aarch64_reads_global_state_p): Likewise.
8820         (aarch64_could_trap_p): Likewise.
8821         (aarch64_get_attributes): Likewise.
8822         (aarch64_init_simd_builtins): Adjust callsite of above.
8823         (aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get
8824         function attributes to apply to builtins.
8825         (aarch64_init_crc32_builtins): Likewise.
8826         (aarch64_init_builtin_rsqrt): Likewise.
8827
8828 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
8829
8830         * config/rs6000/rs6000.md (define_attr "type"): Add types for fusion.
8831         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types.
8832         (gen_2logical): Use new fusion types.
8833         * config/rs6000/fusion.md: Regenerate.
8834
8835 2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>
8836
8837         PR target/100637
8838         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
8839         Handle V4QI and V2HI modes.
8840         (ix86_expand_sse_movcc): Ditto.
8841         * config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3):
8842         New instruction pattern.
8843         (*eq<VI_32:mode>3): Ditto.
8844         (*gt<VI_32:mode>3): Ditto.
8845         (*xop_pcmov_<VI_32:mode>): Ditto.
8846         (mmx_pblendvb32): Ditto.
8847         (mmx_pblendvb64): Rename from mmx_pblendvb.
8848         (vec_cmp<VI_32:mode><VI_32:mode>): New expander.
8849         (vec_cmpu<VI_32:mode><VI_32:mode>): Ditto.
8850         (vcond<VI_32:mode><VI_32:mode>): Ditto.
8851         (vcondu<VI_32:mode><VI_32:mode>): Ditto.
8852         (vcond_mask_<VI_32:mode><VI_32:mode>): Ditto.
8853
8854 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
8855
8856         PR tree-optimization/94589
8857         * tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and
8858         rhs2, treat x <= 4 equivalently to x < 5 etc.  In cmp1 and cmp2 (if
8859         not the same as cmp3) treat <= the same as < and >= the same as >.
8860         Don't require that cond2_phi_edge is true edge, instead take
8861         false/true edges into account based on cmp1/cmp2 comparison kinds.
8862
8863 2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>
8864
8865         PR target/100637
8866         * config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator.
8867         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Macroize expander
8868         from <smaxmin:code>v4hi3> and <smaxmin:code><MMXMODE14:mode>3
8869         using SMAXMIN_MMXMODEI mode iterator.
8870         (*<smaxmin:code>v4qi3): New insn pattern.
8871         (*<smaxmin:code>v2hi3): Ditto.
8872         (SMAXMIN_VI_32): New mode iterator.
8873         (<smaxmin:code><SMAXMIN_VI_32>mode3): New expander.
8874         (UMAXMIN_MMXMODEI): New mode iterator.
8875         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Macroize expander
8876         from <umaxmin:code>v8qi3> and <umaxmin:code><MMXMODE24:mode>3
8877         using UMAXMIN_MMXMODEI mode iterator.
8878         (*<umaxmin:code>v4qi3): New insn pattern.
8879         (*<umaxmin:code>v2hi3): Ditto.
8880         (UMAXMIN_VI_32): New mode iterator.
8881         (<umaxmin:code><UMAXMIN_VI_32>mode3): New expander.
8882         (abs<VI_32:mode>2): New insn pattern.
8883         (ssse3_abs<MMXMODEI:mode>2, abs<MMXMODEI:mode>2): Move from ...
8884         * config/i386/sse.md: ... here.
8885
8886 2021-05-20  Clement Chigot  <clement.chigot@atos.net>
8887             David Edelsohn  <dje.gcc@gmail.com>
8888
8889         * collect2.c (scan_prog_file): Issue non-fatal warning for
8890         non-COFF files.
8891
8892 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
8893
8894         * doc/invoke.texi (-Wno-c++11-extensions)
8895         (-Wno-c++14-extensions, -Wno-c++17-extensions)
8896         (-Wno-c++20-extensions, -Wno-c++23-extensions): Document
8897         new options.
8898
8899 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
8900
8901         * config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p.
8902         * config/darwin.c (darwin_override_options): Likewise.
8903         * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
8904         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
8905         (DWARF2_FRAME_REG_OUT): Likewise.
8906         * config/mips/mips.c (mips_output_filename): Likewise.
8907         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name):
8908         Likewise.
8909         (rs6000_dbx_register_number): Likewise.
8910         * dbxout.c: Include flags.h.
8911         * dwarf2cfi.c (cfi_label_required_p): Likewise.
8912         (dwarf2out_do_frame): Likewise.
8913         * except.c: Include flags.h.
8914         * final.c (dwarf2_debug_info_emitted_p): Likewise.
8915         (final_scan_insn_1): Likewise.
8916         * flags.h (dwarf_debuginfo_p): New function declaration.
8917         * opts.c (dwarf_debuginfo_p): New function definition.
8918         * targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p.
8919         * toplev.c (process_options): Likewise.
8920
8921 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
8922
8923         * common.opt: Change type to support bitmasks.
8924         * flag-types.h (enum debug_info_type): Rename enumerator constants.
8925         (NO_DEBUG): New bitmask.
8926         (DBX_DEBUG): Likewise.
8927         (DWARF2_DEBUG): Likewise.
8928         (XCOFF_DEBUG): Likewise.
8929         (VMS_DEBUG): Likewise.
8930         (VMS_AND_DWARF2_DEBUG): Likewise.
8931         * flags.h (debug_set_to_format): New function declaration.
8932         (debug_set_count): Likewise.
8933         (debug_set_names): Likewise.
8934         * opts.c (debug_type_masks): Array of bitmasks for debug formats.
8935         (debug_set_to_format): New function definition.
8936         (debug_set_count): Likewise.
8937         (debug_set_names): Likewise.
8938         (set_debug_level): Update access to debug_type_names.
8939         * toplev.c: Likewise.
8940
8941 2021-05-20  Martin Sebor  <msebor@redhat.com>
8942
8943         PR middle-end/100684
8944         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda.
8945
8946 2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>
8947
8948         PR target/100701
8949         * config/i386/i386.md (isa): Remove x64_bmi.
8950         (enabled): Remove x64_bmi.
8951         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
8952         Remove general register alternative.
8953         (*andnot<VI_32:mode>3): Ditto.
8954         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
8955         (*<any_logic:code><VI_32:mode>3): Ditto.
8956
8957 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
8958
8959         * config/arm/arm.c: Include head files tree-vectorizer.h and
8960         cfgloop.h.
8961
8962 2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>
8963
8964         PR target/100637
8965         * config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes.
8966         (*<plusminus:insn><VI_32:mode>3): Use Yw instad of <Yv_Yw> constrint.
8967         (<s>mulv4hi3_highpart): New expander.
8968         (*<s>mulv2hi3_highpart): New insn pattern.
8969         (<s>mulv2hi3_higpart): New expander.
8970         (*<any_shift:insn>v2hi3): New insn pattern.
8971         (<any_shift:insn>v2hi3): New expander.
8972         * config/i386/sse.md (smulhrsv2hi3): New expander.
8973         (*smulhrsv2hi3): New insn pattern.
8974
8975 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
8976
8977         * doc/invoke.texi (vect-inner-loop-cost-factor): Document new
8978         parameter.
8979         * params.opt (vect-inner-loop-cost-factor): New.
8980         * targhooks.c (default_add_stmt_cost): Replace hardcoded factor
8981         50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file
8982         tree-vectorizer.h and its required ones.
8983         * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace
8984         hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR.
8985         * config/arm/arm.c (arm_add_stmt_cost): Likewise.
8986         * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
8987         * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
8988         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
8989         Likewise.
8990         (_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor.
8991         * tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor.
8992         (LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro.
8993
8994 2021-05-20  Christophe Lyon  <christophe.lyon@linaro.org>
8995             Torbjörn Svensson  <torbjorn.svensson@st.com>
8996
8997         PR c/42579
8998         * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__.
8999
9000 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
9001
9002         PR middle-end/99928
9003         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LINEAR>: For
9004         explicit linear clause when combined with target, make it map(tofrom:)
9005         instead of no clause or firstprivate.
9006
9007 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
9008
9009         PR tree-optimization/94589
9010         * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence
9011         of integral conversions.
9012
9013 2021-05-19  Andrew MacLeod  <amacleod@redhat.com>
9014
9015         * gimple-range.cc (fur_source::get_operand): New.
9016         (gimple_range_fold): Delete.
9017         (fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt.
9018         (fold_using_range::range_of_range_op): Move from gimple_ranger.
9019         (fold_using_range::range_of_address): Ditto.
9020         (fold_using_range::range_of_phi): Ditto.
9021         (fold_using_range::range_of_call): Ditto.
9022         (fold_using_range::range_of_builtin_ubsan_call): Move from
9023         range_of_builtin_ubsan_call.
9024         (fold_using_range::range_of_builtin_call): Move from
9025         range_of_builtin_call.
9026         (gimple_ranger::range_of_builtin_call): Delete.
9027         (fold_using_range::range_of_cond_expr): Move from gimple_ranger.
9028         (gimple_ranger::fold_range_internal): New.
9029         (gimple_ranger::range_of_stmt): Use new fold_using_range API.
9030         (fold_using_range::range_of_ssa_name_with_loop_info): Move from
9031         gimple_ranger.  Improve ranges of SSA_NAMES when possible.
9032         * gimple-range.h (gimple_ranger): Remove various range_of routines.
9033         (class fur_source): New.
9034         (class fold_using_range): New.
9035         (fur_source::fur_source): New.
9036         (fold_range): New.
9037         * vr-values.c (vr_values::extract_range_basic): Use fold_using_range
9038         instead of range_of_builtin_call.
9039
9040 2021-05-19  Jonathan Wakely  <jwakely@redhat.com>
9041
9042         * doc/cpp.texi (Common Predefined Macros): Update documentation
9043         for the __GXX_EXPERIMENTAL_CXX0X__ macro.
9044
9045 2021-05-19  Alex Coplan  <alex.coplan@arm.com>
9046
9047         PR target/100333
9048         * config/arm/arm.md (nonsecure_call_internal): Always ensure
9049         callee's address is in a register.
9050
9051 2021-05-19  Geng Qi  <gengqi@linux.alibaba.com>
9052
9053         * common/config/riscv/riscv-common.c
9054         (riscv_subset_list::parsing_subset_version): Properly parse the letter
9055         'p' in '-march'.
9056         (riscv_subset_list::parse_std_ext,
9057          riscv_subset_list::parse_multiletter_ext): To handle errors generated
9058         in riscv_subset_list::parsing_subset_version.
9059
9060 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
9061
9062         * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q"
9063         type attribute in patterns generating XTN(2).
9064
9065 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
9066
9067         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_<mode>):
9068         Remove as duplicate of...
9069         (aarch64_xtn<mode>): This.
9070         (aarch64_xtn2<mode>_le): Move position in file.
9071         (aarch64_xtn2<mode>_be): Move position in file.
9072         (aarch64_xtn2<mode>): Move position in file.
9073         (vec_pack_trunc_<mode>): Define as an expander.
9074
9075 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
9076
9077         * config/aarch64/aarch64-simd-builtins.def: Split builtin
9078         generation for aarch64_<sur>q<r>shr<u>n_n<mode> pattern into
9079         separate scalar and vector generators.
9080         * config/aarch64/aarch64-simd.md
9081         (aarch64_<sur>q<r>shr<u>n_n<mode>): Define as an expander and
9082         split into...
9083         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): This and...
9084         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): This.
9085         * config/aarch64/iterators.md: Define SD_HSDI iterator.
9086
9087 2021-05-19  Jonathn Wright  <jonathan.wright@arm.com>
9088
9089         * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead
9090         of UNSPEC_SQXTUN2.
9091         * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2.
9092
9093 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
9094
9095         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n2_n<mode>):
9096         Implement as an expand emitting a big/little endian
9097         instruction pattern.
9098         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Define.
9099         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Define.
9100
9101 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
9102
9103         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>):
9104         Implement as an expand emitting a big/little endian
9105         instruction pattern.
9106         (aarch64_<sur><addsub>hn2<mode>_insn_le): Define.
9107         (aarch64_<sur><addsub>hn2<mode>_insn_be): Define.
9108         * config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and
9109         UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator.
9110
9111 2021-05-19  Richard Biener  <rguenther@suse.de>
9112
9113         PR middle-end/100672
9114         * fold-const.c (fold_negate_expr_1): Use element_precision.
9115         (negate_expr_p): Likewise.
9116
9117 2021-05-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
9118
9119         * config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator.
9120         (pred_load): New int attribute.
9121         * config/aarch64/aarch64-sve.md
9122         (aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Use
9123         SVE_PRED_LOAD enum iterator and corresponding pred_load attribute.
9124         * config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to
9125         code_for_aarch64_load.
9126
9127 2021-05-19  Richard Biener  <rguenther@suse.de>
9128
9129         * cfgexpand.c (discover_nonconstant_array_refs_r): Make
9130         sure TARGET_MEM_REF bases are expanded as memory.
9131         * tree-ssa-operands.c (operands_scanner::get_tmr_operands):
9132         Do not mark TARGET_MEM_REF bases addressable.
9133         * tree-ssa.c (non_rewritable_mem_ref_base): Handle
9134         TARGET_MEM_REF bases as never rewritable.
9135         * gimple-walk.c (walk_stmt_load_store_addr_ops): Do not
9136         walk TARGET_MEM_REF bases as address-takens.
9137         * tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF.
9138
9139 2021-05-19  Richard Biener  <rguenther@suse.de>
9140
9141         * builtins.c (get_object_alignment_1): Strip outer
9142         WITH_SIZE_EXPR.
9143         * tree-dfa.c (get_ref_base_and_extent): Handle outer
9144         WITH_SIZE_EXPR for size processing and process the
9145         containing ref.
9146         * tree-ssa-alias.c (ao_ref_base_alias_set): Strip
9147         outer WITH_SIZE_EXPR.
9148         (ao_ref_base_alias_ptr_type): Likewise.
9149         (refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref
9150         and handle that accordingly, stripping it for the
9151         core alias workers.
9152         * tree.c (get_base_address): Handle WITH_SIZE_EXPR by
9153         looking through it instead of returning NULL.
9154
9155 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
9156
9157         PR middle-end/100576
9158         * builtins.c (check_read_access): Convert bound to size_type_node if
9159         non-NULL.
9160
9161 2021-05-19  Richard Biener  <rguenther@suse.de>
9162
9163         * tree-cfg.c (verify_types_in_gimple_min_lval): Inline...
9164         (verify_types_in_gimple_reference): ... here.  Sanitize.
9165         (verify_gimple_call): Verify references in LHS and arguments.
9166         (verify_gimple_assign_single): Reject WITH_SIZE_EXPR.
9167
9168 2021-05-19  Uroš Bizjak  <ubizjak@gmail.com>
9169
9170         * config/i386/i386.h (VALID_INT_MODE_P):
9171         Add V8QI, V4HI and V2SI modes for TARGET_64BIT.
9172         * config/i386/i386.md (isa): Add x64_bmi.
9173         (enabled): Handle x64_bmi.
9174         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
9175         Add alternative using 64bit general registers.
9176         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
9177
9178 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
9179
9180         PR middle-end/99928
9181         * tree.h (OMP_MASTER_COMBINED): Define.
9182         * gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate
9183         handling for outer combined/composite constructs to a loop.
9184         Handle lastprivate on combined target.
9185         (gimplify_expr): Formatting fix.
9186
9187 2021-05-19  Xionghu Luo  <luoxhu@linux.ibm.com>
9188
9189         * passes.def: Add sink_code pass before store_merging.
9190         * tree-ssa-sink.c (pass_sink_code:clone): New.
9191
9192 2021-05-18  Bill Schmidt  <wschmidt@linux.ibm.com>
9193
9194         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to
9195         rs6000_special_adjust_field_align_p.
9196         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
9197         * config/rs6000/rs6000-call.c (rs6000_function_arg_boundary):
9198         Remove ABI warning.
9199         (rs6000_function_arg): Likewise.
9200         * config/rs6000/rs6000-protos.h
9201         (rs6000_special_adjust_field_align_p): Remove prototype.
9202         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
9203         Remove.
9204         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to
9205         rs6000_special_adjust_field_align_p.
9206
9207 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
9208
9209         PR target/100637
9210         * config/i386/i386.h (VALID_SSE2_REG_MODE):
9211         Add V4QI and V2HI modes.
9212         (VALID_INT_MODE_P): Ditto.
9213         * config/i386/mmx.md (VI_32): New mode iterator.
9214         (mmxvecsize): Handle V4QI and V2HI.
9215         (Yv_Yw): Ditto.
9216         (mov<VI_32:mode>): New expander.
9217         (*mov<mode>_internal): New insn pattern.
9218         (movmisalign<VI_32:mode>): New expander.
9219         (neg<VI_32:mode>): New expander.
9220         (<plusminus:insn><VI_32:mode>3): New expander.
9221         (*<plusminus:insn><VI_32:mode>3): New insn pattern.
9222         (mulv2hi3): New expander.
9223         (*mulv2hi3): New insn pattern.
9224         (one_cmpl<VI_32:mode>2): New expander.
9225         (*andnot<VI_32:mode>3): New insn pattern.
9226         (<any_logic:code><VI_32:mode>3): New expander.
9227         (*<any_logic:code><VI_32:mode>3): New insn pattern.
9228
9229 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
9230
9231         * config/i386/sse.md (<any_extend:insn>v4qiv4di2):
9232         Fix a mode mismatch with operand 1.
9233
9234 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
9235
9236         PR target/100626
9237         * config/i386/i386-expand.c (split_double_mode): Return
9238         temporary register when simplify_gen_subreg fails with
9239         the high half od the paradoxical subreg.
9240
9241 2021-05-18  Richard Biener  <rguenther@suse.de>
9242
9243         * cfgexpand.c (expand_one_var): Pass in forced_stack_var
9244         and honor it when expanding.
9245         (expand_used_vars_for_block): Pass through forced_stack_var.
9246         (expand_used_vars): Likewise.
9247         (discover_nonconstant_array_refs_r): Set bits in
9248         forced_stack_vars instead of marking vars TREE_ADDRESSABLE.
9249         (avoid_type_punning_on_regs): Likewise.
9250         (discover_nonconstant_array_refs): Likewise.
9251         (pass_expand::execute): Create and pass down forced_stack_var
9252         bitmap.  For parameters and returns temporarily set
9253         TREE_ADDRESSABLE when expand_function_start.
9254
9255 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
9256
9257         * doc/sourcebuild.texi: Document 'dg-note'.
9258
9259 2021-05-18  Tobias Burnus  <tobias@codesourcery.com>
9260
9261         PR other/100598
9262         * configure: Regenerate.
9263         * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@).
9264
9265 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
9266
9267         * gimple.h (is_gimple_omp_oacc): Tighten.
9268         * omp-low.c (check_omp_nesting_restrictions): Adjust.
9269
9270 2021-05-18  Richard Biener  <rguenther@suse.de>
9271
9272         * tree-ssa-operands.c (mark_address_taken): Simplify.
9273
9274 2021-05-18  Martin Liska  <mliska@suse.cz>
9275
9276         * config/gcn/mkoffload.c (STR): Redefine.
9277         * config/i386/intelmic-mkoffload.c (STR): Likewise.
9278         * config/nvptx/mkoffload.c (STR): Likewise.
9279
9280 2021-05-18  Martin Liska  <mliska@suse.cz>
9281
9282         * common/config/aarch64/aarch64-common.c (aarch64_parse_extension):
9283         Use startswith function instead of strncmp.
9284         * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
9285         * common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise.
9286         * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise.
9287         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise.
9288         * config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise.
9289         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
9290         * config/arm/arm.c (arm_file_start): Likewise.
9291         (arm_valid_target_attribute_rec): Likewise.
9292         (thumb1_md_asm_adjust): Likewise.
9293         * config/arm/driver-arm.c (host_detect_local_cpu): Likewise.
9294         * config/avr/avr.c (STR_PREFIX_P): Likewise.
9295         (avr_set_current_function): Likewise.
9296         (avr_handle_addr_attribute): Likewise.
9297         (avr_asm_output_aligned_decl_common): Likewise.
9298         (avr_asm_named_section): Likewise.
9299         (avr_section_type_flags): Likewise.
9300         (avr_asm_select_section): Likewise.
9301         * config/c6x/c6x.c (c6x_in_small_data_p): Likewise.
9302         (c6x_section_type_flags): Likewise.
9303         * config/darwin-c.c (darwin_cfstring_ref_p): Likewise.
9304         (darwin_objc_declare_unresolved_class_reference): Likewise.
9305         (darwin_objc_declare_class_definition): Likewise.
9306         * config/darwin.c (indirect_data): Likewise.
9307         (darwin_encode_section_info): Likewise.
9308         (darwin_objc2_section): Likewise.
9309         (darwin_objc1_section): Likewise.
9310         (machopic_select_section): Likewise.
9311         (darwin_globalize_label): Likewise.
9312         (darwin_label_is_anonymous_local_objc_name): Likewise.
9313         (darwin_asm_named_section): Likewise.
9314         (darwin_asm_output_dwarf_offset): Likewise.
9315         * config/frv/frv.c (frv_string_begins_with): Likewise.
9316         (frv_in_small_data_p): Likewise.
9317         * config/gcn/mkoffload.c (STR): Likewise.
9318         (main): Likewise.
9319         * config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise.
9320         * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
9321         * config/i386/i386.c (x86_64_elf_section_type_flags): Likewise.
9322         (ix86_md_asm_adjust): Likewise.
9323         * config/i386/intelmic-mkoffload.c (STR): Likewise.
9324         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
9325         (i386_pe_file_end): Likewise.
9326         * config/ia64/ia64.c (ia64_in_small_data_p): Likewise.
9327         (ia64_section_type_flags): Likewise.
9328         * config/mips/driver-native.c (host_detect_local_cpu): Likewise.
9329         * config/mips/mips.c (mips_handle_interrupt_attr): Likewise.
9330         (mips16_stub_function_p): Likewise.
9331         (mips_function_rodata_section): Likewise.
9332         * config/msp430/msp430.c (msp430_mcu_name): Likewise.
9333         (msp430_function_section): Likewise.
9334         (msp430_section_type_flags): Likewise.
9335         (msp430_expand_helper): Likewise.
9336         * config/nios2/nios2.c (nios2_small_section_name_p): Likewise.
9337         (nios2_valid_target_attribute_rec): Likewise.
9338         * config/nvptx/mkoffload.c (process): Likewise.
9339         (STR): Likewise.
9340         * config/pa/som.h: Likewise.
9341         * config/pdp11/pdp11.c (pdp11_output_ident): Likewise.
9342         * config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise.
9343         * config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise.
9344         (rs6000_inner_target_options): Likewise.
9345         * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise.
9346         * config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise.
9347         * config/vax/vax.c (vax_output_int_move): Likewise.
9348         * config/vms/vms-ld.c (startswith): Likewise.
9349         (process_args): Likewise.
9350         (main): Likewise.
9351         * config/vms/vms.c: Likewise.
9352
9353 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
9354
9355         PR rtl-optimization/100590
9356         * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if
9357         they are NONJUMP_INSN_P.
9358
9359 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
9360
9361         PR c++/100580
9362         * function.c (push_dummy_function): Set DECL_ARTIFICIAL and
9363         DECL_ASSEMBLER_NAME on the fn_decl.
9364
9365 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
9366
9367         PR tree-optimization/94589
9368         * tree-ssa-phiopt.c (spaceship_replacement): Pattern match
9369         phi result used in (res & ~1) == 0 comparison as res >= 0 as
9370         res == 2 would be UB with -ffinite-math-only.
9371
9372 2021-05-18  Martin Liska  <mliska@suse.cz>
9373
9374         * Makefile.in: genversion.o should depend on DATESTAMP.
9375
9376 2021-05-18  Claudiu Zissulescu  <claziss@synopsys.com>
9377
9378         * config/arc/simdext.md (negv2si2): Remove round bracket.
9379
9380 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
9381
9382         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
9383         _Bool as macro expanding to _Bool.
9384
9385 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
9386
9387         PR c++/100281
9388         * tree.c (build_reference_type_for_mode)
9389         (build_pointer_type_for_mode): Pick pointer mode if MODE argument
9390         is VOIDmode.
9391         (build_reference_type, build_pointer_type): Invoke
9392         build_*_type_for_mode with VOIDmode.
9393
9394 2021-05-17  Andrew MacLeod  <amacleod@redhat.com>
9395
9396         PR tree-optimization/100512
9397         * gimple-range-cache.cc (ranger_cache::set_global_range): Mark const
9398         and non-zero pointer ranges as invariant.
9399         * gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer
9400         processing from here.
9401
9402 2021-05-17  Tom de Vries  <tdevries@suse.de>
9403
9404         PR target/100497
9405         * config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare
9406         * config/nvptx/nvptx.c (nvptx_output_barrier)
9407         (nvptx_output_atomic_insn): New function.
9408         (nvptx_print_operand): Add support for 'B'.
9409         * config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic
9410         insns.
9411
9412 2021-05-17  Aldy Hernandez  <aldyh@redhat.com>
9413
9414         PR tree-optimization/100349
9415         * vr-values.c (bounds_of_var_in_loop): Bail if scev returns
9416           NULL.
9417
9418 2021-05-17  Tamar Christina  <tamar.christina@arm.com>
9419
9420         * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New.
9421         (host_detect_local_cpu): Use it.
9422
9423 2021-05-17  Martin Liska  <mliska@suse.cz>
9424
9425         * doc/invoke.texi: Add 2 missing dots.
9426
9427 2021-05-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
9428
9429         PR bootstrap/100552
9430         * configure.ac: Replace pattern substitution with call to sed.
9431         * configure: Regenerate.
9432
9433 2021-05-17  Richard Biener  <rguenther@suse.de>
9434
9435         PR middle-end/100582
9436         * tree.c (array_at_struct_end_p): Get to the base of the
9437         reference before looking for the underlying decl.
9438
9439 2021-05-17  Joern Rennecke  <joern.rennecke@embecosm.com>
9440
9441         * genoutput.c (validate_insn_alternatives) Make "wrong number of
9442         alternatives" message more specific, and remove assumption on where
9443         the problem is.
9444
9445 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
9446
9447         * config/arm/iterators.md (V16): New iterator.
9448         (VH_cvtto): New iterator.
9449         (v_cmp_result): Added V4HF and V8HF support.
9450         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>): Use VDQWH.
9451         (vcond<mode><mode>): Likewise.
9452         (vcond_mask_<mode><v_cmp_result>): Likewise.
9453         (vcond<VH_cvtto><mode>): New expander.
9454
9455 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
9456
9457         * config/arm/arm-protos.h (arm_expand_vector_compare): Update
9458         prototype.
9459         * config/arm/arm.c (arm_expand_vector_compare): Add support for
9460         MVE.
9461         (arm_expand_vcond): Likewise.
9462         * config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S,
9463         VCMPEQQ_N_S, VCMPNEQ_N_S.
9464         (VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove.
9465         * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Add '@' prefix.
9466         (@mve_vcmp<mve_cmp_op>q_f<mode>): Likewise.
9467         (@mve_vcmp<mve_cmp_op>q_n_f<mode>): Likewise.
9468         (@mve_vpselq_<supf><mode>): Likewise.
9469         (@mve_vpselq_f<mode>"): Likewise.
9470         * config/arm/neon.md (vec_cmp<mode><v_cmp_result): Enable for MVE
9471         and move to vec-common.md.
9472         (vec_cmpu<mode><mode>): Likewise.
9473         (vcond<mode><mode>): Likewise.
9474         (vcond<V_cvtto><mode>): Likewise.
9475         (vcondu<mode><v_cmp_result>): Likewise.
9476         (vcond_mask_<mode><v_cmp_result>): Likewise.
9477         * config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S)
9478         (VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U)
9479         (VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S)
9480         (VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U)
9481         (VCMPHIQ_N_U, VCMPHIQ_U): Remove.
9482         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result): Moved
9483         from neon.md.
9484         (vec_cmpu<mode><mode>): Likewise.
9485         (vcond<mode><mode>): Likewise.
9486         (vcond<V_cvtto><mode>): Likewise.
9487         (vcondu<mode><v_cmp_result>): Likewise.
9488         (vcond_mask_<mode><v_cmp_result>): Likewise. Added unsafe math
9489         condition.
9490
9491 2021-05-17  liuhongt  <hongtao.liu@intel.com>
9492
9493         PR target/100549
9494         * config/i386/i386.c (ix86_gimple_fold_builtin): Use
9495         gsi_insert_seq_before instead.
9496
9497 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
9498
9499         * doc/sourcebuild.texi (arm_qbit_ok): Rename into...
9500         (arm_sat_ok): ...this.
9501
9502 2021-05-17  Martin Liska  <mliska@suse.cz>
9503
9504         * lto-wrapper.c (merge_flto_options): Factor out a new function.
9505         (merge_and_complain): Use it.
9506         (run_gcc): Merge also linker command line -flto=foo argument
9507         with IL files.
9508
9509 2021-05-16  Christophe Lyon  <christophe.lyon@linaro.org>
9510
9511         * config/arm/arm.h (CPP_SPEC): Remove error message about
9512         -mlittle-endian/-mbig-endian conflict.
9513
9514 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
9515
9516         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
9517         __ROP_PROTECT__ if -mrop-protect is selected.
9518
9519 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
9520
9521         * config/rs6000/rs6000-internal.h (rs6000_stack): Add
9522         rop_hash_save_offset and rop_hash_size.
9523         * config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute
9524         rop_hash_size and rop_hash_save_offset.
9525         (debug_stack_info): Dump rop_hash_save_offset and rop_hash_size.
9526         (rs6000_emit_prologue): Emit hashst[p] in prologue.
9527         (rs6000_emit_epilogue): Emit hashchk[p] in epilogue.
9528         * config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and
9529         UNSPEC_HASHCHK.
9530         (hashst): New define_insn.
9531         (hashchk): Likewise.
9532
9533 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
9534
9535         * config/rs6000/rs6000.c (rs6000_option_override_internal):
9536         Disable shrink wrap when inserting ROP-protect instructions.
9537         * config/rs6000/rs6000.opt (mrop-protect): New option.
9538         (mprivileged): Likewise.
9539         * doc/invoke.texi: Document mrop-protect and mprivileged.
9540
9541 2021-05-15  Hans-Peter Nilsson  <hp@axis.com>
9542
9543         * reorg.c (fill_slots_from_thread): Reinstate code typoed out in
9544         "Remove CC0".
9545
9546 2021-05-15  Martin Jambor  <mjambor@suse.cz>
9547
9548         Revert:
9549         2021-05-13  Martin Jambor  <mjambor@suse.cz>
9550
9551         PR tree-optimization/100453
9552         * tree-sra.c (sra_modify_assign): All const base accesses do not
9553         need refreshing, not just those from decl_pool.
9554         (sra_modify_assign): Do not refresh into a const base decl.
9555
9556 2021-05-15  Jakub Jelinek  <jakub@redhat.com>
9557
9558         PR rtl-optimization/100342
9559         * regcprop.c (copy_value): When copying a source reg in a wider
9560         mode than it has recorded for the value, adjust recorded destination
9561         mode too or punt if !REG_CAN_CHANGE_MODE_P.
9562
9563 2021-05-14  Jason Merrill  <jason@redhat.com>
9564
9565         * intl.h: Add comments.
9566
9567 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9568
9569         * config/aarch64/aarch64-simd.md
9570         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Split into...
9571         (aarch64_sqdmlsl2_lane<mode>_internal): ... This...
9572         (aarch64_sqdmlal2_lane<mode>_internal): ... And this.
9573         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Split into ...
9574         (aarch64_sqdmlsl2_laneq<mode>_internal): ... This...
9575         (aarch64_sqdmlal2_laneq<mode>_internal): ... And this.
9576         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Split into...
9577         (aarch64_sqdmlsl2_n<mode>_internal): ... This...
9578         (aarch64_sqdmlal2_n<mode>_internal): ... And this.
9579
9580 2021-05-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9581
9582         PR target/66791
9583         * config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's
9584         boolean logic equivalent.
9585         (vtst_s16): Likewise.
9586         (vtst_s32): Likewise.
9587         (vtst_u8): Likewise.
9588         (vtst_u16): Likewise.
9589         (vtst_u32): Likewise.
9590         (vtst_p8): Likewise.
9591         (vtst_p16): Likewise.
9592         (vtstq_s8): Likewise.
9593         (vtstq_s16): Likewise.
9594         (vtstq_s32): Likewise.
9595         (vtstq_u8): Likewise.
9596         (vtstq_u16): Likewise.
9597         (vtstq_u32): Likewise.
9598         (vtstq_p8): Likewise.
9599         (vtstq_p16): Likewise.
9600         * config/arm/arm_neon_builtins.def: Remove entry for vtst.
9601         * config/arm/neon.md (neon_vtst<mode>): Remove pattern.
9602
9603 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9604
9605         * config/aarch64/aarch64-simd.md (aarch64_sqdmlal2<mode>): Merge into...
9606         (aarch64_sqdml<SBINQOPS:as>l2<mode>): ... This.
9607         (aarch64_sqdmlsl2<mode>): Delete.
9608         (aarch64_sqdmlal2_lane<mode>): Merge this...
9609         (aarch64_sqdmlsl2_lane<mode>): ... And this...
9610         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>): ... Into this.
9611         (aarch64_sqdmlal2_laneq<mode>): Merge this...
9612         (aarch64_sqdmlsl2_laneq<mode>): ... And this...
9613         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>): ... Into this.
9614         (aarch64_sqdmlal2_n<mode>): Merge this...
9615         (aarch64_sqdmlsl2_n<mode>): ... And this...
9616         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>): ... Into this.
9617
9618 2021-05-13  Martin Sebor  <msebor@redhat.com>
9619
9620         PR middle-end/100574
9621         * builtins.c (access_ref::get_ref): Improve detection of PHIs with
9622         all null arguments.
9623
9624 2021-05-13  Martin Sebor  <msebor@redhat.com>
9625
9626         PR tree-optimization/93100
9627         PR middle-end/98583
9628         * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that
9629         don't modify referenced objects.
9630
9631 2021-05-13  Martin Jambor  <mjambor@suse.cz>
9632
9633         PR tree-optimization/100453
9634         * tree-sra.c (sra_modify_assign): All const base accesses do not
9635         need refreshing, not just those from decl_pool.
9636         (sra_modify_assign): Do not refresh into a const base decl.
9637
9638 2021-05-13  Martin Liska  <mliska@suse.cz>
9639
9640         * tree-ssa-dom.c: Remove m_simplifier.
9641
9642 2021-05-13  Richard Earnshaw  <rearnsha@arm.com>
9643
9644         PR target/100563
9645         * config/arm/arm.c (arm_canonicalize_comparison): Correctly
9646         canonicalize DImode inequality comparisons against the
9647         maximum integral value.
9648
9649 2021-05-13  Jakub Jelinek  <jakub@redhat.com>
9650
9651         PR tree-optimization/98856
9652         * config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument.
9653         Expect V2DI and V4DI arithmetic right shifts to be emulated.
9654         (ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost
9655         caller.
9656         * config/i386/i386-expand.c (expand_vec_perm_2perm_interleave,
9657         expand_vec_perm_2perm_pblendv): New functions.
9658         (ix86_expand_vec_perm_const_1): Use them.
9659         * config/i386/sse.md (ashr<mode>3<mask_name>): Rename to ...
9660         (<mask_codefor>ashr<mode>3<mask_name>): ... this.
9661         (ashr<mode>3): New define_expand with VI248_AVX512BW iterator.
9662         (ashrv4di3): New define_expand.
9663         (ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP
9664         and !TARGET_AVX512VL expansion.
9665
9666 2021-05-13  Uroš Bizjak  <ubizjak@gmail.com>
9667
9668         PR target/100581
9669         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode
9670         sizes < 16 to a register when constructing vpcmov pattern.
9671         * config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode.
9672
9673 2021-05-13  Martin Liska  <mliska@suse.cz>
9674
9675         * gcov-io.c (gcov_write_block): Remove.
9676         (gcov_write_words): Likewise.
9677         (gcov_read_words): Re-implement using gcov_read_bytes.
9678         (gcov_allocate): Remove.
9679         (GCOV_BLOCK_SIZE): Likewise.
9680         (struct gcov_var): Remove most of the fields.
9681         (gcov_position): Implement with ftell.
9682         (gcov_rewrite): Remove setting of start and offset fields.
9683         (from_file): Re-format.
9684         (gcov_open): Remove setbuf call. It should not be needed.
9685         (gcov_close): Remove internal buffer handling.
9686         (gcov_magic): Use __builtin_bswap32.
9687         (gcov_write_counter): Use directly gcov_write_unsigned.
9688         (gcov_write_string): Use direct fwrite and do not round
9689         to 4 bytes.
9690         (gcov_seek): Use directly fseek.
9691         (gcov_write_tag): Use gcov_write_unsigned directly.
9692         (gcov_write_length): Likewise.
9693         (gcov_write_tag_length): Likewise.
9694         (gcov_read_bytes): Use directly fread.
9695         (gcov_read_unsigned): Use gcov_read_words.
9696         (gcov_read_counter): Likewise.
9697         (gcov_read_string): Use gcov_read_bytes.
9698         * gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect
9699         that size is not in bytes, but words (4B).
9700         (GCOV_TAG_FUNCTION_LENGTH): Likewise.
9701         (GCOV_TAG_ARCS_LENGTH): Likewise.
9702         (GCOV_TAG_ARCS_NUM): Likewise.
9703         (GCOV_TAG_COUNTER_LENGTH): Likewise.
9704         (GCOV_TAG_COUNTER_NUM): Likewise.
9705         (GCOV_TAG_SUMMARY_LENGTH): Likewise.
9706
9707 2021-05-13  liuhongt  <hongtao.liu@intel.com>
9708
9709         PR target/94680
9710         * config/i386/sse.md (ssedoublevecmode): Add attribute for
9711         V64QI/V32HI/V16SI/V4DI.
9712         (ssehalfvecmode): Add attribute for V2DI/V2DF.
9713         (*vec_concatv4si_0): Extend to VI124_128.
9714         (*vec_concat<mode>_0): New pre-reload splitter.
9715         * config/i386/predicates.md (movq_parallel): New predicate.
9716
9717 2021-05-13  Alexandre Oliva  <oliva@adacore.com>
9718
9719         * targhooks.c (default_zero_call_used_regs): Retry using
9720         successfully-zeroed registers as sources.
9721
9722 2021-05-12  Tobias Burnus  <tobias@codesourcery.com>
9723
9724         * omp-low.c (finish_taskreg_scan): Use the proper detach decl.
9725
9726 2021-05-12  Aldy Hernandez  <aldyh@redhat.com>
9727
9728         PR c/100521
9729         * gimple-range.cc (range_of_builtin_call): Skip out on
9730           processing __builtin_clz when varying.
9731
9732 2021-05-12  Tom de Vries  <tdevries@suse.de>
9733
9734         PR target/96005
9735         * config/nvptx/nvptx-opts.h (enum ptx_version): New enum.
9736         * config/nvptx/nvptx.c (nvptx_file_start): Print .version according
9737         to ptx_version_option.
9738         * config/nvptx/nvptx.h (TARGET_PTX_6_3): Define.
9739         * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
9740         (define_insn "nvptx_vote_ballot"): Use sync variant for
9741         TARGET_PTX_6_3.
9742         * config/nvptx/nvptx.opt (ptx_version): Add enum.
9743         (mptx): Add option.
9744         * doc/invoke.texi (Nvidia PTX Options): Add mptx item.
9745
9746 2021-05-12  Richard Biener  <rguenther@suse.de>
9747
9748         PR tree-optimization/100566
9749         * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
9750         allow_back for all edge queries.
9751
9752 2021-05-12  liuhongt  <hongtao.liu@intel.com>
9753
9754         PR target/99908
9755         * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add
9756         splitters for pblendvb of NOT mask register.
9757
9758 2021-05-12  Richard Biener  <rguenther@suse.de>
9759
9760         PR tree-optimization/100519
9761         * tree-ssa-reassoc.c (can_associate_p): Split into...
9762         (can_associate_op_p): ... this
9763         (can_associate_type_p): ... and this.
9764         (is_reassociable_op): Call can_associate_op_p.
9765         (break_up_subtract_bb): Call the appropriate predicates.
9766         (reassociate_bb): Likewise.
9767
9768 2021-05-12  Martin Liska  <mliska@suse.cz>
9769
9770         * lto-wrapper.c (merge_and_complain): Merge -flto=arg options.
9771         (run_gcc): Use -flto argument detection for merged
9772         fdecoded_options.
9773
9774 2021-05-12  Martin Liska  <mliska@suse.cz>
9775
9776         * lto-wrapper.c (print_lto_docs_link): New function.
9777         (run_gcc): Print warning about missing job server detection
9778         after we know NR of partitions. Do the same for -flto{,=1}.
9779         * opts.c (get_option_html_page): Support -flto option.
9780
9781 2021-05-12  Martin Liska  <mliska@suse.cz>
9782
9783         * lto-wrapper.c (get_options_from_collect_gcc_options): Change
9784         return type.
9785         (append_option): Remove.
9786         (find_option): Rework to use the vector type.
9787         (remove_option): Remove.
9788         (merge_and_complain): Use vectors for cl_decoded_option data
9789         type arguments.
9790         (append_compiler_options): Likewise.
9791         (append_diag_options): Likewise.
9792         (append_linker_options): Likewise.
9793         (append_offload_options): Likewise.
9794         (compile_offload_image): Likewise.
9795         (compile_images_for_offload_targets): Likewise.
9796         (find_and_merge_options): Likewise.
9797         (run_gcc): Likewise.
9798
9799 2021-05-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9800
9801         PR debug/100515
9802         * dwarf2out.c (dwarf2out_finish): Set
9803         have_multiple_function_sections with multi-range text_section.
9804
9805 2021-05-12  Martin Liska  <mliska@suse.cz>
9806
9807         PR bootstrap/100560
9808         * Makefile.in: Remove version.h from linker command line.
9809
9810 2021-05-12  Richard Biener  <rguenther@suse.de>
9811
9812         PR middle-end/100547
9813         * rtl.h (rtvec_alloc): Make argument size_t.
9814         * rtl.c (rtvec_alloc): Verify the count is less than INT_MAX.
9815
9816 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
9817
9818         PR middle-end/100508
9819         * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector
9820         type, don't reuse DECL_RTL if it has different mode, instead force
9821         creation of a new DEBUG_EXPR.
9822
9823 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
9824             Marc Glisse  <marc.glisse@inria.fr>
9825
9826         PR tree-optimization/94589
9827         * match.pd ((X & Y) == X -> (X & ~Y) == 0,
9828         (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications.
9829
9830 2021-05-12  Uroš Bizjak  <ubizjak@gmail.com>
9831
9832         PR target/98218
9833         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode.
9834         * config/i386/mmx.md (MMXMODE124): New mode iterator.
9835         (V2FI): Ditto.
9836         (mmxintvecmode): New mode attribute.
9837         (mmxintvecmodelower): Ditto.
9838         (*mmx_maskcmpv2sf3_comm): New insn pattern.
9839         (*mmx_maskcmpv2sf3): Ditto.
9840         (vec_cmpv2sfv2si): New expander.
9841         (vcond<V2FI:mode>v2si): Ditto.
9842         (mmx_vlendvps): New insn pattern.
9843         (vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode.
9844         (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
9845         (vcond_mask_<mode><mmxintvecmodelower>): Ditto.
9846
9847 2021-05-11  Martin Sebor  <msebor@redhat.com>
9848
9849         PR middle-end/21433
9850         * expr.c (expand_expr_real_1): Replace unreachable code with an assert.
9851
9852 2021-05-11  Richard Biener  <rguenther@suse.de>
9853
9854         * gimple-fold.c (gimple_fold_call): Do not call
9855         maybe_fold_reference on call arguments or the static chain.
9856         (fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM
9857         inputs.
9858
9859 2021-05-11  Martin Liska  <mliska@suse.cz>
9860
9861         * builtins.def (DEF_HSAIL_BUILTIN): Remove.
9862         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
9863         (DEF_HSAIL_SAT_BUILTIN): Likewise.
9864         (DEF_HSAIL_INTR_BUILTIN): Likewise.
9865         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
9866         * doc/frontends.texi: Remove BRIG.
9867         * doc/install.texi: Likewise.
9868         * doc/invoke.texi: Likewise.
9869         * doc/standards.texi: Likewise.
9870         * brig-builtins.def: Removed.
9871         * brig/ChangeLog: Removed.
9872         * brig/Make-lang.in: Removed.
9873         * brig/brig-builtins.h: Removed.
9874         * brig/brig-c.h: Removed.
9875         * brig/brig-lang.c: Removed.
9876         * brig/brigfrontend/brig-arg-block-handler.cc: Removed.
9877         * brig/brigfrontend/brig-atomic-inst-handler.cc: Removed.
9878         * brig/brigfrontend/brig-basic-inst-handler.cc: Removed.
9879         * brig/brigfrontend/brig-branch-inst-handler.cc: Removed.
9880         * brig/brigfrontend/brig-cmp-inst-handler.cc: Removed.
9881         * brig/brigfrontend/brig-code-entry-handler.cc: Removed.
9882         * brig/brigfrontend/brig-code-entry-handler.h: Removed.
9883         * brig/brigfrontend/brig-comment-handler.cc: Removed.
9884         * brig/brigfrontend/brig-control-handler.cc: Removed.
9885         * brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed.
9886         * brig/brigfrontend/brig-cvt-inst-handler.cc: Removed.
9887         * brig/brigfrontend/brig-fbarrier-handler.cc: Removed.
9888         * brig/brigfrontend/brig-function-handler.cc: Removed.
9889         * brig/brigfrontend/brig-function.cc: Removed.
9890         * brig/brigfrontend/brig-function.h: Removed.
9891         * brig/brigfrontend/brig-inst-mod-handler.cc: Removed.
9892         * brig/brigfrontend/brig-label-handler.cc: Removed.
9893         * brig/brigfrontend/brig-lane-inst-handler.cc: Removed.
9894         * brig/brigfrontend/brig-machine.c: Removed.
9895         * brig/brigfrontend/brig-machine.h: Removed.
9896         * brig/brigfrontend/brig-mem-inst-handler.cc: Removed.
9897         * brig/brigfrontend/brig-module-handler.cc: Removed.
9898         * brig/brigfrontend/brig-queue-inst-handler.cc: Removed.
9899         * brig/brigfrontend/brig-seg-inst-handler.cc: Removed.
9900         * brig/brigfrontend/brig-signal-inst-handler.cc: Removed.
9901         * brig/brigfrontend/brig-to-generic.cc: Removed.
9902         * brig/brigfrontend/brig-to-generic.h: Removed.
9903         * brig/brigfrontend/brig-util.cc: Removed.
9904         * brig/brigfrontend/brig-util.h: Removed.
9905         * brig/brigfrontend/brig-variable-handler.cc: Removed.
9906         * brig/brigfrontend/hsa-brig-format.h: Removed.
9907         * brig/brigfrontend/phsa.h: Removed.
9908         * brig/brigspec.c: Removed.
9909         * brig/config-lang.in: Removed.
9910         * brig/gccbrig.texi: Removed.
9911         * brig/lang-specs.h: Removed.
9912         * brig/lang.opt: Removed.
9913
9914 2021-05-11  Richard Biener  <rguenther@suse.de>
9915
9916         PR ipa/100513
9917         * ipa-param-manipulation.c
9918         (ipa_param_body_adjustments::modify_call_stmt): Avoid
9919         altering SSA_NAME_DEF_STMT by adjusting the calls LHS
9920         via gimple_call_lhs_ptr.
9921
9922 2021-05-11  Alex Coplan  <alex.coplan@arm.com>
9923
9924         PR target/99725
9925         * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear):
9926         Avoid emitting CFA adjusts on the sp if we have the fp.
9927
9928 2021-05-11  Richard Sandiford  <richard.sandiford@arm.com>
9929
9930         * config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete.
9931         (VMULD): New iterator.
9932         (VCOND): Handle V4HF and V8HF.
9933         (VCONQ): Fix entry for V2SF.
9934         * config/aarch64/aarch64-simd.md (mul_lane<mode>3): Use VMULD
9935         instead of VMUL.  Use a 64-bit vector mode for the indexed operand.
9936         (*aarch64_mul3_elt_<vswap_width_name><mode>): Merge with...
9937         (mul_laneq<mode>3): ...this define_insn.  Use VMUL instead of VDQSF.
9938         Use a 128-bit vector mode for the indexed operand.  Use stype for
9939         the scheduling type.
9940
9941 2021-05-11  Richard Biener  <rguenther@suse.de>
9942
9943         * gimple-fold.c (maybe_fold_reference): Only return
9944         is_gimple_min_invariant values.
9945
9946 2021-05-11  Richard Biener  <rguenther@suse.de>
9947
9948         PR middle-end/100509
9949         * gimple-fold.c (fold_gimple_assign): Only call
9950         get_symbol_constant_value on register type symbols.
9951
9952 2021-05-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
9953             Joe Ramsay   <joe.ramsay@arm.com>
9954
9955         PR target/100419
9956         * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments.
9957         (__arm_vcmpneq): Remove duplicate definition.
9958         (__arm_vstrwq_scatter_offset_p): Likewise.
9959         (__arm_vmaxq_x): Likewise.
9960         (__arm_vmlsdavaq): Likewise.
9961         (__arm_vmlsdavaxq): Likewise.
9962         (__arm_vmlsdavq_p): Likewise.
9963         (__arm_vmlsdavxq_p): Likewise.
9964         (__arm_vrmlaldavhaq): Likewise.
9965         (__arm_vstrbq_p): Likewise.
9966         (__arm_vstrbq_scatter_offset): Likewise.
9967         (__arm_vstrbq_scatter_offset_p): Likewise.
9968         (__arm_vstrdq_scatter_offset): Likewise.
9969         (__arm_vstrdq_scatter_offset_p): Likewise.
9970         (__arm_vstrdq_scatter_shifted_offset): Likewise.
9971         (__arm_vstrdq_scatter_shifted_offset_p): Likewise.
9972
9973 2021-05-11  Jakub Jelinek  <jakub@redhat.com>
9974
9975         PR middle-end/100471
9976         * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data
9977         is 0, bypass the reduction loop including
9978         GOMP_taskgroup_reduction_unregister call.
9979
9980 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
9981
9982         * config/rs6000/rs6000.c (struct rs6000_cost_data): New member
9983         costing_for_scalar.
9984         (rs6000_density_test): Early return if costing_for_scalar is true.
9985         (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data.
9986
9987 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
9988
9989         * doc/tm.texi: Regenerated.
9990         * target.def (init_cost): Add new parameter costing_for_scalar.
9991         * targhooks.c (default_init_cost): Adjust for new parameter.
9992         * targhooks.h (default_init_cost): Likewise.
9993         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise.
9994         (vect_compute_single_scalar_iteration_cost): Likewise.
9995         (vect_analyze_loop_2): Likewise.
9996         * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise.
9997         (vect_bb_vectorization_profitable_p): Likewise.
9998         * tree-vectorizer.h (init_cost): Likewise.
9999         * config/aarch64/aarch64.c (aarch64_init_cost): Likewise.
10000         * config/i386/i386.c (ix86_init_cost): Likewise.
10001         * config/rs6000/rs6000.c (rs6000_init_cost): Likewise.
10002
10003 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
10004
10005         * config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to
10006         vect_nonmem and moved into...
10007         (struct rs6000_cost_data): ...here.
10008         (rs6000_init_cost): Use vect_nonmem of cost_data instead.
10009         (rs6000_add_stmt_cost): Likewise.
10010         (rs6000_finish_cost): Likewise.
10011
10012 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
10013
10014         * range-op.cc (get_bool_state): Adjust head comment.
10015         (operator_not_equal::op1_range): Fix comment.
10016         (operator_bitwise_xor::op1_range): Remove call to gcc_unreachable.
10017
10018 2021-05-10  Martin Sebor  <msebor@redhat.com>
10019
10020         PR middle-end/100425
10021         PR middle-end/100510
10022         * gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename...
10023         (pass_walloca::xlimit_certain_p): ...to this.
10024         (pass_walloca::gate): Execute for any kind of handled warning.
10025         (pass_walloca::execute): Avoid issuing "maybe" and "unbounded"
10026         warnings when xlimit_certain_p is set.
10027
10028 2021-05-10  Pat Haugen  <pthaugen@linux.ibm.com>
10029
10030         * config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class):
10031         Return ALTIVEC_REGS if that is best_class.
10032         (rs6000_compute_pressure_classes): Add ALTIVEC_REGS.
10033
10034 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
10035
10036         * config/arm/arm.h (CPP_SPEC): Remove error message about
10037         -mfloat-abi.
10038
10039 2021-05-10  Martin Jambor  <mjambor@suse.cz>
10040
10041         * ipa-prop.h (IPA_NODE_REF): Removed.
10042         (IPA_NODE_REF_GET_CREATE): Likewise.
10043         (IPA_EDGE_REF): Likewise.
10044         (IPA_EDGE_REF_GET_CREATE): Likewise.
10045         (IS_VALID_JUMP_FUNC_INDEX): Likewise.
10046         * ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct
10047         use of ipa_node_params_sum.
10048         (ipcp_versionable_function_p): Likewise.
10049         (push_node_to_stack): Likewise.
10050         (pop_node_from_stack): Likewise.
10051         (set_single_call_flag): Replaced two IPA_NODE_REF with one single
10052         direct use of ipa_node_params_sum.
10053         (initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of
10054         ipa_node_params_sum.
10055         (ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of
10056         ipa_edge_args_sum.
10057         (ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct
10058         use of ipa_node_params_sum.
10059         (self_recursively_generated_p): Likewise.
10060         (propagate_scalar_across_jump_function): Likewise.
10061         (propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a
10062         direct use of ipa_edge_args_sum, moved the lookup after the early
10063         exit.  Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum.
10064         (propagate_bits_across_jump_function): Replaced IPA_NODE_REF with
10065         direct uses of ipa_node_params_sum.
10066         (propagate_vr_across_jump_function): Likewise.
10067         (propagate_aggregate_lattice): Likewise.
10068         (propagate_aggs_across_jump_function): Likewise.
10069         (propagate_constants_across_call): Likewise, also replaced
10070         IPA_EDGE_REF with a direct use of ipa_edge_args_sum.
10071         (good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use
10072         of ipa_node_params_sum.
10073         (estimate_local_effects): Likewise.
10074         (add_all_node_vals_to_toposort): Likewise.
10075         (propagate_constants_topo): Likewise.
10076         (ipcp_propagate_stage): Likewise.
10077         (ipcp_discover_new_direct_edges): Likewise.
10078         (calls_same_node_or_its_all_contexts_clone_p): Likewise.
10079         (cgraph_edge_brings_value_p): Likewise (in both overloaded functions).
10080         (get_info_about_necessary_edges): Likewise.
10081         (want_remove_some_param_p): Likewise.
10082         (create_specialized_node): Likewise.
10083         (self_recursive_pass_through_p): Likewise.
10084         (self_recursive_agg_pass_through_p): Likewise.
10085         (find_more_scalar_values_for_callers_subset): Likewise and also
10086         replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one
10087         case replacing two of those with a single query.
10088         (find_more_contexts_for_caller_subset): Likewise for the
10089         ipa_polymorphic_call_context overload.
10090         (intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct
10091         use of ipa_edge_args_sum.  Replaced IPA_NODE_REF with direct uses of
10092         ipa_node_params_sum.
10093         (find_aggregate_values_for_callers_subset): Likewise, also reusing
10094         results of ipa_edge_args_sum->get.
10095         (cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with
10096         direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a
10097         direct use of ipa_edge_args_sum.
10098         (cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node
10099         summary query after the early exit and reused the result later.
10100         (decide_about_value): Replaced IPA_NODE_REF with a direct use of
10101         ipa_node_params_sum.
10102         (decide_whether_version_node): Likewise.  Removed re-querying for
10103         summaries after cloning.
10104         (spread_undeadness): Replaced IPA_NODE_REF with a direct use of
10105         ipa_node_params_sum.
10106         (has_undead_caller_from_outside_scc_p): Likewise, reusing results of
10107         some queries.
10108         (identify_dead_nodes): Likewise.
10109         (ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of
10110         ipa_node_params_sum.
10111         (ipcp_store_vr_results): Likewise.
10112         * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
10113         (ipa_fn_summary_t::duplicate): Likewise.
10114         (analyze_function_body): Likewise.
10115         (estimate_calls_size_and_time): Likewise.
10116         (ipa_cached_call_context::duplicate_from): Likewise.
10117         (ipa_call_context::equal_to): Likewise.
10118         (remap_edge_params): Likewise.
10119         (ipa_merge_fn_summary_after_inlining): Likewise.
10120         (inline_read_section): Likewise.
10121         * ipa-icf.c (sem_function::param_used_p): Likewise.
10122         * ipa-modref.c (compute_parm_map): Likewise.
10123         (compute_parm_map): Replaced IPA_EDGE_REF with a direct use of
10124         ipa_edge_args_sum.
10125         (get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of
10126         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
10127         ipa_edge_args_sum.
10128         * ipa-profile.c (check_argument_count): Likewise.
10129         * ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE
10130         with a direct use of ipa_node_params_sum.
10131         (ipa_initialize_node_params): Likewise.
10132         (ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a
10133         direct use of ipa_edge_args_sum and reused the query result.
10134         (ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a
10135         direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a
10136         direct use of ipa_edge_args_sum.
10137         (ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of
10138         ipa_node_params_sum and reused the result of the query.
10139         (ipa_analyze_node): Likewise.
10140         (ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use
10141         of ipa_node_params_sum.
10142         (update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with
10143         direct uses of ipa_edge_args_sum.
10144         (update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with
10145         direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a
10146         direct use of ipa_edge_args_sum.  Removed superficial re-querying the
10147         top edge summary.
10148         (propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of
10149         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
10150         ipa_edge_args_sum.
10151         (ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a
10152         direct use of ipa_edge_args_sum.
10153         (ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct
10154         use of ipa_node_params_sum.
10155         (ipa_print_node_params): Likewise.
10156         (ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with
10157         direct uses of ipa_edge_args_sum.
10158         (ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of
10159         ipa_edge_args_sum.
10160         (ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of
10161         ipa_node_params_sum.
10162         (ipa_prop_write_jump_functions): Likewise.  Move variable node to the
10163         scopes where it is used.
10164
10165 2021-05-10  Uroš Bizjak  <ubizjak@gmail.com>
10166
10167         * config/i386/i386-expand.c (ix86_expand_sse_movcc)
10168         <case E_V2SImode>: Force op_true to register.
10169
10170 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
10171
10172         * config/arm/iterators.md (MVE_FP_COMPARISONS): New.
10173         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_f<mode>)
10174         (mve_vcmp<mve_cmp_op>q_n_f<mode>): New, merge all vcmp_*f*
10175         patterns.
10176         (mve_vcmpeqq_f<mode>, mve_vcmpeqq_n_f<mode>, mve_vcmpgeq_f<mode>)
10177         (mve_vcmpgeq_n_f<mode>, mve_vcmpgtq_f<mode>)
10178         (mve_vcmpgtq_n_f<mode>, mve_vcmpleq_f<mode>)
10179         (mve_vcmpleq_n_f<mode>, mve_vcmpltq_f<mode>)
10180         (mve_vcmpltq_n_f<mode>, mve_vcmpneq_f<mode>)
10181         (mve_vcmpneq_n_f<mode>): Remove.
10182         * config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F)
10183         (VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F)
10184         (VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove.
10185
10186 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
10187
10188         * config/arm/iterators.md (MVE_COMPARISONS): New.
10189         (mve_cmp_op): New.
10190         (mve_cmp_type): New.
10191         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all
10192         mve_vcmp patterns.
10193         (mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>)
10194         (mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>)
10195         (mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>)
10196         (mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>)
10197         (mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
10198         (mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
10199         (mve_vcmpneq_n_<mode>): Remove.
10200
10201 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
10202
10203         * config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix.
10204         * config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix.
10205         * config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern
10206         names.
10207
10208 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
10209
10210         * config/arm/arm_mve_builtins.def (vcmpneq_u): Remove.
10211         (vcmpneq_n_u): Likewise.
10212         (vcmpeqq_u,): Likewise.
10213         (vcmpeqq_n_u): Likewise.
10214         * config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U,
10215         VCMPEQQ_N_U and VCMPNEQ_N_U.
10216         * config/arm/mve.md (mve_vcmpneq): Remove <supf> iteration.
10217         (mve_vcmpeqq_n): Likewise.
10218         (mve_vcmpeqq): Likewise.
10219         (mve_vcmpneq_n): Likewise.
10220
10221 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
10222
10223         * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call
10224         the 's' version of the builtin.
10225
10226 2021-05-10  Richard Biener  <rguenther@suse.de>
10227
10228         PR tree-optimization/100492
10229         * tree-loop-distribution.c (find_seed_stmts_for_distribution):
10230         Find nothing when the loop contains an irreducible region.
10231
10232 2021-05-10  Richard Biener  <rguenther@suse.de>
10233
10234         PR middle-end/100464
10235         PR c++/100468
10236         * gimple-fold.c (canonicalize_constructor_val): Do not set
10237         TREE_ADDRESSABLE.
10238
10239 2021-05-10  Richard Biener  <rguenther@suse.de>
10240
10241         PR tree-optimization/100434
10242         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
10243         call LHS.
10244         (dse_optimize_stmt): Handle call LHS by dropping the
10245         LHS or the whole call if it doesn't have other
10246         side-effects.
10247         (pass_dse::execute): Adjust.
10248
10249 2021-05-10  Martin Liska  <mliska@suse.cz>
10250
10251         * Makefile.in: Add missing genversion rule.
10252
10253 2021-05-10  Alex Coplan  <alex.coplan@arm.com>
10254
10255         PR target/99960
10256         * config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use
10257         vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores.
10258
10259 2021-05-10  Martin Liska  <mliska@suse.cz>
10260
10261         * builtins.c (is_builtin_name): Use startswith
10262         function instead of strncmp.
10263         * collect2.c (main): Likewise.
10264         (has_lto_section): Likewise.
10265         (scan_libraries): Likewise.
10266         * coverage.c (coverage_checksum_string): Likewise.
10267         (coverage_init): Likewise.
10268         * dwarf2out.c (is_cxx): Likewise.
10269         (gen_compile_unit_die): Likewise.
10270         * gcc-ar.c (main): Likewise.
10271         * gcc.c (init_spec): Likewise.
10272         (read_specs): Likewise.
10273         (execute): Likewise.
10274         (check_live_switch): Likewise.
10275         * genattrtab.c (write_attr_case): Likewise.
10276         (IS_ATTR_GROUP): Likewise.
10277         * gencfn-macros.c (main): Likewise.
10278         * gengtype.c (type_for_name): Likewise.
10279         (gen_rtx_next): Likewise.
10280         (get_file_langdir): Likewise.
10281         (write_local): Likewise.
10282         * genmatch.c (get_operator): Likewise.
10283         (get_operand_type): Likewise.
10284         (expr::gen_transform): Likewise.
10285         * genoutput.c (validate_optab_operands): Likewise.
10286         * incpath.c (add_sysroot_to_chain): Likewise.
10287         * langhooks.c (lang_GNU_C): Likewise.
10288         (lang_GNU_CXX): Likewise.
10289         (lang_GNU_Fortran): Likewise.
10290         (lang_GNU_OBJC): Likewise.
10291         * lto-wrapper.c (run_gcc): Likewise.
10292         * omp-general.c (omp_max_simt_vf): Likewise.
10293         * omp-low.c (omp_runtime_api_call): Likewise.
10294         * opts-common.c (parse_options_from_collect_gcc_options): Likewise.
10295         * read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise.
10296         * real.c (real_from_string): Likewise.
10297         * selftest.c (assert_str_startswith): Likewise.
10298         * timevar.c (timer::validate_phases): Likewise.
10299         * tree.c (get_file_function_name): Likewise.
10300         * ubsan.c (ubsan_use_new_style_p): Likewise.
10301         * varasm.c (default_function_rodata_section): Likewise.
10302         (incorporeal_function_p): Likewise.
10303         (default_section_type_flags): Likewise.
10304         * system.h (startswith): Define startswith.
10305
10306 2021-05-10  Martin Liska  <mliska@suse.cz>
10307
10308         * bitmap.h (class auto_bitmap): Remove
10309         __cplusplus >= 201103.
10310         * config/aarch64/aarch64.c: Likewise.
10311         * gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info):
10312         Likewise.
10313         * sbitmap.h: Likewise.
10314
10315 2021-05-10  Martin Liska  <mliska@suse.cz>
10316
10317         * Makefile.in: Rename gcov-iov to genversion and depend
10318         on version.h (instead of gcov-iov.h).
10319         * gcov-io.h: Include version.h instread of gcov-iov.h.
10320         * gengtype-state.c (read_state_version): Likewise.
10321         * gcov-iov.c: Moved to...
10322         * genversion.c: ...here.
10323         * lto-streamer.h (LTO_major_version): Define it with
10324         GCC_major_version.
10325         * version.c: Removed.
10326         * version.h: Removed.
10327
10328 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
10329
10330         * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define.
10331         * config/arc/simdext.md (VCT): Add predicates for iterator
10332         elements.
10333         (EMUVEC): Define.
10334         (voptab): Likewise.
10335         (vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate.
10336         (<voptab>v2si3): New patterns.
10337         (neg): Likewise.
10338         (reduc_plus_scal_v4hi): Likewise.
10339         (reduc_plus_scal_v2si): Likewise.
10340         (vec_duplicatev2si): Likewise.
10341         (vec_duplicatev4hi): Likewise.
10342
10343 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
10344
10345         * config/arc/simdext.md: Format and cleanup file.
10346
10347 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
10348
10349         * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access
10350         only when munaligned-access option is on.
10351         (movmisalign<mode>): Likewise.
10352
10353 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
10354
10355         * common/config/arc/arc-common.c (arc_handle_option): Remove dot
10356         from string.
10357         * config/arc/arc.c (arc_reorg): Remove underscore from string.
10358
10359 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
10360
10361         * config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
10362         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
10363         * config/arc/arc.md (clrsbsi2): Cleanup pattern.
10364         (norm_f): Likewise.
10365         (ffs): Likewise.
10366         (ffs_f): Likewise.
10367         (clzsi2): Use fls instruction when available.
10368         (arc_clzsi2): Likewise.
10369
10370 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
10371
10372         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27.
10373
10374 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
10375
10376         * doc/extend.texi (__builtin_arc_sr): Swap arguments.
10377
10378 2021-05-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10379
10380         PR middle-end/100467
10381         * toplev.c (compile_file): Call insn_locations_init before
10382         targetm.asm_out.code_end.
10383
10384 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
10385
10386         Revert:
10387         2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
10388
10389         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
10390
10391 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
10392             Andrew Stubbs  <amd@codesourcery.com>
10393
10394         PR target/100418
10395         * builtins.c (try_store_by_multiple_pieces): Use force_operand for
10396         emit_move_insn operands.
10397
10398 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
10399
10400         * cfgexpand.c (expand_gimple_basic_block): Do not inherit a current
10401         location for the outgoing edges of an empty block.
10402         * dwarf2out.c (add_subscript_info): Retrieve the bounds and index
10403         type by means of the get_array_descr_info langhook, if it is set and
10404         returns true.  Remove obsolete code dealing with unnamed subtypes.
10405
10406 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
10407
10408         * gimple-range-cache.cc (ssa_block_ranges): Virtualize.
10409         (sbr_vector): Renamed from ssa_block_cache.
10410         (sbr_vector::sbr_vector): Allocate from obstack abd initialize.
10411         (ssa_block_ranges::~ssa_block_ranges): Remove.
10412         (sbr_vector::set_bb_range): Use varying and undefined cached values.
10413         (ssa_block_ranges::set_bb_varying): Remove.
10414         (sbr_vector::get_bb_range): Adjust assert.
10415         (sbr_vector::bb_range_p): Adjust assert.
10416         (~block_range_cache): No freeing loop required.
10417         (block_range_cache::get_block_ranges): Remove.
10418         (block_range_cache::set_bb_range): Inline get_block_ranges.
10419         (block_range_cache::set_bb_varying): Remove.
10420         * gimple-range-cache.h (set_bb_varying): Remove prototype.
10421         * value-range.h (irange_allocator::get_memory): New.
10422
10423 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
10424
10425         * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search
10426         dominator tree is available and requested.
10427         (ranger_cache::ssa_range_in_bb): Don't search dom tree here.
10428         (ranger_cache::fill_block_cache): Don't search dom tree here either.
10429         * gimple-range-cache.h (non_null_deref_p): Add dom_search param.
10430
10431 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
10432
10433         * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with
10434         only PHI nodes better.
10435
10436 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
10437
10438         * gimple-range-edge.h (gimple_outgoing_range): Rename from
10439         outgoing_range.
10440         (gcond_edge_range): Export prototype.
10441         * gimple-range-edge.cc (gcond_edge_range): New.
10442         (gimple_outgoing_range::edge_range_p): Use gcond_edge_range.
10443         * gimple-range-gori.h (gori_compute): Use gimple_outgoing_range.
10444
10445 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
10446
10447         * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute
10448         default range into a temp and allocate only what is needed.
10449
10450 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
10451
10452         * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED.
10453
10454 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
10455
10456         * gimple-range.h (gimple_range_global): Pick up parameter initial
10457         values, and use-before defined locals are UNDEFINED.
10458
10459 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
10460
10461         * doc/extend.texi (scalar_storage_order): Mention effect on pointer
10462         and vector fields.
10463         * tree.h (reverse_storage_order_for_component_p): Return false if
10464         the type is a pointer.
10465
10466 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
10467
10468         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
10469
10470 2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>
10471
10472         PR target/98218
10473         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
10474         Handle V8QI, V4HI and V2SI modes.
10475         * config/i386/mmx.md (mmx_pblendvb): New insn pattern.
10476         * config/i386/sse.md (unspec): Move UNSPEC_BLENDV ...
10477         * config/i386/i386.md (unspec): ... here.
10478
10479 2021-05-07  Tobias Burnus  <tobias@codesourcery.com>
10480             Tom de Vries  <tdevries@suse.de>
10481
10482         * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if
10483         a truth_value_p reduction variable is nonintegral.
10484
10485 2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>
10486
10487         PR target/100445
10488         * config/i386/i386-expand.c (ix86_use_mask_cmp_p):
10489         Return false for mode sizes < 16.
10490
10491 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
10492
10493         PR target/100445
10494         * config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn.
10495
10496 2021-05-06  Martin Jambor  <mjambor@suse.cz>
10497
10498         * ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even
10499         when there is no function summary.
10500         (ipa_sra_summarize_function): produce edge summaries even when
10501         bailing out early.
10502
10503 2021-05-06  Tom Tromey  <tom@tromey.com>
10504
10505         * godump.c (string_hash_eq): Remove.
10506         (go_finish): Use htab_eq_string.
10507
10508 2021-05-06  Tom Tromey  <tom@tromey.com>
10509
10510         * gengtype-state.c (read_state): Use htab_eq_string.
10511         (string_eq): Remove.
10512
10513 2021-05-06  Tom Tromey  <tom@tromey.com>
10514
10515         * gensupport.c (htab_eq_string): Remove.
10516
10517 2021-05-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10518
10519         PR ipa/97937
10520         * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer.
10521         * dwarf2out.h (dw_fde_node::ignored_debug): New data item.
10522         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy
10523         set_ignored_loc callbacks.
10524         * debug.c (do_nothing_debug_hooks): Likewise.
10525         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10526         * dwarf2out.c (text_section_used, cold_text_section_used): Remove.
10527         (in_text_section_p, last_text_label, last_cold_label,
10528         switch_text_ranges, switch_cold_ranges): New data items.
10529         (dwarf2out_note_section_used): Remove.
10530         (dwarf2out_begin_prologue): Set fde->ignored_debug and
10531         in_text_section_p.
10532         (mark_ignored_debug_section): New helper function.
10533         (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call
10534         mark_ignored_debug_section.
10535         (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc.
10536         (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc.
10537         (size_of_aranges): Adjust formula for multi-part text ranges size.
10538         (output_aranges): Output multi-part text ranges.
10539         (dwarf2out_set_ignored_loc): New callback function.
10540         (dwarf2out_finish): Output multi-part text ranges.
10541         (dwarf2out_c_finalize): Clear new data items.
10542         * final.c (final_start_function_1): Call set_ignored_loc callback.
10543         (final_scan_insn_1): Likewise.
10544         * ggc-page.c (gt_ggc_mx): New helper function.
10545         * stringpool.c (gt_pch_nx): Likewise.
10546
10547 2021-05-06  Richard Biener  <rguenther@suse.de>
10548
10549         * timevar.def (TV_TREE_INSERT_PHI_NODES): Remove.
10550         (TV_TREE_SSA_REWRITE_BLOCKS): Likewise.
10551         (TV_TREE_INTO_SSA): New.
10552         * tree-into-ssa.c (insert_phi_nodes): Do not account separately.
10553         (rewrite_blocks): Likewise.
10554         (pass_data_build_ssa): Account to TV_TREE_INTO_SSA.
10555
10556 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
10557
10558         * tree-ssa-phiopt.c (value_replacement, minmax_replacement,
10559         abs_replacement, xor_replacement,
10560         cond_removal_in_popcount_clz_ctz_pattern,
10561         replace_phi_edge_with_variable): Change type of phi argument from
10562         gimple * to gphi *.
10563
10564 2021-05-06  Richard Biener  <rguenther@suse.de>
10565
10566         * tree-ssa-loop-split.c (split_loop): Delay updating SSA form.
10567         Output an opt-info message.
10568         (do_split_loop_on_cond): Likewise.
10569         (tree_ssa_split_loops): Update SSA form here.
10570
10571 2021-05-06  Richard Biener  <rguenther@suse.de>
10572
10573         * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE
10574         return variable removal.
10575
10576 2021-05-06  Marius Hillenbrand  <mhillen@linux.ibm.com>
10577
10578         * config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros.
10579         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
10580         (s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate
10581         operand.
10582         * config/s390/s390.c (s390_const_operand_ok): Remove unused
10583         values.
10584
10585 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
10586
10587         PR tree-optimization/94589
10588         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
10589         spaceship_replacement.
10590         (cond_only_block_p, spaceship_replacement): New functions.
10591
10592 2021-05-06  Richard Biener  <rguenther@suse.de>
10593
10594         PR ipa/100373
10595         * tree-emutls.c (gen_emutls_addr): Pass in whether we're
10596         dealing with a debug use and only query existing addresses
10597         if so.
10598         (lower_emutls_1): Avoid splitting out addresses for debug
10599         stmts, reset the debug stmt when we fail to find existing
10600         lowered addresses.
10601         (lower_emutls_phi_arg): Set wi.stmt.
10602
10603 2021-05-06  Christoph Muellner  <cmuellner@gcc.gnu.org>
10604
10605         PR target/100266
10606         * config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper.
10607         * config/riscv/riscv.md (cbranch<mode>4): Generate helpers.
10608         (stack_protect_test): Use cbranch helper.
10609
10610 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
10611
10612         PR target/100402
10613         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
10614         always return the establisher frame for __builtin_frame_address (0).
10615
10616 2021-05-05  Ivan Sorokin  <vanyacpp@gmail.com>
10617
10618         PR target/91400
10619         * config/i386/i386-builtins.c (ix86_cpu_model_type_node): New.
10620         (ix86_cpu_model_var): Likewise.
10621         (ix86_cpu_features2_type_node): Likewise.
10622         (ix86_cpu_features2_var): Likewise.
10623         (fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with
10624         their types.
10625
10626 2021-05-05  Martin Sebor  <msebor@redhat.com>
10627
10628         * passes.def (pass_warn_printf): Run after SSA.
10629
10630 2021-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10631
10632         * config/arm/neon.md (neon_vtst_combine<mode>): New pattern.
10633         * config/arm/predicates.md (minus_one_operand): New predicate.
10634
10635 2021-05-05  Jeff Law  <jlaw@tachyum.com>
10636
10637         * config/avr/avr.md: Remove references to CC_STATUS_INIT.
10638
10639 2021-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
10640
10641         PR rtl-optimization/100263
10642         * postreload.c (move2add_valid_value_p): Ensure register can
10643         change mode.
10644
10645 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
10646
10647         PR rtl-optimization/100411
10648         * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue
10649         and beginning of function markers.
10650
10651 2021-05-05  Jeff Law  <jlaw@tachyum.com>
10652
10653         * config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove.
10654         * config/cr16/cr16.c (notice_update_cc): Remove.
10655         * config/cr16/cr16-protos.h (notice_update_cc): Remove.
10656
10657 2021-05-05  Uroš Bizjak  <ubizjak@gmail.com>
10658
10659         PR target/98218
10660         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
10661         Handle V8QI, V4HI and V2SI modes.
10662         * config/i386/i386.c (ix86_build_const_vector): Handle V2SImode.
10663         (ix86_build_signbit_mask): Ditto.
10664         * config/i386/mmx.md (MMXMODE14): New mode iterator.
10665         (<smaxmin:code><MMXMODE14:mode>3): New expander.
10666         (*mmx_<smaxmin:code><MMXMODE14:mode>3): New insn pattern.
10667         (<umaxmin:code><MMXMODE24:mode>3): New expander.
10668         (*mmx_<umaxmin:code><MMXMODE24:mode>3): New insn pattern.
10669         (vec_cmp<MMXMODEI:mode><MMXMODEI:mode>): New expander.
10670         (vec_cmpu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
10671         (vcond<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
10672         (vcondu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
10673         (vcond_mask_<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
10674
10675 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
10676
10677         * dwarf2out.c (loc_list_from_tree_1) <DECL>: During early DWARF, do
10678         not expand the VALUE_EXPR of variables put in the non-local frame.
10679         * gimplify.c (gimplify_type_sizes) <RECORD_TYPE>: If the type is not
10680         to be ignored for debug info, ensure its variable offsets are not.
10681
10682 2021-05-05  Richard Biener  <rguenther@suse.de>
10683
10684         PR tree-optimization/79333
10685         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
10686         Fold stmt following SSA edges.
10687
10688 2021-05-05  Richard Biener  <rguenther@suse.de>
10689
10690         PR middle-end/100394
10691         * calls.c (expand_call): Preserve possibly throwing calls.
10692         * cfgexpand.c (expand_call_stmt): When a call can throw signal
10693         RTL expansion there are side-effects.
10694         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify,
10695         mark all possibly throwing stmts necessary unless we can elide
10696         dead EH.
10697         * tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless
10698         -fdelete-dead-exceptions.
10699         * tree.h (DECL_PURE_P): Add note about exceptions.
10700
10701 2021-05-05  Alexandre Oliva  <oliva@adacore.com>
10702
10703         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it
10704         unconditional.
10705
10706 2021-05-04  David Edelsohn  <dje.gcc@gmail.com>
10707
10708         * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
10709         get_fnname_from_decl for name of thunk.
10710         * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name
10711         and ASM_OUTPUT_LABEL.
10712         (rs6000_xcoff_declare_function_name): Use assemble_name and
10713         ASM_OUTPUT_LABEL.
10714         (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL.
10715         (rs6000_xcoff_encode_section_info): Don't add mapping class
10716         for aliases.  Always add [DS] mapping class to primary
10717         FUNCTION_DECL.
10718         (rs6000_asm_weaken_decl): Don't explicitly add [DS].
10719
10720 2021-05-04  Martin Sebor  <msebor@redhat.com>
10721
10722         PR middle-end/100307
10723         * builtins.c (compute_objsize_r): Clear base0 for pointers.
10724
10725 2021-05-04  Jeff Law  <jlaw@tachyum.com>
10726
10727         * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.
10728
10729 2021-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
10730
10731         * caller-save.c: Remove CC0.
10732         * cfgcleanup.c: Remove CC0.
10733         * cfgrtl.c: Remove CC0.
10734         * combine.c: Remove CC0.
10735         * compare-elim.c: Remove CC0.
10736         * conditions.h: Remove CC0.
10737         * config/h8300/h8300.h: Remove CC0.
10738         * config/h8300/h8300-protos.h: Remove CC0.
10739         * config/h8300/peepholes.md: Remove CC0.
10740         * config/i386/x86-tune-sched.c: Remove CC0.
10741         * config/m68k/m68k.c: Remove CC0.
10742         * config/rl78/rl78.c: Remove CC0.
10743         * config/sparc/sparc.c: Remove CC0.
10744         * config/xtensa/xtensa.c: Remove CC0.
10745         (gen_conditional_move):  Use pc_rtx instead of cc0_rtx in a piece of
10746         RTL where that is used as a placeholder only.
10747         * cprop.c: Remove CC0.
10748         * cse.c: Remove CC0.
10749         * cselib.c: Remove CC0.
10750         * df-problems.c: Remove CC0.
10751         * df-scan.c: Remove CC0.
10752         * doc/md.texi: Remove CC0.  Adjust an example.
10753         * doc/rtl.texi: Remove CC0.  Adjust an example.
10754         * doc/tm.texi: Regenerate.
10755         * doc/tm.texi.in: Remove CC0.
10756         * emit-rtl.c: Remove CC0.
10757         * final.c: Remove CC0.
10758         * fwprop.c: Remove CC0.
10759         * gcse-common.c: Remove CC0.
10760         * gcse.c: Remove CC0.
10761         * genattrtab.c: Remove CC0.
10762         * genconfig.c: Remove CC0.
10763         * genemit.c: Remove CC0.
10764         * genextract.c: Remove CC0.
10765         * gengenrtl.c: Remove CC0.
10766         * genrecog.c: Remove CC0.
10767         * haifa-sched.c: Remove CC0.
10768         * ifcvt.c: Remove CC0.
10769         * ira-costs.c: Remove CC0.
10770         * ira.c: Remove CC0.
10771         * jump.c: Remove CC0.
10772         * loop-invariant.c: Remove CC0.
10773         * lra-constraints.c: Remove CC0.
10774         * lra-eliminations.c: Remove CC0.
10775         * optabs.c: Remove CC0.
10776         * postreload-gcse.c: Remove CC0.
10777         * postreload.c: Remove CC0.
10778         * print-rtl.c: Remove CC0.
10779         * read-rtl-function.c: Remove CC0.
10780         * reg-notes.def: Remove CC0.
10781         * reg-stack.c: Remove CC0.
10782         * reginfo.c: Remove CC0.
10783         * regrename.c: Remove CC0.
10784         * reload.c: Remove CC0.
10785         * reload1.c: Remove CC0.
10786         * reorg.c: Remove CC0.
10787         * resource.c: Remove CC0.
10788         * rtl.c: Remove CC0.
10789         * rtl.def: Remove CC0.
10790         * rtl.h: Remove CC0.
10791         * rtlanal.c: Remove CC0.
10792         * sched-deps.c: Remove CC0.
10793         * sched-rgn.c: Remove CC0.
10794         * shrink-wrap.c: Remove CC0.
10795         * simplify-rtx.c: Remove CC0.
10796         * system.h: Remove CC0.  Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT,
10797         CC_STATUS_MDEP, and CC_STATUS.
10798         * target.def: Remove CC0.
10799         * valtrack.c: Remove CC0.
10800         * var-tracking.c: Remove CC0.
10801
10802 2021-05-04  Richard Biener  <rguenther@suse.de>
10803
10804         PR tree-optimization/100414
10805         * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
10806         info here.
10807         (tree_ssa_phiopt_worker): But unconditionally here.
10808
10809 2021-05-04  Tobias Burnus  <tobias@codesourcery.com>
10810
10811         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
10812         && and || with floating-point and complex arguments.
10813
10814 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
10815
10816         * tree-inline.c (insert_debug_decl_map): Delete.
10817         (copy_debug_stmt): Minor tweak.
10818         (setup_one_parameter): Do not use a variable if the value is either
10819         a read-only DECL or a non-addressable local variable in the caller.
10820         In this case, insert the debug-only variable in the map manually.
10821         (expand_call_inline): Do not generate a CLOBBER for these values.
10822         * tree-inline.h (debug_map): Minor tweak.
10823
10824 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
10825
10826         * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy.
10827         * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up.
10828
10829 2021-05-04  Richard Biener  <rguenther@suse.de>
10830
10831         PR tree-optimization/100329
10832         * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
10833         asm goto defs.
10834         (insert_stmt_after): Assert we're not running into asm goto.
10835
10836 2021-05-04  Richard Biener  <rguenther@suse.de>
10837
10838         PR tree-optimization/100398
10839         * tree-ssa-dse.c (pass_dse::execute): Preserve control
10840         altering stmts.
10841
10842 2021-05-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10843
10844         * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype.
10845
10846 2021-05-04  Alexandre Oliva  <oliva@adacore.com>
10847
10848         * builtins.c (try_store_by_multiple_pieces): New.
10849         (expand_builtin_memset_args): Use it.  If target_char_cast
10850         fails, proceed as for non-constant val.  Pass len's ctz to...
10851         * expr.c (clear_storage_hints): ... this.  Try store by
10852         multiple pieces after setmem.
10853         (clear_storage): Adjust.
10854         * expr.h (clear_storage_hints): Likewise.
10855         (try_store_by_multiple_pieces): Declare.
10856         * passes.def: Replace the last copy_prop with ccp.
10857
10858 2021-05-03  Tom de Vries  <tdevries@suse.de>
10859
10860         PR target/100321
10861         * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined
10862         reduction.
10863
10864 2021-05-03  Richard Biener  <rguenther@suse.de>
10865
10866         * tree-ssa-dse.c (dse_classify_store): Track two PHI defs.
10867
10868 2021-05-03  Richard Biener  <rguenther@suse.de>
10869
10870         * tree-ssa-dse.c: Do not include domwalk.h but cfganal.h.
10871         (dse_dom_walker): Remove.
10872         (dse_dom_walker::dse_optimize_stmt): Rename...
10873         (dse_optimize_stmt): ... to this, pass in live_bytes sbitmap.
10874         (dse_dom_walker::before_dom_children): Inline ...
10875         (pass_dse::execute): ... here.  Perform a reverse program
10876         order walk.
10877
10878 2021-05-03  H.J. Lu  <hjl.tools@gmail.com>
10879
10880         PR bootstrap/99703
10881         * configure: Regenerated.
10882
10883 2021-05-03  Ilya Leoshkevich  <iii@linux.ibm.com>
10884
10885         PR target/100217
10886         * config/s390/s390.c (s390_hard_fp_reg_p): New function.
10887         (s390_md_asm_adjust): Handle hard registers.
10888
10889 2021-05-03  Jakub Jelinek  <jakub@redhat.com>
10890
10891         PR tree-optimization/100382
10892         * tree-ssa-dse.c: Include tree-eh.h.
10893         (dse_dom_walker::before_dom_children): Don't remove stmts if
10894         stmt_unremovable_because_of_non_call_eh_p is true.
10895
10896 2021-05-02  David Edelsohn  <dje.gcc@gmail.com>
10897
10898         * varasm.c (compute_reloc_for_var): Split out from...
10899         (get_variable_section): Use it.
10900         * output.h (compute_reloc_for_var): Declare.
10901         * config/rs6000/rs6000-protos.h
10902         (rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to
10903         unsigned int.
10904         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix):
10905         Don't append storage mapping class to symbol.
10906         (rs6000_xcoff_asm_named_section): Add BS and UL mapping classes.
10907         Don't convert TLS BSS to common.
10908         (rs6000_xcoff_unique_section): Don't fall back to select_secton.
10909         (rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is
10910         bss_initializer.
10911         (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage
10912         mapping class.
10913         (rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int.
10914         If align is 0 from TLS class, use the same rules as varasm.c
10915         If not common, switch to BSS section manually.
10916         If common, emit appropriate comm or lcomm directive.
10917         (rs6000_xcoff_encode_section_info): Add logic to append all
10918         storage mapping classes.
10919         (rs6000_asm_weaken_decl): Adjust for qualname symbols.
10920         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
10921         rs6000_xcoff_asm_output_aligned_decl_common.
10922         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
10923         rs6000_xcoff_asm_output_aligned_decl_common.
10924         (ASM_OUTPUT_TLS_COMMON): Use
10925         rs6000_xcoff_asm_output_aligned_decl_common.
10926
10927 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
10928
10929         PR target/100375
10930         * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0
10931         as first argument of pseudo_node_t constructors.
10932
10933 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
10934
10935         PR target/100336
10936         * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def.
10937
10938 2021-05-01  Aldy Hernandez  <aldyh@redhat.com>
10939
10940         * value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove.
10941         (gt_pch_nx (int_range<1> *&)): New.
10942         (gt_ggc_mx (int_range<1> *&)): New.
10943         * value-range.h (class irange): Add GTY support for
10944         the base class.
10945
10946 2021-05-01  Geng Qi  <gengqi@linux.alibaba.com>
10947
10948         * doc/options.texi (Negative): Change either or to both and.
10949
10950 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
10951
10952         * config/aarch64/aarch64-simd-builtins.def: Add
10953         float_ml[as][q]_laneq builtin generator macros.
10954         * config/aarch64/aarch64-simd.md (mul_laneq<mode>3): Define.
10955         (aarch64_float_mla_laneq<mode>): Define.
10956         (aarch64_float_mls_laneq<mode>): Define.
10957         * config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin
10958         instead of GCC vector extensions.
10959         (vmlaq_laneq_f32): Likewise.
10960         (vmls_laneq_f32): Likewise.
10961         (vmlsq_laneq_f32): Likewise.
10962
10963 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
10964
10965         * config/aarch64/aarch64-simd-builtins.def: Add
10966         float_ml[as]_lane builtin generator macros.
10967         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt<mode>):
10968         Rename to...
10969         (mul_lane<mode>3): This, and re-order arguments.
10970         (aarch64_float_mla_lane<mode>): Define.
10971         (aarch64_float_mls_lane<mode>): Define.
10972         * config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin
10973         instead of GCC vector extensions.
10974         (vmlaq_lane_f32): Likewise.
10975         (vmls_lane_f32): Likewise.
10976         (vmlsq_lane_f32): Likewise.
10977
10978 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
10979
10980         * config/aarch64/aarch64-simd-builtins.def: Add float_ml[as]
10981         builtin generator macros.
10982         * config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>):
10983         Define.
10984         (aarch64_float_mls<mode>): Define.
10985         * config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin
10986         instead of relying on GCC vector extensions.
10987         (vmla_f64): Likewise.
10988         (vmlaq_f32): Likewise.
10989         (vmlaq_f64): Likewise.
10990         (vmls_f32): Likewise.
10991         (vmls_f64): Likewise.
10992         (vmlsq_f32): Likewise.
10993         (vmlsq_f64): Likewise.
10994         * config/aarch64/iterators.md: Define VDQF_DF mode iterator.
10995
10996 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
10997
10998         * config/aarch64/aarch64-simd-builtins.def: Add
10999         float_ml[as]_n_builtin generator macros.
11000         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup<mode>):
11001         Rename to...
11002         (mul_n<mode>3): This, and re-order arguments.
11003         (aarch64_float_mla_n<mode>): Define.
11004         (aarch64_float_mls_n<mode>): Define.
11005         * config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin
11006         instead of inline asm.
11007         (vmlaq_n_f32): Likewise.
11008         (vmls_n_f32): Likewise.
11009         (vmlsq_n_f32): Likewise.
11010
11011 2021-04-30  Jonathan Wright  <joanthan.wright@arm.com>
11012
11013         * config/aarch64/aarch64-simd-builtins.def: Add pmull[2]
11014         builtin generator macros.
11015         * config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define.
11016         (aarch64_pmull_hiv16qi_insn): Define.
11017         (aarch64_pmull_hiv16qi): Define.
11018         * config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin
11019         instead of inline asm.
11020         (vmull_p8): Likewise.
11021
11022 2021-04-30  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
11023
11024         * config/avr/avr.md: Adjust peepholes to match and
11025         generate parallels with clobber of REG_CC.
11026         (mov<mode>_insn): Rename to mov<mode>_insn_split.
11027         (*mov<mode>_insn): Rename to mov<mode>_insn.
11028
11029 2021-04-30  David Edelsohn  <dje.gcc@gmail.com>
11030
11031         * varasm.c (use_blocks_for_decl_p): Don't use section anchors
11032         for VAR_DECLs if -fdata-sections enabled.
11033
11034 2021-04-30  Michael Meissner  <meissner@linux.ibm.com>
11035
11036         PR bootstrap/100327
11037         * config/rs6000/rs6000.c
11038         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
11039         (rs6000_libgcc_floating_mode_supported_p): New target hook.
11040
11041 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
11042
11043         * tree-ssa-threadbackward.c (class thread_jumps): Split out code
11044         from here...
11045         (class back_threader_registry): ...to here...
11046         (class back_threader_profitability): ...and here...
11047         (thread_jumps::thread_through_all_blocks): Remove argument.
11048         (back_threader_registry::back_threader_registry): New.
11049         (back_threader_registry::~back_threader_registry): New.
11050         (back_threader_registry::thread_through_all_blocks): New.
11051         (thread_jumps::profitable_jump_thread_path): Move from here...
11052         (back_threader_profitability::profitable_path_p): ...to here.
11053         (thread_jumps::find_taken_edge): New.
11054         (thread_jumps::convert_and_register_current_path): Move...
11055         (back_threader_registry::register_path): ...to here.
11056         (thread_jumps::register_jump_thread_path_if_profitable): Move...
11057         (thread_jumps::maybe_register_path): ...to here.
11058         (thread_jumps::handle_phi): Call find_taken_edge and
11059         maybe_register_path.
11060         (thread_jumps::handle_assignment): Same.
11061         (thread_jumps::fsm_find_control_statement_thread_paths): Remove
11062         tree argument to handle_phi and handle_assignment.
11063         (thread_jumps::find_jump_threads_backwards): Set m_name.  Remove
11064         set of m_speed_p and m_max_threaded_paths.
11065         (pass_thread_jumps::execute): Remove second argument from
11066         find_jump_threads_backwards.
11067         (pass_early_thread_jumps::execute): Same.
11068
11069 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
11070
11071         * tree-ssa-dom.c (class dom_jump_threader_simplifier): New.
11072         (class dom_opt_dom_walker): Initialize some class variables.
11073         (pass_dominator::execute): Pass evrp_range_analyzer and
11074         dom_jump_threader_simplifier to dom_opt_dom_walker.
11075         Adjust for some functions moving into classes.
11076         (simplify_stmt_for_jump_threading): Adjust and move to...
11077         (jump_threader_simplifier::simplify): ...here.
11078         (dom_opt_dom_walker::before_dom_children): Adjust for
11079         m_evrp_range_analyzer.
11080         (dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack.
11081         (test_for_singularity): Place in dom_opt_dom_walker class.
11082         (dom_opt_dom_walker::optimize_stmt): The argument
11083         evrp_range_analyzer is now a class field.
11084         * tree-ssa-threadbackward.c (class thread_jumps): Add m_registry.
11085         (thread_jumps::thread_through_all_blocks): New.
11086         (thread_jumps::convert_and_register_current_path): Use m_registry.
11087         (pass_thread_jumps::execute): Adjust for thread_through_all_blocks
11088         being in the threader class.
11089         (pass_early_thread_jumps::execute): Same.
11090         * tree-ssa-threadedge.c (threadedge_initialize_values): Move...
11091         (jump_threader::jump_threader): ...here.
11092         (threadedge_finalize_values): Move...
11093         (jump_threader::~jump_threader): ...here.
11094         (jump_threader::remove_jump_threads_including): New.
11095         (jump_threader::thread_through_all_blocks): New.
11096         (record_temporary_equivalences_from_phis): Move...
11097         (jump_threader::record_temporary_equivalences_from_phis): ...here.
11098         (record_temporary_equivalences_from_stmts_at_dest): Move...
11099         (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
11100         Here...
11101         (simplify_control_stmt_condition_1): Move to jump_threader class.
11102         (simplify_control_stmt_condition): Move...
11103         (jump_threader::simplify_control_stmt_condition): ...here.
11104         (thread_around_empty_blocks): Move...
11105         (jump_threader::thread_around_empty_blocks): ...here.
11106         (thread_through_normal_block): Move...
11107         (jump_threader::thread_through_normal_block): ...here.
11108         (thread_across_edge): Move...
11109         (jump_threader::thread_across_edge): ...here.
11110         (thread_outgoing_edges): Move...
11111         (jump_threader::thread_outgoing_edges): ...here.
11112         * tree-ssa-threadedge.h: Move externally facing functings...
11113         (class jump_threader): ...here...
11114         (class jump_threader_simplifier): ...and here.
11115         * tree-ssa-threadupdate.c (struct redirection_data): Remove comment.
11116         (jump_thread_path_allocator::jump_thread_path_allocator): New.
11117         (jump_thread_path_allocator::~jump_thread_path_allocator): New.
11118         (jump_thread_path_allocator::allocate_thread_edge): New.
11119         (jump_thread_path_allocator::allocate_thread_path): New.
11120         (jump_thread_path_registry::jump_thread_path_registry): New.
11121         (jump_thread_path_registry::~jump_thread_path_registry): New.
11122         (jump_thread_path_registry::allocate_thread_edge): New.
11123         (jump_thread_path_registry::allocate_thread_path): New.
11124         (dump_jump_thread_path): Make extern.
11125         (debug (const vec<jump_thread_edge *> &path)): New.
11126         (struct removed_edges): Move to tree-ssa-threadupdate.h.
11127         (struct thread_stats_d): Remove.
11128         (remove_ctrl_stmt_and_useless_edges): Make static.
11129         (lookup_redirection_data): Move...
11130         (jump_thread_path_registry::lookup_redirection_data): ...here.
11131         (ssa_redirect_edges): Make static.
11132         (thread_block_1): Move...
11133         (jump_thread_path_registry::thread_block_1): ...here.
11134         (thread_block): Move...
11135         (jump_thread_path_registry::thread_block): ...here.
11136         (thread_through_loop_header):  Move...
11137         (jump_thread_path_registry::thread_through_loop_header): ...here.
11138         (mark_threaded_blocks): Move...
11139         (jump_thread_path_registry::mark_threaded_blocks): ...here.
11140         (debug_path): Move...
11141         (jump_thread_path_registry::debug_path): ...here.
11142         (debug_all_paths): Move...
11143         (jump_thread_path_registry::dump): ..here.
11144         (rewire_first_differing_edge): Move...
11145         (jump_thread_path_registry::rewire_first_differing_edge): ...here.
11146         (adjust_paths_after_duplication): Move...
11147         (jump_thread_path_registry::adjust_paths_after_duplication): ...here.
11148         (duplicate_thread_path): Move...
11149         (jump_thread_path_registry::duplicate_thread_path): ..here.
11150         (remove_jump_threads_including): Move...
11151         (jump_thread_path_registry::remove_jump_threads_including): ...here.
11152         (thread_through_all_blocks): Move to...
11153         (jump_thread_path_registry::thread_through_all_blocks): ...here.
11154         (delete_jump_thread_path): Remove.
11155         (register_jump_thread): Move...
11156         (jump_thread_path_registry::register_jump_thread): ...here.
11157         * tree-ssa-threadupdate.h: Move externally facing functions...
11158         (class jump_thread_path_allocator): ...here...
11159         (class jump_thread_path_registry): ...and here.
11160         (thread_through_all_blocks): Remove.
11161         (struct removed_edges): New.
11162         (register_jump_thread): Remove.
11163         (remove_jump_threads_including): Remove.
11164         (delete_jump_thread_path): Remove.
11165         (remove_ctrl_stmt_and_useless_edges): Remove.
11166         (free_dom_edge_info): New prototype.
11167         * tree-vrp.c: Remove x_vr_values hack.
11168         (class vrp_jump_threader_simplifier): New.
11169         (vrp_jump_threader_simplifier::simplify): New.
11170         (vrp_jump_threader::vrp_jump_threader): Adjust method signature.
11171         Remove m_dummy_cond.
11172         Instantiate m_simplifier and m_threader.
11173         (vrp_jump_threader::thread_through_all_blocks): New.
11174         (vrp_jump_threader::simplify_stmt): Remove.
11175         (vrp_jump_threader::after_dom_children): Do not set m_dummy_cond.
11176         Remove x_vr_values hack.
11177         (execute_vrp): Adjust for thread_through_all_blocks being in a
11178         class.
11179
11180 2021-04-30  Christophe Lyon  <christophe.lyon@linaro.org>
11181
11182         * genflags.c (gen_insn): Print failed expansion string.
11183
11184 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
11185
11186         * expr.c (alignment_for_piecewise_move): Call mode_for_size
11187         without limit to MAX_FIXED_MODE_SIZE.
11188
11189 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
11190
11191         PR middle-end/90773
11192         * builtins.c (builtin_memset_gen_str): Don't use return from
11193         simplify_gen_subreg.
11194
11195 2021-04-30  Uroš Bizjak  <ubizjak@gmail.com>
11196
11197         PR target/98060
11198         * config/i386/i386.md (*add<mode>3_carry_0r): New insn pattern.
11199         (*addsi3_carry_zext_0r): Ditto.
11200         (*sub<mode>3_carry_0): Ditto.
11201         (*subsi3_carry_zext_0r): Ditto.
11202         * config/i386/predicates.md (ix86_carry_flag_unset_operator):
11203         New predicate.
11204         * config/i386/i386.c (ix86_rtx_costs) <case PLUS, case MINUS>:
11205         Also consider ix86_carry_flag_unset_operator to calculate
11206         the cost of adc/sbb insn.
11207
11208 2021-04-30  Roman Zhuykov  <zhroma@ispras.ru>
11209
11210         PR rtl-optimization/100225
11211         PR rtl-optimization/84878
11212         * modulo-sched.c (sms_schedule): Use note_stores to skip loops
11213         where we have an instruction which touches (writes) any hard
11214         register from df->regular_block_artificial_uses set.
11215         Allow not-single-set instruction only right before basic block
11216         tail.
11217
11218 2021-04-30  Geng Qi  <gengqi@linux.alibaba.com>
11219
11220         * config/riscv/riscv.opt (march=,mabi=): Negative itself.
11221
11222 2021-04-30  LevyHsu  <admin@levyhsu.com>
11223
11224         * config/riscv/riscv.c (riscv_min_arithmetic_precision): New.
11225         * config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New.
11226         * config/riscv/riscv.md (addv<mode>4, uaddv<mode>4): New.
11227         (subv<mode>4, usubv<mode>4, mulv<mode>4, umulv<mode>4): New.
11228
11229 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
11230
11231         * config.gcc: Merged x86 and x86_64 cpu_type-setting cases.
11232
11233 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
11234
11235         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to...
11236         (ASM_OUTPUT_MAX_SKIP_ALIGN): ... this.  Enclose in do/while(0).
11237         * config/i386/i386.c: Adjust.
11238         * config/i386/i386.md: Adjust.
11239         * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop.
11240         * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
11241         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
11242         * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
11243         * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
11244         * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
11245         * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
11246         * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
11247         * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
11248         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
11249         (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
11250
11251 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
11252
11253         * config/i386/i386-expand.c (ix86_expand_int_compare):
11254         Swap operands of GTU and LEU comparison to emit carry flag comparison.
11255         * config/i386/i386.md (*add<mode>3_carry_0): Change insn
11256         predicate to allow more combine opportunities with memory operands.
11257         (*sub<mode>3_carry_0): Ditto.
11258
11259 2021-04-29  Richard Sandiford  <richard.sandiford@arm.com>
11260
11261         PR rtl-optimization/100303
11262         * rtl-ssa/accesses.cc (function_info::make_use_available): Take a
11263         boolean that indicates whether the use will only be used in
11264         debug instructions.  Treat it in the same way that existing
11265         cross-EBB debug references would be handled if so.
11266         (function_info::make_uses_available): Likewise.
11267         * rtl-ssa/functions.h (function_info::make_uses_available): Update
11268         prototype accordingly.
11269         (function_info::make_uses_available): Likewise.
11270         * fwprop.c (try_fwprop_subst): Update call accordingly.
11271
11272 2021-04-29  Jeff Law  <jlaw@tachyum.com>
11273
11274         * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside
11275         of RTX_CODE guard.
11276
11277 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
11278             Richard Biener  <rguenther@suse.de>
11279
11280         PR target/100312
11281         * config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD)
11282         (IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256)
11283         (IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD)
11284         (IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256)
11285         (IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS
11286         to PURE_ARGS category.
11287         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
11288         Handle PURE_ARGS category.
11289         * config/i386/i386-expand.c (ix86_expand_builtin): Ditto.
11290
11291 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
11292
11293         * configure.ac: Check for the presence of sys/locking.h header and
11294         for whether _LK_LOCK is supported by _locking.
11295         * configure: Regenerate.
11296         * config.in: Likewise.
11297         * gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK.
11298         * gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING.
11299         * system.h: Include <sys/locking.h> if HAVE_SYS_LOCKING_H.
11300
11301 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
11302
11303         * config/i386/predicates.md (fcmov_comparison_operator):
11304         Do not check for trivial FP comparison operator.
11305         <case GEU, case LTU>: Allow CCGZmode.
11306         <case GTU, case LEU>: Do not allow CCCmode.
11307         (ix86_comparison_operator) <case GTU, case LEU>: Allow only CCmode.
11308         (ix86_carry_flag_operator): Match only LTU and UNLT code.
11309         Do not check for trivial FP comparison operator.  Allow CCGZmode.
11310
11311 2021-04-29  Tom de Vries  <tdevries@suse.de>
11312
11313         * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of
11314         fd->loop.step by either step or orig_step.
11315
11316 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
11317
11318         * config/sparc/sparc.c (gen_load_pcrel_sym): Delete.
11319         (load_got_register): Do the PIC dance here.
11320         (sparc_legitimize_tls_address): Simplify.
11321         (sparc_emit_probe_stack_range): Likewise.
11322         (sparc32_initialize_trampoline): Likewise.
11323         (sparc64_initialize_trampoline): Likewise.
11324         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Add @ marker.
11325         (probe_stack_range<P:mode>): Likewise.
11326         (flush<P:mode>): Likewise.
11327         (tgd_hi22<P:mode>): Likewise.
11328         (tgd_lo10<P:mode>): Likewise.
11329         (tgd_add<P:mode>): Likewise.
11330         (tgd_call<P:mode>): Likewise.
11331         (tldm_hi22<P:mode>): Likewise.
11332         (tldm_lo10<P:mode>): Likewise.
11333         (tldm_add<P:mode>): Likewise.
11334         (tldm_call<P:mode>): Likewise.
11335         (tldo_hix22<P:mode>): Likewise.
11336         (tldo_lox10<P:mode>): Likewise.
11337         (tldo_add<P:mode>): Likewise.
11338         (tie_hi22<P:mode>): Likewise.
11339         (tie_lo10<P:mode>): Likewise.
11340         (tie_add<P:mode>): Likewise.
11341         (tle_hix22<P:mode>): Likewise.
11342         (tle_lox10<P:mode>): Likewise.
11343         (stack_protect_setsi): Rename to...
11344         (stack_protect_set32): ...this.
11345         (stack_protect_setdi): Rename to...
11346         (stack_protect_set64): ...this.
11347         (stack_protect_set): Adjust calls to above.
11348         (stack_protect_testsi): Rename to...
11349         (stack_protect_test32): ...this.
11350         (stack_protect_testdi): Rename to...
11351         (stack_protect_test64): ...this.
11352         (stack_protect_test): Adjust calls to above.
11353
11354 2021-04-29  H.J. Lu  <hjl.tools@gmail.com>
11355
11356         PR middle-end/90773
11357         * builtins.c (builtin_memcpy_read_str): Add a dummy argument.
11358         (builtin_strncpy_read_str): Likewise.
11359         (builtin_memset_read_str): Add an argument for the previous RTL
11360         information and generate the new RTL from the previous RTL info.
11361         (builtin_memset_gen_str): Likewise.
11362         * builtins.h (builtin_strncpy_read_str): Update the prototype.
11363         (builtin_memset_read_str): Likewise.
11364         * expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p()
11365         returns true, round up size and alignment to the widest integer
11366         mode for maximum size.
11367         (pieces_addr::adjust): Add a pointer to by_pieces_prev argument
11368         and pass it to m_constfn.
11369         (op_by_pieces_d): Add m_push and m_overlap_op_by_pieces.
11370         (op_by_pieces_d::op_by_pieces_d): Add a bool argument to
11371         initialize m_push.  Initialize m_overlap_op_by_pieces with
11372         targetm.overlap_op_by_pieces_p ().
11373         (op_by_pieces_d::run): Pass the previous RTL information to
11374         pieces_addr::adjust and generate overlapping operations if
11375         m_overlap_op_by_pieces is true.
11376         (PUSHG_P): New.
11377         (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d
11378         change.
11379         (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d
11380         change.
11381         (can_store_by_pieces): Use by_pieces_constfn on constfun.
11382         (store_by_pieces): Use by_pieces_constfn on constfun.  Updated
11383         for op_by_pieces_d change.
11384         (clear_by_pieces_1): Add a dummy argument.
11385         (clear_by_pieces): Updated for op_by_pieces_d change.
11386         (compare_by_pieces_d::compare_by_pieces_d): Likewise.
11387         (string_cst_read_str): Add a dummy argument.
11388         * expr.h (by_pieces_constfn): Add a dummy argument.
11389         (by_pieces_prev): New.
11390         * target.def (overlap_op_by_pieces_p): New target hook.
11391         * config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New.
11392         * doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P.
11393         * doc/tm.texi: Regenerated.
11394
11395 2021-04-29  Richard Biener  <rguenther@suse.de>
11396
11397         PR tree-optimization/100253
11398         * tree-vect-stmts.c (vectorizable_load): Do not assume
11399         element alignment when DR_MISALIGNMENT is -1.
11400         (vectorizable_store): Likewise.
11401
11402 2021-04-29  Jakub Jelinek  <jakub@redhat.com>
11403
11404         PR target/100302
11405         * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
11406         absu_hwi instead of abs_hwi.
11407
11408 2021-04-29  Richard Biener  <rguenther@suse.de>
11409
11410         PR middle-end/38474
11411         * tree-ssa-structalias.c (add_graph_edge): Avoid direct
11412         forwarding when indirect forwarding through ESCAPED
11413         alread happens.
11414
11415 2021-04-29  Tom de Vries  <tdevries@suse.de>
11416
11417         PR target/100232
11418         * internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC)
11419         (expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED)
11420         (expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY)
11421         (expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to.
11422
11423 2021-04-29  Richard Biener  <rguenther@suse.de>
11424
11425         PR tree-optimization/99912
11426         * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New.
11427         (dse_dom_walker::todo): Likewise.
11428         (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the
11429         caller.
11430         (dse_dom_walker::before_dom_children): Remove trivially
11431         dead SSA defs and schedule CFG cleanup if we removed all
11432         PHIs in a block.
11433         (pass_dse::execute): Get TODO as computed by the DOM walker
11434         and return it.  Wipe dominator info earlier.
11435
11436 2021-04-29  Richard Biener  <rguenther@suse.de>
11437
11438         PR ipa/100308
11439         * ipa-prop.c (ipcp_modif_dom_walker::before_dom_children):
11440         Track blocks to cleanup EH in new m_need_eh_cleanup.
11441         (ipcp_modif_dom_walker::cleanup_eh): New.
11442         (ipcp_transform_function): Release dominator info before
11443         doing EH cleanup.
11444
11445 2021-04-29  Martin Sebor  <msebor@redhat.com>
11446
11447         PR middle-end/100250
11448         * attribs.c (attr_access::array_as_string): Avoid dereferencing
11449         a pointer when it's null.
11450
11451 2021-04-29  Martin Sebor  <msebor@redhat.com>
11452
11453         * Makefile.in (OBJS): Add ipa-free-lang-data.o.
11454         * ipa-free-lang-data.cc: New file.
11455         * tree.c: Move pass free_lang_data to file above.
11456          (build_array_type_1): Declare extern.
11457         * tree.h (build_array_type_1): Declare.
11458
11459 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
11460
11461         * config/aarch64/aarch64-simd-builtins.def: Modify comment to
11462         make consistent with updated RTL pattern.
11463         * config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>):
11464         Implement using ss_truncate and us_truncate rather than
11465         unspecs.
11466         * config/aarch64/iterators.md: Remove redundant unspecs and
11467         iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively.
11468
11469 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
11470
11471         * config/aarch64/arm_acle.h (__attribute__): Make intrinsic
11472         attributes consistent with those defined in arm_neon.h.
11473
11474 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
11475
11476         * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic
11477         attributes consistent with those defined in arm_neon.h.
11478
11479 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
11480
11481         * config/aarch64/aarch64-simd-builtins.def: Add
11482         float_trunc_rodd builtin generator macros.
11483         * config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df):
11484         Define.
11485         (aarch64_float_trunc_rodd_lo_v2sf): Define.
11486         (aarch64_float_trunc_rodd_hi_v4sf_le): Define.
11487         (aarch64_float_trunc_rodd_hi_v4sf_be): Define.
11488         (aarch64_float_trunc_rodd_hi_v4sf): Define.
11489         * config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin
11490         instead of inline asm.
11491         (vcvtx_high_f32_f64): Likewise.
11492         (vcvtxd_f32_f64): Likewise.
11493         * config/aarch64/iterators.md: Add FCVTXN unspec.
11494
11495 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
11496
11497         * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin
11498         generator macros.
11499         * config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>):
11500         Define.
11501         * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin
11502         instead of inline asm.
11503         (vqtbx1_u8): Likewise.
11504         (vqtbx1_p8): Likewise.
11505         (vqtbx1q_s8): Likewise.
11506         (vqtbx1q_u8): Likewise.
11507         (vqtbx1q_p8): Likewise.
11508         (vtbx2_s8): Likewise.
11509         (vtbx2_u8): Likewise.
11510         (vtbx2_p8): Likewise.
11511
11512 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
11513
11514         * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin
11515         generator macros.
11516         * config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin
11517         instead of inline asm.
11518         (vqtbl1_s8): Likewise.
11519         (vqtbl1_u8): Likewise.
11520         (vqtbl1q_p8): Likewise.
11521         (vqtbl1q_s8): Likewise.
11522         (vqtbl1q_u8): Likewise.
11523         (vtbl1_s8): Likewise.
11524         (vtbl1_u8): Likewise.
11525         (vtbl1_p8): Likewise.
11526         (vtbl2_s8): Likewise.
11527         (vtbl2_u8): Likewise.
11528         (vtbl2_p8): Likewise.
11529
11530 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
11531
11532         * config/aarch64/aarch64-simd-builtins.def: Add polynomial
11533         ssri_n buitin generator macro.
11534         * config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin
11535         instead of inline asm.
11536         (vsri_n_p16): Likewise.
11537         (vsri_n_p64): Likewise.
11538         (vsriq_n_p8): Likewise.
11539         (vsriq_n_p16): Likewise.
11540         (vsriq_n_p64): Likewise.
11541
11542 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
11543
11544         * config/aarch64/aarch64-simd-builtins.def: Use VALLP mode
11545         iterator for polynomial ssli_n builtin generator macro.
11546         * config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin
11547         instead of inline asm.
11548         (vsli_n_p16): Likewise.
11549         (vsliq_n_p8): Likewise.
11550         (vsliq_n_p16): Likewise.
11551         * config/aarch64/iterators.md: Define VALLP mode iterator.
11552
11553 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
11554
11555         * config/aarch64/aarch64-simd-builtins.def: Use VDQV_L
11556         iterator to generate [su]adalp RTL builtins.
11557         * config/aarch64/aarch64-simd.md: Use VDQV_L iterator in
11558         [su]adalp RTL pattern.
11559         * config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin
11560         instead of inline asm.
11561         (vpadal_u32): Likewise.
11562
11563 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
11564
11565         * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp
11566         builtin generator macros.
11567         * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>):
11568         Define.
11569         * config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin
11570         instead of inline asm.
11571         (vpaddl_s16): Likewise.
11572         (vpaddl_s32): Likewise.
11573         (vpaddl_u8): Likewise.
11574         (vpaddl_u16): Likewise.
11575         (vpaddl_u32): Likewise.
11576         (vpaddlq_s8): Likewise.
11577         (vpaddlq_s16): Likewise.
11578         (vpaddlq_s32): Likewise.
11579         (vpaddlq_u8): Likewise.
11580         (vpaddlq_u16): Likewise.
11581         (vpaddlq_u32): Liwewise.
11582         * config/aarch64/iterators.md: Define [SU]ADDLP unspecs with
11583         appropriate attributes.
11584
11585 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
11586
11587         * config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator
11588         for aarch64_addp<mode> builtin macro generator.
11589         * config/aarch64/aarch64-simd.md: Use VDQ_I iterator in
11590         aarch64_addp<mode> RTL pattern.
11591         * config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin
11592         instead of inline asm.
11593         (vpaddq_s16): Likewise.
11594         (vpaddq_s32): Likewise.
11595         (vpaddq_s64): Likewise.
11596         (vpaddq_u8): Likewise.
11597         (vpaddq_u16): Likewise.
11598         (vpaddq_u32): Likewise.
11599         (vpaddq_u64): Likewise.
11600
11601 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
11602
11603         * config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n
11604         builtin generator macros.
11605         * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_n<mode>):
11606         Define.
11607         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin
11608         instead of inline asm.
11609         (vqdmulh_n_s32): Likewise.
11610         (vqdmulhq_n_s16): Likewise.
11611         (vqdmulhq_n_s32): Likewise.
11612         (vqrdmulh_n_s16): Likewise.
11613         (vqrdmulh_n_s32): Likewise.
11614         (vqrdmulhq_n_s16): Likewise.
11615         (vqrdmulhq_n_s32): Likewise.
11616
11617 2021-04-28  Tobias Burnus  <tobias@codesourcery.com>
11618
11619         * doc/install.texi (--enable-offload-defaulted): Document.
11620
11621 2021-04-28  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
11622
11623         * config/avr/avr-dimode.md: Turn existing patterns into
11624         define_insn_and_split style patterns where the splitter
11625         adds a clobber of the condition code register.  Drop "cc"
11626         attribute.  Add new patterns to match output of
11627         the splitters.
11628         * config/avr/avr-fixed.md: Likewise.
11629         * config/avr/avr.c (cc_reg_rtx): New.
11630         (avr_parallel_insn_from_insns): Adjust insn count
11631         for removal of set of cc0.
11632         (avr_is_casesi_sequence): Likewise.
11633         (avr_casei_sequence_check_operands): Likewise.
11634         (avr_optimize_casesi): Likewise. Also insert
11635         new insns after jump_insn.
11636         (avr_pass_casesi::avr_rest_of_handle_casesi): Adjust
11637         for removal of set of cc0.
11638         (avr_init_expanders): Initialize cc_reg_rtx.
11639         (avr_regno_reg_class): Handle REG_CC.
11640         (cond_string): Remove usage of CC_OVERFLOW_UNUSABLE.
11641         (avr_notice_update_cc): Remove function.
11642         (ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE.
11643         (compare_condition): Adjust for PARALLEL with
11644         REG_CC clobber.
11645         (out_shift_with_cnt): Likewise.
11646         (ashlhi3_out): Likewise.
11647         (ashrhi3_out): Likewise.
11648         (lshrhi3_out): Likewise.
11649         (avr_class_max_nregs): Return single reg for REG_CC.
11650         (avr_compare_pattern): Check for REG_CC instead
11651         of cc0_rtx.
11652         (avr_reorg_remove_redundant_compare): Likewise.
11653         (avr_reorg):Adjust for PARALLEL with REG_CC clobber.
11654         (avr_hard_regno_nregs): Return single reg for REG_CC.
11655         (avr_hard_regno_mode_ok): Allow only CCmode for REG_CC.
11656         (avr_md_asm_adjust): Clobber REG_CC.
11657         (TARGET_HARD_REGNO_NREGS): Define.
11658         (TARGET_CLASS_MAX_NREGS): Define.
11659         (TARGET_MD_ASM_ADJUST): Define.
11660         * config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust
11661         for REG_CC.
11662         (enum reg_class): Add CC_REG class.
11663         (NOTICE_UPDATE_CC): Remove.
11664         (CC_OVERFLOW_UNUSABLE): Remove.
11665         (CC_NO_CARRY): Remove.
11666         * config/avr/avr.md: Turn existing patterns into
11667         define_insn_and_split style patterns where the splitter
11668         adds a clobber of the condition code register.  Drop "cc"
11669         attribute.  Add new patterns to match output of
11670         the splitters.
11671         (sez): Remove unused pattern.
11672
11673 2021-04-28  Richard Earnshaw  <rearnsha@arm.com>
11674
11675         PR target/100311
11676         * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be
11677         used in HImode.
11678
11679 2021-04-28  Richard Sandiford  <richard.sandiford@arm.com>
11680
11681         PR target/100305
11682         * config/aarch64/constraints.md (Utq): Require the address to
11683         be valid for both the element mode and for V2DImode.
11684
11685 2021-04-28  Jakub Jelinek  <jakub@redhat.com>
11686             Tobias Burnus  <tobias@codesourcery.com>
11687
11688         * configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted.
11689         * gcc.c (process_command): New variable.
11690         (driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED,
11691         set it if -foffload is defaulted.
11692         * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
11693         (compile_offload_image): If OFFLOAD_DEFAULTED and
11694         OFFLOAD_TARGET_DEFAULT is in the environment, don't fail
11695         if corresponding mkoffload can't be found.
11696         (compile_images_for_offload_targets): Likewise.  Free and clear
11697         offload_names if no valid offload is found.
11698         * config.in: Regenerate.
11699         * configure: Regenerate.
11700
11701 2021-04-28  Richard Biener  <rguenther@suse.de>
11702
11703         PR tree-optimization/100292
11704         * tree-vect-generic.c (expand_vector_condition): Do not fold
11705         the comparisons.
11706
11707 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
11708
11709         * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New.
11710         * config/rs6000/aix64.opt (m64): New.
11711         (m32): New.
11712
11713 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
11714
11715         * config/vax/vax.c (print_operand_address, vax_address_cost_1)
11716         (index_term_p): Handle ASHIFT too.
11717
11718 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
11719
11720         * config/vax/builtins.md (jbb<ccss>i<mode>): Remove operand #3.
11721         (sync_lock_test_and_set<mode>): Adjust accordingly.
11722         (sync_lock_release<mode>): Likewise.
11723
11724 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
11725
11726         * config/vax/vax-protos.h (adjacent_operands_p): Remove
11727         prototype.
11728         * config/vax/vax.c (adjacent_operands_p): Remove.
11729
11730 2021-04-27  Maciej W. Rozycki  <macro@linux-mips.org>
11731
11732         * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall
11733         through to the non-conditional execution case if getting the
11734         condition for conditional execution has failed.
11735
11736 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
11737
11738         PR middle-end/100284
11739         * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test.
11740         * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather
11741         than asserting on it.
11742
11743 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
11744
11745         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect
11746         with TARGET_AIX_OS.
11747
11748 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
11749
11750         PR target/94177
11751         * calls.c (precompute_register_parameters): Additionally test
11752         targetm.precompute_tls_p to pre-compute argument.
11753         * config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define.
11754         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New.
11755         * target.def (precompute_tls_p): New.
11756         * doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation.
11757         * doc/tm.texi: Regenerated.
11758
11759 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
11760
11761         PR target/100200
11762         * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL
11763         back to HOST_WIDE_INT.
11764
11765 2021-04-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11766
11767         PR target/100106
11768         * simplify-rtx.c (simplify_context::simplify_subreg): Check the
11769         memory alignment for the outer mode.
11770
11771 2021-04-27  H.J. Lu  <hjl.tools@gmail.com>
11772
11773         PR middle-end/90773
11774         * expr.c (op_by_pieces_d::get_usable_mode): New member function.
11775         (op_by_pieces_d::run): Cange a while loop to a do-while loop.
11776
11777 2021-04-27  Alex Coplan  <alex.coplan@arm.com>
11778
11779         PR target/99977
11780         * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen
11781         with negative immediates: ensure we expand cbranchsi4_scratch
11782         correctly and ensure we satisfy its constraints.
11783         * config/arm/sync.md
11784         (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't
11785         attempt to tie two output operands together with constraints;
11786         collapse two alternatives.
11787         (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise.
11788         * config/arm/thumb1.md (cbranchsi4_neg_late): New.
11789
11790 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
11791
11792         PR target/100200
11793         * config/aarch64/predicates.md (aarch64_sub_immediate,
11794         aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL.
11795         * config/aarch64/aarch64.md (casesi, rotl<mode>3): Likewise.
11796         * config/aarch64/aarch64.c (aarch64_print_operand,
11797         aarch64_split_atomic_op, aarch64_expand_subvti): Likewise.
11798
11799 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
11800
11801         PR tree-optimization/100239
11802         * tree-vect-generic.c (lower_vec_perm): Don't accept constant
11803         permutations with all indices from the first zero element as vec_shl.
11804
11805 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
11806
11807         PR rtl-optimization/100254
11808         * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
11809         last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.
11810
11811 2021-04-27  Richard Biener  <rguenther@suse.de>
11812
11813         PR tree-optimization/99912
11814         * passes.def: Add comment about new TODO_remove_unused_locals.
11815         * tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals
11816         at start.
11817
11818 2021-04-27  Richard Biener  <rguenther@suse.de>
11819
11820         PR tree-optimization/99912
11821         * passes.def (pass_all_optimizations): Add pass_dse before
11822         the first pass_dce, move the first pass_dse before the
11823         pass_dce following pass_pre.
11824
11825 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
11826
11827         PR tree-optimization/95527
11828         * generic-match-head.c: Include tm.h.
11829         * gimple-match-head.c: Include tm.h.
11830         * match.pd (CLZ == INTEGER_CST): Don't use
11831         #ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO
11832         if clz == CFN_CLZ.  Add missing val declaration.
11833         (CTZ cmp CST): New simplifications.
11834
11835 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
11836
11837         PR tree-optimization/96696
11838         * expr.c (expand_expr_divmod): New function.
11839         (expand_expr_real_2) <case TRUNC_DIV_EXPR>: Use it for truncations and
11840         divisions.  Formatting fixes.
11841         <case MULT_EXPR>: Optimize x / y * y as x - x % y if the latter is
11842         cheaper.
11843
11844 2021-04-27  Martin Jambor  <mjambor@suse.cz>
11845
11846         PR ipa/99951
11847         * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
11848         If removing a call statement LHS SSA name, release it.
11849
11850 2021-04-27  Richard Earnshaw  <rearnsha@arm.com>
11851
11852         PR target/100236
11853         * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM
11854         is valid before including it in the mask.
11855
11856 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
11857
11858         PR target/100270
11859         * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle
11860         SVE attributes.
11861
11862 2021-04-27  Richard Biener  <rguenther@suse.de>
11863
11864         PR tree-optimization/100051
11865         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add
11866         disambiguator based on access size vs. decl size.
11867
11868 2021-04-27  Richard Biener  <rguenther@suse.de>
11869
11870         PR tree-optimization/100278
11871         * tree-ssa-pre.c (compute_avail): Give up when we cannot
11872         adjust TBAA beacuse of mismatching bases.
11873
11874 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
11875
11876         PR target/99405
11877         * config/i386/i386.md (*<insn><mode>3_mask, *<insn><mode>3_mask_1):
11878         For any_rotate define_insn_split and following splitters, use
11879         SWI iterator instead of SWI48.
11880
11881 2021-04-27  Richard Biener  <rguenther@suse.de>
11882
11883         PR tree-optimization/99776
11884         * match.pd (bit_field_ref (ctor)): Relax element extract
11885         type compatibility checks.
11886
11887 2021-04-27  Cui,Lili  <lili.cui@intel.com>
11888
11889         * common/config/i386/i386-common.c (processor_names):
11890         Sync processor_names with processor_type.
11891         * config/i386/i386-options.c (processor_cost_table):
11892         Sync processor_cost_table with processor_type.
11893
11894 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
11895
11896         * value-range.cc (irange::irange_set_1bit_anti_range): Add assert.
11897         (irange::set): Call irange_set_1bit_anti_range for handling all
11898         1-bit ranges.  Fall through on ~[MIN,MAX].
11899
11900 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
11901
11902         * value-range.cc (irange::legacy_num_pairs): Remove.
11903         (irange::invert): Change gcc_assert to gcc_checking_assert.
11904         * value-range.h (irange::num_pairs): Adjust for a cached
11905         num_pairs().  Also, rename all gcc_assert's to
11906         gcc_checking_assert's.
11907
11908 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
11909
11910         * value-range.cc (irange::operator=): Set m_kind.
11911         (irange::copy_to_legacy): Handle varying and undefined sources
11912         as a legacy copy since they can be easily copied.
11913         (irange::irange_set): Set m_kind.
11914         (irange::irange_set_anti_range): Same.
11915         (irange::set): Rename normalize_min_max to normalize_kind.
11916         (irange::verify_range): Adjust for multi-ranges having the
11917         m_kind field set.
11918         (irange::irange_union): Set m_kind.
11919         (irange::irange_intersect): Same.
11920         (irange::invert): Same.
11921         * value-range.h (irange::kind): Always return m_kind.
11922         (irange::varying_p): Rename to...
11923         (irange::varying_comptaible_p): ...this.
11924         (irange::undefined_p): Only look at m_kind.
11925         (irange::irange): Always set VR_UNDEFINED if applicable.
11926         (irange::set_undefined): Always set VR_UNDEFINED.
11927         (irange::set_varying): Always set m_kind to VR_VARYING.
11928         (irange::normalize_min_max): Rename to...
11929         (irange::normalize_kind): ...this.
11930
11931 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
11932
11933         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
11934         Adjust for constant_p including varying_p.
11935         * tree-vrp.c (vrp_prop::finalize): Same.
11936         (determine_value_range): Same.
11937         * vr-values.c (vr_values::range_of_expr): Same.
11938         * value-range.cc (irange::symbolic_p): Do not check varying_p.
11939         (irange::constant_p): Same.
11940
11941 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
11942
11943         * value-range.cc (irange::legacy_lower_bound): Replace
11944           !undefined_p check with num_ranges > 0.
11945         (irange::legacy_upper_bound): Same.
11946         * value-range.h (irange::type): Same.
11947         (irange::lower_bound): Same.
11948         (irange::upper_bound): Same.
11949
11950 2021-04-26  Richard Biener  <rguenther@suse.de>
11951
11952         PR tree-optimization/99956
11953         * gimple-loop-interchange.cc (compute_access_stride):
11954         Try instantiating the access in a shallower loop nest
11955         if instantiating failed.
11956         (compute_access_strides): Pass adjustable loop_nest
11957         to compute_access_stride.
11958
11959 2021-04-26  Christophe Lyon  <christophe.lyon@linaro.org>
11960
11961         * doc/sourcebuild.texi (arm_cmse_hw): Document.
11962
11963 2021-04-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11964
11965         * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF.
11966
11967 2021-04-26  Thomas Schwinge  <thomas@codesourcery.com>
11968             Nathan Sidwell  <nathan@codesourcery.com>
11969             Tom de Vries  <vries@codesourcery.com>
11970             Julian Brown  <julian@codesourcery.com>
11971             Kwok Cheung Yeung  <kcy@codesourcery.com>
11972
11973         * omp-offload.c (oacc_validate_dims): Implement
11974         '-Wopenacc-parallelism'.
11975         * doc/invoke.texi (-Wopenacc-parallelism): Document.
11976
11977 2021-04-26  Richard Biener  <rguenther@suse.de>
11978
11979         * tree-cfg.h (gimplify_build1): Remove.
11980         (gimplify_build2): Likewise.
11981         (gimplify_build3): Likewise.
11982         * tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c.
11983         (gimplify_build2): Likewise.
11984         (gimplify_build3): Likewise.
11985         * tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c.
11986         Modernize.
11987         (gimplify_build2): Likewise.
11988         (gimplify_build3): Likewise.
11989         (tree_vec_extract): Use resimplify with following SSA edges.
11990         (expand_vector_parallel): Avoid passing NULL size/bitpos
11991         to tree_vec_extract.
11992         * expr.c (store_constructor): Deal with zero-element CTORs.
11993         * match.pd (bit_field_ref <vector CTOR>): Make sure to
11994         produce vector constants when possible.
11995
11996 2021-04-26  Richard Biener  <rguenther@suse.de>
11997
11998         * tree-complex.c: Include gimple-fold.h.
11999         (expand_complex_addition): Use gimple_build.
12000         (expand_complex_multiplication_components): Likewise.
12001         (expand_complex_multiplication): Likewise.
12002         (expand_complex_div_straight): Likewise.
12003         (expand_complex_div_wide): Likewise.
12004         (expand_complex_division): Likewise.
12005         (expand_complex_conjugate): Likewise.
12006         (expand_complex_comparison): Likewise.
12007
12008 2021-04-26  Richard Biener  <rguenther@suse.de>
12009
12010         * tree-ssa-phiopt.c (two_value_replacement): Remove use
12011         of legacy gimplify_buildN API.
12012
12013 2021-04-26  Richard Biener  <rguenther@suse.de>
12014
12015         PR tree-optimization/99473
12016         * tree-ssa-phiopt.c (cond_store_replacement): Handle all
12017         stores.
12018
12019 2021-04-26  Richard Biener  <rguenther@suse.de>
12020
12021         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin):
12022         Use replace_call_with_value.
12023
12024 2021-04-26  Richard Biener  <rguenther@suse.de>
12025
12026         * tree-ssa-propagate.h (valid_gimple_rhs_p): Remove.
12027         (update_gimple_call): Likewise.
12028         (update_call_from_tree): Likewise.
12029         * tree-ssa-propagate.c (valid_gimple_rhs_p): Remove.
12030         (valid_gimple_call_p): Likewise.
12031         (move_ssa_defining_stmt_for_defs): Likewise.
12032         (finish_update_gimple_call): Likewise.
12033         (update_gimple_call): Likewise.
12034         (update_call_from_tree): Likewise.
12035         (propagate_tree_value_into_stmt): Use replace_call_with_value.
12036         * gimple-fold.h (update_gimple_call): Declare.
12037         * gimple-fold.c (valid_gimple_rhs_p): Move here from
12038         tree-ssa-propagate.c.
12039         (update_gimple_call): Likewise.
12040         (valid_gimple_call_p): Likewise.
12041         (finish_update_gimple_call): Likewise, and simplify.
12042         (gimplify_and_update_call_from_tree): Implement
12043         update_call_from_tree functionality, avoid excessive
12044         push/pop_gimplify_context.
12045         (gimple_fold_builtin): Use only gimplify_and_update_call_from_tree.
12046         (gimple_fold_call): Likewise.
12047         * gimple-ssa-sprintf.c (try_substitute_return_value): Likewise.
12048         * tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise.
12049         (pass_fold_builtins::execute): Likewise.
12050         (optimize_stack_restore): Use replace_call_with_value.
12051         * tree-cfg.c (fold_loop_internal_call): Likewise.
12052         * tree-ssa-dce.c (maybe_optimize_arith_overflow): Use
12053         only gimplify_and_update_call_from_tree.
12054         * tree-ssa-strlen.c (handle_builtin_strlen): Likewise.
12055         (handle_builtin_strchr): Likewise.
12056         * tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h.
12057
12058 2021-04-26  Jakub Jelinek  <jakub@redhat.com>
12059
12060         PR debug/100255
12061         * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
12062         vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
12063         register keywords.
12064
12065 2021-04-25  liuhongt  <hongtao.liu@intel.com>
12066
12067         PR target/98911
12068         * config/i386/i386-builtin.def (BDESC): Change the icode of
12069         the following builtins to CODE_FOR_nothing.
12070         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold
12071         IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128,
12072         IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ,
12073         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
12074         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
12075         IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128,
12076         IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ,
12077         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
12078         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256.
12079         * config/i386/sse.md (avx2_eq<mode>3): Deleted.
12080         (sse2_eq<mode>3): Ditto.
12081         (sse4_1_eqv2di3): Ditto.
12082         (sse2_gt<mode>3): Rename to ..
12083         (*sse2_gt<mode>3): .. this.
12084
12085 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
12086
12087         Revert:
12088         2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
12089
12090         PR target/100152
12091         * config/darwin.c (darwin_binds_local_p): Assume that any
12092         public symbol might be interposed for PIC code. Update function
12093         header comment to reflect current Darwin capability.
12094
12095 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
12096
12097         PR target/100152
12098         * config/darwin.c (darwin_binds_local_p): Assume that any
12099         public symbol might be interposed for PIC code. Update function
12100         header comment to reflect current Darwin capability.
12101
12102 2021-04-24  Richard Sandiford  <richard.sandiford@arm.com>
12103
12104         * doc/sourcebuild.texi: Document no-opts and any-opts target
12105         selectors.
12106
12107 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
12108
12109         * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm.
12110
12111 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
12112
12113         * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.
12114
12115 2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
12116
12117         PR target/100041
12118         * config/i386/i386-options.c (ix86_option_override_internal):
12119         Error out when -m96bit-long-double is used with 64bit targets.
12120         * config/i386/i386.md (*pushxf_rounded): Remove pattern.
12121
12122 2021-04-23  Martin Liska  <mliska@suse.cz>
12123
12124         * lto-wrapper.c: Remove FIXME about usage of
12125         hardware_concurrency. The function is not on par with
12126         what we have now.
12127
12128 2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
12129
12130         PR target/100182
12131         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
12132         Copy operand 3 to operand 4.  Use sse_reg_operand
12133         as operand 3 predicate.
12134         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
12135         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
12136         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
12137         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
12138         Copy operand 1 to operand 0.
12139         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
12140         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
12141         (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.
12142
12143 2021-04-23  Alex Coplan  <alex.coplan@arm.com>
12144
12145         PR rtl-optimization/100230
12146         * early-remat.c (early_remat::sort_candidates): Use delete[]
12147         instead of delete for array allocated with new[].
12148
12149 2021-04-23  Richard Biener  <rguenther@suse.de>
12150
12151         * genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing.
12152         (capture_info::capture_info): Likewise.
12153         (capture_info::walk_match): Likewise.
12154         (expr::gen_transform): Likewise.
12155         (dt_simplify::gen_1): Likewise.
12156         * gimple-match-head.c (maybe_resimplify_conditional_op):
12157         Remove VEC_COND_EXPR special-casing.
12158         (gimple_simplify): Likewise.
12159         * gimple.c (gimple_could_trap_p_1): Adjust.
12160         * tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR
12161         to participate in PRE.
12162
12163 2021-04-23  Richard Biener  <rguenther@suse.de>
12164
12165         * cfganal.c (connect_infinite_loops_to_exit): First call
12166         add_noreturn_fake_exit_edges.
12167         * ipa-sra.c (process_scan_results): Do not call the now redundant
12168         add_noreturn_fake_exit_edges.
12169         * predict.c (tree_estimate_probability): Likewise.
12170         (rebuild_frequencies): Likewise.
12171         * store-motion.c (one_store_motion_pass): Likewise.
12172
12173 2021-04-23  Richard Biener  <rguenther@suse.de>
12174
12175         PR tree-optimization/100222
12176         * predict.c (pass_profile::execute): Remove redundant call to
12177         mark_irreducible_loops.
12178         (report_predictor_hitrates): Likewise.
12179
12180 2021-04-23  Richard Biener  <rguenther@suse.de>
12181
12182         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
12183         valid_gimple_rhs_p by instead gimplifying to one.
12184
12185 2021-04-23  Richard Biener  <rguenther@suse.de>
12186
12187         PR tree-optimization/99971
12188         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
12189         Always use TBAA for loads.
12190
12191 2021-04-23  liuhongt  <hongtao.liu@intel.com>
12192
12193         PR target/100093
12194         * config/i386/i386-options.c (ix86_option_override_internal):
12195         Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags
12196         when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled
12197         by target attribute.
12198
12199 2021-04-23  David Edelsohn  <dje.gcc@gmail.com>
12200
12201         * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to
12202         DWARF2_DEBUG.
12203         * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same.
12204
12205 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
12206
12207         * config.gcc (powerpc-ibm-aix6.*): Remove.
12208         * config/rs6000/aix61.h: Delete.
12209
12210 2021-04-22  Martin Liska  <mliska@suse.cz>
12211
12212         PR testsuite/100159
12213         PR testsuite/100192
12214         * builtins.c (expand_builtin): Fix typos and missing comments.
12215         * dwarf2out.c (gen_subprogram_die): Likewise.
12216         (gen_struct_or_union_type_die): Likewise.
12217
12218 2021-04-22  Uroš Bizjak  <ubizjak@gmail.com>
12219
12220         PR target/100119
12221         * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse):
12222         Remove the sign with FE_DOWNWARD, where x - x = -0.0.
12223
12224 2021-04-21  Iain Sandoe  <iain@sandoe.co.uk>
12225
12226         * config/i386/darwin.h (TARGET_64BIT): Remove definition
12227         based on TARGET_ISA_64BIT.
12228         (TARGET_64BIT_P): Remove definition based on
12229         TARGET_ISA_64BIT_P().
12230
12231 2021-04-21  Martin Liska  <mliska@suse.cz>
12232
12233         Revert:
12234         2021-04-21  Martin Liska  <mliska@suse.cz>
12235
12236         * lto-wrapper.c (cpuset_popcount): Remove.
12237         (init_num_threads): Remove and use hardware_concurrency.
12238
12239 2021-04-21  Martin Liska  <mliska@suse.cz>
12240
12241         PR jit/98615
12242         * main.c (main): Call toplev::finalize in CHECKING_P mode.
12243         * ipa-modref.c (ipa_modref_c_finalize): summaries are NULL
12244         when incremental LTO linking happens.
12245
12246 2021-04-21  Martin Liska  <mliska@suse.cz>
12247
12248         * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the
12249         makeserver cannot be detected, then use -flto=N fallback.
12250
12251 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
12252
12253         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling,
12254         default to yes for aarch64-linux-gnu.
12255         * configure: Regenerate.
12256
12257 2021-04-21  Martin Liska  <mliska@suse.cz>
12258
12259         * lto-wrapper.c (cpuset_popcount): Remove.
12260         (init_num_threads): Remove and use hardware_concurrency.
12261
12262 2021-04-21  Martin Liska  <mliska@suse.cz>
12263
12264         * config/i386/i386.c: Remove superfluous || TARGET_MACHO
12265         which remains to be '(... || 0)' and clang complains about it.
12266         * dwarf2out.c (AT_vms_delta): Declare conditionally.
12267         (add_AT_vms_delta): Likewise.
12268         * tree.c (fld_simplified_type): Use rather more common pattern
12269         for disabling of something (#if 0).
12270         (get_tree_code_name): Likewise.
12271         (verify_type_variant): Likewise.
12272
12273 2021-04-21  Martin Liska  <mliska@suse.cz>
12274
12275         * config/i386/i386-expand.c (decide_alignment): Use newly named
12276         macro TARGET_CPU_P.
12277         * config/i386/i386.c (ix86_decompose_address): Likewise.
12278         (ix86_address_cost): Likewise.
12279         (ix86_lea_outperforms): Likewise.
12280         (ix86_avoid_lea_for_addr): Likewise.
12281         (ix86_add_stmt_cost): Likewise.
12282         * config/i386/i386.h (TARGET_*): Remove.
12283         (TARGET_CPU_P): New macro.
12284         * config/i386/i386.md: Use newly named macro TARGET_CPU_P.
12285         * config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise.
12286         (swap_top_of_ready_list): Likewise.
12287         (ix86_atom_sched_reorder): Likewise.
12288         * config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise.
12289         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise.
12290
12291 2021-04-21  Martin Liska  <mliska@suse.cz>
12292
12293         * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P):
12294         Define.
12295         (SET_TARGET_NO_SAHF): Likewise.
12296         (TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise.
12297         (SET_TARGET_PREFETCH_SSE): Likewise.
12298         (TARGET_EXPLICIT_NO_TUNE_P): Likewise.
12299         (SET_TARGET_NO_TUNE): Likewise.
12300         (TARGET_EXPLICIT_NO_80387_P): Likewise.
12301         (SET_TARGET_NO_80387): Likewise.
12302         (DEF_PTA): New.
12303         * config/i386/i386.h (TARGET_*): Remove.
12304         * opth-gen.awk: Generate new used macros.
12305
12306 2021-04-21  Martin Liska  <mliska@suse.cz>
12307
12308         * config/i386/i386.h (PTA_*): Remove.
12309         (enum pta_flag): New.
12310         (DEF_PTA): Generate PTA_* values from i386-isa.def.
12311         * config/i386/i386-isa.def: New file.
12312
12313 2021-04-21  Alex Coplan  <alex.coplan@arm.com>
12314
12315         PR target/99988
12316         * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New.
12317         (rest_of_insert_bti): Avoid inserting duplicate bti j insns for
12318         jump table targets.
12319
12320 2021-04-21  H.J. Lu  <hjl.tools@gmail.com>
12321
12322         * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and
12323         x86_64-*-* targets.
12324         * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET):
12325         New.
12326         (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise.
12327         (ix86_handle_option): Handle -mmwait.
12328         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
12329         Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on
12330         __builtin_ia32_monitor and __builtin_ia32_mwait.
12331         * config/i386/i386-options.c (isa2_opts): Add -mmwait.
12332         (ix86_valid_target_attribute_inner_p): Likewise.
12333         (ix86_option_override_internal): Enable mwait/monitor
12334         instructions for -msse3.
12335         * config/i386/i386.h (TARGET_MWAIT): New.
12336         (TARGET_MWAIT_P): Likewise.
12337         * config/i386/i386.opt: Add -mmwait.
12338         * config/i386/mwaitintrin.h: New file.
12339         * config/i386/pmmintrin.h: Include <mwaitintrin.h>.
12340         * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with
12341         TARGET_MWAIT.
12342         (@sse3_monitor_<mode>): Likewise.
12343         * config/i386/x86gprintrin.h: Include <mwaitintrin.h>.
12344         * doc/extend.texi: Document mwait target attribute.
12345         * doc/invoke.texi: Document -mmwait.
12346
12347 2021-04-21  Martin Liska  <mliska@suse.cz>
12348
12349         * config/i386/i386-options.c (DEF_ENUM): Remove it.
12350         * config/i386/i386-opts.h (DEF_ENUM): Likewise.
12351         * config/i386/stringop.def (DEF_ENUM): Likewise.
12352
12353 2021-04-21  Martin Liska  <mliska@suse.cz>
12354
12355         * tree-cfg.c (gimple_verify_flow_info): Use qD instead
12356         of print_generic_expr.
12357
12358 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
12359
12360         PR rtl-optimization/100148
12361         * cprop.c (constprop_register): Use next_nondebug_insn instead of
12362         NEXT_INSN.
12363
12364 2021-04-21  Martin Liska  <mliska@suse.cz>
12365
12366         PR ipa/98815
12367         * cgraphunit.c (cgraph_node::analyze): Remove duplicate
12368         free_dominance_info calls.
12369
12370 2021-04-21  Richard Biener  <rguenther@suse.de>
12371
12372         * gimple-fold.c (maybe_fold_reference): Remove is_lhs
12373         parameter (and assume it to be false).
12374         (fold_gimple_assign): Adjust, remove all callers of
12375         maybe_fold_reference calling it with is_lhs true.
12376         (gimple_fold_call): Likewise.
12377         (fold_stmt_1): Likewise.
12378
12379 2021-04-21  Richard Biener  <rguenther@suse.de>
12380
12381         * fold-const.c (pedantic_non_lvalue_loc): Remove.
12382         (fold_binary_loc): Adjust.
12383         (fold_ternary_loc): Likewise.
12384
12385 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
12386
12387         PR middle-end/100130
12388         * varasm.c (get_block_for_decl): Make sure that any use of the
12389         retain attribute matches the section's retain flag.
12390         (switch_to_section): Check for retain mismatches even when
12391         changing sections, but do not warn if the given decl is the
12392         section's named.decl.
12393         (output_object_block): Pass the first decl in the block (if any)
12394         to switch_to_section.
12395
12396 2021-04-20  H.J. Lu  <hjl.tools@gmail.com>
12397
12398         * config/i386/i386-c.c (ix86_target_macros_internal): Define
12399         __CRC32__ for -mcrc32.
12400         * config/i386/i386-options.c (ix86_option_override_internal):
12401         Enable crc32 instruction for -msse4.2.
12402         * config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2
12403         check.
12404         (sse4_2_crc32di): Likewise.
12405         * config/i386/ia32intrin.h: Use crc32 target option for CRC32
12406         intrinsics.
12407
12408 2021-04-20  Segher Boessenkool  <segher@kernel.crashing.org>
12409
12410         PR target/100108
12411         * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
12412         OPTION_MASK_ISEL.
12413
12414 2021-04-20  Martin Liska  <mliska@suse.cz>
12415
12416         * doc/invoke.texi: Fix typo.
12417         * params.opt: Likewise.
12418
12419 2021-04-20  Martin Liska  <mliska@suse.cz>
12420
12421         * doc/invoke.texi: Document new param.
12422
12423 2021-04-19  Andrew MacLeod  <amacleod@redhat.com>
12424
12425         PR tree-optimization/100081
12426         * gimple-range-cache.h (ranger_cache): Inherit from gori_compute
12427         rather than gori_compute_cache.
12428         * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file.
12429         (range_def_chain::m_logical_depth): New member.
12430         (range_def_chain::range_def_chain): Initialize m_logical_depth.
12431         (range_def_chain::get_def_chain): Don't build defchains through more
12432         than LOGICAL_LIMIT logical expressions.
12433         * params.opt (param_ranger_logical_depth): New.
12434
12435 2021-04-19  Richard Earnshaw  <rearnsha@arm.com>
12436
12437         PR target/100067
12438         * config/arm/arm.c (arm_configure_build_target): Do not strip
12439         extended FPU/SIMD feature bits from the target ISA when -mfpu
12440         is specified (partial revert of r11-8168).
12441
12442 2021-04-19  Thomas Schwinge  <thomas@codesourcery.com>
12443
12444         * params.opt (-param=openacc-kernels=): Add.
12445         * omp-oacc-kernels-decompose.cc
12446         (pass_omp_oacc_kernels_decompose::gate): Use it.
12447         * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move...
12448         (--param): ... here, 'openacc-kernels'.
12449
12450 2021-04-19  Martin Liska  <mliska@suse.cz>
12451
12452         PR c/100143
12453         * gengtype.c (finish_root_table): Align function arguments
12454         in between declaration and definition.
12455
12456 2021-04-19  Eric Botcazou  <ebotcazou@adacore.com>
12457
12458         * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
12459         frames larger than the SEH maximum frame size.
12460
12461 2021-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
12462
12463         PR rtl-optimization/99927
12464         * combine.c (distribute_notes) [REG_UNUSED]: If the register already
12465         is dead, just drop it.
12466
12467 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
12468
12469         PR d/99914
12470         * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
12471         * doc/tm.texi: Regenerate.
12472         * doc/tm.texi.in (D language and ABI): Add @hook for
12473         TARGET_D_TEMPLATES_ALWAYS_COMDAT.
12474
12475 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
12476
12477         * config/darwin-d.c (darwin_d_handle_target_object_format): New
12478         function.
12479         (darwin_d_register_target_info): New function.
12480         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
12481         * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New
12482         function.
12483         (dragonfly_d_register_target_info): New function.
12484         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
12485         * config/freebsd-d.c (freebsd_d_handle_target_object_format): New
12486         function.
12487         (freebsd_d_register_target_info): New function.
12488         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
12489         * config/glibc-d.c (glibc_d_handle_target_object_format): New
12490         function.
12491         (glibc_d_register_target_info): New function.
12492         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
12493         * config/i386/i386-d.c (ix86_d_handle_target_object_format): New
12494         function.
12495         (ix86_d_register_target_info): Add ix86_d_handle_target_object_format
12496         as handler for objectFormat key.
12497         * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New
12498         function.
12499         (winnt_d_register_target_info): New function.
12500         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
12501         * config/netbsd-d.c (netbsd_d_handle_target_object_format): New
12502         function.
12503         (netbsd_d_register_target_info): New function.
12504         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
12505         * config/openbsd-d.c (openbsd_d_handle_target_object_format): New
12506         function.
12507         (openbsd_d_register_target_info): New function.
12508         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
12509         * config/pa/pa-d.c (pa_d_handle_target_object_format): New function.
12510         (pa_d_register_target_info): Add pa_d_handle_target_object_format as
12511         handler for objectFormat key.
12512         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New
12513         function.
12514         (rs6000_d_register_target_info): Add
12515         rs6000_d_handle_target_object_format as handler for objectFormat key.
12516         * config/sol2-d.c (solaris_d_handle_target_object_format): New
12517         function.
12518         (solaris_d_register_target_info): New function.
12519         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
12520
12521 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
12522
12523         PR target/91710
12524         * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
12525         abi_break argument from bool * to unsigned *, store there the pre-GCC 9
12526         alignment.
12527         (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers.
12528         (aarch64_function_arg_regno_p): Likewise.  Only emit -Wpsabi note if
12529         the old and new alignment after applying MIN/MAX to it is different.
12530
12531 2021-04-16  Tamar Christina  <tamar.christina@arm.com>
12532
12533         PR target/100048
12534         * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
12535         * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
12536         TRN optab.
12537         * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
12538
12539 2021-04-16  Bill Schmidt  <wschmidt@linux.ibm.com>
12540
12541         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
12542         this section and its subsections.
12543
12544 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
12545
12546         PR target/100075
12547         * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New
12548         define_insn patterns.
12549
12550 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
12551
12552         PR rtl-optimization/98689
12553         * reg-notes.def (UNTYPED_CALL): New note.
12554         * combine.c (distribute_notes): Handle it.
12555         * emit-rtl.c (try_split): Likewise.
12556         * rtlanal.c (rtx_properties::try_to_add_insn): Likewise.  Assume
12557         that calls with the note implicitly set all return value registers.
12558         * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL
12559         to untyped_calls.
12560
12561 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
12562
12563         PR rtl-optimization/99596
12564         * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global
12565         register accesses for const calls.  Assume that pure functions
12566         can only read from global registers.  Ignore cases in which
12567         the stack pointer has been marked global.
12568
12569 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
12570
12571         PR target/99767
12572         * tree-vect-loop.c (vect_transform_loop): Don't remove just
12573         dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
12574         them by their last argument.
12575
12576 2021-04-15  Martin Liska  <mliska@suse.cz>
12577
12578         * doc/invoke.texi: Other params don't use it, remove it.
12579
12580 2021-04-15  Richard Biener  <rguenther@suse.de>
12581
12582         * gimple-builder.h: Add deprecation note.
12583
12584 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
12585
12586         PR c++/98852
12587         * attribs.h (restrict_type_identity_attributes_to): Declare.
12588         * attribs.c (restrict_type_identity_attributes_to): New function.
12589
12590 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
12591
12592         PR c/98852
12593         * attribs.h (affects_type_identity_attributes): Declare.
12594         * attribs.c (remove_attributes_matching): New function.
12595         (affects_type_identity_attributes): Likewise.
12596
12597 2021-04-15  Jakub Jelinek  <jakub@redhat.com>
12598
12599         PR target/100056
12600         * config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3):
12601         Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with
12602         ZERO_EXTEND, SIGN_EXTEND or AND.
12603
12604 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
12605
12606         PR rtl-optimization/99929
12607         * rtl.h (same_vector_encodings_p): New function.
12608         * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
12609         * cselib.c (rtx_equal_for_cselib_1): Likewise.
12610         * jump.c (rtx_renumbered_equal_p): Likewise.
12611         * lra-constraints.c (operands_match_p): Likewise.
12612         * reload.c (operands_match_p): Likewise.
12613         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.
12614
12615 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
12616
12617         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print
12618         more information about variable-length CONST_VECTORs.
12619
12620 2021-04-14  Vladimir N. Makarov  <vmakarov@redhat.com>
12621
12622         PR rtl-optimization/100066
12623         * lra-constraints.c (split_reg): Check paradoxical_subreg_p for
12624         ordered modes when choosing splitting mode for hard reg.
12625
12626 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
12627
12628         PR target/99246
12629         * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
12630         New function.
12631         (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
12632
12633 2021-04-14  Andreas Krebbel  <krebbel@linux.ibm.com>
12634
12635         * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros
12636         for mask operand types.
12637         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
12638         (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate
12639         operand.
12640         (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the
12641         immediate operand.
12642         * config/s390/s390.c (s390_const_operand_ok): Check the new
12643         operand types and generate a list of valid values.
12644
12645 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
12646
12647         * doc/tm.texi: Regenerate.
12648         * doc/tm.texi.in (D language and ABI): Add @hook for
12649         TARGET_D_REGISTER_OS_TARGET_INFO.
12650
12651 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
12652
12653         * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New
12654         function.
12655         (aarch64_d_register_target_info): New function.
12656         * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info):
12657         Declare.
12658         * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO):
12659         Define.
12660         * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function.
12661         (arm_d_register_target_info): New function.
12662         * config/arm/arm-protos.h (arm_d_register_target_info): Declare.
12663         * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
12664         * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function.
12665         (ix86_d_register_target_info): New function.
12666         * config/i386/i386-protos.h (ix86_d_register_target_info): Declare.
12667         * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
12668         * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function.
12669         (mips_d_register_target_info): New function.
12670         * config/mips/mips-protos.h (mips_d_register_target_info): Declare.
12671         * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
12672         * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function.
12673         (pa_d_register_target_info): New function.
12674         * config/pa/pa-protos.h (pa_d_register_target_info): Declare.
12675         * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
12676         * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New
12677         function.
12678         (riscv_d_register_target_info): New function.
12679         * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare.
12680         * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
12681         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New
12682         function.
12683         (rs6000_d_register_target_info): New function.
12684         * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info):
12685         Declare.
12686         * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
12687         * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function.
12688         (s390_d_register_target_info): New function.
12689         * config/s390/s390-protos.h (s390_d_register_target_info): Declare.
12690         * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
12691         * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New
12692         function.
12693         (sparc_d_register_target_info): New function.
12694         * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare.
12695         * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
12696         * doc/tm.texi: Regenerate.
12697         * doc/tm.texi.in (D language and ABI): Add @hook for
12698         TARGET_D_REGISTER_CPU_TARGET_INFO.
12699
12700 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
12701
12702         * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function.
12703         * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare.
12704         * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define.
12705         * doc/tm.texi: Regenerate.
12706         * doc/tm.texi.in (D language and ABI): Add @hook for
12707         TARGET_D_HAS_STDCALL_CONVENTION.
12708
12709 2021-04-14  Richard Biener  <rguenther@suse.de>
12710
12711         * tree-cfg.c (verify_gimple_assign_ternary): Verify that
12712         VEC_COND_EXPRs have a gimple_val condition.
12713         * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR
12714         can no longer have a GENERIC condition.
12715
12716 2021-04-14  Richard Earnshaw  <rearnsha@arm.com>
12717
12718         PR target/100067
12719         * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits
12720         from the isa_delta when -mfpu has been used.
12721         (arm_options_perform_arch_sanity_checks): It's the architecture that
12722         lacks an FPU not the processor.
12723
12724 2021-04-13  Richard Biener  <rguenther@suse.de>
12725
12726         PR tree-optimization/100053
12727         * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
12728         not use optimistic dominance queries for backedges to validate
12729         predicated values.
12730         (dominated_by_p_w_unex): Add parameter to ignore executable
12731         state on backedges.
12732         (rpo_elim::eliminate_avail): Adjust.
12733
12734 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
12735
12736         PR target/100028
12737         * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr,
12738         *aarch64_bfxilsi_extrdi): New define_insn patterns.
12739
12740 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
12741
12742         PR target/99648
12743         * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P
12744         outermode, return NULL if the result doesn't encode back to the
12745         original byte sequence.
12746         (simplify_gen_subreg): Don't create SUBREGs from constants to
12747         MODE_COMPOSITE_P outermode.
12748
12749 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
12750
12751         PR rtl-optimization/99905
12752         * combine.c (expand_compound_operation): If pos + len > modewidth,
12753         perform the right shift by pos in inner_mode and then convert to mode,
12754         instead of trying to simplify a shift of rtx with inner_mode by pos
12755         as if it was a shift in mode.
12756
12757 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
12758
12759         PR debug/99830
12760         * combine.c (simplify_and_const_int_1): Don't optimize varop
12761         away if it has side-effects.
12762
12763 2021-04-12  Martin Liska  <mliska@suse.cz>
12764
12765         * doc/extend.texi: Escape @smallexample content.
12766
12767 2021-04-12  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
12768
12769         * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add
12770           alternative in order to load a DFP zero.
12771
12772 2021-04-12  Martin Liska  <mliska@suse.cz>
12773
12774         * doc/extend.texi: Be more precise in documentation
12775         of symver attribute.
12776
12777 2021-04-12  Martin Liska  <mliska@suse.cz>
12778
12779         PR sanitizer/99877
12780         * gimplify.c (gimplify_expr): Right now, we unpoison all
12781         variables before a goto <dest>. We should not do it if we are
12782         in a omp context.
12783
12784 2021-04-12  Cui,Lili  <lili.cui@intel.com>
12785
12786         * common/config/i386/cpuinfo.h (get_intel_cpu): Handle
12787         rocketlake.
12788         * common/config/i386/i386-common.c (processor_names): Add
12789         rocketlake.
12790         (processor_alias_table): Add rocketlake.
12791         * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add
12792         INTEL_COREI7_ROCKETLAKE.
12793         * config.gcc: Add -march=rocketlake.
12794         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
12795         rocketlake.
12796         * config/i386/i386-options.c (m_ROCKETLAKE)  : Define.
12797         (processor_cost_table): Add rocketlake cost.
12798         * config/i386/i386.h (ix86_size_cost) : Define
12799         TARGET_ROCKETLAKE.
12800         (processor_type) : Add PROCESSOR_ROCKETLAKE.
12801         (PTA_ROCKETLAKE): Ditto.
12802         * doc/extend.texi: Add rocketlake.
12803         * doc/invoke.texi: Add rocketlake.
12804
12805 2021-04-12  Cui,Lili  <lili.cui@intel.com>
12806
12807         * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list.
12808         * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE.
12809         * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model.
12810         * doc/invoke.texi: Change alderlake ISA list.
12811
12812 2021-04-11  Hafiz Abid Qadeer  <abidh@codesourcery.com>
12813
12814         PR middle-end/98088
12815         * omp-expand.c (expand_oacc_collapse_init): Update condition in
12816         a gcc_assert.
12817
12818 2021-04-10  H.J. Lu  <hjl.tools@gmail.com>
12819
12820         PR target/99744
12821         * config/i386/serializeintrin.h (_serialize): Defined as macro.
12822
12823 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
12824
12825         PR lto/99849
12826         * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
12827         just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
12828
12829 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
12830
12831         PR middle-end/99989
12832         * gimple-ssa-warn-alloca.c
12833         (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to
12834         0 with integer precision unconditionally.
12835
12836 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
12837
12838         PR rtl-optimization/98601
12839         * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
12840         not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
12841         unaligned_mems handle VOIDmode like BLKmode.
12842
12843 2021-04-10  Jan Hubicka  <hubicka@ucw.cz>
12844
12845         PR lto/99857
12846         * tree.c (free_lang_data_in_decl): Do not release body of
12847         declare_variant_alt.
12848
12849 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
12850
12851         * config/aarch64/aarch64.c (aarch64_option_restore): If the
12852         architecture was specified explicitly and the tuning wasn't,
12853         tune for the architecture rather than the configured default CPU.
12854
12855 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
12856
12857         * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
12858         as the temporary register.
12859
12860 2021-04-09  Martin Liska  <mliska@suse.cz>
12861
12862         * doc/extend.texi: Move non-target attributes on the top level.
12863
12864 2021-04-09  Martin Liska  <mliska@suse.cz>
12865
12866         * doc/invoke.texi: Document minimum and maximum value of the
12867         argument for both supported compression algorithms.
12868
12869 2021-04-08  David Edelsohn  <dje.gcc@gmail.com>
12870
12871         * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select
12872         TLS BSS before TLS data.
12873         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm.
12874
12875 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
12876
12877         * doc/sourcebuild.texi (stdint_types_mbig_endian): Document.
12878
12879 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
12880
12881         * match.pd: Extend vec_cond folds to handle shifts.
12882
12883 2021-04-08  Maciej W. Rozycki  <macro@orcam.me.uk>
12884
12885         * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's
12886         peephole.
12887
12888 2021-04-08  Alex Coplan  <alex.coplan@arm.com>
12889
12890         PR target/99647
12891         * config/arm/iterators.md (MVE_vecs): New.
12892         (V_elem): Also handle V2DF.
12893         * config/arm/mve.md (*mve_mov<mode>): Rename to ...
12894         (*mve_vdup<mode>): ... this. Remove second alternative since
12895         vec_duplicate of const_int is not canonical RTL, and we don't
12896         want to match symbol_refs.
12897         (*mve_vec_duplicate<mode>): Delete (pattern is redundant).
12898
12899 2021-04-08  Xionghu Luo  <luoxhu@linux.ibm.com>
12900
12901         * fold-const.c (fold_single_bit_test): Fix typo.
12902         * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single
12903         instead.
12904
12905 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
12906
12907         PR tree-optimization/97513
12908         * tree-vect-slp.c (vect_add_slp_permutation): New function,
12909         split out from...
12910         (vectorizable_slp_permutation): ...here.  Detect cases in which
12911         all VEC_PERM_EXPRs are guaranteed to have the same stepped
12912         permute vector and only generate one permute vector for that case.
12913         Extend that case to handle variable-length vectors.
12914
12915 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
12916
12917         PR tree-optimization/99873
12918         * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function.
12919         (vect_build_slp_instance): Don't split store groups that could
12920         use IFN_STORE_LANES.
12921
12922 2021-04-07  Jakub Jelinek  <jakub@redhat.com>
12923
12924         PR target/99872
12925         * varasm.c (output_constant_pool_contents): Don't strip name encoding
12926         from XSTR (desc->sym, 0) or from label before passing those to
12927         ASM_OUTPUT_DEF.
12928
12929 2021-04-07  Richard Biener  <rguenther@suse.de>
12930
12931         PR tree-optimization/99954
12932         * tree-loop-distribution.c: Include tree-affine.h.
12933         (generate_memcpy_builtin): Try using tree-affine to prove
12934         non-overlap.
12935         (loop_distribution::classify_builtin_ldst): Always classify
12936         as PKIND_MEMMOVE.
12937
12938 2021-04-07  Richard Biener  <rguenther@suse.de>
12939
12940         PR tree-optimization/99947
12941         * tree-vect-loop.c (vectorizable_induction): Pre-allocate
12942         steps vector to avoid pushing elements from the reallocated
12943         vector.
12944
12945 2021-04-07  Richard Biener  <rguenther@suse.de>
12946
12947         * tree-ssa-sccvn.h (print_vn_reference_ops): Declare.
12948         * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand
12949         printing...
12950         * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new
12951         function.
12952         (debug_vn_reference_ops): New.
12953
12954 2021-04-07  Bin Cheng  <bin.cheng@linux.alibaba.com>
12955
12956         PR tree-optimization/98736
12957         * tree-loop-distribution.c
12958         * (loop_distribution::bb_top_order_init):
12959         Compute RPO with programing order preserved by calling function
12960         rev_post_order_and_mark_dfs_back_seme.
12961
12962 2021-04-06  Vladimir N. Makarov  <vmakarov@redhat.com>
12963
12964         PR target/99781
12965         * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
12966         * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
12967         functions.
12968         (process_bb_lives): Don't update biggest mode of hard reg for
12969         implicit in multi-register group.  Use the new functions for
12970         updating dead_set and unused_set by register notes.
12971
12972 2021-04-06  Xianmiao Qu  <xianmiao_qu@c-sky.com>
12973
12974         * config/csky/csky_pipeline_ck802.md : Use insn reservation name
12975         instead of *.
12976
12977 2021-04-06  H.J. Lu  <hjl.tools@gmail.com>
12978
12979         * config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
12980         (skylake_memset): Likewise.
12981         (skylake_cost): Change CLEAR_RATIO to 17.
12982         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
12983         Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
12984         m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.
12985
12986 2021-04-06  Richard Biener  <rguenther@suse.de>
12987
12988         PR tree-optimization/99880
12989         * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
12990         set vectorized defs of relevant PHIs.
12991
12992 2021-04-06  Richard Biener  <rguenther@suse.de>
12993
12994         PR tree-optimization/99924
12995         * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
12996         nodes w/o scalar stmts as visited.
12997
12998 2021-04-06  Alex Coplan  <alex.coplan@arm.com>
12999
13000         PR target/99748
13001         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
13002         PCS for [su]fix_optab.
13003
13004 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
13005
13006         * config/darwin.c (machopic_legitimize_pic_address): Check
13007         that the current pic register is one of the hard reg set
13008         before setting liveness.
13009
13010 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
13011
13012         * config/darwin.c (machopic_legitimize_pic_address): Fix
13013         whitespace, remove unused code.
13014
13015 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
13016
13017         PR tree-optimization/99882
13018         * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
13019         pointer type.
13020
13021 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
13022
13023         PR rtl-optimization/99863
13024         * dse.c (replace_read): Drop regs_live argument.  Instead of
13025         regs_live, use store_insn->fixed_regs_live if non-NULL,
13026         otherwise punt if insns sequence clobbers or sets any hard
13027         registers.
13028
13029 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
13030
13031         PR testsuite/98125
13032         * targhooks.h (default_print_patchable_function_entry_1): Declare.
13033         * targhooks.c (default_print_patchable_function_entry_1): New function,
13034         copied from default_print_patchable_function_entry with an added flags
13035         argument.
13036         (default_print_patchable_function_entry): Rewritten into a small
13037         wrapper around default_print_patchable_function_entry_1.
13038         * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
13039         Redefine.
13040         (rs6000_print_patchable_function_entry): New function.
13041
13042 2021-04-02  Eric Botcazou  <ebotcazou@adacore.com>
13043
13044         * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
13045
13046 2021-04-01  Jason Merrill  <jason@redhat.com>
13047
13048         PR c++/98481
13049         * common.opt: Document v15 and v16.
13050
13051 2021-04-01  Richard Biener  <rguenther@suse.de>
13052
13053         PR tree-optimization/99863
13054         * gimplify.c (gimplify_init_constructor): Recompute vector
13055         constructor flags.
13056
13057 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
13058
13059         * doc/extend.texi (symver attribute): Fix up syntax errors
13060         in the examples.
13061
13062 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
13063
13064         PR tree-optimization/96573
13065         * gimple-ssa-store-merging.c (init_symbolic_number): Handle
13066         also pointer types.
13067
13068 2021-04-01  Richard Biener  <rguenther@suse.de>
13069
13070         PR tree-optimization/99856
13071         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
13072         precision to vector element precision.
13073
13074 2021-04-01  Martin Jambor  <mjambor@suse.cz>
13075
13076         PR tree-optimization/97009
13077         * tree-sra.c (access_or_its_child_written): New function.
13078         (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
13079         test.
13080
13081 2021-03-31  Jan Hubicka  <hubicka@ucw.cz>
13082
13083         PR ipa/98265
13084         * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
13085
13086 2021-03-31  Pat Haugen  <pthaugen@linux.ibm.com>
13087
13088         PR target/99133
13089         * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
13090         xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
13091         xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
13092         * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
13093         mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
13094         mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
13095         Likewise.
13096         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
13097         * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
13098         (define_attr "prefixed"): Update initializer.
13099
13100 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
13101
13102         PR debug/99490
13103         * dwarf2out.c (debug_ranges_dwo_section): New variable.
13104         (DW_RANGES_IDX_SKELETON): Define.
13105         (struct dw_ranges): Add begin_entry and end_entry members.
13106         (DEBUG_DWO_RNGLISTS_SECTION): Define.
13107         (add_ranges_num): Adjust r initializer for addition of *_entry
13108         members.
13109         (add_ranges_by_labels): For -gsplit-dwarf and force_direct,
13110         set idx to DW_RANGES_IDX_SKELETON.
13111         (use_distinct_base_address_for_range): New function.
13112         (index_rnglists): Don't set r->idx if it is equal to
13113         DW_RANGES_IDX_SKELETON.  Initialize r->begin_entry and
13114         r->end_entry for -gsplit-dwarf if those will be needed by
13115         output_rnglists.
13116         (output_rnglists): Add DWO argument.  If true, switch to
13117         debug_ranges_dwo_section rather than debug_ranges_section.
13118         Adjust l1/l2 label indexes.  Only output the offset table when
13119         dwo is true and don't include in there the skeleton range
13120         entry if present.  For -gsplit-dwarf, skip ranges that belong
13121         to the other rnglists section.  Change return type from void
13122         to bool and return true if there are any range entries for
13123         the other section.  For dwarf_split_debug_info use
13124         DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
13125         entries instead of DW_RLE_start_end, DW_RLE_start_length and
13126         DW_RLE_base_address.  Use use_distinct_base_address_for_range.
13127         (init_sections_and_labels): Initialize debug_ranges_dwo_section
13128         if -gsplit-dwarf and DWARF >= 5.  Adjust ranges_section_label
13129         and range_base_label indexes.
13130         (dwarf2out_finish): Call index_rnglists earlier before finalizing
13131         .debug_addr.  Never emit DW_AT_rnglists_base attribute.  For
13132         -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
13133         with different dwo arguments.
13134         (dwarf2out_c_finalize): Clear debug_ranges_dwo_section.
13135
13136 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
13137
13138         PR tree-optimization/98268
13139         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
13140         recompute_tree_invariant_for_addr_expr after successfully
13141         folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
13142
13143 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
13144
13145         PR tree-optimization/99726
13146         * tree-data-ref.c (create_intersect_range_checks_index): Bail
13147         out if there is more than one access function SCEV for the loop
13148         being versioned.
13149
13150 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
13151
13152         PR rtl-optimization/97141
13153         PR rtl-optimization/98726
13154         * emit-rtl.c (valid_for_const_vector_p): Return true for
13155         CONST_POLY_INT_P.
13156         * rtx-vector-builder.h (rtx_vector_builder::step): Return a
13157         poly_wide_int instead of a wide_int.
13158         (rtx_vector_builder::apply_set): Take a poly_wide_int instead
13159         of a wide_int.
13160         * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
13161         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
13162         false for CONST_VECTORs that cannot be forced to memory.
13163         * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
13164         is too complex to force to memory, build it up from individual
13165         elements instead.
13166
13167 2021-03-31  Jan Hubicka  <jh@suse.cz>
13168
13169         PR lto/99447
13170         * cgraph.c (cgraph_node::release_body): Fix overactive check.
13171
13172 2021-03-31  Christophe Lyon  <christophe.lyon@linaro.org>
13173
13174         PR target/99786
13175         * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
13176         for V4HI and V2SI.
13177
13178 2021-03-31  H.J. Lu  <hjl.tools@gmail.com>
13179
13180         * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
13181         For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
13182         to SImode.
13183         (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
13184         "rep movsb/stosb" only for known sizes.
13185         * config/i386/i386-options.c (processor_cost_table): Use Ice
13186         Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
13187         Rapids and Alder Lake.
13188         * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
13189         * config/i386/x86-tune-costs.h (icelake_memcpy): New.
13190         (icelake_memset): Likewise.
13191         (icelake_cost): Likewise.
13192         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
13193         New.
13194
13195 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
13196
13197         PR target/98119
13198         * config/aarch64/aarch64.c
13199         (aarch64_vectorize_preferred_vector_alignment): Query the size
13200         of the provided SVE vector; do not assume that all SVE vectors
13201         have the same size.
13202
13203 2021-03-31  Jan Hubicka  <jh@suse.cz>
13204
13205         PR lto/99447
13206         * cgraph.c (cgraph_node::release_body): Remove all callers and
13207         references.
13208         * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
13209         * cgraphunit.c (cgraph_node::expand): And here.
13210
13211 2021-03-31  Martin Liska  <mliska@suse.cz>
13212
13213         * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
13214         and one negated condition.
13215
13216 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
13217             Richard Sandiford  <richard.sandiford@arm.com>
13218
13219         PR target/99813
13220         * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
13221         constraints on operands[2] and similarly 0 and rk constraints
13222         on operands[1] corresponding to that.
13223
13224 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
13225
13226         PR bootstrap/98860
13227         * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
13228         linker doesn't support DWARF sections new in DWARF5.
13229         * config/i386/i386-options.c (ix86_option_override_internal): Default
13230         to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
13231         targets.
13232         * config.in: Regenerated.
13233         * configure: Regenerated.
13234
13235 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13236
13237         PR target/99820
13238         * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
13239         available issue_info before using it.
13240
13241 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13242
13243         PR target/99822
13244         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
13245         in operand 1.
13246
13247 2021-03-30  Xionghu Luo  <luoxhu@linux.ibm.com>
13248
13249         PR target/99718
13250         * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
13251         (altivec_lvsl_reg_<mode>): ... this.
13252         (altivec_lvsr_reg): Change to ...
13253         (altivec_lvsr_reg_<mode>): ... this.
13254         * config/rs6000/predicates.md (vec_set_index_operand): New.
13255         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13256         Enable 32bit variable vec_insert for all TARGET_VSX.
13257         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
13258         Enable 32bit variable vec_insert for p9 and above.
13259         (rs6000_expand_vector_set_var_p8): Rename to ...
13260         (rs6000_expand_vector_set_var_p7): ... this.
13261         (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
13262         position.
13263         * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
13264         * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
13265         gen_altivec_lvsr_reg_di.
13266
13267 2021-03-30  H.J. Lu  <hjl.tools@gmail.com>
13268
13269         PR target/99744
13270         * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
13271         (__rdtscp): Likewise.
13272
13273 2021-03-30  Tamar Christina  <tamar.christina@arm.com>
13274
13275         PR tree-optimization/99825
13276         * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
13277         Reject non-mult 2 lanes.
13278
13279 2021-03-30  Richard Earnshaw  <rearnsha@arm.com>
13280
13281         PR target/99773
13282         * config/arm/arm.c (arm_file_start): Fix emission of
13283         Tag_ABI_VFP_args attribute.
13284
13285 2021-03-30  Richard Biener  <rguenther@suse.de>
13286
13287         PR tree-optimization/99824
13288         * stor-layout.c (set_min_and_max_values_for_integral_type):
13289         Assert the precision is within the bounds of
13290         WIDE_INT_MAX_PRECISION.
13291         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
13292         the outermost component ref only to lower the access size
13293         and initialize that from the access type.
13294
13295 2021-03-30  Richard Sandiford  <richard.sandiford@arm.com>
13296
13297         PR target/98136
13298         * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
13299         CONST_INTs to aarch64_expand_mov_immediate when called after RA.
13300
13301 2021-03-30  Mihailo Stojanovic  <mihailo.stojanovic@typhoon-hil.com>
13302
13303         * config/aarch64/aarch64.md
13304         (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
13305         attribute to disambiguate between SIMD and FP variants of the
13306         instruction.
13307
13308 2021-03-29  Jan Hubicka  <hubicka@ucw.cz>
13309
13310         * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
13311         (analyze_ssa_name_flags): Fix typo in comment.
13312
13313 2021-03-29  Alex Coplan  <alex.coplan@arm.com>
13314
13315         PR target/99216
13316         * config/aarch64/aarch64-sve-builtins.cc
13317         (function_builder::add_function): Add placeholder_p argument, use
13318         placeholder decls if this is set.
13319         (function_builder::add_unique_function): Instead of conditionally adding
13320         direct overloads, unconditionally add either a direct overload or a
13321         placeholder.
13322         (function_builder::add_overloaded_function): Set placeholder_p if we're
13323         using C++ overloads. Use the obstack for string storage instead
13324         of relying on the tree nodes.
13325         (function_builder::add_overloaded_functions): Don't return early for
13326         m_direct_overloads: we need to add placeholders.
13327         * config/aarch64/aarch64-sve-builtins.h
13328         (function_builder::add_function): Add placeholder_p argument.
13329
13330 2021-03-29  Richard Biener  <rguenther@suse.de>
13331
13332         PR tree-optimization/99807
13333         * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
13334         assert below VEC_PERM handling.
13335
13336 2021-03-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13337
13338         PR target/99037
13339         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
13340         aarch64_simd_or_scalar_imm_zero to match zeroes.  Remove pattern
13341         matching const_int 0.
13342         (move_lo_quad_internal_be_<mode>): Likewise.
13343         (move_lo_quad_<mode>): Update for the above.
13344         * config/aarch64/iterators.md (VQ_2E): Delete.
13345
13346 2021-03-29  Jakub Jelinek  <jakub@redhat.com>
13347
13348         PR tree-optimization/99777
13349         * fold-const.c (extract_muldiv_1): For conversions, punt on casts from
13350         types other than scalar integral types.
13351
13352 2021-03-28  David Edelsohn  <dje.gcc@gmail.com>
13353
13354         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
13355         XCOFF TLS reloc decorations.
13356
13357 2021-03-28  Gerald Pfeifer  <gerald@pfeifer.com>
13358
13359         * doc/analyzer.texi (Analyzer Internals): Update link to
13360         "A Memory Model for Static Analysis of C Programs".
13361
13362 2021-03-26  David Edelsohn  <dje.gcc@gmail.com>
13363
13364         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
13365         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
13366         Declare.
13367         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
13368         (rs6000_special_round_type_align): Recursively check innermost first
13369         field.
13370
13371 2021-03-26  Jakub Jelinek  <jakub@redhat.com>
13372
13373         PR debug/99334
13374         * dwarf2out.h (struct dw_fde_node): Add rule18 member.
13375         * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
13376         assignment with drap_reg active, queue reg save for hfp with offset 0
13377         and flush queued reg saves.  When handling a push with rule18,
13378         defer queueing reg save for hfp and just assert the offset is 0.
13379         (scan_trace): Assert that fde->rule18 is false.
13380
13381 2021-03-26  Vladimir Makarov  <vmakarov@redhat.com>
13382
13383         PR target/99766
13384         * ira-costs.c (record_reg_classes): Put case with
13385         CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
13386         * ira.c (ira_setup_alts): Ditto.
13387         * lra-constraints.c (process_alt_operands): Ditto.
13388         * recog.c (asm_operand_ok): Ditto.
13389         * reload.c (find_reloads): Ditto.
13390
13391 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13392
13393         * config/aarch64/aarch64-protos.h
13394         (cpu_addrcost_table::post_modify_ld3_st3): New member variable.
13395         (cpu_addrcost_table::post_modify_ld4_st4): Likewise.
13396         * config/aarch64/aarch64.c (generic_addrcost_table): Update
13397         accordingly, using the same costs as for post_modify.
13398         (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
13399         (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
13400         (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
13401         (a64fx_addrcost_table): Likewise.
13402         (neoversev1_addrcost_table): New.
13403         (neoversev1_tunings): Use neoversev1_addrcost_table.
13404         (aarch64_address_cost): Use the new post_modify costs for CImode
13405         and XImode.
13406
13407 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13408
13409         * config/aarch64/aarch64.opt
13410         (-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
13411         * doc/invoke.texi: Document it.
13412         * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
13413         (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
13414         (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
13415         (aarch64_vec_issue_info): New structures.
13416         (cpu_vector_cost): Write comments above the variables rather
13417         than to the side.
13418         (cpu_vector_cost::issue_info): New member variable.
13419         * config/aarch64/aarch64.c: Include gimple-pretty-print.h
13420         and tree-ssa-loop-niter.h.
13421         (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
13422         (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
13423         (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
13424         (thunderx3t110_vector_cost): Initialize issue_info to null.
13425         (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
13426         (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
13427         (neoversev1_vector_cost): Use them.
13428         (aarch64_vec_op_count, aarch64_sve_op_count): New structures.
13429         (aarch64_vector_costs::saw_sve_only_op): New member variable.
13430         (aarch64_vector_costs::num_vector_iterations): Likewise.
13431         (aarch64_vector_costs::scalar_ops): Likewise.
13432         (aarch64_vector_costs::advsimd_ops): Likewise.
13433         (aarch64_vector_costs::sve_ops): Likewise.
13434         (aarch64_vector_costs::seen_loads): Likewise.
13435         (aarch64_simd_vec_costs_for_flags): New function.
13436         (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
13437         Count the number of predicate operations required by SVE WHILE
13438         instructions.
13439         (aarch64_comparison_type, aarch64_multiply_add_p): New functions.
13440         (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
13441         (aarch64_count_ops): Likewise.
13442         (aarch64_add_stmt_cost): Record whether see an SVE operation
13443         that cannot currently be implementing using Advanced SIMD.
13444         Record issue information about the scalar, Advanced SIMD
13445         and (where relevant) SVE versions of a loop.
13446         (aarch64_vec_op_count::dump): New function.
13447         (aarch64_sve_op_count::dump): Likewise.
13448         (aarch64_estimate_min_cycles_per_iter): Likewise.
13449         (aarch64_adjust_body_cost): If issue information is available,
13450         try to compare the issue rates of the various loop implementations
13451         and increase or decrease the vector body cost accordingly.
13452
13453 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13454
13455         * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
13456         Assume a zero cost for induction phis.
13457
13458 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13459
13460         * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
13461         function.
13462         (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
13463         vector comparisons.
13464
13465 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13466
13467         * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
13468         New function.
13469         (aarch64_add_stmt_cost): Call it.
13470
13471 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13472
13473         * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
13474         New tuning parameter.
13475         * config/aarch64/aarch64.c (neoversev1_tunings): Use it.
13476         (aarch64_estimated_sve_vq): New function.
13477         (aarch64_vector_costs::analyzed_vinfo): New member variable.
13478         (aarch64_vector_costs::is_loop): Likewise.
13479         (aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
13480         (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
13481         (aarch64_record_potential_advsimd_unrolling): New function.
13482         (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
13483         (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
13484         aarch64_analyze_bb_vinfo on the first use of a costs structure.
13485         Detect whether we're vectorizing a loop for SVE that might be
13486         completely unrolled if it used Advanced SIMD instead.
13487         (aarch64_adjust_body_cost_for_latency): New function.
13488         (aarch64_finish_cost): Call it.
13489
13490 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13491
13492         * config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
13493         (aarch64_init_cost): New function.
13494         (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
13495         the default unsigned[3].
13496         (aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
13497         (TARGET_VECTORIZE_INIT_COST): Override.
13498         (TARGET_VECTORIZE_FINISH_COST): Likewise.
13499         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
13500
13501 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13502
13503         * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
13504         (neoversev1_sve_vector_cost): New cost structures.
13505         (neoversev1_vector_cost): Likewise.
13506         (neoversev1_tunings): Use them.  Enable use_new_vector_costs.
13507
13508 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13509
13510         * config/aarch64/aarch64-protos.h
13511         (sve_vec_cost::scatter_store_elt_cost): New member variable.
13512         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
13513         accordingly, taking the cost from the cost of a scalar_store.
13514         (a64fx_sve_vector_cost): Likewise.
13515         (aarch64_detect_vector_stmt_subtype): Detect scatter stores.
13516
13517 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13518
13519         * config/aarch64/aarch64-protos.h
13520         (simd_vec_cost::store_elt_extra_cost): New member variable.
13521         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
13522         accordingly, using the vec_to_scalar cost for the new field.
13523         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
13524         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
13525         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
13526         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
13527         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
13528         (thunderx3t110_advsimd_vector_cost): Likewise.
13529         (aarch64_detect_vector_stmt_subtype): Detect single-element stores.
13530
13531 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13532
13533         * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
13534         (simd_vec_cost::ld3_st3_permute_cost): New member variables.
13535         (simd_vec_cost::ld4_st4_permute_cost): Likewise.
13536         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
13537         accordingly, using zero for the new costs.
13538         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
13539         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
13540         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
13541         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
13542         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
13543         (thunderx3t110_advsimd_vector_cost): Likewise.
13544         (aarch64_ld234_st234_vectors): New function.
13545         (aarch64_adjust_stmt_cost): Likewise.
13546         (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
13547         the new vector costs.
13548
13549 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13550
13551         * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
13552         derived class of simd_vec_cost.  Add information about CLAST[AB]
13553         and FADDA instructions.
13554         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
13555         accordingly, using the vec_to_scalar costs for the new fields.
13556         (a64fx_sve_vector_cost): Likewise.
13557         (aarch64_reduc_type): New function.
13558         (aarch64_sve_in_loop_reduction_latency): Likewise.
13559         (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
13560         Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
13561         that occur in the loop body.
13562         (aarch64_add_stmt_cost): Update call accordingly.
13563
13564 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
13565
13566         * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
13567         New tuning flag.
13568         * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
13569         above the fields rather than to the right.
13570         (simd_vec_cost::reduc_i8_cost): New member variable.
13571         (simd_vec_cost::reduc_i16_cost): Likewise.
13572         (simd_vec_cost::reduc_i32_cost): Likewise.
13573         (simd_vec_cost::reduc_i64_cost): Likewise.
13574         (simd_vec_cost::reduc_f16_cost): Likewise.
13575         (simd_vec_cost::reduc_f32_cost): Likewise.
13576         (simd_vec_cost::reduc_f64_cost): Likewise.
13577         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
13578         accordingly, using the vec_to_scalar_cost for the new fields.
13579         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
13580         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
13581         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
13582         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
13583         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
13584         (thunderx3t110_advsimd_vector_cost): Likewise.
13585         (aarch64_use_new_vector_costs_p): New function.
13586         (aarch64_simd_vec_costs): New function, split out from...
13587         (aarch64_builtin_vectorization_cost): ...here.
13588         (aarch64_is_reduction): New function.
13589         (aarch64_detect_vector_stmt_subtype): Likewise.
13590         (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
13591         using the new vector costs.
13592
13593 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
13594
13595         PR ipa/99466
13596         * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
13597         TLS declarations as public.
13598
13599 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
13600
13601         * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
13602         * config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
13603         * config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
13604         * config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
13605         * config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
13606         * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
13607         * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
13608         * config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
13609         * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.
13610
13611 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
13612
13613         PR d/91595
13614         * config.gcc (*-*-cygwin*): Add winnt-d.o
13615         (*-*-mingw*): Likewise.
13616         * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
13617         * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
13618         * config/i386/t-cygming: Add winnt-d.o.
13619         * config/i386/winnt-d.c: New file.
13620
13621 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
13622
13623         * config/freebsd-d.c: Include memmodel.h.
13624
13625 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
13626
13627         PR d/99691
13628         * config.gcc (*-*-openbsd*): Add openbsd-d.o.
13629         * config/t-openbsd: Add openbsd-d.o.
13630         * config/openbsd-d.c: New file.
13631
13632 2021-03-25  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
13633
13634         PR tree-optimization/96974
13635         * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
13636         with graceful exit.
13637
13638 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
13639
13640         Revert:
13641         2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
13642
13643         PR target/98209
13644         PR target/99744
13645         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
13646         always_inline in system headers.
13647
13648 2021-03-25  Kewen Lin  <linkw@linux.ibm.com>
13649
13650         * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
13651
13652 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
13653
13654         PR c++/99565
13655         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
13656         * fold-const.c (operand_compare::operand_equal_p): Don't compare
13657         field offsets if OEP_ADDRESS_OF_SAME_FIELD.
13658
13659 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
13660
13661         PR target/98209
13662         PR target/99744
13663         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
13664         always_inline in system headers.
13665
13666 2021-03-25  Richard Biener  <rguenther@suse.de>
13667
13668         PR tree-optimization/99746
13669         * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
13670         the scalar stmt as patterned.  Instead set up required things
13671         manually.
13672
13673 2021-03-25  Xionghu Luo  <luoxhu@linux.ibm.com>
13674
13675         * config/rs6000/rs6000.c (power8_costs): Change l2 cache
13676         from 256 to 512.
13677
13678 2021-03-24  Martin Liska  <mliska@suse.cz>
13679
13680         PR target/99753
13681         * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
13682         error.
13683         * config/i386/i386-options.c (ix86_option_override_internal):
13684         Add run-time assert.
13685
13686 2021-03-24  Martin Jambor  <mjambor@suse.cz>
13687
13688         PR ipa/99122
13689         * ipa-cp.c (initialize_node_lattices): Mark as bottom all
13690         parameters with unknown type.
13691         (ipacp_value_safe_for_type): New function.
13692         (propagate_vals_across_arith_jfunc): Verify that the constant type
13693         can be used for a type of the formal parameter.
13694         (propagate_vals_across_ancestor): Likewise.
13695         (propagate_scalar_across_jump_function): Likewise.  Pass the type
13696         also to propagate_vals_across_ancestor.
13697
13698 2021-03-24  Christophe Lyon  <christophe.lyon@linaro.org>
13699
13700         PR target/99727
13701         * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
13702         constraint.
13703         (movmisalign<mode>_mve_load): Likewise.
13704
13705 2021-03-24  Jakub Jelinek  <jakub@redhat.com>
13706
13707         PR target/99724
13708         * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
13709         movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
13710
13711 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
13712
13713         * doc/sourcebuild.texi (sysconf): New effective target.
13714
13715 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
13716
13717         * config/i386/predicates.md (reg_or_const_vec_operand): New.
13718         * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
13719         the now *-prefixed insn_and_split, turn the splitter const vec
13720         into an input for the insn, making it an ignored immediate for
13721         non-split cases, and loaded into the scratch register
13722         otherwise.
13723
13724 2021-03-23  Vladimir N. Makarov  <vmakarov@redhat.com>
13725
13726         PR target/99581
13727         * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
13728         Use define_relaxed_memory_constraint for them.
13729
13730 2021-03-23  Iain Sandoe  <iain@sandoe.co.uk>
13731
13732         PR target/99733
13733         * config/host-darwin.c (darwin_gt_pch_use_address): Add a
13734         colon to the diagnostic message.
13735
13736 2021-03-23  Ilya Leoshkevich  <iii@linux.ibm.com>
13737
13738         * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
13739         set_info's uses.
13740         (try_fwprop_subst_note): Use set_info instead of insn_info.
13741         (try_fwprop_subst_pattern): Likewise.
13742         (try_fwprop_subst_notes): Likewise.
13743         (try_fwprop_subst): Likewise.
13744         (forward_propagate_subreg): Likewise.
13745         (forward_propagate_and_simplify): Likewise.
13746         (forward_propagate_into): Likewise.
13747         * rtl-ssa/accesses.h (set_info::single_nondebug_use) New
13748         method.
13749         (set_info::single_nondebug_insn_use): Likewise.
13750         (set_info::single_phi_use): Likewise.
13751         * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
13752         method.
13753         (set_info::single_nondebug_insn_use): Likewise.
13754         (set_info::single_phi_use): Likewise.
13755
13756 2021-03-23  Christophe Lyon  <christophe.lyon@linaro.org>
13757
13758         * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
13759
13760 2021-03-23  Jakub Jelinek  <jakub@redhat.com>
13761
13762         PR target/99540
13763         * config/aarch64/aarch64.c (aarch64_add_offset): Tell
13764         expand_mult to perform an unsigned rather than a signed
13765         multiplication.
13766
13767 2021-03-23  H.J. Lu  <hjl.tools@gmail.com>
13768
13769         PR target/99704
13770         * config/i386/cpuid.h (__cpuid): Add __volatile__.
13771         (__cpuid_count): Likewise.
13772
13773 2021-03-23  Richard Biener  <rguenther@suse.de>
13774
13775         PR tree-optimization/99721
13776         * tree-vect-slp.c (vect_slp_analyze_node_operations):
13777         Make sure we can schedule the node.
13778
13779 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
13780
13781         * config/riscv/riscv.c (riscv_subword): Take endianness into
13782         account when calculating the byte offset.
13783
13784 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
13785
13786         * config/riscv/predicates.md (subreg_lowpart_operator): New predicate
13787         * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
13788         (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
13789         (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
13790         (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
13791         new predicate "subreg_lowpart_operator"
13792
13793 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
13794
13795         * config/riscv/riscv.c (riscv_swap_instruction): New function
13796         to byteswap an SImode rtx containing an instruction.
13797         (riscv_trampoline_init): Byteswap the generated instructions
13798         when needed.
13799
13800 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
13801
13802         * common/config/riscv/riscv-common.c
13803         (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
13804         * config.gcc (riscv32be-*, riscv64be-*): Set
13805         TARGET_BIG_ENDIAN_DEFAULT to 1.
13806         * config/riscv/elf.h (LINK_SPEC): Change -melf* value
13807         depending on default endianness.
13808         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
13809         * config/riscv/linux.h (LINK_SPEC): Likewise.
13810         * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
13811         default endianness.
13812         * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.
13813
13814 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
13815
13816         * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
13817         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
13818         * config/riscv/linux.h (LINK_SPEC): Likewise.
13819         * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
13820         -mlittle-endian.
13821         (BYTES_BIG_ENDIAN): Handle big endian.
13822         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
13823         * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
13824         options.
13825         * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
13826
13827 2021-03-23  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
13828
13829         * regcprop.c (find_oldest_value_reg): Ask target whether
13830           different mode is fine for replacement register.
13831
13832 2021-03-23  Aldy Hernandez  <aldyh@redhat.com>
13833
13834         PR tree-optimization/99296
13835         * value-range.cc (irange::irange_set_1bit_anti_range): New.
13836         (irange::irange_set_anti_range): Call irange_set_1bit_anti_range
13837         * value-range.h (irange::irange_set_1bit_anti_range): New.
13838
13839 2021-03-22  Vladimir N. Makarov  <vmakarov@redhat.com>
13840
13841         PR target/99581
13842         * config/aarch64/constraints.md (UtQ): Use
13843         define_relaxed_memory_constraint for it.
13844         * doc/md.texi (define_relaxed_memory_constraint): Describe it.
13845         * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
13846         * genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
13847         (have_relaxed_memory_constraints): New static var.
13848         (relaxed_memory_start, relaxed_memory_end): Ditto.
13849         (add_constraint): Add arg is_relaxed_memory.  Check name for
13850         relaxed memory.  Set up is_relaxed_memory in constraint_data and
13851         have_relaxed_memory_constraints.  Adjust calls.
13852         (choose_enum_order): Process relaxed memory.
13853         (write_tm_preds_h): Ditto.
13854         (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
13855         * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
13856         * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
13857         * ira-lives.c (single_reg_class): Use
13858         insn_extra_relaxed_memory_constraint.
13859         * ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
13860         * lra-constraints.c (valid_address_p): Use
13861         insn_extra_relaxed_memory_constraint instead of other memory
13862         constraints.
13863         (process_alt_operands): Process CT_RELAXED_MEMORY.
13864         (curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
13865         * recog.c (asm_operand_ok, preprocess_constraints): Process
13866         CT_RELAXED_MEMORY.
13867         * reload.c (find_reloads): Ditto.
13868         * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
13869         * stmt.c (parse_input_constraint): Use
13870         insn_extra_relaxed_memory_constraint.
13871
13872 2021-03-22  Segher Boessenkool  <segher@kernel.crashing.org>
13873
13874         PR target/97926
13875         * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
13876         there are no NaNs.
13877
13878 2021-03-22  Alex Coplan  <alex.coplan@arm.com>
13879
13880         PR target/97252
13881         * config/arm/arm-protos.h (neon_make_constant): Add generate
13882         argument to guard emitting insns, default to true.
13883         * config/arm/arm.c (arm_legitimate_constant_p_1): Reject
13884         CONST_VECTORs which neon_make_constant can't handle.
13885         (neon_vdup_constant): Add generate argument, avoid emitting
13886         insns if it's not set.
13887         (neon_make_constant): Plumb new generate argument through.
13888         * config/arm/constraints.md (Ui): New. Use it...
13889         * config/arm/mve.md (*mve_mov<mode>): ... here.
13890         * config/arm/vec-common.md (movv8hf): Use neon_make_constant to
13891         synthesize constants.
13892
13893 2021-03-22  Richard Biener  <rguenther@suse.de>
13894
13895         * debug.h: Add deprecation warning.
13896
13897 2021-03-22  Richard Biener  <rguenther@suse.de>
13898
13899         PR tree-optimization/99694
13900         * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
13901         PHI result.
13902
13903 2021-03-22  Kito Cheng  <kito.cheng@sifive.com>
13904
13905         PR target/99702
13906         * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
13907         after type checking.
13908
13909 2021-03-22  Jakub Jelinek  <jakub@redhat.com>
13910
13911         PR debug/99562
13912         PR debug/66728
13913         * dwarf2out.c (get_full_len): Use get_precision rather than
13914         min_precision.
13915         (add_const_value_attribute): Make sure add_AT_wide argument has
13916         precision prec rather than some very wide one.
13917
13918 2021-03-22  Kewen Lin  <linkw@linux.ibm.com>
13919
13920         * config/rs6000/rs6000.md (*rotldi3_insert_sf,
13921         *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
13922         floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
13923         floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
13924         *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
13925         fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
13926         *round32<mode>2_fprs, *roundu32<mode>2_fprs,
13927         *fix_trunc<mode>si2_internal): Fix empty split condition.
13928         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
13929         vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
13930         *vsx_reduc_<VEC_reduc_name>_v2df_scalar,
13931         *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
13932
13933 2021-03-22  Xionghu Luo  <luoxhu@linux.ibm.com>
13934
13935         PR target/98914
13936         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
13937         Convert idx to DImode.
13938         (rs6000_expand_vector_set_var_p8): Likewise.
13939
13940 2021-03-21  Jakub Jelinek  <jakub@redhat.com>
13941
13942         PR debug/99388
13943         * dwarf2out.c (insert_float): Change return type from void to
13944         unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
13945         (mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
13946         Adjust callers.
13947
13948 2021-03-20  H.J. Lu  <hjl.tools@gmail.com>
13949
13950         PR target/99679
13951         * config/i386/i386.c (construct_container): Check cfun != NULL
13952         before accessing silent_p.
13953
13954 2021-03-20  Ahamed Husni  <ahamedhusni73@gmail.com>
13955
13956         * asan.c: Fix typos in comments.
13957
13958 2021-03-20  Vladimir N. Makarov  <vmakarov@redhat.com>
13959
13960         PR rtl-optimization/99680
13961         * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
13962         (process_address_1): Check empty constraint before using
13963         CONSTRAINT_LEN.
13964
13965 2021-03-19  Pat Haugen  <pthaugen@linux.ibm.com>
13966
13967         * config/rs6000/rs6000.c (power10_cost): New.
13968         (rs6000_option_override_internal): Set Power10 costs.
13969         (rs6000_issue_rate): Set Power10 issue rate.
13970         * config/rs6000/power10.md: Rewrite for Power10.
13971
13972 2021-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
13973
13974         PR target/99663
13975         * lra-constraints.c (process_address_1): Don't use unknown
13976         constraint for address constraint.
13977
13978 2021-03-19  Iain Sandoe  <iain@sandoe.co.uk>
13979
13980         PR target/99661
13981         * config.gcc (powerpc-*-darwin8): Delete the reference to
13982         the now removed darwin8.h.
13983
13984 2021-03-19  Olivier Hainque  <hainque@adacore.com>
13985
13986         PR target/99660
13987         * config/vxworksae.h (VX_CPU_PREFIX): Define.
13988
13989 2021-03-19  John David Anglin  <danglin@gcc.gnu.org>
13990
13991         * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
13992
13993 2021-03-19  Tamar Christina  <tamar.christina@arm.com>
13994
13995         PR tree-optimization/99656
13996         * tree-vect-slp-patterns.c (linear_loads_p,
13997         complex_add_pattern::matches, is_eq_or_top,
13998         vect_validate_multiplication, complex_mul_pattern::matches,
13999         complex_fms_pattern::matches): Remove complex_perm_kinds_t.
14000         * tree-vectorizer.h: (complex_load_perm_t): Removed.
14001         (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
14002         complex_load_perm_t.
14003
14004 2021-03-19  H.J. Lu  <hjl.tools@gmail.com>
14005
14006         PR target/99652
14007         * config/i386/i386-options.c (ix86_init_machine_status): Set
14008         silent_p to true.
14009         * config/i386/i386.c (init_cumulative_args): Set silent_p to
14010         false.
14011         (construct_container): Return early for return and argument
14012         errors if silent_p is true.
14013         * config/i386/i386.h (machine_function): Add silent_p.
14014
14015 2021-03-19  Jakub Jelinek  <jakub@redhat.com>
14016
14017         PR target/99593
14018         * config/arm/constraints.md (Ds): New constraint.
14019         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
14020         constraint instead of w,Dm.
14021
14022 2021-03-19  Andrew Stubbs  <ams@codesourcery.com>
14023
14024         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
14025         in error message.
14026
14027 2021-03-19  Eric Botcazou  <ebotcazou@adacore.com>
14028
14029         PR middle-end/99641
14030         * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
14031         array type, do the computation of the current position in sizetype.
14032
14033 2021-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>
14034
14035         PR target/99422
14036         * lra-constraints.c (process_address_1): Use lookup_constraint
14037         only for a single constraint.
14038
14039 2021-03-18  Martin Sebor  <msebor@redhat.com>
14040
14041         PR middle-end/99502
14042         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
14043         (inbounds_memaccess_p): ...to this.  Check the ending offset of
14044         the accessed member.
14045
14046 2021-03-18  Andrew Stubbs  <ams@codesourcery.com>
14047
14048         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
14049           %> quote markers to error messages.
14050         (gcn_goacc_validate_dims): Likewise.
14051         (gcn_conditional_register_usage): Remove exclaimation mark from error
14052         message.
14053         (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
14054
14055 2021-03-18  Jan Hubicka  <hubicka@ucw.cz>
14056
14057         * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
14058         integer divides1.
14059
14060 2021-03-18  Sinan Lin  <sinan@isrc.iscas.ac.cn>
14061             Kito Cheng  <kito.cheng@sifive.com>
14062
14063         * config/riscv/riscv.c (riscv_block_move_straight): Change type
14064         to unsigned HOST_WIDE_INT for parameter and local variable with
14065         HOST_WIDE_INT type.
14066         (riscv_adjust_block_mem): Ditto.
14067         (riscv_block_move_loop): Ditto.
14068         (riscv_expand_block_move): Ditto.
14069
14070 2021-03-18  Nick Clifton  <nickc@redhat.com>
14071
14072         * config/v850/v850.c (construct_restore_jr): Increase static
14073          buffer size.
14074         (construct_save_jarl): Likewise.
14075         * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
14076
14077 2021-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14078
14079         * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
14080         (aarch64_override_options_internal): Use it.
14081         (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
14082         tune_flags.
14083
14084 2021-03-17  Sandra Loosemore  <sandra@codesourcery.com>
14085
14086         * config/nios2/nios2.c (nios2_custom_check_insns): Clean up
14087         error message format issues.
14088         (nios2_option_override): Likewise.
14089         (nios2_expand_fpu_builtin): Likewise.
14090         (nios2_init_custom_builtins): Adjust to avoid bogus strncpy
14091         truncation warning.
14092         (nios2_expand_custom_builtin): More error message format fixes.
14093         (nios2_expand_rdwrctl_builtin): Likewise.
14094         (nios2_expand_rdprs_builtin): Likewise.
14095         (nios2_expand_eni_builtin): Likewise.
14096         (nios2_expand_builtin): Likewise.
14097         (nios2_register_custom_code): Likewise.
14098         (nios2_valid_target_attribute_rec): Likewise.
14099         (nios2_add_insn_asm): Fix uninitialized variable warning.
14100
14101 2021-03-17  Jan Hubicka  <jh@suse.cz>
14102
14103         * config/i386/x86-tune-costs.h (struct processor_costs): Update costs
14104         of gather to match reality.
14105         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.
14106
14107 2021-03-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14108
14109         * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
14110         to compare against CC_REG rather than NE.
14111
14112 2021-03-17  H.J. Lu  <hjl.tools@gmail.com>
14113
14114         PR target/99504
14115         * config/i386/i386.c (ix86_force_load_from_GOT_p): Support
14116         inline assembly statements.
14117         (ix86_print_operand): Update 'P' handling for -fno-plt.
14118
14119 2021-03-17  Tamar Christina  <tamar.christina@arm.com>
14120
14121         PR target/99542
14122         * config/aarch64/aarch64.c
14123         (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
14124
14125 2021-03-16  Segher Boessenkool  <segher@kernel.crashing.org>
14126
14127         PR target/98092
14128         * config/rs6000/predicates.md (branch_comparison_operator): Allow
14129         ordered and unordered for CCFPmode, if flag_finite_math_only.
14130
14131 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
14132
14133         PR target/99600
14134         * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
14135         rather than ASHIFT.
14136         * config/i386/i386.md (mult by 1248 into ashift): New splitter.
14137
14138 2021-03-16  Martin Liska  <mliska@suse.cz>
14139
14140         PR target/99592
14141         * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
14142         cl_optimization_compare function.
14143
14144 2021-03-16  Ilya Leoshkevich  <iii@linux.ibm.com>
14145
14146         * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
14147         as "v".
14148
14149 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
14150
14151         PR target/99563
14152         * config/i386/i386.h (struct machine_function): Add
14153         has_explicit_vzeroupper bitfield.
14154         * config/i386/i386-expand.c (ix86_expand_builtin): Set
14155         cfun->machine->has_explicit_vzeroupper when expanding
14156         IX86_BUILTIN_VZEROUPPER.
14157         * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
14158         Do the mode switching only when TARGET_VZEROUPPER, expensive
14159         optimizations turned on and not optimizing for size.
14160         (pass_insert_vzeroupper::gate): Enable even when
14161         cfun->machine->has_explicit_vzeroupper is set.
14162
14163 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
14164
14165         PR target/99542
14166         * config/aarch64/aarch64.c
14167         (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
14168         definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
14169         instead of DECL_ARGUMENTS.  Ignore types for uniform arguments.
14170
14171 2021-03-15  Richard Biener  <rguenther@suse.de>
14172
14173         PR tree-optimization/98834
14174         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
14175         subsetting by truncating the access size.
14176
14177 2021-03-15  Jan Hubicka  <hubicka@ucw.cz>
14178
14179         * config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
14180         * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
14181         of znver2_cost.
14182
14183 2021-03-15  Martin Liska  <mliska@suse.cz>
14184
14185         * spellcheck.c: Add missing comma in initialization.
14186
14187 2021-03-14  Uroš Bizjak  <ubizjak@gmail.com>
14188
14189         * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
14190         alternative 2 and alternative 1 with alternative 3 using
14191         YW register constraint.
14192         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
14193         using YW register constraint.
14194         (*vec_extractv16qi_zext): Ditto.
14195         (*vec_extractv4si): Merge alternatives 4 and 5
14196         using Yw register constraint.
14197         (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.
14198
14199 2021-03-13  Martin Sebor  <msebor@redhat.com>
14200
14201         PR tree-optimization/99489
14202         * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
14203         is not a call statement.
14204
14205 2021-03-13  Jakub Jelinek  <jakub@redhat.com>
14206
14207         PR tree-optimization/99544
14208         * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
14209         if for vector types multiplication can't be done in type's mode.
14210
14211 2021-03-12  Eric Botcazou  <ebotcazou@adacore.com>
14212
14213         PR target/99422
14214         * config/sparc/constraints.md (w): Rename to...
14215         (W): ... this and ditch previous implementation.
14216         * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
14217         (*movdf_insn_sp64): Likewise.
14218         (*mov<VM64:mode>_insn_sp64): Likewise.
14219         * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
14220         w with W.
14221         (atomic_compare_and_swap_leon3_1): Likewise.
14222         (*atomic_compare_and_swapdi_v8plus): Likewise.
14223         * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
14224         architecture and add missing address validity check during LRA.
14225
14226 2021-03-12  Tobias Burnus  <tobias@codesourcery.com>
14227
14228         PR fortran/98858
14229         * gimplify.c (omp_add_variable): Handle NULL_TREE as size
14230         occuring for assumed-size arrays in use_device_{ptr,addr}.
14231
14232 2021-03-12  Jakub Jelinek  <jakub@redhat.com>
14233
14234         PR target/99321
14235         * config/i386/constraints.md (YW): New internal constraint.
14236         * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
14237         (*<sse2_avx2>_<insn><mode>3<mask_name>,
14238         *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
14239         *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
14240         constraints.
14241         (<sse2_avx2>_psadbw): Use YW instead of v in constraints.
14242         (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
14243         avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
14244         into one, use Yw instead of former x,v.
14245         (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
14246         the last alternative.
14247         (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
14248         <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
14249         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
14250         <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
14251         into one, use <v_Yw> instead of former x,v.
14252         (avx2_interleave_highv32qi<mask_name>,
14253         vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
14254         constraints.  Add && <mask_avx512bw_condition> to condition.
14255         (avx2_interleave_lowv32qi<mask_name>,
14256         vec_interleave_lowv16qi<mask_name>,
14257         avx2_interleave_highv16hi<mask_name>,
14258         vec_interleave_highv8hi<mask_name>,
14259         avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
14260         avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
14261         avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
14262         avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
14263         *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
14264         Yw instead of v in constraints.
14265         * config/i386/mmx.md (Yv_Yw): New define_mode_attr.
14266         (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
14267         instead of Yv in constraints.
14268         (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
14269         *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
14270         *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
14271         mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
14272         *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
14273         constraints.
14274         (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
14275         *mmx_pextrb_zext): Use YW instead of Yv in constraints.
14276         (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
14277         (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
14278         two, one with just x, another isa avx512vl with v.
14279
14280 2021-03-12  Martin Liska  <mliska@suse.cz>
14281
14282         * doc/invoke.texi: Add missing param documentation.
14283
14284 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
14285
14286         PR analyzer/96374
14287         * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
14288         analyzer/trimmed-graph.o.
14289         * doc/analyzer.texi (Analyzer Paths): Rewrite description of
14290         feasibility checking to reflect new implementation.
14291         * doc/invoke.texi (-fdump-analyzer-feasibility): Document new
14292         option.
14293         * shortest-paths.h (shortest_paths::get_shortest_distance): New.
14294
14295 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
14296
14297         * digraph.cc (selftest::test_shortest_paths): Update
14298         shortest_paths init for new param.  Add test of
14299         SPS_TO_GIVEN_TARGET.
14300         * shortest-paths.h (enum shortest_path_sense): New.
14301         (shortest_paths::shortest_paths): Add "sense" param.
14302         Update for renamings.  Generalize to use "sense" param.
14303         (shortest_paths::get_shortest_path): Rename param.
14304         (shortest_paths::m_sense): New field.
14305         (shortest_paths::m_prev): Rename...
14306         (shortest_paths::m_best_edge): ...to this.
14307         (shortest_paths::get_shortest_path): Update for renamings.
14308         Conditionalize flipping of path on sense of traversal.
14309
14310 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
14311
14312         * digraph.cc (selftest::test_shortest_paths): Add test coverage
14313         for paths from B and C.
14314         * shortest-paths.h (shortest_paths::shortest_paths): Handle
14315         unreachable nodes, rather than asserting.
14316
14317 2021-03-11  David Edelsohn  <dje.gcc@gmail.com>
14318
14319         PR target/99094
14320         * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
14321         xcoff_tbss_section_name.
14322         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
14323         * xcoffout.c (xcoff_tbss_section_name): Delete.
14324         * xcoffout.h (xcoff_tbss_section_name): Delete.
14325
14326 2021-03-11  Richard Biener  <rguenther@suse.de>
14327
14328         PR tree-optimization/99523
14329         * tree-cfg.c (dump_function_to_file): Dump SSA names
14330         w/o identifier to the decls section as well, not only those
14331         without a VAR_DECL.
14332
14333 2021-03-11  Jakub Jelinek  <jakub@redhat.com>
14334
14335         PR ipa/99517
14336         * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
14337         function calls with lhs fail if the lhs don't have compatible types.
14338
14339 2021-03-11  Hans-Peter Nilsson  <hp@axis.com>
14340
14341         * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
14342         Change FRAME_POINTER_REGNUM to correspond to a new faked
14343         register faked_fp, part of GENNONACR_REGS like faked_ap.
14344         (CRIS_FAKED_REGS_CONTENTS): New helper macro.
14345         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
14346         (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
14347         (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
14348         * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
14349         register.
14350         (CRIS_REAL_FP_REGNUM): New constant.
14351         * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
14352         for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
14353         (cris_initial_elimination_offset): Handle elimination changes
14354         to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
14355         and add one from FRAME_POINTER_REGNUM to
14356         HARD_FRAME_POINTER_REGNUM.
14357         (cris_expand_prologue, cris_expand_epilogue): Emit code for
14358         hard_frame_pointer_rtx instead of frame_pointer_rtx.
14359
14360 2021-03-10  David Edelsohn  <dje.gcc@gmail.com>
14361
14362         PR target/99492
14363         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
14364         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
14365
14366 2021-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>
14367
14368         PR target/99422
14369         * lra-constraints.c (process_address_1): Don't check unknown
14370         constraint, use X for empty constraint.
14371
14372 2021-03-10  Alex Coplan  <alex.coplan@arm.com>
14373
14374         * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
14375         Fix typo in comment describing "is_ha" argument.
14376
14377 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
14378
14379         * doc/sourcebuild.texi: Document LRA target selector.
14380
14381 2021-03-10  David Malcolm  <dmalcolm@redhat.com>
14382
14383         * doc/ux.texi: Add subsection contrasting interactive versus
14384         batch usage of GCC.
14385
14386 2021-03-10  Joel Hutton  <joel.hutton@arm.com>
14387
14388         PR target/99102
14389         * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
14390         check condition.
14391         (vectorizable_load): Fix gather load mask check condition.
14392
14393 2021-03-10  Richard Biener  <rguenther@suse.de>
14394
14395         PR tree-optimization/99510
14396         * tree.c (check_aligned_type): Check that the candidate
14397         has TYPE_USER_ALIGN set instead of matching with the
14398         original type.
14399
14400 2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>
14401
14402         * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
14403         float and vector integer modes only if the mode is not larger.
14404
14405 2021-03-10  Hans-Peter Nilsson  <hp@axis.com>
14406
14407         * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
14408
14409 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
14410
14411         * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
14412         constraints > 9.
14413         * ira-lives.c (single_reg_class): Ditto.
14414
14415 2021-03-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14416
14417         * config.gcc (aarch64-*-rtems*): Include general rtems.h after
14418         the architecture-specific rtems.h.
14419         (aarch64-*-rtems*): Likewise.
14420         (arm*-*-rtems*): Likewise.
14421         (epiphany-*-rtems*): Likewise.
14422         (riscv*-*-rtems*): Likewise.
14423
14424 2021-03-09  Jakub Jelinek  <jakub@redhat.com>
14425
14426         PR tree-optimization/99305
14427         * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
14428         before integer_all_onesp instead of vice versa.
14429
14430 2021-03-09  Richard Earnshaw  <rearnsha@arm.com>
14431
14432         * common/config/arm/arm-common.c (arm_config_default): Change type
14433         of 'i' to unsigned.
14434
14435 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
14436
14437         PR target/99454
14438         * lra-constraints.c (process_address_1): Process constraint 'g'
14439         separately and digital constraints containing more one digit.
14440
14441 2021-03-09  Nick Clifton  <nickc@redhat.com>
14442
14443         * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
14444         (DWARF"_DEBUGGING_INFO): Define.
14445
14446 2021-03-09  Eric Botcazou  <ebotcazou@adacore.com>
14447
14448         PR c++/90448
14449         * calls.c (initialize_argument_information): When the argument
14450         is passed by reference, do not make a copy in a thunk only if
14451         the argument is already in memory.  Remove redundant test for
14452         the case of callee copy.
14453
14454 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
14455
14456         PR target/99454
14457         * lra-constraints.c (process_address_1): Process 0..9 constraints
14458         in process_address_1.
14459
14460 2021-03-09  Andreas Krebbel  <krebbel@linux.ibm.com>
14461
14462         * config/s390/s390.c (struct s390_processor processor_table):
14463         Binutils name string must not be empty.
14464
14465 2021-03-09  Claudiu Zissulescu  <claziss@synopsys.com>
14466
14467         * config/arc/arc.c (arc_attr_type): Remove function.
14468
14469 2021-03-09  Martin Liska  <mliska@suse.cz>
14470
14471         PR target/99464
14472         * config/i386/i386-options.c (ix86_option_override_internal):
14473         Set isa_flags for OPTS argument and not for the global
14474         global_options.
14475
14476 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
14477
14478         * config/rs6000/predicates.md (ds_form_mem_operand): Check
14479         in correct code.
14480
14481 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
14482
14483         PR target/99070
14484         * config/rs6000/predicates.md (ds_form_mem_operand) New
14485         predicate.
14486         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
14487         ds_form_mem_operand in ld/lwa patterns.
14488         * config/rs6000/fusion.md: Regenerate file.
14489
14490 2021-03-08  Martin Sebor  <msebor@redhat.com>
14491
14492         PR middle-end/98266
14493         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
14494         (array_bounds_checker::check_array_bounds): Call it.
14495
14496 2021-03-08  Martin Sebor  <msebor@redhat.com>
14497
14498         PR middle-end/97631
14499         * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
14500         (handle_builtin_stxncpy_strncat): Rename locals.  Determine
14501         destination size from allocation calls.  Issue a more appropriate
14502         kind of warning.
14503         (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
14504         (handle_builtin_memset): Same.
14505
14506 2021-03-08  Peter Bergner  <bergner@linux.ibm.com>
14507
14508         PR target/98959
14509         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
14510         to ensure we do not have an Altivec style address.
14511         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
14512         an Altivec style address.
14513         (*vsx_le_perm_store_<mode>): Likewise.
14514         (splitters after *vsx_le_perm_store_<mode>): Likewise.
14515         (vsx_load_<mode>): Disable special expander if passed an Altivec
14516         style address.
14517         (vsx_store_<mode>): Likewise.
14518
14519 2021-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14520
14521         PR target/99437
14522         * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
14523         (aarch64_simd_shift_imm_vec_hi): Likewise.
14524         (aarch64_simd_shift_imm_vec_si): Likewise.
14525         (aarch64_simd_shift_imm_vec_di): Likewise.
14526         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
14527         predicate from above.
14528         (aarch64_shrn<mode>_insn_be): Likewise.
14529         (aarch64_rshrn<mode>_insn_le): Likewise.
14530         (aarch64_rshrn<mode>_insn_be): Likewise.
14531         (aarch64_shrn2<mode>_insn_le): Likewise.
14532         (aarch64_shrn2<mode>_insn_be): Likewise.
14533         (aarch64_rshrn2<mode>_insn_le): Likewise.
14534         (aarch64_rshrn2<mode>_insn_be): Likewise.
14535
14536 2021-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
14537
14538         PR target/99422
14539         * lra-constraints.c (skip_contraint_modifiers): New function.
14540         (process_address_1): Use it before lookup_constraint call.
14541
14542 2021-03-08  Martin Liska  <mliska@suse.cz>
14543
14544         PR target/99463
14545         * config/i386/i386-options.c (ix86_option_override_internal):
14546         Enable UINTR and HRESET for -march that supports it.
14547
14548 2021-03-08  Ilya Leoshkevich  <iii@linux.ibm.com>
14549
14550         * config/s390/s390.c (f_constraint_p): New function.
14551         (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
14552         (TARGET_MD_ASM_ADJUST): Likewise.
14553
14554 2021-03-08  Tobias Burnus  <tobias@codesourcery.com>
14555
14556         PR fortran/97927
14557         * tree-nested.c (convert_local_reference_stmt): Avoid calling
14558         lookup_field_for_decl for Fortran module (= namespace context).
14559
14560 2021-03-08  Andreas Krebbel  <krebbel@linux.ibm.com>
14561
14562         * config/s390/s390.c (s390_expand_vec_compare): Implement <0
14563         comparison with arithmetic right shift.
14564         (s390_expand_vcond): No need for a force_reg anymore.
14565         s390_vec_compare will do it.
14566         * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
14567         immediate operands.
14568
14569 2021-03-07  Jakub Jelinek  <jakub@redhat.com>
14570
14571         PR target/99321
14572         * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
14573         but TARGET_AVX512BW or TARGET_AVX512VL is not set.  Adjust description
14574         and comment.
14575         * config/i386/sse.md (v_Yw): New define_mode_attr.
14576         (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
14577         *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
14578         in constraints.
14579         * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
14580         xYw in constraints.
14581
14582 2021-03-06  Julian Brown  <julian@codesourcery.com>
14583
14584         * tree-pretty-print.c (dump_generic_node): Emit non-generic
14585         address space info for aggregates.
14586
14587 2021-03-06  Hans-Peter Nilsson  <hp@axis.com>
14588
14589         * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
14590
14591 2021-03-05  Jakub Jelinek  <jakub@redhat.com>
14592
14593         PR middle-end/99322
14594         * tree-cfg.c (bb_to_omp_idx): New variable.
14595         (execute_build_cfg): Release the bb_to_omp_idx vector after
14596         cleanup_tree_cfg returns.
14597         (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
14598         for bb_to_omp_idx being a vec<int> instead of pointer to array
14599         of ints.
14600         (make_edges): Remove bb_to_omp_idx local variable, don't pass
14601         it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
14602         vec<int> instead of pointer to array of ints and don't free/release
14603         it at the end.
14604         (remove_bb): When removing a bb and placing forced label somewhere
14605         else, ensure it is put into the same OpenMP region during cfg
14606         pass if possible or to entry successor as fallback.  Unregister
14607         bb from bb_to_omp_idx.
14608
14609 2021-03-05  Vladimir N. Makarov  <vmakarov@redhat.com>
14610
14611         PR target/99378
14612         * lra-constraints.c (process_address_1): Skip decomposing address
14613         for asm insn operand with unknown constraint.
14614
14615 2021-03-05  Martin Jambor  <mjambor@suse.cz>
14616
14617         PR ipa/98078
14618         * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
14619         corresponding speculative edges if we are about to resolve
14620         sepculation.  Make edge direct (and so resolve speculations) before
14621         removing it from call_site_hash.
14622         (cgraph_edge::make_direct): Relax the initial assert to allow calling
14623         the function on speculative direct edges.
14624
14625 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
14626
14627         PR rtl-optimization/99376
14628         * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
14629         of low-order zero bits is too large, set the result to 0 directly.
14630
14631 2021-03-04  Jakub Jelinek  <jakub@redhat.com>
14632
14633         PR middle-end/93235
14634         * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
14635         SUBREG and a SUBREG to op_mode can't be created.
14636
14637 2021-03-04  Alex Coplan  <alex.coplan@arm.com>
14638
14639         PR target/99381
14640         * config/aarch64/aarch64-sve-builtins.cc
14641         (function_resolver::require_vector_type): Handle error_mark_node.
14642
14643 2021-03-04  Ilya Leoshkevich  <iii@linux.ibm.com>
14644
14645         * cfgexpand.c (expand_asm_loc): Pass new parameter.
14646         (expand_asm_stmt): Likewise.
14647         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
14648         parameter.
14649         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
14650         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
14651         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
14652         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
14653         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
14654         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
14655         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
14656         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
14657         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
14658         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
14659         * doc/tm.texi (md_asm_adjust): Likewise.
14660         * target.def (md_asm_adjust): Likewise.
14661
14662 2021-03-04  Richard Biener  <rguenther@suse.de>
14663
14664         PR middle-end/97855
14665         * tree-pretty-print.c: Poison pp_printf.
14666         (dump_decl_name): Avoid use of pp_printf.
14667         (dump_block_node): Likewise.
14668         (dump_generic_node): Likewise.
14669
14670 2021-03-04  Martin Sebor  <msebor@redhat.com>
14671
14672         PR middle-end/96963
14673         PR middle-end/94655
14674         * builtins.c (handle_array_ref): New helper.
14675         (handle_mem_ref): New helper.
14676         (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
14677         into new helper functions.  Correct a workaround for vectorized
14678         assignments.
14679
14680 2021-03-03  Pat Haugen  <pthaugen@linux.ibm.com>
14681
14682         * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
14683         floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
14684         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
14685         *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
14686         attribute for Power10.
14687         * config/rs6000/mma.md (*movoo): Likewise.
14688         * config/rs6000/rs6000.md (define_attr "size"): Add 256.
14689         (define_mode_attr bits): Add DD/TD modes.
14690         * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
14691         store_conditionalpti): Update size attribute for Power10.
14692
14693 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14694
14695         PR bootstrap/92002
14696         * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
14697         -Wuninitialized, -Wmaybe-uninitialized.
14698         (wide-int.o-warn): Likewise.
14699
14700 2021-03-03  Richard Earnshaw  <rearnsha@arm.com>
14701
14702         * common/config/arm/arm-common.c: Include configargs.h.
14703         (arm_config_default): New function.
14704         (arm_target_mode): Renamed from arm_target_thumb_only.  Handle
14705         processors that do not support Thumb.  Take into account the
14706         --with-mode configuration setting for selecting the default.
14707         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
14708         (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
14709
14710 2021-03-03  Martin Liska  <mliska@suse.cz>
14711
14712         PR gcov-profile/97461
14713         * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
14714
14715 2021-03-03  Eric Botcazou  <ebotcazou@adacore.com>
14716
14717         PR target/99234
14718         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
14719         point back the hard frame pointer to its default location when the
14720         frame is larger than SEH_MAX_FRAME_SIZE.
14721
14722 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
14723
14724         PR target/99321
14725         * config/i386/predicates.md (logic_operator): New define_predicate.
14726         * config/i386/i386.md (mov + mem using comm arith peephole2):
14727         Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
14728         and the inner mode is [QH]Imode.
14729
14730 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
14731
14732         PR debug/99090
14733         * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
14734         (new_loc_list): Clear end_entry.
14735         (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
14736         if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx.  Fix comment
14737         typo.
14738         (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
14739         initialize also end_entry.
14740
14741 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
14742
14743         PR target/99085
14744         * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
14745         partitions, if in non-layout mode after reorder_blocks also move
14746         affected blocks to ensure a single partition transition.
14747
14748 2021-03-03  Jason Merrill  <jason@redhat.com>
14749
14750         PR c++/96078
14751         * cgraphunit.c (process_function_and_variable_attributes): Don't
14752         warn about flatten on an alias if the target also has it.
14753         * cgraph.h (symtab_node::get_alias_target_tree): New.
14754
14755 2021-03-02  David Edelsohn  <dje.gcc@gmail.com>
14756
14757         * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
14758         period to symbol name.
14759         (tls_get_addr_internal<mode>): Same.
14760
14761 2021-03-02  David Malcolm  <dmalcolm@redhat.com>
14762
14763         PR c/99323
14764         * diagnostic-show-locus.c
14765         (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
14766         column 0.
14767
14768 2021-03-02  Martin Sebor  <msebor@redhat.com>
14769
14770         PR middle-end/99276
14771         * builtins.c (warn_for_access): Remove stray warning text.
14772
14773 2021-03-02  Martin Sebor  <msebor@redhat.com>
14774
14775         PR middle-end/99295
14776         * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
14777         property.
14778
14779 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
14780
14781         PR debug/99319
14782         * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
14783         -gdwarf-5 -gstrict-dwarf.  For -gsplit-dwarf -gdwarf-5 use
14784         DW_MACRO_*_strx instead of DW_MACRO_*_strp.  Handle
14785         DW_MACRO_define_strx and DW_MACRO_undef_strx.
14786         (save_macinfo_strings): Use DW_MACRO_*_str* even with
14787         -gdwarf-5 -gstrict-dwarf.  Handle DW_MACRO_define_strx and
14788         DW_MACRO_undef_strx.
14789
14790 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
14791
14792         * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
14793         builtin signature.
14794         (BT_FN_V8HI_V8HI_UINT): Likewise.
14795         (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
14796         * config/s390/s390-builtins.def (B_NNPA): New macro definition.
14797         (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
14798         New builtin definitions.
14799         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
14800         vector extension version.
14801         * config/s390/s390.c (s390_expand_builtin): Check if builtins are
14802         available with current -march level.
14803         * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
14804         (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
14805         (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
14806         * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
14807         (vec_extend_to_fp32_lo): Likewise.
14808         (vec_round_from_fp32): Likewise.
14809         (vec_convert_to_fp16): Likewise.
14810         (vec_convert_from_fp16): Likewise.
14811         * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
14812         (vclfnls_v8hi): Likewise.
14813         (vcrnfs_v8hi): Likewise.
14814         (vcfn_v8hi): Likewise.
14815         (vcnf_v8hi): Likewise.
14816
14817 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
14818
14819         * common/config/s390/s390-common.c (processor_flags_table): New entry.
14820         * config.gcc: Enable arch14 for --with-arch and --with-tune.
14821         * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
14822         arch14 for unknown CPU models.
14823         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
14824         * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
14825         (s390_get_sched_attrmask): Likewise.
14826         (s390_get_unit_mask): Likewise.
14827         * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
14828         (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
14829         (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
14830         (TARGET_NNPA_P): New macro definitions.
14831         * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
14832         * config/s390/s390.opt: Add PROCESSOR_ARCH14.
14833
14834 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
14835
14836         PR middle-end/95757
14837         * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
14838         condition.  Call register_edge_assert_for_1 for == 0, != 0, == 1 and
14839         != 1 comparisons if name is lhs of a comparison.
14840
14841 2021-03-01  Iain Sandoe  <iain@sandoe.co.uk>
14842
14843         PR target/44107
14844         PR target/48097
14845         * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
14846         * config/darwin.c (darwin_should_restore_cfa_state): New.
14847         * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
14848         * doc/tm.texi: Regenerated.
14849         * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
14850         * dwarf2cfi.c (connect_traces): If the target requests, restore
14851         the CFA expression after a DW_CFA_restore.
14852         * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
14853
14854 2021-03-01  Martin Liska  <mliska@suse.cz>
14855
14856         PR target/99313
14857         * optc-save-gen.awk: Add 4 more exceptions.
14858
14859 2021-03-01  Nathan Sidwell  <nathan@acm.org>
14860
14861         PR c++/99294
14862         * tree.h (TYPE_ALIGN_RAW): New accessor.
14863         (TYPE_ALIGN): Use it.
14864
14865 2021-03-01  Jan Hubicka  <jh@suse.cz>
14866
14867         PR ipa/98338
14868         * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
14869
14870 2021-03-01  Eric Botcazou  <ebotcazou@adacore.com>
14871
14872         PR target/99234
14873         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
14874         point the hard frame pointer to the SSE register save area instead
14875         of the general register save area.  Perform only minimal adjustment
14876         for small frames if it is initially not correctly aligned.
14877         (ix86_expand_prologue): Remove early saves for a SEH target.
14878         * config/i386/winnt.c (struct seh_frame_state): Document constraint.
14879
14880 2021-02-28  Jakub Jelinek  <jakub@redhat.com>
14881
14882         PR c/99304
14883         * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
14884         typo - referneced -> referenced.
14885         * tree.c (component_ref_size): Fix comment typo -
14886         refernce -> reference.
14887         * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
14888         traling -> trailing.
14889         (aliasing_component_refs_p): Fix comment typos -
14890         refernce -> reference and refernece -> reference and
14891         traling -> trailing.
14892         (nonoverlapping_refs_since_match_p): Fix comment typo -
14893         referneces -> references.
14894         * doc/invoke.texi (--param modref-max-bases): Fix a typo -
14895         referneces -> references.
14896
14897 2021-02-27  Iain Sandoe  <iain@sandoe.co.uk>
14898
14899         * config/host-darwin.c (darwin_gt_pch_use_address): Modify
14900         diagnostic message to avoid use of a contraction and format
14901         warning.
14902
14903 2021-02-27  Jakub Jelinek  <jakub@redhat.com>
14904
14905         PR other/99288
14906         * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
14907         HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
14908         * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
14909         HOST_WIDE_INT_PRINT_DEC in inform format string.  Fix comment
14910         typos.
14911
14912 2021-02-26  Richard Biener  <rguenther@suse.de>
14913
14914         PR middle-end/99281
14915         * expr.c (store_field): For calls with return-slot optimization
14916         and addressable return type expand the store directly.
14917
14918 2021-02-26  Richard Biener  <rguenther@suse.de>
14919
14920         PR c/99275
14921         * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
14922
14923 2021-02-26  Peter Bergner  <bergner@linux.ibm.com>
14924
14925         PR target/99279
14926         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
14927         with an "if" test.
14928
14929 2021-02-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
14930
14931         * config.gcc: Add rs6000-pcrel-opt.o.
14932         * config/rs6000/rs6000-pcrel-opt.c: New file.
14933         * config/rs6000/pcrel-opt.md: New file.
14934         * config/rs6000/predicates.md: Add d_form_memory predicate.
14935         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
14936         * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
14937         * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
14938         pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
14939         and make_pass_pcrel_opt().
14940         * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
14941         (rs6000_option_override_internal): Add pcrel-opt.
14942         (rs6000_delegitimize_address): Support pcrel-opt.
14943         (rs6000_opt_masks): Add pcrel-opt.
14944         (pcrel_opt_valid_mem_p): New function.
14945         (reg_to_non_prefixed): Make global.
14946         (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
14947         (output_pcrel_opt_reloc): New function.
14948         * config/rs6000/rs6000.md (loads_extern_addr): New attr.
14949         (pcrel_extern_addr): Set loads_extern_addr.
14950         Add include for pcrel-opt.md.
14951         * config/rs6000/rs6000.opt: Add -mpcrel-opt.
14952         * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
14953         pcrel-opt.md.
14954
14955 2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
14956
14957         PR target/98996
14958         * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
14959         If TARGET_64BIT and dest is SUBREG, we check the width, if it
14960         equal to SImode, we use SImode operation, just like what we are
14961         doing for REG one.
14962
14963 2021-02-26  Marek Polacek  <polacek@redhat.com>
14964
14965         * builtins.c (warn_for_access): Fix typos.
14966
14967 2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
14968
14969         * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
14970         mark in front of the immediate quantity.
14971         (<optab>_rolsi3_uxtw): Likewise.
14972
14973 2021-02-25  Richard Earnshaw  <rearnsha@arm.com>
14974
14975         PR target/99271
14976         * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
14977         (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
14978         (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
14979         address and disable when the FPCXT is not available.
14980         (nonsecure_call_value_reg_thumb2): Likewise.
14981
14982 2021-02-25  Nathan Sidwell  <nathan@acm.org>
14983
14984         PR c++/99166
14985         * doc/invoke.texi (flang-info-module-cmi): Renamed option.
14986
14987 2021-02-25  Tamar Christina  <tamar.christina@arm.com>
14988
14989         * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
14990
14991 2021-02-25  Richard Biener  <rguenther@suse.de>
14992
14993         PR tree-optimization/99253
14994         * tree-vect-loop.c (check_reduction_path): First compute
14995         code, then verify out-of-loop uses.
14996
14997 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
14998
14999         PR target/95798
15000         * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
15001
15002 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
15003
15004         PR tree-optimization/80635
15005         * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
15006         VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
15007         has mode precision.
15008
15009 2021-02-25  Richard Biener  <rguenther@suse.de>
15010
15011         * tree-vect-slp.c (optimize_load_redistribution_1): Delay
15012         load_map population.
15013         (vect_match_slp_patterns_2): Revert part of last change.
15014         (vect_analyze_slp): Do not interleave optimize_load_redistribution
15015         with pattern detection but do it afterwards.  Dump the
15016         whole SLP graph after pattern recognition and load
15017         redistribution optimization finished.
15018
15019 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
15020
15021         PR fortran/99226
15022         * omp-low.c (struct omp_context): Add teams_nested_p and
15023         nonteams_nested_p members.
15024         (scan_omp_target): Diagnose teams nested inside of target with other
15025         directives strictly nested inside of the same target.
15026         (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
15027         ctx->nonteams_nested_p as needed.
15028
15029 2021-02-24  Vladimir N. Makarov  <vmakarov@redhat.com>
15030
15031         PR inline-asm/99123
15032         * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
15033
15034 2021-02-24  Hans-Peter Nilsson  <hp@axis.com>
15035
15036         * config/cris/cris.c (cris_expand_prologue): Set
15037         current_function_static_stack_size, if flag_stack_usage_info.
15038
15039 2021-02-24  Pat Haugen  <pthaugen@linux.ibm.com>
15040
15041         * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
15042         (rs6000_final_prescan_insn): Adjust.
15043         (rs6000_asm_output_opcode): Likewise.
15044
15045 2021-02-24  Martin Sebor  <msebor@redhat.com>
15046
15047         PR middle-end/97172
15048         * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
15049         from function arguments.
15050
15051 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
15052
15053         PR tree-optimization/99220
15054         * tree-vect-slp.c (optimize_load_redistribution_1): Remove
15055         node from cache when it's about to be deleted.
15056
15057 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
15058
15059         PR tree-optimization/99225
15060         * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
15061         to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
15062         build_int_cst (..., 1).  Formatting fixes.
15063
15064 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
15065
15066         PR tree-optimization/99149
15067         * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
15068         buffer.
15069         (vect_slp_reset_pattern): Remove.
15070         (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
15071         (complex_mul_pattern::build, complex_fma_pattern::build,
15072         complex_fms_pattern::build): Fix ref counts.
15073         * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
15074         when node is being deleted.
15075         (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
15076         (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
15077         stores.
15078         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
15079
15080 2021-02-24  Matthias Klose  <doko@ubuntu.com>
15081
15082         Revert:
15083         2020-12-07  Matthias Klose  <doko@ubuntu.com>
15084
15085         * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
15086         and ENABLE_RTL_FLAG_CHECKING.
15087
15088 2021-02-24  Richard Biener  <rguenther@suse.de>
15089
15090         PR c/99224
15091         * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
15092
15093 2021-02-23  Peter Bergner  <bergner@linux.ibm.com>
15094
15095         * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
15096         (vsx_assemble_pair): ...to this.
15097         (*mma_assemble_pair): Rename from this...
15098         (*vsx_assemble_pair): ...to this.
15099         (mma_disassemble_pair): Rename from this...
15100         (vsx_disassemble_pair): ...to this.
15101         (*mma_disassemble_pair): Rename from this...
15102         (*vsx_disassemble_pair): ...to this.
15103         * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
15104         BU_COMPAT): New macros.
15105         (mma_assemble_pair): Rename from this...
15106         (vsx_assemble_pair): ...to this.
15107         (mma_disassemble_pair): Rename from this...
15108         (vsx_disassemble_pair): ...to this.
15109         (mma_assemble_pair): New compatibility built-in.
15110         (mma_disassemble_pair): Likewise.
15111         * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
15112         (RS6000_BUILTIN_COMPAT): Define.
15113         (bdesc_compat): New.
15114         (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
15115         (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
15116         and VSX_BUILTIN_ASSEMBLE_PAIR.
15117         (rs6000_init_builtins): Register compatibility built-ins.
15118         (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
15119         VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
15120         VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
15121         * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
15122         (__builtin_vsx_assemble_pair): ...to this.
15123         (__builtin_mma_disassemble_pair): Rename from this...
15124         (__builtin_vsx_disassemble_pair): ...to this.
15125
15126 2021-02-23  Martin Liska  <mliska@suse.cz>
15127
15128         PR sanitizer/99168
15129         * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
15130         with different alignment. That leads to an invalid red zone
15131         size allocated in runtime.
15132
15133 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
15134
15135         PR tree-optimization/99204
15136         * fold-const.c (fold_read_from_constant_string): Check that
15137         tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
15138
15139 2021-02-23  Segher Boessenkool  <segher@kernel.crashing.org>
15140             Kewen Lin  <linkw@gcc.gnu.org>
15141
15142         * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
15143         (rotl<mode>3_insert_3): ...this.
15144         (plus_ior_xor): New code_iterator.
15145         (define_split for GPR rl*imi): New splitter.
15146         * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
15147         for integer merging.
15148
15149 2021-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15150
15151         * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
15152         Define.
15153         * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
15154         into a register when the above is enabled.
15155         * config/aarch64/aarch64.c (neoversev1_tunings):
15156         AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
15157         (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
15158
15159 2021-02-22  Hans-Peter Nilsson  <hp@axis.com>
15160
15161         * config/cris/cris.c (cris_print_operand) <'T'>: Change
15162         valid operand from is now an addi mult-value to shift-value.
15163         * config/cris/cris.md (*addi): Change expression of scaled
15164         operand from mult to ashift.
15165         * config/cris/cris.md (*addi_reload): New insn_and_split.
15166
15167 2021-02-22  John David Anglin  <danglin@gcc.gnu.org>
15168
15169         PR target/85074
15170         * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
15171         hook_bool_const_tree_hwi_hwi_const_tree_true.
15172         (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
15173
15174 2021-02-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
15175
15176         PR rtl-optimization/98791
15177         * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
15178         for unordered modes.
15179
15180 2021-02-22  Martin Liska  <mliska@suse.cz>
15181
15182         * tree-inline.c (inline_forbidden_p): Set
15183         inline_forbidden_reason.
15184
15185 2021-02-22  Richard Biener  <rguenther@suse.de>
15186
15187         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
15188         costed subgraph.
15189
15190 2021-02-22  Richard Biener  <rguenther@suse.de>
15191
15192         PR tree-optimization/99165
15193         * gimple-ssa-store-merging.c (pass_store_merging::process_store):
15194         Accumulate changed to ret.
15195
15196 2021-02-21  Uros Bizjak  <ubizjak@gmail.com>
15197
15198         Revert:
15199         2020-12-09  Uroš Bizjak  <ubizjak@gmail.com>
15200
15201         * config/i386/i386.h (REG_ALLOC_ORDER): Remove
15202
15203 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
15204
15205         PR target/99134
15206         * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
15207         pattern.
15208         (trunctf<DFP_ALL:mode>2): Likewise.
15209         (trunctdtf2_vr): Likewise.
15210         (trunctdtf2): Likewise.
15211         (extend<DFP_ALL:mode>tf2_vr): Likewise.
15212         (extend<DFP_ALL:mode>tf2): Likewise.
15213         (extendtftd2_vr): Likewise.
15214         (extendtftd2): Likewise.
15215
15216 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
15217
15218         * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
15219         add memory alternative.
15220         (tf_to_fprx2): New pattern.
15221
15222 2021-02-19  Martin Sebor  <msebor@redhat.com>
15223
15224         PR c/97172
15225         * attribs.c (init_attr_rdwr_indices): Guard vblist use.
15226         (attr_access::free_lang_data): Remove a spurious test.
15227
15228 2021-02-19  Nathan Sidwell  <nathan@acm.org>
15229
15230         * doc/invoke.texi (flang-info-module-read): Document.
15231
15232 2021-02-19  Martin Liska  <mliska@suse.cz>
15233
15234         PR translation/99167
15235         * params.opt: Fix typo.
15236
15237 2021-02-19  Richard Biener  <rguenther@suse.de>
15238
15239         PR middle-end/99122
15240         * tree-inline.c (inline_forbidden_p): Do not inline functions
15241         with VLA arguments or return value.
15242
15243 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
15244
15245         PR target/98998
15246         * config/arm/arm.md (*stack_protect_combined_set_insn,
15247         *stack_protect_combined_test_insn): If force_const_mem result
15248         is not valid general operand, force its address into the destination
15249         register first.
15250
15251 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
15252
15253         PR ipa/99034
15254         * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
15255         pad or non-local label, put FORCED_LABELs from bb b after that label
15256         rather than before it.
15257
15258 2021-02-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
15259
15260         PR target/98657
15261         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
15262         expand_vector_broadcast' to emit the vec_duplicate operand.
15263
15264 2021-02-18  Vladimir N. Makarov  <vmakarov@redhat.com>
15265
15266         PR rtl-optimization/96264
15267         * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
15268         hard regs.
15269
15270 2021-02-18  H.J. Lu  <hjl.tools@gmail.com>
15271
15272         PR target/99113
15273         * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
15274         looking up the retain attribute.
15275         (resolve_unique_section): Likewise.
15276         (get_variable_section): Likewise.
15277         (switch_to_section): Likewise.  Warn when a symbol without the
15278         retain attribute and a symbol with the retain attribute are
15279         placed in the section with the same name, instead of the used
15280         attribute.
15281         * doc/extend.texi: Document the "retain" attribute.
15282
15283 2021-02-18  Nathan Sidwell  <nathan@acm.org>
15284
15285         PR c++/99023
15286         * doc/invoke.texi (flang-info-include-translate): Document header
15287         lookup behaviour.
15288
15289 2021-02-18  Richard Biener  <rguenther@suse.de>
15290
15291         PR middle-end/99122
15292         * ipa-fnsummary.c (analyze_function_body): Set
15293         CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
15294         * tree-inline.c (insert_init_debug_bind): Pass NULL for
15295         error_mark_node values.
15296         (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
15297         values.
15298         (setup_one_parameter): Delay force_value_to_type until when
15299         it's needed.
15300
15301 2021-02-18  Hans-Peter Nilsson  <hp@axis.com>
15302
15303         PR tree-optimization/99142
15304         * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
15305
15306 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
15307
15308         * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
15309         wide_int_bitmask::wide_int_bitmask (uint64_t),
15310         wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
15311         wide_int_bitmask::operator ~ () const,
15312         wide_int_bitmask::operator | (wide_int_bitmask) const,
15313         wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
15314         instead of inline.
15315         * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
15316         PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
15317         PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
15318         PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
15319         PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
15320         PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
15321         PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
15322         PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
15323         PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
15324         PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
15325         PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
15326         PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
15327         PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
15328         PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
15329         PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
15330         PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
15331         PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
15332         PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
15333         PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
15334         PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
15335         PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
15336         PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
15337         PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
15338         PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
15339
15340 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
15341
15342         PR middle-end/99109
15343         * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
15344         (build_printable_array_type): ... this.  Add nelts argument.  For
15345         overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead.  If
15346         nelts, call build_array_type_nelts.
15347         (array_bounds_checker::check_mem_ref): Use build_printable_array_type
15348         instead of build_zero_elt_array_type and build_array_type_nelts.
15349
15350 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
15351
15352         PR target/99104
15353         * config/i386/i386.c (distance_non_agu_define): Don't call
15354         extract_insn_cached here.
15355         (ix86_lea_outperforms): Save and restore recog_data around call
15356         to distance_non_agu_define and distance_agu_use.
15357         (ix86_ok_to_clobber_flags): Remove.
15358         (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
15359         (ix86_avoid_lea_for_addr): Likewise.  Adjust function comment.
15360         * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
15361         into define_insn.  Move the splitting to define_peephole2 and
15362         check there using peep2_regno_dead_p if FLAGS_REG is dead.
15363
15364 2021-02-17  Julian Brown  <julian@codesourcery.com>
15365
15366         * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
15367         for non-decls.
15368
15369 2021-02-17  Xi Ruoyao  <xry111@mengyan1223.wang>
15370
15371         PR target/98491
15372         * config/mips/mips.c (mips_symbol_insns): Do not use
15373         MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
15374
15375 2021-02-16  Vladimir N. Makarov  <vmakarov@redhat.com>
15376
15377         PR inline-asm/98096
15378         * stmt.c (resolve_operand_name_1): Take inout operands into account
15379         for access to labels by names.
15380         * doc/extend.texi: Describe counting operands for accessing labels.
15381
15382 2021-02-16  Richard Biener  <rguenther@suse.de>
15383
15384         PR tree-optimization/38474
15385         * tree-ssa-structalias.c (variable_info::address_taken): New.
15386         (new_var_info): Initialize address_taken.
15387         (process_constraint): Set address_taken.
15388         (solve_constraints): Use the new address_taken flag rather
15389         than is_reg_var for sorting variables.
15390         (dump_constraint): Dump the variable number if the name
15391         is just NULL.
15392
15393 2021-02-16  Jakub Jelinek  <jakub@redhat.com>
15394
15395         PR target/99100
15396         * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
15397         multiply by 4096 and for inbranch by 8192.
15398         * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
15399         return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
15400
15401 2021-02-15  Maya Rashish  <coypu@sdf.org>
15402
15403         * config/aarch64/aarch64.c (aarch64_init_builtins):
15404         Call SUBTARGET_INIT_BUILTINS.
15405
15406 2021-02-15  Peter Bergner  <bergner@linux.ibm.com>
15407
15408         PR rtl-optimization/98872
15409         * init-regs.c (initialize_uninitialized_regs): Skip initialization
15410         if CONST0_RTX is NULL.
15411
15412 2021-02-15  Richard Sandiford  <richard.sandiford@arm.com>
15413
15414         PR rtl-optimization/98863
15415         * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
15416         (function_info::build_info): Turn into a declaration, moving the
15417         definition to internals.h.
15418         (function_info::bb_walker): Declare.
15419         (function_info::create_reg_use): Likewise.
15420         (function_info::calculate_potential_phi_regs): Take a build_info
15421         parameter.
15422         (function_info::place_phis, function_info::create_ebbs): Declare.
15423         (function_info::calculate_ebb_live_in_for_debug): Likewise.
15424         (function_info::populate_backedge_phis): Delete.
15425         (function_info::start_block, function_info::end_block): Declare.
15426         (function_info::populate_phi_inputs): Delete.
15427         (function_info::m_potential_phi_regs): Move information to build_info.
15428         * rtl-ssa/internals.h: New file.
15429         (function_info::bb_phi_info): New class.
15430         (function_info::build_info): Moved from functions.h.
15431         Add a constructor and destructor.
15432         (function_info::build_info::ebb_use): Delete.
15433         (function_info::build_info::ebb_def): Likewise.
15434         (function_info::build_info::bb_live_out): Likewise.
15435         (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
15436         (function_info::build_info::potential_phi_regs): Likewise.
15437         (function_info::build_info::potential_phi_regs_for_debug): Likewise.
15438         (function_info::build_info::ebb_def_regs): Likewise.
15439         (function_info::build_info::bb_phis): Likewise.
15440         (function_info::build_info::bb_mem_live_out): Likewise.
15441         (function_info::build_info::bb_to_rpo): Likewise.
15442         (function_info::build_info::def_stack): Likewise.
15443         (function_info::build_info::old_def_stack_limit): Likewise.
15444         * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
15445         Remove the regno argument.  Push the previous definition onto the
15446         definition stack where necessary.
15447         * rtl-ssa/accesses.cc: Include internals.h.
15448         * rtl-ssa/changes.cc: Likewise.
15449         * rtl-ssa/blocks.cc: Likewise.
15450         (function_info::build_info::build_info): Define.
15451         (function_info::build_info::~build_info): Likewise.
15452         (function_info::bb_walker): New class.
15453         (function_info::bb_walker::bb_walker): Define.
15454         (function_info::add_live_out_use): Convert a logarithmic-complexity
15455         test into a linear one.  Allow the same definition to be passed
15456         multiple times.
15457         (function_info::calculate_potential_phi_regs): Moved from
15458         functions.cc.  Take a build_info parameter and store the
15459         information there instead.
15460         (function_info::place_phis): New function.
15461         (function_info::add_entry_block_defs): Update call to record_reg_def.
15462         (function_info::calculate_ebb_live_in_for_debug): New function.
15463         (function_info::add_phi_nodes): Use bb_phis to decide which
15464         registers need phi nodes and initialize ebb_def_regs accordingly.
15465         Do not add degenerate phis here.
15466         (function_info::add_artificial_accesses): Use create_reg_use.
15467         Assert that all definitions are listed in the DF LR sets.
15468         Update call to record_reg_def.
15469         (function_info::record_block_live_out): Record live-out register
15470         values in the phis of successor blocks.  Use the live-out set
15471         when processing the last block in an EBB, instead of always
15472         using the live-in sets of successor blocks.  AND the live sets
15473         with the set of registers that have been defined in the EBB,
15474         rather than with all potential phi registers.  Cope correctly
15475         with branches back to the start of the current EBB.
15476         (function_info::start_block): New function.
15477         (function_info::end_block): Likewise.
15478         (function_info::populate_phi_inputs): Likewise.
15479         (function_info::create_ebbs): Likewise.
15480         (function_info::process_all_blocks): Rewrite into a multi-phase
15481         process.
15482         * rtl-ssa/functions.cc: Include internals.h.
15483         (function_info::calculate_potential_phi_regs): Move to blocks.cc.
15484         (function_info::init_function_data): Remove caller.
15485         * rtl-ssa/insns.cc: Include internals.h
15486         (function_info::create_reg_use): New function.  Lazily any
15487         degenerate phis needed by the linear RPO view.
15488         (function_info::record_use): Use create_reg_use.  When processing
15489         debug uses, use potential_phi_regs and test it before checking
15490         whether the register is live on entry to the current EBB.  Lazily
15491         calculate ebb_live_in_for_debug.
15492         (function_info::record_call_clobbers): Update call to record_reg_def.
15493         (function_info::record_def): Likewise.
15494
15495 2021-02-15  Martin Liska  <mliska@suse.cz>
15496
15497         * toplev.c (init_asm_output): Free output of
15498         gen_command_line_string function.
15499         (process_options): Likewise.
15500
15501 2021-02-15  Martin Liska  <mliska@suse.cz>
15502
15503         * params.opt: Add 2 missing Param keywords.
15504
15505 2021-02-15  Eric Botcazou  <ebotcazou@adacore.com>
15506
15507         * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
15508
15509 2021-02-15  Jakub Jelinek  <jakub@redhat.com>
15510
15511         PR tree-optimization/99079
15512         * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
15513         useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check.  Instead
15514         require both type and TREE_TYPE (@1) to be integral types and either
15515         type having smaller or equal precision, or TREE_TYPE (@1) being
15516         unsigned type, or type being signed type.  If TREE_TYPE (@1)
15517         doesn't have wrapping overflow, perform the subtraction of one in
15518         unsigned type.
15519
15520 2021-02-14  Jan Hubicka  <hubicka@ucw.cz>
15521             Richard Biener  <rguether@suse.de>
15522
15523         PR ipa/97346
15524         * ipa-reference.c (ipa_init): Only conditinally initialize
15525         reference_vars_to_consider.
15526         (propagate): Conditionally deninitialize reference_vars_to_consider.
15527         (ipa_reference_write_optimization_summary): Sanity check that
15528         reference_vars_to_consider is not allocated.
15529
15530 2021-02-13  Levy Hsu  <admin@levyhsu.com>
15531
15532         PR target/97417
15533         * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
15534         extend parameter to get_si_mem_base_reg declaration.
15535         (get_si_mem_base_reg): Add extend parameter.  Set it.
15536         (analyze): Pass extend arg to get_si_mem_base_reg.
15537         (transform): Likewise.  Use it when rewriting mems.
15538         * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
15539         loads and emit sign/zero extending load followed by subreg move.
15540
15541 2021-02-13  Jim Wilson  <jimw@sifive.com>
15542
15543         PR target/97417
15544         * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
15545         exit when !reload_completed.  Only perform check for compressed reg
15546         if reload_completed.
15547         (riscv_rtx_costs): In MEM case, when optimizing for size and
15548         shorten memrefs, if not compressible, then increase cost.
15549
15550 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
15551
15552         PR rtl-optimization/98439
15553         * recog.c (pass_split_before_regstack::gate): Enable even when
15554         pass_split_before_sched2 is enabled if -fselective-scheduling2 is
15555         on.
15556
15557 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
15558
15559         PR target/96166
15560         * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
15561         swap of V2SImode elements in memory into DImode memory rotate by 32.
15562
15563 2021-02-12  Martin Sebor  <msebor@redhat.com>
15564
15565         * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
15566
15567 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
15568
15569         * rtl-ssa/accesses.cc (function_info::make_use_available): Use
15570         m_temp_obstack rather than m_obstack to allocate the temporary use.
15571
15572 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
15573
15574         * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
15575         as read-modify operations.
15576
15577 2021-02-12  Richard Biener  <rguenther@suse.de>
15578
15579         PR middle-end/38474
15580         * ipa-fnsummary.c (unmodified_parm_1): Only walk when
15581         fbi->aa_walk_budget is bigger than zero.  Update
15582         fbi->aa_walk_budget.
15583         (param_change_prob): Likewise.
15584         * ipa-prop.c (detect_type_change_from_memory_writes):
15585         Properly account walk_aliased_vdefs.
15586         (parm_preserved_before_stmt_p): Canonicalize updates.
15587         (parm_ref_data_preserved_p): Likewise.
15588         (parm_ref_data_pass_through_p): Likewise.
15589         (determine_known_aggregate_parts): Account own alias queries.
15590
15591 2021-02-12  Martin Liska  <mliska@suse.cz>
15592
15593         * opts-common.c (decode_cmdline_option): Release werror_arg.
15594         * opts.c (gen_producer_string): Release output of
15595         gen_command_line_string.
15596
15597 2021-02-12  Richard Biener  <rguenther@suse.de>
15598
15599         PR tree-optimization/38474
15600         * params.opt (-param=max-store-chains-to-track=): New param.
15601         (-param=max-stores-to-track=): Likewise.
15602         * doc/invoke.texi (max-store-chains-to-track): Document.
15603         (max-stores-to-track): Likewise.
15604         * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
15605         New.
15606         (pass_store_merging::m_n_stores): Likewise.
15607         (pass_store_merging::terminate_and_process_chain): Update
15608         m_n_stores and m_n_chains.
15609         (pass_store_merging::process_store): Likewise.   Terminate
15610         oldest chains if the number of stores or chains get too large.
15611         (imm_store_chain_info::terminate_and_process_chain): Dump
15612         chain length.
15613
15614 2021-02-11  Eric Botcazou  <ebotcazou@adacore.com>
15615
15616         * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
15617         the cold section, emit a nop before the directive if the previous
15618         active instruction can throw.
15619
15620 2021-02-11  Peter Bergner  <bergner@linux.ibm.com>
15621
15622         PR target/99041
15623         * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
15624         memory addresses that are legal for quad word accesses.
15625
15626 2021-02-11  Andrea Corallo  <andrea.corallo@arm.com>
15627
15628         PR target/98931
15629         * config/arm/thumb2.md (*doloop_end_internal): Generate
15630         alternative sequence to handle long range branches.
15631
15632 2021-02-11  Joel Hutton  <joel.hutton@arm.com>
15633
15634         PR tree-optimization/98772
15635         * optabs-tree.c (supportable_half_widening_operation): New function
15636         to check for supportable V8QI->V8HI widening patterns.
15637         * optabs-tree.h (supportable_half_widening_operation): New function.
15638         * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
15639         to create promotion stmts for V8QI->V8HI widening patterns.
15640         (vectorizable_conversion): Add case for V8QI->V8HI.
15641
15642 2021-02-11  Richard Biener  <rguenther@suse.de>
15643
15644         * sparseset.h (SPARSESET_ELT_BITS): Remove.
15645         (SPARSESET_ELT_TYPE): Use unsigned int.
15646         * fwprop.c: Do not include sparseset.h.
15647
15648 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
15649
15650         PR c++/99035
15651         * varasm.c (declare_weak): For -fsyntax-only, allow even
15652         TREE_ASM_WRITTEN function decls.
15653
15654 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
15655
15656         PR target/99025
15657         * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
15658         <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
15659         <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
15660         <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
15661         calling simplify_gen_subreg on it.
15662
15663 2021-02-10  Martin Liska  <mliska@suse.cz>
15664
15665         * config/nvptx/nvptx.c (nvptx_option_override): Use
15666         flag_patchable_function_entry instead of the removed
15667         function_entry_patch_area_size.
15668
15669 2021-02-10  Martin Liska  <mliska@suse.cz>
15670
15671         PR tree-optimization/99002
15672         PR tree-optimization/99026
15673         * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
15674         leak when adjacent cases are merged.
15675         * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
15676         release_clusters.
15677         (make_pass_lower_switch): Remove trailing whitespace.
15678         * tree-switch-conversion.h (release_clusters): New.
15679
15680 2021-02-10  Richard Biener  <rguenther@suse.de>
15681
15682         PR rtl-optimization/99054
15683         * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
15684         (fixup_partitions): Adjust.
15685         (rtl_verify_edges): Likewise.
15686
15687 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
15688
15689         PR middle-end/99007
15690         * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
15691         temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
15692         calls.
15693
15694 2021-02-10  Richard Biener  <rguenther@suse.de>
15695
15696         PR ipa/99029
15697         * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
15698         for callees.
15699
15700 2021-02-10  Richard Biener  <rguenther@suse.de>
15701
15702         PR tree-optimization/99024
15703         * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
15704         clear loop->aux if it is associated with the destroyed loop_vinfo.
15705
15706 2021-02-10  Martin Liska  <mliska@suse.cz>
15707
15708         PR tree-optimization/99002
15709         * gimple-if-to-switch.cc (find_conditions): Fix memory leak
15710         in the function.
15711
15712 2021-02-10  Martin Liska  <mliska@suse.cz>
15713
15714         PR ipa/99003
15715         * ipa-icf.c (sem_item::add_reference): Fix memory leak when
15716         a reference exists.
15717
15718 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
15719
15720         PR debug/98755
15721         * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
15722         at class scope for DWARF5+.
15723
15724 2021-02-09  Eric Botcazou  <ebotcazou@adacore.com>
15725
15726         PR rtl-optimization/96015
15727         * reorg.c (skip_consecutive_labels): Minor comment tweaks.
15728         (relax_delay_slots): When deleting a jump to the next active
15729         instruction over a barrier, first delete the barrier if the
15730         jump is the only way to reach the target label.
15731
15732 2021-02-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
15733
15734         * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
15735         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
15736         vector multiplies and vect.alu for SSRA.
15737         * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
15738         vect.mul cost field.
15739         * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
15740         * config/arm/arm.c: Likewise.
15741
15742 2021-02-09  Richard Biener  <rguenther@suse.de>
15743
15744         PR tree-optimization/98863
15745         * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
15746         * tree-ssa-sccvn.c (last_pushed_avail): New global.
15747         (rpo_elim::eliminate_push_avail): Chain pushed avails.
15748         (unwind_state::avail_top): Add.
15749         (do_unwind): Rewrite unwinding of avail entries.
15750         (do_rpo_vn): Initialize last_pushed_avail and
15751         avail_top of the undo state.
15752
15753 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
15754
15755         PR middle-end/99004
15756         * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
15757         const char * to char * and free those pointers after use.
15758
15759 2021-02-09  Richard Biener  <rguenther@suse.de>
15760
15761         PR tree-optimization/99017
15762         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
15763         zero vector cost entries.
15764
15765 2021-02-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
15766
15767         PR middle-end/98974
15768         * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
15769         parameter in vectorizable_condition.
15770
15771 2021-02-08  Richard Biener  <rguenther@suse.de>
15772
15773         PR lto/96591
15774         * tree.c (walk_tree_1): Walk VECTOR_CST elements.
15775
15776 2021-02-08  Martin Liska  <mliska@suse.cz>
15777
15778         PR lto/98971
15779         * cfgexpand.c (pass_expand::execute): Parse per-function option
15780         flag_patchable_function_entry and use it.
15781         * common.opt: Remove function_entry_patch_area_size and
15782         function_entry_patch_area_start global variables.
15783         * opts.c (parse_and_check_patch_area): New function.
15784         (common_handle_option): Use it.
15785         * opts.h (parse_and_check_patch_area): New function.
15786         * toplev.c (process_options): Parse and use
15787         function_entry_patch_area_size.
15788
15789 2021-02-08  Martin Sebor  <msebor@redhat.com>
15790
15791         * doc/extend.texi (attribute malloc): Correct typos.
15792
15793 2021-02-05  Nathan Sidwell  <nathan@acm.org>
15794
15795         PR driver/98943
15796         * gcc.c (driver::maybe_run_linker): Check for input file
15797         accessibility if not linking.
15798
15799 2021-02-05  Richard Biener  <rguenther@suse.de>
15800
15801         PR tree-optimization/98855
15802         * tree-vectorizer.h (add_stmt_cost): New overload.
15803         * tree-vect-slp.c (li_cost_vec_cmp): New.
15804         (vect_bb_slp_scalar_cost): Cost individual loop regions
15805         separately.  Account for the scalar instance root stmt.
15806
15807 2021-02-05  Tom de Vries  <tdevries@suse.de>
15808
15809         PR debug/98656
15810         * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
15811         argument.
15812         (bit_test_cluster::emit): Reuse location_t for newly created
15813         gswitch statement.
15814         (switch_decision_tree::try_switch_expansion): Preserve
15815         location_t.
15816         * tree-switch-conversion.h: Change function signatures.
15817
15818 2021-02-05  Jakub Jelinek  <jakub@redhat.com>
15819
15820         PR target/98957
15821         * config/i386/i386-options.c (m_NONE, m_ALL): Define.
15822         * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
15823         X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
15824         (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
15825
15826 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15827
15828         * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
15829         * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
15830         * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
15831         (vget_high_f16): Reimplement using new builtin.
15832         (vget_high_f32): Likewise.
15833         (vget_high_f64): Likewise.
15834         (vget_high_p8): Likewise.
15835         (vget_high_p16): Likewise.
15836         (vget_high_p64): Likewise.
15837         (vget_high_s8): Likewise.
15838         (vget_high_s16): Likewise.
15839         (vget_high_s32): Likewise.
15840         (vget_high_s64): Likewise.
15841         (vget_high_u8): Likewise.
15842         (vget_high_u16): Likewise.
15843         (vget_high_u32): Likewise.
15844         (vget_high_u64): Likewise.
15845
15846 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15847
15848         * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
15849         * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
15850         * config/aarch64/arm_neon.h (__GET_LOW): Delete.
15851         (vget_low_f16): Reimplement using new builtin.
15852         (vget_low_f32): Likewise.
15853         (vget_low_f64): Likewise.
15854         (vget_low_p8): Likewise.
15855         (vget_low_p16): Likewise.
15856         (vget_low_p64): Likewise.
15857         (vget_low_s8): Likewise.
15858         (vget_low_s16): Likewise.
15859         (vget_low_s32): Likewise.
15860         (vget_low_s64): Likewise.
15861         (vget_low_u8): Likewise.
15862         (vget_low_u16): Likewise.
15863         (vget_low_u32): Likewise.
15864         (vget_low_u64): Likewise.
15865
15866 2021-02-05  Kito Cheng  <kito.cheng@sifive.com>
15867
15868         * gcc.c (print_multilib_info): Check all required argument is provided
15869         by default arg.
15870
15871 2021-02-05  liuhongt  <hongtao.liu@intel.com>
15872
15873         PR target/98537
15874         * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
15875         generate integer mask comparison for 128/256-bits vector when
15876         op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
15877         delete redundant !maskcmp condition.
15878         (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
15879         here.
15880         (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
15881         condition directly to if (maskcmp), add extra check for
15882         cmpmode, it should be MODE_INT.
15883         (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
15884         parameters op_true/op_false.
15885         (ix86_use_mask_cmp_p): New.
15886
15887 2021-02-05  liuhongt  <hongtao.liu@intel.com>
15888
15889         PR target/98172
15890         * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
15891         Remove m_GENERIC from ~list.
15892         (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
15893
15894 2021-02-04  David Malcolm  <dmalcolm@redhat.com>
15895
15896         PR c/97932
15897         * diagnostic-show-locus.c (compatible_locations_p): Require
15898         locations in the same macro map to be either both from the
15899         macro definition, or both from the macro arguments.
15900
15901 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
15902
15903         * config/aarch64/aarch64-simd-builtins.def: Add
15904         [su]mull_hi_lane[q] builtin generator macros.
15905         * config/aarch64/aarch64-simd.md
15906         (aarch64_<su>mull_hi_lane<mode>_insn): Define.
15907         (aarch64_<su>mull_hi_lane<mode>): Define.
15908         (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
15909         (aarch64_<su>mull_hi_laneq<mode>): Define.
15910         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
15911         builtin instead of inline asm.
15912         (vmull_high_lane_s32): Likewise.
15913         (vmull_high_lane_u16): Likewise.
15914         (vmull_high_lane_u32): Likewise.
15915         (vmull_high_laneq_s16): Likewise.
15916         (vmull_high_laneq_s32): Likewise.
15917         (vmull_high_laneq_u16): Likewise.
15918         (vmull_high_laneq_u32): Liekwise.
15919
15920 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
15921
15922         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
15923         builtin generator macros.
15924         * config/aarch64/aarch64-simd.md
15925         (aarch64_<su>mull_hi_n<mode>_insn): Define.
15926         (aarch64_<su>mull_hi_n<mode>): Define.
15927         * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
15928         instead of inline asm.
15929         (vmull_high_n_s32): Likewise.
15930         (vmull_high_n_u16): Likewise.
15931         (vmull_high_n_u32): Likewise.
15932
15933 2021-02-04  Richard Biener  <rguenther@suse.de>
15934
15935         PR tree-optimization/98855
15936         * tree-vect-loop.c (vectorizable_phi): Do not cost
15937         single-argument PHIs.
15938         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
15939         * tree-vect-stmts.c (vectorizable_bswap): Also perform
15940         costing for SLP operation.
15941
15942 2021-02-04  Martin Liska  <mliska@suse.cz>
15943
15944         * doc/extend.texi: Mention -mprefer-vector-width in target
15945         attributes.
15946
15947 2021-02-03  Martin Sebor  <msebor@redhat.com>
15948
15949         PR tree-optimization/98937
15950         * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
15951         Flush pointer_query cache.
15952
15953 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
15954
15955         * config/rs6000/genfusion.pl (gen_2logical): Add missing
15956         fixes based on patch review.
15957         * config/rs6000/fusion.md: Regenerate file.
15958
15959 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
15960
15961         * config/rs6000/t-rs6000: Comment out auto generation of
15962         fusion.md for now.
15963
15964 2021-02-03  Andrew Stubbs  <ams@codesourcery.com>
15965
15966         * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
15967         * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
15968         (output_file_start): Add gfx908.
15969         * config/gcn/gcn.opt (gpu_type): Add gfx908.
15970         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
15971         (MULTILIB_DIRNAMES): Add gfx908.
15972         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
15973         (main): Recognize gfx908.
15974         * config/gcn/t-omp-device: Add gfx908.
15975
15976 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
15977
15978         * config/aarch64/aarch64-simd-builtins.def: Add
15979         [su]mlsl_hi_lane[q] builtin macro generators.
15980         * config/aarch64/aarch64-simd.md
15981         (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
15982         (aarch64_<su>mlsl_hi_lane<mode>): Define.
15983         (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
15984         (aarch64_<su>mlsl_hi_laneq<mode>): Define.
15985         * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
15986         builtin instead of inline asm.
15987         (vmlsl_high_lane_s32): Likewise.
15988         (vmlsl_high_lane_u16): Likewise.
15989         (vmlsl_high_lane_u32): Likewise.
15990         (vmlsl_high_laneq_s16): Likewise.
15991         (vmlsl_high_laneq_s32): Likewise.
15992         (vmlsl_high_laneq_u16): Likewise.
15993         (vmlsl_high_laneq_u32): Likewise.
15994         (vmlal_high_laneq_u32): Likewise.
15995
15996 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
15997
15998         * config/aarch64/aarch64-simd-builtins.def: Add
15999         [su]mlal_hi_lane[q] builtin generator macros.
16000         * config/aarch64/aarch64-simd.md
16001         (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
16002         (aarch64_<su>mlal_hi_lane<mode>): Define.
16003         (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
16004         (aarch64_<su>mlal_hi_laneq<mode>): Define.
16005         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
16006         builtin instead of inline asm.
16007         (vmlal_high_lane_s32): Likewise.
16008         (vmlal_high_lane_u16): Likewise.
16009         (vmlal_high_lane_u32): Likewise.
16010         (vmlal_high_laneq_s16): Likewise.
16011         (vmlal_high_laneq_s32): Likewise.
16012         (vmlal_high_laneq_u16): Likewise.
16013         (vmlal_high_laneq_u32): Likewise.
16014
16015 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
16016
16017         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
16018         builtin generator macros.
16019         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
16020         Define.
16021         (aarch64_<su>mlsl_hi_n<mode>): Define.
16022         * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
16023         instead of inline asm.
16024         (vmlsl_high_n_s32): Likewise.
16025         (vmlsl_high_n_u16): Likewise.
16026         (vmlsl_high_n_u32): Likewise.
16027
16028 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
16029
16030         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
16031         builtin generator macros.
16032         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
16033         Define.
16034         (aarch64_<su>mlal_hi_n<mode>): Define.
16035         * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
16036         instead of inline asm.
16037         (vmlal_high_n_s32): Likewise.
16038         (vmlal_high_n_u16): Likewise.
16039         (vmlal_high_n_u32): Likewise.
16040
16041 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
16042
16043         * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
16044         generator macros.
16045         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
16046         Rename to...
16047         (aarch64_<su>mlal_hi<mode>_insn): This.
16048         (aarch64_<su>mlal_hi<mode>): Define.
16049         * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
16050         instead of inline asm.
16051         (vmlal_high_s16): Likewise.
16052         (vmlal_high_s32): Likewise.
16053         (vmlal_high_u8): Likewise.
16054         (vmlal_high_u16): Likewise.
16055         (vmlal_high_u32): Likewise.
16056
16057 2021-02-03  Ilya Leoshkevich  <iii@linux.ibm.com>
16058
16059         * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
16060         after calling alter_subreg() on a (mem).
16061
16062 2021-02-03  Martin Liska  <mliska@suse.cz>
16063
16064         PR lto/98912
16065         * lto-streamer-out.c (produce_lto_section): Fill up missing
16066         padding.
16067         * lto-streamer.h (struct lto_section): Add _padding field.
16068
16069 2021-02-03  Richard Biener  <rguenther@suse.de>
16070
16071         * lto-streamer.c (lto_get_section_name): Free temporary
16072         buffer.
16073         * tree-loop-distribution.c
16074         (loop_distribution::merge_dep_scc_partitions): Free edge data.
16075
16076 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
16077
16078         PR middle-end/97487
16079         * ifcvt.c (noce_can_force_operand): New function.
16080         (noce_emit_move_insn): Use it.
16081         (noce_try_sign_mask): Likewise.  Formatting fix.
16082
16083 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
16084
16085         PR middle-end/97971
16086         * lra-constraints.c (process_alt_operands): For inline asm, don't call
16087         fatal_insn, but instead return false.
16088
16089 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
16090
16091         PR tree-optimization/98287
16092         * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
16093         for V1DImode.
16094
16095 2021-02-03  Tamar Christina  <tamar.christina@arm.com>
16096
16097         PR tree-optimization/98928
16098         * tree-vect-loop.c (vect_analyze_loop_2): Change
16099         STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
16100         * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
16101         * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
16102         (class _stmt_vec_info): Add slp_vect_pattern_only_p.
16103
16104 2021-02-02  Richard Biener  <rguenther@suse.de>
16105
16106         * gimple-loop-interchange.cc (prepare_data_references):
16107         Release vectors.
16108         * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
16109         * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
16110         * tree-vect-stmts.c (vectorizable_condition): Do not
16111         allocate vectors.
16112         (vectorizable_comparison): Likewise.
16113
16114 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16115
16116         * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
16117         * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
16118         * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
16119         (vrsqrteq_u32): Likewise.
16120
16121 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16122
16123         * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
16124         * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
16125         (aarch64_sqxtun2<mode>_be): Likewise.
16126         (aarch64_sqxtun2<mode>): Likewise.
16127         * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
16128         (vqmovun_high_s32): Likewise.
16129         (vqmovun_high_s64): Likewise.
16130         * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
16131
16132 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16133
16134         * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
16135         AUTO_FP flags.
16136         (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
16137
16138 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16139
16140         * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
16141         fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
16142         fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
16143         ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
16144         fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
16145         fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
16146         fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
16147         fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
16148
16149 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16150
16151         * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
16152         * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
16153         ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
16154
16155 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16156
16157         * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
16158         uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
16159
16160 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16161
16162         * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
16163         vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
16164         vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
16165         ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
16166         udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
16167         ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
16168         ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
16169         ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
16170         NONE builtin flags.
16171
16172 2021-02-02  Jakub Jelinek  <jakub@redhat.com>
16173
16174         PR tree-optimization/98848
16175         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
16176         STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
16177
16178 2021-02-02  Kito Cheng  <kito.cheng@sifive.com>
16179
16180         PR target/98743
16181         * expr.c: Check mode before calling store_expr.
16182
16183 2021-02-02  Christophe Lyon  <christophe.lyon@linaro.org>
16184
16185         * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
16186         (VORNQ): Remove.
16187         * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
16188         instruction using expression ior.
16189         (mve_vornq_u<mode>): New expander.
16190         (mve_vornq_f<mode>): Use ior code instead of unspec.
16191         * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
16192
16193 2021-02-02  Alexandre Oliva  <oliva@adacore.com>
16194
16195         * tree-nested.c (convert_nonlocal_reference_op): Move
16196         current_function_decl restore after re-gimplification.
16197         (convert_local_reference_op): Likewise.
16198
16199 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16200
16201         * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
16202         Define builtins.
16203         * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
16204         Define.
16205         (aarch64_rshrn<mode>_insn_be): Likewise.
16206         (aarch64_rshrn<mode>): Likewise.
16207         (aarch64_rshrn2<mode>_insn_le): Likewise.
16208         (aarch64_rshrn2<mode>_insn_be): Likewise.
16209         (aarch64_rshrn2<mode>): Likewise.
16210         * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
16211         * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
16212         using builtin.
16213         (vrshrn_high_n_s32): Likewise.
16214         (vrshrn_high_n_s64): Likewise.
16215         (vrshrn_high_n_u16): Likewise.
16216         (vrshrn_high_n_u32): Likewise.
16217         (vrshrn_high_n_u64): Likewise.
16218         (vrshrn_n_s16): Likewise.
16219         (vrshrn_n_s32): Likewise.
16220         (vrshrn_n_s64): Likewise.
16221         (vrshrn_n_u16): Likewise.
16222         (vrshrn_n_u32): Likewise.
16223         (vrshrn_n_u64): Likewise.
16224
16225 2021-02-01  Sergei Trofimovich  <siarheit@google.com>
16226
16227         PR tree-optimization/98499
16228         * ipa-modref.c (analyze_ssa_name_flags): treat RVO
16229         conservatively and assume all possible side-effects.
16230
16231 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16232
16233         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
16234         vec_unpacku_hi_): Define builtins.
16235         * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
16236         builtin.
16237         (vmovl_high_s16): Likewise.
16238         (vmovl_high_s32): Likewise.
16239         (vmovl_high_u8): Likewise.
16240         (vmovl_high_u16): Likewise.
16241         (vmovl_high_u32): Likewise.
16242
16243 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16244
16245         * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
16246         Define builtins.
16247         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
16248         pattern.
16249         * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
16250         UNSPEC_UABDL.
16251         * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
16252         builtin.
16253         (vabdl_s16): Likewise.
16254         (vabdl_s32): Likewise.
16255         (vabdl_u8): Likewise.
16256         (vabdl_u16): Likewise.
16257         (vabdl_u32): Likewise.
16258         * config/aarch64/iterators.md (ABDL): New int iterator.
16259         (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
16260
16261 2021-02-01  Martin Sebor  <msebor@redhat.com>
16262
16263         * tree.h (BLOCK_VARS): Add comment.
16264         (BLOCK_SUBBLOCKS): Same.
16265         (BLOCK_SUPERCONTEXT): Same.
16266         (BLOCK_ABSTRACT_ORIGIN): Same.
16267         (inlined_function_outer_scope_p): Same.
16268
16269 2021-02-01  Martin Sebor  <msebor@redhat.com>
16270
16271         PR middle-end/97172
16272         * attribs.c (attr_access::free_lang_data): Define new function.
16273         * attribs.h (attr_access::free_lang_data): Declare new function.
16274
16275 2021-02-01  Richard Biener  <rguenther@suse.de>
16276
16277         * vec.h (auto_vec::auto_vec): Add memory stat parameters
16278         and pass them on.
16279         * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
16280
16281 2021-02-01  Tamar Christina  <tamar.christina@arm.com>
16282
16283         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
16284         aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
16285
16286 2021-02-01  Richard Biener  <rguenther@suse.de>
16287
16288         PR rtl-optimization/98863
16289         * config/i386/i386-features.c (convert_scalars_to_vector):
16290         Set DF_RD_PRUNE_DEAD_DEFS.
16291
16292 2021-01-31  Eric Botcazou  <ebotcazou@adacore.com>
16293
16294         * system.h (SIZE_MAX): Define if not already defined.
16295
16296 2021-01-30  Aaron Sawdey  <acsawdey@linux.ibm.com>
16297
16298         * config/rs6000/genfusion.pl (gen_2logical): New function to
16299         generate patterns for logical-logical fusion.
16300         * config/rs6000/fusion.md: Regenerated patterns.
16301         * config/rs6000/rs6000-cpus.def: Add
16302         OPTION_MASK_P10_FUSION_2LOGICAL.
16303         * config/rs6000/rs6000.c (rs6000_option_override_internal):
16304         Enable logical-logical fusion for p10.
16305         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
16306
16307 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
16308
16309         * config/rs6000/rs6000.opt: Add periods to new AIX options.
16310
16311 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
16312
16313         * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
16314         (mabi=vec-default): New.
16315         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
16316         __EXTABI__ for AIX Vector extended ABI.
16317         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
16318         extabi info.
16319         (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
16320         are non-volatile.
16321         * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
16322
16323 2021-01-30  Jakub Jelinek  <jakub@redhat.com>
16324
16325         * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
16326         DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
16327
16328 2021-01-29  Vladimir N. Makarov  <vmakarov@redhat.com>
16329
16330         PR target/97701
16331         * lra-constraints.c (in_class_p): Don't narrow class only for REG
16332         or MEM.
16333
16334 2021-01-29  Will Schmidt  <will_schmidt@vnet.ibm.com>
16335
16336         * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
16337         clauses for CODE_FOR_vsx_xvcvuxddp_scale and
16338         CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
16339
16340 2021-01-29  Andrew MacLeod  <amacleod@redhat.com>
16341
16342         PR tree-optimization/98866
16343         * gimple-range-gori.h (gori_compute:set_range_invariant): New.
16344         * gimple-range-gori.cc (gori_map::set_range_invariant): New.
16345         (gori_map::m_maybe_invariant): Rename from all_outgoing.
16346         (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
16347         (gori_map::is_export_p): Ditto.
16348         (gori_map::calculate_gori): Ditto.
16349         (gori_compute::set_range_invariant): New.
16350         * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
16351         invariant for pointers evaluating to [1, +INF].
16352
16353 2021-01-29  Richard Biener  <rguenther@suse.de>
16354
16355         PR rtl-optimization/98863
16356         * config/i386/i386-features.c (remove_partial_avx_dependency):
16357         Do not perform DF analysis.
16358         (pass_data_remove_partial_avx_dependency): Remove
16359         TODO_df_finish.
16360
16361 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
16362
16363         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
16364         builtin generator macros.
16365         * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
16366         Define.
16367         * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
16368         instead of inline asm.
16369         (vmull_n_s32): Likewise.
16370         (vmull_n_u16): Likewise.
16371         (vmull_n_u32): Likewise.
16372
16373 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16374
16375         * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
16376         Define builtins.
16377         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
16378         Rename to...
16379         (aarch64_<sur>abdl2<mode>): ... This.
16380         (<sur>sadv16qi): Adjust use of above.
16381         * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
16382         builtin.
16383         (vabdl_high_s16): Likewise.
16384         (vabdl_high_s32): Likewise.
16385         (vabdl_high_u8): Likewise.
16386         (vabdl_high_u16): Likewise.
16387         (vabdl_high_u32): Likewise.
16388
16389 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16390
16391         * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
16392         builtin.
16393         (uabal2): Likewise.
16394         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
16395         pattern.
16396         * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
16397         UNSPEC_UABAL2.
16398         * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
16399         builtin.
16400         (vabal_high_s16): Likewise.
16401         (vabal_high_s32): Likewise.
16402         (vabal_high_u8): Likewise.
16403         (vabal_high_u16): Likewise.
16404         (vabal_high_u32): Likewise.
16405         * config/aarch64/iterators.md (ABAL2): New mode iterator.
16406         (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
16407
16408 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16409
16410         * config/aarch64/aarch64-simd-builtins.def (sabal): Define
16411         builtin.
16412         (uabal): Likewise.
16413         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
16414         Rename to...
16415         (aarch64_<sur>abal<mode>): ... This
16416         (<sur>sadv16qi): Adust use of the above.
16417         * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
16418         builtin.
16419         (vabal_s16): Likewise.
16420         (vabal_s32): Likewise.
16421         (vabal_u8): Likewise.
16422         (vabal_u16): Likewise.
16423         (vabal_u32): Likewise.
16424
16425 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16426
16427         * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
16428         Define builtins.
16429         * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
16430         Define.
16431         * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
16432         builtin.
16433         (vaddlv_s16): Likewise.
16434         (vaddlv_u8): Likewise.
16435         (vaddlv_u16): Likewise.
16436         (vaddlvq_s8): Likewise.
16437         (vaddlvq_s16): Likewise.
16438         (vaddlvq_s32): Likewise.
16439         (vaddlvq_u8): Likewise.
16440         (vaddlvq_u16): Likewise.
16441         (vaddlvq_u32): Likewise.
16442         (vaddlv_s32): Likewise.
16443         (vaddlv_u32): Likewise.
16444         * config/aarch64/iterators.md (VDQV_L): New mode iterator.
16445         (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
16446         (Vwstype): New mode attribute.
16447         (Vwsuf): Likewise.
16448         (VWIDE_S): Likewise.
16449         (USADDLV): New int iterator.
16450         (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
16451
16452 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
16453
16454         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
16455         builtin generator macros.
16456         * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
16457         Define.
16458         * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
16459         instead of inline asm.
16460         (vmlsl_lane_s32): Likewise.
16461         (vmlsl_lane_u16): Likewise.
16462         (vmlsl_lane_u32): Likewise.
16463         (vmlsl_laneq_s16): Likewise.
16464         (vmlsl_laneq_s32): Likewise.
16465         (vmlsl_laneq_u16): Likewise.
16466         (vmlsl_laneq_u32): Likewise.
16467
16468 2021-01-29  Richard Biener  <rguenther@suse.de>
16469
16470         * doc/invoke.texi (--param max-gcse-memory): Document unit
16471         of size.
16472         * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
16473         * params.opt (--param max-gcse-memory): Adjust default and
16474         document unit of size.
16475
16476 2021-01-29  Richard Biener  <rguenther@suse.de>
16477
16478         PR rtl-optimization/98863
16479         * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
16480         HOST_WIDE_INT for the memory estimate.
16481
16482 2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
16483             Richard Biener  <rguenther@suse.de>
16484
16485         PR tree-optimization/97627
16486         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
16487         Do not analyze fake edges.
16488
16489 2021-01-29  Richard Biener  <rguenther@suse.de>
16490
16491         PR rtl-optimization/98144
16492         * df.h (df_mir_bb_info): Add con_visited member.
16493         * df-problems.c (df_mir_alloc): Initialize con_visited,
16494         do not fully populate IN and OUT.
16495         (df_mir_reset): Likewise.
16496         (df_mir_confluence_0): Set con_visited.
16497         (df_mir_confluence_n): Properly handle implicitely
16498         fully populated IN and OUT as designated by con_visited
16499         and update con_visited accordingly.
16500
16501 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
16502
16503         PR target/98849
16504         * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
16505         vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
16506         && !TARGET_REALLY_IWMMXT to conditions.
16507
16508 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
16509
16510         PR debug/98331
16511         * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
16512         a BARRIER.
16513
16514 2021-01-28  Marek Polacek  <polacek@redhat.com>
16515
16516         PR c++/94775
16517         * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
16518         the main variant, maybe reset it in its variants too.
16519         * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
16520         (check_aligned_type): Check if TYPE_USER_ALIGN match.
16521
16522 2021-01-28  Christophe Lyon  <christophe.lyon@linaro.org>
16523
16524         PR target/98730
16525         * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
16526         of constant zero for comparisons.
16527
16528 2021-01-28  Michael Meissner  <meissner@linux.ibm.com>
16529
16530         * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
16531         support for mapping built-in function names for long double
16532         built-in functions if long double is IEEE 128-bit.
16533
16534 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
16535
16536         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
16537         builtin generator macros.
16538         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
16539         Define.
16540         * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
16541         instead of inline asm.
16542         (vmlsl_n_s32): Likewise.
16543         (vmlsl_n_u16): Likewise.
16544         (vmlsl_n_u32): Likewise.
16545
16546 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
16547
16548         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
16549         builtin generator macros.
16550         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
16551         Define.
16552         * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
16553         instead of inline asm.
16554         (vmlal_n_s32): Likewise.
16555         (vmlal_n_u16): Likewise.
16556         (vmlal_n_u32): Likewise.
16557
16558 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16559
16560         * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
16561         builtin.
16562         * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
16563         Define.
16564         (aarch64_shrn2<mode>_insn_be): Likewise.
16565         (aarch64_shrn2<mode>): Likewise.
16566         * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
16567         using builtins.
16568         (vshrn_high_n_s32): Likewise.
16569         (vshrn_high_n_s64): Likewise.
16570         (vshrn_high_n_u16): Likewise.
16571         (vshrn_high_n_u32): Likewise.
16572         (vshrn_high_n_u64): Likewise.
16573
16574 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16575
16576         * config/aarch64/aarch64-simd-builtins.def (shrn): Define
16577         builtin.
16578         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
16579         Define.
16580         (aarch64_shrn<mode>_insn_be): Likewise.
16581         (aarch64_shrn<mode>): Likewise.
16582         * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
16583         builtins.
16584         (vshrn_n_s32): Likewise.
16585         (vshrn_n_s64): Likewise.
16586         (vshrn_n_u16): Likewise.
16587         (vshrn_n_u32): Likewise.
16588         (vshrn_n_u64): Likewise.
16589         * config/aarch64/iterators.md (vn_mode): New mode attribute.
16590
16591 2021-01-28  Richard Biener  <rguenther@suse.de>
16592
16593         PR rtl-optimization/80960
16594         * dse.c (check_mem_read_rtx): Call get_addr on the
16595         offsetted address.
16596
16597 2021-01-28  Xionghu Luo  <luoxhu@linux.ibm.com>
16598             David Edelsohn  <dje.gcc@gmail.com>
16599
16600         PR target/98799
16601         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16602         Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
16603         when -m32.
16604         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
16605         Delete.
16606         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
16607         wrapper call rs6000_expand_vector_set_var for cleanup.  Call
16608         rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
16609         directly.
16610         (rs6000_expand_vector_set_var): Delete.
16611         (rs6000_expand_vector_set_var_p9): Make static.
16612         (rs6000_expand_vector_set_var_p8): Make static.
16613
16614 2021-01-28  Xing GUO  <higuoxing@gmail.com>
16615
16616         * common/config/riscv/riscv-common.c
16617         (riscv_subset_list::parsing_subset_version): Fix -march option parsing
16618         when `p` extension exists.
16619
16620 2021-01-27  Vladimir N. Makarov  <vmakarov@redhat.com>
16621
16622         PR rtl-optimization/97684
16623         * ira.c (ira): Call ira_set_pseudo_classes before
16624         update_equiv_regs when it is necessary.
16625
16626 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
16627
16628         PR target/98853
16629         * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
16630         %w0, %w1 and %2 instead of %0, %1 and %2.
16631
16632 2021-01-27  Aaron Sawdey  <acsawdey@linux.ibm.com>
16633
16634         * config/rs6000/genfusion.pl: New script to generate
16635         define_insn_and_split patterns so combine can arrange fused
16636         instructions next to each other.
16637         * config/rs6000/fusion.md: New file, generated fused instruction
16638         patterns for combine.
16639         * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
16640         (non_update_memory_operand): New predicate.
16641         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
16642         OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
16643         POWERPC_MASKS.
16644         * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
16645         prototype.
16646         * config/rs6000/rs6000.c (rs6000_option_override_internal):
16647         Automatically set OPTION_MASK_P10_FUSION and
16648         OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
16649         (rs600_opt_masks): Allow -mpower10-fusion
16650         in function attributes.
16651         (address_is_non_pfx_d_or_x): New function.
16652         * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
16653         * config/rs6000/rs6000.md: Include fusion.md.
16654         * config/rs6000/rs6000.opt: Add -mpower10-fusion
16655         and -mpower10-fusion-ld-cmpi.
16656         * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
16657
16658 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
16659
16660         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
16661         builtin generator macros.
16662         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
16663         Rename to...
16664         (aarch64_<su>mlal<mode>): This.
16665         * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
16666         instead of inline asm.
16667         (vmlal_s16): Likewise.
16668         (vmlal_s32): Likewise.
16669         (vmlal_u8): Likewise.
16670         (vmlal_u16): Likewise.
16671         (vmlal_u32): Likewise.
16672
16673 2021-01-27  Richard Biener  <rguenther@suse.de>
16674
16675         PR tree-optimization/98854
16676         * tree-vect-slp.c (vect_build_slp_tree_2): Also build
16677         PHIs from scalars when the number of CTORs matches the
16678         number of children.
16679
16680 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
16681
16682         * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
16683         generator macro.
16684         * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
16685         Rename to...
16686         (aarch64_mls_n<mode>): This.
16687         * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
16688         instead of asm.
16689         (vmls_n_s32): Likewise.
16690         (vmls_n_u16): Likewise.
16691         (vmls_n_u32): Likewise.
16692         (vmlsq_n_s16): Likewise.
16693         (vmlsq_n_s32): Likewise.
16694         (vmlsq_n_u16): Likewise.
16695         (vmlsq_n_u32): Likewise.
16696
16697 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
16698
16699         * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
16700         generator macro.
16701         * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
16702         than asm.
16703         (vmls_s16): Likewise.
16704         (vmls_s32): Likewise.
16705         (vmls_u8): Likewise.
16706         (vmls_u16): Likewise.
16707         (vmls_u32): Likewise.
16708         (vmlsq_s8): Likewise.
16709         (vmlsq_s16): Likewise.
16710         (vmlsq_s32): Likewise.
16711         (vmlsq_u8): Likewise.
16712         (vmlsq_u16): Likewise.
16713         (vmlsq_u32): Likewise.
16714
16715 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
16716
16717         * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
16718         generator macro.
16719         * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
16720         Rename to...
16721         (aarch64_mla_n<mode>): This.
16722         * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
16723         instead of asm.
16724         (vmla_n_s32): Likewise.
16725         (vmla_n_u16): Likewise.
16726         (vmla_n_u32): Likewise.
16727         (vmlaq_n_s16): Likewise.
16728         (vmlaq_n_s32): Likewise.
16729         (vmlaq_n_u16): Likewise.
16730         (vmlaq_n_u32): Likewise.
16731
16732 2021-01-27  liuhongt  <hongtao.liu@intel.com>
16733
16734         PR target/98833
16735         * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
16736         (*sse2_eq<mode>3): Ditto.
16737
16738 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
16739
16740         * tree-pass.h (PROP_trees): Rename to ...
16741         (PROP_gimple): ... this.
16742         * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
16743         * passes.c (execute_function_dump, execute_function_todo,
16744         execute_one_ipa_transform_pass, execute_one_pass): Likewise.
16745         * varpool.c (ctor_for_folding): Likewise.
16746
16747 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
16748
16749         PR tree-optimization/97260
16750         * varpool.c: Include tree-pass.h.
16751         (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
16752         non-TREE_SIDE_EFFECTS automatic variables.
16753
16754 2021-01-26  Paul Fee  <paul.f.fee@gmail.com>
16755
16756         * doc/cpp.texi (__cplusplus): Document value for -std=c++23
16757         or -std=gnu++23.
16758         * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
16759         * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
16760         (gen_compile_unit_die): Recognise C++23.
16761
16762 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
16763
16764         PR bootstrap/98839
16765         * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
16766         in comparison.
16767
16768 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
16769
16770         PR target/98681
16771         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
16772         Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
16773         and INTVAL (mask).  Add && INTVAL (mask) > 0 condition.
16774
16775 2021-01-26  Richard Biener  <rguenther@suse.de>
16776
16777         * gimple-pretty-print.c (dump_binary_rhs): Handle
16778         VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
16779
16780 2021-01-26  Richard Biener  <rguenther@suse.de>
16781
16782         PR middle-end/98726
16783         * tree.h (vector_cst_int_elt): Remove.
16784         * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
16785         make static.
16786
16787 2021-01-26  Andrew Stubbs  <ams@codesourcery.com>
16788
16789         * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
16790         for V64DFmode min/max reductions.
16791
16792 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
16793
16794         * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
16795         as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
16796         two halves, one with x and the other with const0_rtx, ordered
16797         depending on endianity.
16798
16799 2021-01-26  Alexandre Oliva  <oliva@adacore.com>
16800
16801         * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
16802         temporaries not seen in binding block, and not about to be
16803         added as gimple variables.
16804
16805 2021-01-25  Martin Sebor  <msebor@redhat.com>
16806
16807         PR c++/98646
16808         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
16809
16810 2021-01-25  Martin Liska  <mliska@suse.cz>
16811
16812         * value-prof.c (get_nth_most_common_value): Use %s instead
16813         of %qs string.
16814
16815 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
16816
16817         PR debug/98811
16818         * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
16819         readelf -wi is able to read the emitted .debug_info back.
16820         * configure: Regenerated.
16821
16822 2021-01-25  Martin Liska  <mliska@suse.cz>
16823
16824         PR gcov-profile/98739
16825         * common.opt: Add missing sign symbol.
16826         * value-prof.c (get_nth_most_common_value): Restore handling
16827         of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
16828         PROFILE_REPRODUCIBILITY_MULTITHREADED.
16829
16830 2021-01-25  Richard Biener  <rguenther@suse.de>
16831
16832         PR middle-end/98807
16833         * tree.c (vector_element_bits): Always use precision of
16834         the element type for boolean vectors.
16835
16836 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16837
16838         * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
16839         (ENDFILE_SPEC): Evaluate qnolinkcmds.
16840
16841 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16842
16843         * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
16844         nostartfiles handling since this is already done by
16845         LINK_COMMAND_SPEC.  Evaluate qnolinkcmds.
16846         (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
16847         is already done by LINK_COMMAND_SPEC.
16848         (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
16849         this is already done by LINK_COMMAND_SPEC.  Remove qnolinkcmds
16850         evaluation.
16851
16852 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
16853
16854         PR testsuite/98771
16855         * fold-const-call.c (host_size_t_cst_p): Renamed to ...
16856         (size_t_cst_p): ... this.  Check and store unsigned HOST_WIDE_INT
16857         value rather than host size_t.
16858         (fold_const_call): Change type of s2 from size_t to
16859         unsigned HOST_WIDE_INT.  Use size_t_cst_p instead of
16860         host_size_t_cst_p.  For strncmp calls, pass MIN (s2, SIZE_MAX)
16861         instead of s2 as last argument.
16862
16863 2021-01-25  Tamar Christina  <tamar.christina@arm.com>
16864
16865         * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
16866         VCMLA_OP, VCMUL_OP): New.
16867         * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
16868         * config/arm/neon.md (cmul<conj_op><mode>3): New.
16869         * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
16870         UNSPEC_VCMUL_CONJ): New.
16871         * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
16872         cml<fcmac1><conj_op><mode>4): New.
16873
16874 2021-01-23  Jakub Jelinek  <jakub@redhat.com>
16875
16876         PR testsuite/97301
16877         * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
16878
16879 2021-01-22  Jonathan Wright  <jonathan.wright@arm.com>
16880
16881         * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
16882         generator macro.
16883         * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
16884         than asm.
16885         (vmla_s16): Likewise.
16886         (vmla_s32): Likewise.
16887         (vmla_u8): Likewise.
16888         (vmla_u16): Likewise.
16889         (vmla_u32): Likewise.
16890         (vmlaq_s8): Likewise.
16891         (vmlaq_s16): Likewise.
16892         (vmlaq_s32): Likewise.
16893         (vmlaq_u8): Likewise.
16894         (vmlaq_u16): Likewise.
16895         (vmlaq_u32): Likewise.
16896
16897 2021-01-22  David Malcolm  <dmalcolm@redhat.com>
16898
16899         * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
16900         directive.
16901
16902 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
16903
16904         PR debug/98796
16905         * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
16906         filenames to emit, still emit the required 0 index directory and
16907         filename entries that match DW_AT_comp_dir and DW_AT_name of the
16908         compilation unit.
16909
16910 2021-01-22  Marek Polacek  <polacek@redhat.com>
16911
16912         PR c++/98545
16913         * doc/invoke.texi: Update C++ ABI Version 15 description.
16914
16915 2021-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16916
16917         PR tree-optimization/98766
16918         * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
16919         comparing against type size with param_avoid_fma_max_bits.
16920
16921 2021-01-22  Richard Biener  <rguenther@suse.de>
16922
16923         PR middle-end/98793
16924         * tree.c (vector_element_bits): Key single-bit bool vector on
16925         integer mode rather than not vector mode.
16926
16927 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
16928
16929         PR target/98093
16930         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16931         Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
16932         platforms.
16933         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
16934         to call different path for P8 and P9.
16935         (rs6000_expand_vector_set_var_p9): New function.
16936         (rs6000_expand_vector_set_var_p8): New function.
16937
16938 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
16939
16940         PR target/79251
16941         PR target/98065
16942         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16943         Ajdust variable index vec_insert from address dereference to
16944         ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
16945         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
16946         New declaration.
16947         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
16948
16949 2021-01-22  Martin Liska  <mliska@suse.cz>
16950
16951         PR gcov-profile/98739
16952         * profile.c (compute_value_histograms): Drop time profile for
16953         -fprofile-reproducible=multithreaded.
16954
16955 2021-01-22  Nathan Sidwell  <nathan@acm.org>
16956
16957         * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
16958         existence here.
16959
16960 2021-01-22  Richard Biener  <rguenther@suse.de>
16961
16962         PR middle-end/98773
16963         * tree-data-ref.c (initalize_matrix_A): Revert previous
16964         change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
16965
16966 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
16967
16968         PR tree-optimization/90248
16969         * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
16970         X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
16971         simplifications.
16972         (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
16973         X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
16974
16975 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
16976
16977         PR tree-optimization/98255
16978         * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
16979         extend index - low_bound from sizetype's precision rather than index
16980         precision.
16981         (get_addr_base_and_unit_offset_1): Likewise.
16982         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
16983         * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
16984
16985 2021-01-22  Richard Biener  <rguenther@suse.de>
16986
16987         PR tree-optimization/98786
16988         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
16989         adding new uses of abnormals.  Verify we deal with a conditional
16990         conversion.
16991
16992 2021-01-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
16993
16994         PR target/98636
16995         * optc-save-gen.awk: Add arm_fp16_format to checked_options.
16996
16997 2021-01-22  liuhongt  <hongtao.liu@intel.com>
16998
16999         PR target/96891
17000         PR target/98348
17001         * config/i386/sse.md (VI_128_256): New mode iterator.
17002         (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
17003          *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
17004          *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
17005         define_insn_and_split to lower avx512 vector comparison to avx
17006         version when dest is vector.
17007         (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
17008         define_insn_and_split for negating the comparison result.
17009         * config/i386/predicates.md (float_vector_all_ones_operand):
17010         New predicate.
17011         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
17012         general NOT operator without UNSPEC_MASKOP.
17013
17014 2021-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>
17015
17016         PR rtl-optimization/98777
17017         * lra-int.h (lra_pmode_pseudo): New extern.
17018         * lra.c (lra_pmode_pseudo): New global.
17019         (lra): Set it up.
17020         * lra-eliminations.c (eliminate_regs_in_insn): Use it.
17021
17022 2021-01-21  Ilya Leoshkevich  <iii@linux.ibm.com>
17023
17024         * fwprop.c (fwprop_propagation::classify_result): Allow
17025         (subreg (mem)) simplifications.
17026
17027 2021-01-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17028
17029         * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
17030         Split into...
17031         (aarch64_sqdmlal<mode>): ... This...
17032         (aarch64_sqdmlsl<mode>): ... And this.
17033         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
17034         (aarch64_sqdmlal_lane<mode>): ... This...
17035         (aarch64_sqdmlsl_lane<mode>): ... And this.
17036         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
17037         (aarch64_sqdmlsl_laneq<mode>): ... This...
17038         (aarch64_sqdmlal_laneq<mode>):  ... And this.
17039         (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
17040         (aarch64_sqdmlsl_n<mode>): ... This...
17041         (aarch64_sqdmlal_n<mode>): ... And this.
17042         (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
17043         (aarch64_sqdmlal2<mode>_internal): ... This...
17044         (aarch64_sqdmlsl2<mode>_internal): ... And this.
17045
17046 2021-01-21  Christophe Lyon  <christophe.lyon@linaro.org>
17047
17048         * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
17049
17050 2021-01-21  Andrea Corallo  <andrea.corallo@arm.com>
17051
17052         PR target/96372
17053         * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
17054
17055 2021-01-21  liuhongt  <hongtao.liu@intel.com>
17056
17057         PR rtl-optimization/98694
17058         * regcprop.c (copy_value): If SRC had been assigned a mode
17059         narrower than the copy, we can't link DEST into the chain even
17060         they have same hard_regno_nregs(i.e. HImode/SImode in i386
17061         backend).
17062
17063 2021-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17064
17065         * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
17066         Convert to define_insn_and_split.  Split into simple move when moving
17067         bottom element.
17068
17069 2021-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
17070
17071         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
17072         Adjust comment.  Simplify code.
17073
17074 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
17075
17076         PR debug/98765
17077         * dwarf2out.c (reset_indirect_string): Also reset indirect strings
17078         with DW_FORM_line_strp form.
17079         (prune_unused_types_update_strings): Don't add into debug_str_hash
17080         indirect strings with DW_FORM_line_strp form.
17081         (adjust_name_comp_dir): New function.
17082         (dwarf2out_finish): Call it on CU DIEs after resetting
17083         debug_line_str_hash.
17084
17085 2021-01-20  Vladimir N. Makarov  <vmakarov@redhat.com>
17086
17087         PR rtl-optimization/98722
17088         * lra-eliminations.c (eliminate_regs_in_insn): Check that target
17089         has no 3-op add insn to transform insns containing two pluses.
17090
17091 2021-01-20  Richard Biener  <rguenther@suse.de>
17092
17093         * hwint.h (add_hwi): New function.
17094         (mul_hwi): Likewise.
17095         * tree-data-ref.c (initialize_matrix_A): Properly translate
17096         tree constants and avoid HOST_WIDE_INT_MIN.
17097         (lambda_matrix_row_add): Avoid undefined integer overflow
17098         and return true on such overflow.
17099         (lambda_matrix_right_hermite): Handle overflow from
17100         lambda_matrix_row_add gracefully.  Simplify previous fix.
17101         (analyze_subscript_affine_affine): Likewise.
17102
17103 2021-01-20  Eugene Rozenfeld  <erozen@microsoft.com>
17104
17105         PR tree-optimization/96674
17106         * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
17107         x >= y && y != XXX_MIN --> x > y - 1
17108
17109 2021-01-20  Richard Sandiford  <richard.sandiford@arm.com>
17110
17111         PR tree-optimization/98535
17112         * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
17113         If the high and low permutes are the same, remove the high permutes
17114         from the working set and only continue with the low ones.
17115
17116 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
17117
17118         PR tree-optimization/98721
17119         * builtins.c (access_ref::inform_access): Don't assume
17120         SSA_NAME_IDENTIFIER must be non-NULL.  Print messages about
17121         object whenever allocfn is NULL, rather than only when DECL_P
17122         is true.  Use %qE instead of %qD for that.  Formatting fixes.
17123
17124 2021-01-20  Richard Biener  <rguenther@suse.de>
17125
17126         PR tree-optimization/98758
17127         * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
17128         (lambda_matrix_right_hermite): Avoid undefinedness with
17129         signed integer abs and multiplication.
17130         (analyze_subscript_affine_affine): Use lambda_int.
17131
17132 2021-01-20  David Malcolm  <dmalcolm@redhat.com>
17133
17134         PR debug/98751
17135         * dwarf2out.c (output_line_info): Rename static variable
17136         "generation", moving it out of the function to...
17137         (output_line_info_generation): New.
17138         (init_sections_and_labels): Likewise, renaming the variable to...
17139         (init_sections_and_labels_generation): New.
17140         (dwarf2out_c_finalize): Reset the new variables.
17141
17142 2021-01-19  Martin Sebor  <msebor@redhat.com>
17143
17144         PR middle-end/98664
17145         * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
17146         all functions, even if they're not declared artificial or inline.
17147         * tree.c (tree_inlined_location): Use macro expansion location
17148         only if scope traversal fails to expose one.
17149
17150 2021-01-19  Richard Sandiford  <richard.sandiford@arm.com>
17151
17152         PR rtl-optimization/92294
17153         * alias.c (compare_base_symbol_refs): Take an extra parameter
17154         and add the distance between two symbols to it.  Enshrine in
17155         comments that -1 means "either 0 or 1, but we can't tell
17156         which at compile time".
17157         (memrefs_conflict_p): Update call accordingly.
17158         (rtx_equal_for_memref_p): Likewise.  Take the distance between symbols
17159         into account.
17160
17161 2021-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17162
17163         * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
17164         sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
17165         uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
17166         sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
17167         sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
17168         sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
17169         sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
17170         sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
17171         sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
17172         uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
17173         sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
17174         sqmovun): Use NONE flags.
17175
17176 2021-01-19  Richard Biener  <rguenther@suse.de>
17177
17178         PR ipa/98330
17179         * ipa-modref.c (analyze_stmt): Only record a summary for a
17180         direct call.
17181
17182 2021-01-19  Richard Biener  <rguenther@suse.de>
17183
17184         PR middle-end/98638
17185         * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
17186
17187 2021-01-19  Daniel Hellstrom  <daniel@gaisler.com>
17188
17189         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
17190         built-in define __FIX_LEON3FT_TN0018.
17191
17192 2021-01-19  Richard Biener  <rguenther@suse.de>
17193
17194         PR ipa/97673
17195         * tree-inline.c (tree_function_versioning): Set input_location
17196         to UNKNOWN_LOCATION throughout the function.
17197
17198 2021-01-19  Tobias Burnus  <tobias@codesourcery.com>
17199
17200         PR fortran/98476
17201         * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
17202
17203 2021-01-19  Martin Jambor  <mjambor@suse.cz>
17204
17205         PR ipa/98690
17206         * ipa-sra.c (ssa_name_only_returned_p): New parameter fun.  Check
17207         whether non-call exceptions allow removal of a statement.
17208         (isra_analyze_call): Pass the appropriate function to
17209         ssa_name_only_returned_p.
17210
17211 2021-01-19  Geng Qi  <gengqi@linux.alibaba.com>
17212
17213         * config/riscv/arch-canonicalize (longext_sort): New function for
17214          sorting 'multi-letter'.
17215         * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
17216         'alts'. The 'arch' may not be the first of 'alts'.
17217         (_expand_combination): Add underline for the 'ext' without '*'.
17218         This is because, a single-letter extension can always be treated well
17219         with a '_' prefix, but it cannot be separated out if it is appended
17220         to a multi-letter.
17221
17222 2021-01-18  Vladimir N. Makarov  <vmakarov@redhat.com>
17223
17224         PR target/97847
17225         * ira.c (ira): Skip abnormal critical edge splitting.
17226
17227 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
17228
17229         PR tree-optimization/98727
17230         * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
17231         second .MUL_OVERFLOW operand for signed multiplication with overflow
17232         checking if the second operand of multiplication is not constant.
17233
17234 2021-01-18  David Edelsohn  <dje.gcc@gmail.com>
17235
17236         * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
17237         defaults to version 4.
17238
17239 2021-01-18  David Malcolm  <dmalcolm@redhat.com>
17240
17241         * attribs.h (fndecl_dealloc_argno): New decl.
17242         * builtins.c (call_dealloc_argno): Split out second half of
17243         function into...
17244         (fndecl_dealloc_argno): New.
17245         * doc/extend.texi (Common Function Attributes): Document the
17246         interaction between the analyzer and the malloc attribute.
17247         * doc/invoke.texi (Static Analyzer Options): Likewise.
17248
17249 2021-01-17  David Edelsohn  <dje.gcc@gmail.com>
17250
17251         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
17252         dwarf_version to 4.
17253         * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
17254
17255 2021-01-17  Martin Jambor  <mjambor@suse.cz>
17256
17257         PR ipa/98222
17258         * cgraph.c (clone_of_p): Check also former_clone_of as we climb
17259         the clone tree.
17260
17261 2021-01-17  Mark Wielaard  <mark@klomp.org>
17262
17263         * common.opt (gdwarf-): Init(5).
17264         * doc/invoke.texi (-gdwarf): Document default to 5.
17265
17266 2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
17267
17268         * builtin-types.def
17269         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
17270         to...
17271         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
17272         ...this.  Add extra argument.
17273         * gimplify.c (omp_default_clause): Ensure that event handle is
17274         firstprivate in a task region.
17275         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
17276         (gimplify_adjust_omp_clauses): Likewise.
17277         * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
17278         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
17279         * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
17280         if detach clause specified.  Add detach argument when generating
17281         call to GOMP_task.
17282         * omp-low.c (scan_sharing_clauses): Setup data environment for detach
17283         clause.
17284         (finish_taskreg_scan): Move field for variable containing the event
17285         handle to the front of the struct.
17286         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH.  Fix
17287         ordering.
17288         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
17289         OMP_CLAUSE_DETACH clause.
17290         (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
17291         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
17292         * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
17293         Fix ordering.
17294         (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH.  Fix
17295         ordering.
17296         (walk_tree_1): Handle OMP_CLAUSE_DETACH.
17297
17298 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17299
17300         * config/nios2/t-rtems: Reset all MULTILIB_* variables.  Shorten
17301         multilib directory names.  Use MULTILIB_REQUIRED instead of
17302         MULTILIB_EXCEPTIONS.  Add -mhw-mul -mhw-mulx -mhw-div
17303         -mcustom-fpu-cfg=fph2 multilib.
17304
17305 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17306
17307         * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
17308         (nios2_init_fpu_configs): Provide register values for new
17309         -mcustom-fpu-cfg=fph2 option variant.
17310         * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
17311         variant.
17312
17313 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17314
17315         * config/nios2/nios2.c (nios2_custom_check_insns): Remove
17316         custom instruction warnings.
17317
17318 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
17319
17320         PR tree-optimization/96669
17321         * match.pd ((CST << x) & 1 -> x == 0): New simplification.
17322
17323 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
17324
17325         PR tree-optimization/96271
17326         * passes.def: Pass false argument to first two pass_cd_dce
17327         instances and true to last instance.  Add comment that
17328         last instance rewrites no longer addressed locals.
17329         * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
17330         initialize it.
17331         (pass_cd_dce::set_pass_param): New method.
17332         (pass_cd_dce::execute): Return TODO_update_address_taken from
17333         last cd_dce instance.
17334
17335 2021-01-15  Carl Love  <cel@us.ibm.com>
17336
17337         * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
17338         New defines.
17339         * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
17340         * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
17341         DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
17342         DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
17343         MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
17344         Add builtin define.
17345         (MULH, DIVE, MOD):  Add new BU_P10_OVERLOAD_2 definitions.
17346         * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
17347         VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
17348         New overloaded definitions.
17349         (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
17350         P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
17351         P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
17352         P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
17353         P10V_BUILTIN_MULHU_V4SI]: Add case
17354         statement for builtins.
17355         * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
17356         * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
17357         (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
17358         (vsx_mul_v2di): Add if TARGET_POWER10 statement.
17359         (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
17360         (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
17361         mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
17362         Add define_insn, mode is VIlong.
17363         * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
17364         Add builtin descriptions.
17365
17366 2021-01-15  Eric Botcazou  <ebotcazou@adacore.com>
17367
17368         * final.c (final_start_function_1): Reset force_source_line.
17369
17370 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
17371
17372         PR tree-optimization/96669
17373         * match.pd (((1 << A) & 1) != 0 -> A == 0,
17374         ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
17375         possibly different power of two constants and to right shift too.
17376
17377 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
17378
17379         PR tree-optimization/96681
17380         * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
17381         ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
17382         ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
17383         ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
17384
17385 2021-01-15  Alexandre Oliva  <oliva@adacore.com>
17386
17387         * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
17388
17389 2021-01-15  Tamar Christina  <tamar.christina@arm.com>
17390
17391         * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
17392         cmul<conj_op><mode>3): New.
17393         * config/aarch64/iterators.md (UNSPEC_FCMUL,
17394         UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
17395         UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
17396         FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
17397         sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
17398         (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
17399         (rot_op): Renamed to conj_op.
17400         * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
17401         cmul<conj_op><mode>3): New.
17402         * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
17403         cmul<conj_op><mode>3): New.
17404
17405 2021-01-15  David Malcolm  <dmalcolm@redhat.com>
17406
17407         PR bootstrap/98696
17408         * diagnostic.c
17409         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
17410         Escape the tempfile name when constructing the expected output.
17411
17412 2021-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17413
17414         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
17415         Rename to...
17416         (aarch64_<su>mlsl_hi<mode>): ... This.
17417         (aarch64_<su>mlsl_hi<mode>): Define.
17418         (*aarch64_<su>mlsl<mode): Rename to...
17419         (aarch64_<su>mlsl<mode): ... This.
17420         * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
17421         smlsl_hi, umlsl_hi): Define builtins.
17422         * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
17423         vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
17424         vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
17425         vmlsl_u16, vmlsl_u32): Reimplement with builtins.
17426
17427 2021-01-15  Uroš Bizjak  <ubizjak@gmail.com>
17428
17429         * config/i386/i386-c.c (ix86_target_macros):
17430         Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
17431
17432 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
17433
17434         PR target/88836
17435         * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
17436         * Makefile.in (RTL_SSA_H): New variable.
17437         * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
17438         * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
17439         * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
17440         pass_combine.
17441         * config/aarch64/aarch64-cc-fusion.cc: New file.
17442
17443 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
17444
17445         * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
17446         calling cancel_changes for changes that no longer exist.
17447
17448 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
17449
17450         * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
17451         (function_info::reg_defs): ...this.
17452         * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
17453         (function_info::reg_defs): ...this.
17454
17455 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
17456
17457         PR target/71233
17458         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
17459
17460 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
17461
17462         Revert:
17463         2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
17464
17465         PR target/71233
17466         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
17467
17468 2021-01-15  Richard Biener  <rguenther@suse.de>
17469
17470         PR tree-optimization/96376
17471         * tree-vect-stmts.c (get_load_store_type): Disregard alignment
17472         for VMAT_INVARIANT.
17473
17474 2021-01-15  Martin Liska  <mliska@suse.cz>
17475
17476         * doc/install.texi: Document that some tests need pytest module.
17477         * doc/sourcebuild.texi: Likewise.
17478
17479 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
17480
17481         PR target/71233
17482         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
17483
17484 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
17485
17486         * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
17487         (mve_vshrq_n_u<mode>_imm): Likewise.
17488         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
17489         * config/arm/vec-common.md: ... here.
17490
17491 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
17492
17493         * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
17494         vec-commond.md.
17495         * config/arm/neon.md (vashl<mode>3): Delete.
17496         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
17497         (vasl<mode>3): New expander.
17498
17499 2021-01-15  Richard Biener  <rguenther@suse.de>
17500
17501         PR tree-optimization/98685
17502         * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
17503         of vector extern defs.
17504
17505 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
17506
17507         PR jit/98586
17508         * diagnostic.c (diagnostic_kind_text): Break out this array
17509         from...
17510         (diagnostic_build_prefix): ...here.
17511         (fancy_abort): Detect when diagnostic_initialize has not yet been
17512         called and fall back to a minimal implementation of printing the
17513         ICE, rather than segfaulting in internal_error.
17514
17515 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
17516
17517         * diagnostic.c (diagnostic_initialize): Eliminate
17518         parseable_fixits_p in favor of initializing extra_output_kind from
17519         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
17520         (convert_column_unit): New function, split out from...
17521         (diagnostic_converted_column): ...this.
17522         (print_parseable_fixits): Add "column_unit" and "tabstop" params.
17523         Use them to call convert_column_unit on the column values.
17524         (diagnostic_report_diagnostic): Eliminate conditional on
17525         parseable_fixits_p in favor of a switch statement on
17526         extra_output_kind, passing the appropriate values to the new
17527         params of print_parseable_fixits.
17528         (selftest::test_print_parseable_fixits_none): Update for new
17529         params of print_parseable_fixits.
17530         (selftest::test_print_parseable_fixits_insert): Likewise.
17531         (selftest::test_print_parseable_fixits_remove): Likewise.
17532         (selftest::test_print_parseable_fixits_replace): Likewise.
17533         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
17534         New.
17535         (selftest::diagnostic_c_tests): Call it.
17536         * diagnostic.h (enum diagnostics_extra_output_kind): New.
17537         (diagnostic_context::parseable_fixits_p): Delete field in favor
17538         of...
17539         (diagnostic_context::extra_output_kind): ...this new field.
17540         * doc/invoke.texi (Environment Variables): Add
17541         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
17542         * opts.c (common_handle_option): Update handling of
17543         OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
17544         fields.
17545
17546 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
17547
17548         * tree-vect-slp-patterns.c (class complex_operations_pattern,
17549         complex_operations_pattern::matches,
17550         complex_operations_pattern::recognize,
17551         complex_operations_pattern::build): New.
17552         (slp_patterns): Use it.
17553
17554 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
17555
17556         * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
17557         * optabs.def (cmls_optab, cmls_conj_optab): New.
17558         * doc/md.texi: Document them.
17559         * tree-vect-slp-patterns.c (class complex_fms_pattern,
17560         complex_fms_pattern::matches, complex_fms_pattern::recognize,
17561         complex_fms_pattern::build): New.
17562
17563 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
17564
17565         * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
17566         * optabs.def (cmla_optab, cmla_conj_optab): New.
17567         * doc/md.texi: Document them.
17568         * tree-vect-slp-patterns.c (vect_match_call_p,
17569         class complex_fma_pattern, vect_slp_reset_pattern,
17570         complex_fma_pattern::matches, complex_fma_pattern::recognize,
17571         complex_fma_pattern::build): New.
17572
17573 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
17574
17575         * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
17576         * optabs.def (cmul_optab, cmul_conj_optab): New.
17577         * doc/md.texi: Document them.
17578         * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
17579         vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
17580         vect_build_combine_node, class complex_mul_pattern,
17581         complex_mul_pattern::matches, complex_mul_pattern::recognize,
17582         complex_mul_pattern::build): New.
17583
17584 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
17585
17586         * tree-vect-slp.c (optimize_load_redistribution_1): New.
17587         (optimize_load_redistribution, vect_is_slp_load_node): New.
17588         (vect_match_slp_patterns): Use it.
17589
17590 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
17591
17592         * tree-vect-slp-patterns.c (complex_add_pattern::build):
17593         Elide nodes.
17594
17595 2021-01-14  Thomas Schwinge  <thomas@codesourcery.com>
17596
17597         * config/gcn/mkoffload.c (main): Create an offload image only in
17598         64-bit configurations.
17599
17600 2021-01-14  H.J. Lu  <hjl.tools@gmail.com>
17601
17602         PR target/98667
17603         * config/i386/i386-options.c (ix86_option_override_internal):
17604         Issue an error for -fcf-protection with CF_BRANCH when compiling
17605         for 32-bit non-TARGET_CMOV targets.
17606
17607 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
17608
17609         PR target/98671
17610         * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
17611         Remove declaration and initialization of shadow variable "ret".
17612         (ix86_option_override_internal): Remove delcaration of
17613         shadow variable "i".  Redeclare shadowed variable to unsigned.
17614         * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
17615         * config/i386/i386-builtins.c (get_builtin_code_for_version):
17616         Update for redeclaration.
17617         * config/i386/i386.h (pta_size): Ditto.
17618
17619 2021-01-14  Richard Biener  <rguenther@suse.de>
17620
17621         PR tree-optimization/98674
17622         * tree-data-ref.c (base_supports_access_fn_components_p): New.
17623         (initialize_data_dependence_relation): For two bases without
17624         possible access fns resort to type size equality when determining
17625         shape compatibility.
17626
17627 2021-01-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
17628
17629         PR target/66791
17630         * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
17631         <=, >= operators in vcle and vcge intrinsics respectively.
17632         * config/arm/arm_neon_builtins.def: Remove entry for
17633         vcge and vcgeu.
17634
17635 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
17636
17637         PR target/98671
17638         * config/i386/i386-options.c (ix86_function_specific_save):
17639         Remove redundant assignment to opts->x_ix86_branch_cost.
17640         * config/i386/i386.c (ix86_prefetch_sse):
17641         Rename from x86_prefetch_sse.  Update all uses.
17642         * config/i386/i386.h: Update for rename.
17643         * config/i386/i386-options.h: Ditto.
17644
17645 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
17646
17647         PR target/98670
17648         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
17649         *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
17650         Use Bm instead of m for non-avx.  Add isa attribute.
17651
17652 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
17653
17654         PR tree-optimization/96688
17655         * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
17656         ~X can be simplified.
17657
17658 2021-01-14  Richard Sandiford  <richard.sandiford@arm.com>
17659
17660         * tree-vect-stmts.c (vect_model_load_cost): Account for unused
17661         IFN_LOAD_LANES results.
17662
17663 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17664
17665         * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
17666         Define.
17667         (aarch64_xtn<mode>): Likewise.
17668         * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
17669         Define
17670         builtins.
17671         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
17672         builtin.
17673         (vmovl_s16): Likewise.
17674         (vmovl_s32): Likewise.
17675         (vmovl_u8): Likewise.
17676         (vmovl_u16): Likewise.
17677         (vmovl_u32): Likewise.
17678         (vmovn_s16): Likewise.
17679         (vmovn_s32): Likewise.
17680         (vmovn_s64): Likewise.
17681         (vmovn_u16): Likewise.
17682         (vmovn_u32): Likewise.
17683         (vmovn_u64): Likewise.
17684
17685 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17686
17687         * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
17688         Define.
17689         (aarch64_<su>qxtn2<mode>_be): Likewise.
17690         (aarch64_<su>qxtn2<mode>): Likewise.
17691         * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
17692         Define builtins.
17693         * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
17694         (su): Handle ss_truncate and us_truncate.
17695         * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
17696         builtin.
17697         (vqmovn_high_s32): Likewise.
17698         (vqmovn_high_s64): Likewise.
17699         (vqmovn_high_u16): Likewise.
17700         (vqmovn_high_u32): Likewise.
17701         (vqmovn_high_u64): Likewise.
17702
17703 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17704
17705         * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
17706         Define.
17707         (aarch64_xtn2<mode>_be): Likewise.
17708         (aarch64_xtn2<mode>): Likewise.
17709         * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
17710         builtins.
17711         * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
17712         builtins.
17713         (vmovn_high_s32): Likewise.
17714         (vmovn_high_s64): Likewise.
17715         (vmovn_high_u16): Likewise.
17716         (vmovn_high_u32): Likewise.
17717         (vmovn_high_u64): Likewise.
17718
17719 2021-01-13  Stafford Horne  <shorne@gmail.com>
17720
17721         * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
17722
17723 2021-01-13  Stafford Horne  <shorne@gmail.com>
17724
17725         * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
17726
17727 2021-01-13  Stafford Horne  <shorne@gmail.com>
17728
17729         * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
17730           define for __or1k_hard_float__.
17731
17732 2021-01-13  Stafford Horne  <shorne@gmail.com>
17733
17734         * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
17735         (PROFILE_HOOK): Define to call _mcount.
17736         (FUNCTION_PROFILER): Change from abort to no-op.
17737
17738 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
17739
17740         PR tree-optimization/96691
17741         * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
17742         (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
17743         (~D ^ C) or (D ^ C) can be simplified.
17744
17745 2021-01-13  Richard Biener  <rguenther@suse.de>
17746
17747         PR tree-optimization/92645
17748         * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
17749         until after vector lowering.
17750
17751 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
17752
17753         * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
17754         to SVE_I.
17755         (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
17756         (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
17757
17758 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
17759
17760         * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
17761         to SVE_I.
17762         (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
17763         (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
17764
17765 2021-01-13  Richard Biener  <rguenther@suse.de>
17766
17767         PR tree-optimization/92645
17768         * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
17769         BIT_FIELD_REF argument.
17770         (vect_build_slp_tree_2): Record the desired vector type
17771         on the external vector def.
17772         (vectorizable_slp_permutation): Handle required punning
17773         of existing vector defs.
17774
17775 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
17776
17777         * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
17778
17779 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
17780
17781         * config/sh/sh.md (movsf_ie): Remove operands[2] test.
17782
17783 2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>
17784
17785         * config.gcc [$target == *-*-gnu*]: Enable
17786         'default_gnu_indirect_function'.
17787
17788 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
17789
17790         PR target/95905
17791         * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
17792         registers before calling targetm.vectorize.vec_perm_const, only after
17793         that.
17794         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
17795         two argument permutation when one operand is zero vector and only
17796         after that force operands into registers.
17797         * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
17798         define_insn_and_split pattern.
17799         (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
17800         (*avx512f_zero_extendv16hiv16si2_1): Likewise.
17801         (*avx2_zero_extendv8hiv8si2_1): Likewise.
17802         (*avx512f_zero_extendv8siv8di2_1): Likewise.
17803         (*avx2_zero_extendv4siv4di2_1): Likewise.
17804         * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
17805         into registers.
17806         * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
17807         * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
17808         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
17809         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
17810         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
17811         * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise.  Use std::swap.
17812
17813 2021-01-13  Martin Liska  <mliska@suse.cz>
17814
17815         PR tree-optimization/98455
17816         * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
17817         Record also virtual PHIs.
17818         (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
17819         conditionally.
17820
17821 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
17822
17823         * doc/invoke.texi (C++ Modules): Fix typos.
17824
17825 2021-01-13  Richard Biener  <rguenther@suse.de>
17826
17827         PR tree-optimization/98640
17828         * tree-ssa-sccvn.c (visit_nary_op): Do not try to
17829         handle plus or minus from a truncated operand to be
17830         sign-extended.
17831
17832 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
17833
17834         PR target/96938
17835         * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
17836         define_insn_and_split patterns.
17837         (splitter after *btr<mode>_2): New splitter.
17838
17839 2021-01-13  Martin Liska  <mliska@suse.cz>
17840
17841         PR ipa/98652
17842         * cgraphunit.c (analyze_functions): Remove dead code.
17843
17844 2021-01-13  Qian Jianhua  <qianjh@cn.fujitsu.com>
17845
17846         * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
17847         * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
17848         (a64fx_regmove_cost, a64fx_vector_cost): New.
17849         (a64fx_tunings): Use the new added cost tables.
17850
17851 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
17852
17853         PR target/95905
17854         * config/i386/predicates.md (pmovzx_parallel): New predicate.
17855         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
17856         define_insn_and_split pattern.
17857         (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
17858         (*sse4_1_zero_extendv2siv2di2_3): Likewise.
17859
17860 2021-01-13  Julian Brown  <julian@codesourcery.com>
17861
17862         * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
17863         to fix v0 register.
17864
17865 2021-01-13  Julian Brown  <julian@codesourcery.com>
17866
17867         * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
17868         on entry to a BB.
17869
17870 2021-01-13  Julian Brown  <julian@codesourcery.com>
17871
17872         * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
17873         for reciprocal-approximation instructions.
17874         (div<mode>3): Use fused multiply-accumulate operations for reciprocal
17875         refinement and division result.
17876         * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
17877
17878 2021-01-13  Julian Brown  <julian@codesourcery.com>
17879
17880         * config/gcn/gcn-valu.md (subdf): Rename to...
17881         (subdf3): This.
17882
17883 2021-01-12  Martin Liska  <mliska@suse.cz>
17884
17885         * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
17886
17887 2021-01-12  Andrea Corallo  <andrea.corallo@arm.com>
17888
17889         * function-abi.h: Fix typo.
17890
17891 2021-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
17892
17893         PR target/97875
17894         PR target/97875
17895         * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
17896         (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
17897         (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
17898         (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
17899         (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
17900         (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
17901         (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
17902         (ARM_HAVE_NEON_V2DI_LDST): Likewise.
17903         (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
17904         (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
17905         (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
17906         (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
17907         (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
17908         (ARM_HAVE_V2DI_LDST): Likewise.
17909         * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
17910         (*movmisalign<mode>_mve_load): New pattern.
17911         * config/arm/neon.md (movmisalign<mode>): Move to ...
17912         * config/arm/vec-common.md: ... here.
17913
17914 2021-01-12  Vladimir N. Makarov  <vmakarov@redhat.com>
17915
17916         PR target/97969
17917         * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
17918         of pattern 'plus (plus (hard reg, const), pseudo)'.
17919
17920 2021-01-12  Richard Biener  <rguenther@suse.de>
17921
17922         PR tree-optimization/98550
17923         * tree-vect-slp.c (vect_record_max_nunits): Check whether
17924         the group size is a multiple of the vector element count.
17925         (vect_build_slp_tree_1): When we need to fail because
17926         the vector type choosen causes unrolling do so lazily
17927         without affecting matches only at the end to guide group splitting.
17928
17929 2021-01-12  Martin Liska  <mliska@suse.cz>
17930
17931         PR c++/97284
17932         * optc-save-gen.awk: Compare also n_target_save vars with
17933         strcmp.
17934
17935 2021-01-12  Martin Liska  <mliska@suse.cz>
17936
17937         * gcov.c (source_info::debug): New.
17938         (print_usage): Add --debug (-D) option.
17939         (process_args): Likewise.
17940         (generate_results): Call src->debug after
17941         accumulate_line_counts.
17942         (read_graph_file): Properly assign id for EXIT_BLOCK.
17943         * profile.c (branch_prob): Dump function body before it is
17944         instrumented.
17945
17946 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
17947
17948         PR tree-optimization/98629
17949         * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
17950         unless returning non-zero.
17951
17952 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
17953
17954         PR tree-optimization/95731
17955         * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
17956         x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
17957         (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
17958         only after optimize_range_tests_var_bound.
17959
17960 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
17961
17962         * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
17963         * configure: Regenerated.
17964
17965 2021-01-12  liuhongt  <hongtao.liu@intel.com>
17966
17967         PR target/98612
17968         * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
17969         Deleted.
17970         * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
17971         dead code.
17972
17973 2021-01-12  Alexandre Oliva  <oliva@adacore.com>
17974
17975         * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
17976         declare.
17977         (auto_end_imm_use_stmt_traverse): New struct.
17978         (FOR_EACH_IMM_USE_STMT): Use it.
17979         (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
17980         along with uses...
17981         * gimple-ssa-strength-reduction.c: ... here, ...
17982         * graphite-scop-detection.c: ... here, ...
17983         * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
17984         * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
17985         * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
17986         * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
17987         * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
17988         * tree-vect-slp.c: ... and here, ...
17989         * doc/tree-ssa.texi: ... and the example here.
17990
17991 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
17992
17993         * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
17994         SVE_FULL_I to SVE_I.  Generate an UNSPEC_PRED_X.
17995         (*sdiv_pow2<mode>3): New pattern.
17996         (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
17997         Wrap the ASRD in an UNSPEC_PRED_X.
17998         (*cond_<sve_int_op><mode>_2): Likewise.  Replace the UNSPEC_PRED_X
17999         predicate with a constant PTRUE, if it isn't already.
18000         (*cond_<sve_int_op><mode>_z): Replace with...
18001         (*cond_<sve_int_op><mode>_any): ...this new pattern.
18002
18003 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
18004
18005         * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
18006         SVE_FULL_I to SVE_I.
18007         (*cond_bic<mode>_any): Likewise.
18008
18009 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
18010
18011         * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
18012         (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
18013         to SVE_I.
18014
18015 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
18016
18017         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
18018         SVE_FULL_I to SVE_I.
18019         (*aarch64_cond_<su>abd<mode>_2): Likewise.
18020         (*aarch64_cond_<su>abd<mode>_any): Likewise.
18021         (@aarch64_pred_<su>abd<mode>): Likewise.  Use UNSPEC_PRED_X
18022         for the max and min but not for the minus.
18023         (*aarch64_cond_<su>abd<mode>_3): New pattern.
18024
18025 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
18026
18027         * config/aarch64/iterators.md (SVE_24I): New iterator.
18028         * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
18029         SVE_FULL_SDI to SVE_24I.  Use containers rather than elements.
18030
18031 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
18032
18033         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
18034         (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
18035         to SVE_I.
18036         (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
18037         (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
18038         (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
18039         (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
18040
18041 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
18042
18043         * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
18044         (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
18045         (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
18046         to SVE_I.
18047
18048 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
18049
18050         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
18051         (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
18052         (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
18053
18054 2021-01-11  Martin Liska  <mliska@suse.cz>
18055
18056         PR jit/98615
18057         * symtab-clones.h (clone_info::release): Release
18058         symtab::m_clones with ggc_delete as it's a GGC memory.
18059
18060 2021-01-11  Matthias Klose  <doko@ubuntu.com>
18061
18062         * Makefile.in (LINK_PROGRESS): Show the link target.
18063
18064 2021-01-11  Richard Biener  <rguenther@suse.de>
18065
18066         PR tree-optimization/91403
18067         * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
18068         single-element interleaving group size at 4096 elements.
18069
18070 2021-01-11  Richard Biener  <rguenther@suse.de>
18071
18072         PR tree-optimization/98526
18073         * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
18074         of the actual reduction op for the regular case.
18075         (vectorizable_reduction): Cost the stmts
18076         vect_transform_reduction produces here.
18077
18078 2021-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>
18079
18080         * tree-ssa-forwprop.c (simplify_vector_constructor): For
18081         big-endian, use UNPACK[_FLOAT]_HI.
18082
18083 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
18084
18085         * tree-vect-slp-patterns.c (class complex_pattern,
18086         class complex_add_pattern): Add parameters to matches.
18087         (complex_add_pattern::build): Free memory.
18088         (complex_add_pattern::matches): Move validation end of match.
18089         (complex_add_pattern::recognize): Likewise.
18090
18091 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
18092
18093         * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
18094
18095 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
18096
18097         * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
18098
18099 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
18100
18101         PR tree-optimization/95867
18102         * tree-ssa-math-opts.h: New header.
18103         * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
18104         (powi_as_mults): No longer static.  Use build_one_cst instead of
18105         build_real.  Formatting fix.
18106         * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
18107         (attempt_builtin_powi): Handle multiplication reassociation without
18108         powi_fndecl using powi_as_mults.
18109         (reassociate_bb): For integral types don't require
18110         -funsafe-math-optimizations to call attempt_builtin_powi.
18111
18112 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
18113
18114         PR tree-optimization/95852
18115         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
18116         mul_stmts parameter type to vec<gimple *> &.  Before cond_stmt
18117         allow in the bb any of the stmts in that vector, div_stmt and
18118         up to 3 cast stmts.
18119         (arith_cast_equal_p): New function.
18120         (arith_overflow_check_p): Add cast_stmt argument, handle signed
18121         multiply overflow checks.
18122         (match_arith_overflow): Adjust caller.  Handle signed multiply
18123         overflow checks.
18124
18125 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
18126
18127         PR tree-optimization/95852
18128         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
18129         (uaddsub_overflow_check_p): Renamed to ...
18130         (arith_overflow_check_p): ... this.  Handle also multiplication
18131         with overflow check.
18132         (match_uaddsub_overflow): Renamed to ...
18133         (match_arith_overflow): ... this.  Add cfg_changed argument.  Handle
18134         also multiplication with overflow check.  Adjust function comment.
18135         (math_opts_dom_walker::after_dom_children): Adjust callers.  Call
18136         match_arith_overflow also for MULT_EXPR.
18137
18138 2021-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18139
18140         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
18141         __builtin_convertvector.
18142         (vmovl_s16): Likewise.
18143         (vmovl_s32): Likewise.
18144         (vmovl_u8): Likewise.
18145         (vmovl_u16): Likewise.
18146         (vmovl_u32): Likewise.
18147         (vmovn_s16): Likewise.
18148         (vmovn_s32): Likewise.
18149         (vmovn_s64): Likewise.
18150         (vmovn_u16): Likewise.
18151         (vmovn_u32): Likewise.
18152         (vmovn_u64): Likewise.
18153
18154 2021-01-11  Martin Liska  <mliska@suse.cz>
18155
18156         * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
18157         (if_chain::is_beneficial): Delete clusters
18158         (find_conditions): Make second argument of conditions_in_bbs a
18159         pointer so that we control over it's lifetime.
18160         (pass_if_to_switch::execute): Delete them.
18161
18162 2021-01-11  Kewen Lin  <linkw@linux.ibm.com>
18163
18164         * ira.c (move_unallocated_pseudos): Check other_reg and skip if
18165         it isn't set.
18166
18167 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
18168
18169         * config/vax/vax.md (cc): Remove mode attribute.
18170         (subst_<cc>, subst_f<cc>): Rename to...
18171         (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
18172         (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
18173         (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
18174         (*branch_<mode>, *branch_<mode>_reversed): Likewise.
18175
18176 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
18177
18178         * config/vax/vax.md (subst_f<cc>): Add mode to operands and
18179         `const_double_zero'.
18180
18181 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
18182
18183         * config/pdp11/pdp11.md (PDPfp): New mode iterator.
18184         (fcc_cc, fcc_ccnz): Use it.  Add mode to `const_double_zero' and
18185         operands.
18186
18187 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
18188
18189         * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
18190         rtx.
18191         * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
18192         with `const_double_zero'.
18193         * doc/rtl.texi (Constant Expression Types): Document it.
18194
18195 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
18196
18197         PR c++/98556
18198         * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
18199         POINTER_DIFF_EXPR to be any integral type.
18200
18201 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
18202
18203         PR rtl-optimization/98603
18204         * function.c (instantiate_virtual_regs_in_insn): For asm goto
18205         with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
18206         if any, set ASM_OPERANDS mode to VOIDmode and change
18207         ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
18208
18209 2021-01-09  Alexandre Oliva  <oliva@gnu.org>
18210
18211         PR debug/97714
18212         * final.c (notice_source_line): Narrow down the condition to
18213         skip a line-0 marker.
18214
18215 2021-01-08  Sergei Trofimovich  <siarheit@google.com>
18216
18217         * ipa-modref.c (merge_call_side_effects): Fix
18218         linebreak split by reordering two print calls.
18219
18220 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
18221
18222         * config/s390/vector.md (*tf_to_fprx2_0): Rename from
18223         "*mov_tf_to_fprx2_0" for consistency, fix constraint.
18224         (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
18225         consistency, fix constraint.
18226
18227 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
18228
18229         * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
18230         callables instead of mask values.
18231         (struct target_flag_set_p): New predicate.
18232         (s390_cpu_cpp_builtins_internal): Define or undefine
18233         __LONG_DOUBLE_VX__ macro.
18234
18235 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
18236
18237         PR target/98482
18238         * config/i386/i386.c (x86_function_profiler): Use R10 and R11
18239         to call mcount in large model with PIC for NO_PROFILE_COUNTERS
18240         targets.
18241
18242 2021-01-08  Richard Biener  <rguenther@suse.de>
18243
18244         * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
18245
18246 2021-01-08  Richard Biener  <rguenther@suse.de>
18247
18248         * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
18249         (vect_build_slp_tree): On cache hit release the matched
18250         scalar stmts vector.
18251         * tree-vect-stmts.c (vectorizable_store): Properly free
18252         vec_oprnds before possibly gathering them again.
18253
18254 2021-01-08  Richard Biener  <rguenther@suse.de>
18255
18256         PR tree-optimization/98544
18257         * tree-vect-slp.c (vect_optimize_slp): Always materialize
18258         permutes at a permute node.
18259
18260 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
18261
18262         PR target/98482
18263         * config/i386/i386.c (x86_function_profiler): Use R10 to call
18264         mcount in large model.  Sorry for large model with PIC.
18265
18266 2021-01-08  Jakub Jelinek  <jakub@redhat.com>
18267
18268         PR target/98585
18269         * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
18270         ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
18271         ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
18272         TargetSave and initialize for variables with enum types.
18273         (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
18274         mstack-protector-guard-symbol=): Add Save.
18275         * config/i386/i386-options.c (ix86_function_specific_save,
18276         ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
18277         x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
18278         x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
18279         x_ix86_veclibabi_type.
18280
18281 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
18282
18283         * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
18284         SVE_FULL_I to SVE_I.
18285         (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
18286
18287 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
18288
18289         * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
18290         SVE_FULL_I to SVE_I.
18291         (*cond_uxt<mode>_any): Likewise.
18292
18293 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18294
18295         * config/aarch64/iterators.md (Vwhalf): New iterator.
18296         * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
18297         Rename to...
18298         (aarch64_<sur>adalp<mode>): ... This.  Make more
18299         builtin-friendly.
18300         (<sur>sadv16qi): Adjust callsite of the above.
18301         * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
18302         builtins.
18303         * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
18304         builtins.
18305         (vpadal_s16): Likewise.
18306         (vpadal_u8): Likewise.
18307         (vpadal_u16): Likewise.
18308         (vpadalq_s8): Likewise.
18309         (vpadalq_s16): Likewise.
18310         (vpadalq_s32): Likewise.
18311         (vpadalq_u8): Likewise.
18312         (vpadalq_u16): Likewise.
18313         (vpadalq_u32): Likewise.
18314
18315 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18316
18317         * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
18318         Rename to...
18319         (aarch64_<su>abd<mode>): ... This.
18320         (<sur>sadv16qi): Adjust callsite of the above.
18321         * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
18322         builtins.
18323         * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
18324         builtin.
18325         (vabd_s16): Likewise.
18326         (vabd_s32): Likewise.
18327         (vabd_u8): Likewise.
18328         (vabd_u16): Likewise.
18329         (vabd_u32): Likewise.
18330         (vabdq_s8): Likewise.
18331         (vabdq_s16): Likewise.
18332         (vabdq_s32): Likewise.
18333         (vabdq_u8): Likewise.
18334         (vabdq_u16): Likewise.
18335         (vabdq_u32): Likewise.
18336
18337 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18338
18339         * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
18340         builtins.
18341         * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
18342         (vaba_s16): Likewise.
18343         (vaba_s32): Likewise.
18344         (vaba_u8): Likewise.
18345         (vaba_u16): Likewise.
18346         (vaba_u32): Likewise.
18347         (vabaq_s8): Likewise.
18348         (vabaq_s16): Likewise.
18349         (vabaq_s32): Likewise.
18350         (vabaq_u8): Likewise.
18351         (vabaq_u16): Likewise.
18352         (vabaq_u32): Likewise.
18353
18354 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18355
18356         * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
18357         (aarch64_<su>aba<mode>): ... This.  Handle uaba as well.
18358         Change RTL pattern to match.
18359
18360 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
18361
18362         * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
18363         * config/riscv/riscv-c.c (riscv-subset.h): New.
18364         (INCLUDE_STRING): Define.
18365         (riscv_cpu_cpp_builtins): Add new style architecture extension
18366         test macros.
18367         * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
18368         (riscv_subset_list::end): New.
18369         (riscv_current_subset_list): New.
18370
18371 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
18372
18373         * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
18374         Move to riscv-subset.h.
18375         (struct riscv_subset_t): Ditto.
18376         (class riscv_subset_list): Ditto.
18377         * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
18378         from riscv-common.c.
18379         (struct riscv_subset_t): Ditto.
18380         (class riscv_subset_list): Ditto.
18381         * config/riscv/t-riscv ($(common_out_file)): Add file
18382         dependency.
18383
18384 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
18385
18386         PR target/98567
18387         * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
18388         New define_insn patterns.
18389
18390 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
18391
18392         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
18393         (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
18394         (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
18395
18396 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
18397
18398         PR tree-optimization/98560
18399         * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
18400         * internal-fn.c (vec_cond_mask_direct): Get the data mode from
18401         argument 1.
18402         (vec_cond_direct): Likewise argument 2.
18403         (vec_condu_direct, vec_condeq_direct): Delete.
18404         (expand_vect_cond_optab_fn): Rename to...
18405         (expand_vec_cond_optab_fn): ...this, replacing old macro.
18406         (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
18407         (expand_vect_cond_mask_optab_fn): Rename to...
18408         (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
18409         (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
18410         convert optab.
18411         (direct_vec_cond_optab_supported_p): Likewise.
18412         (direct_vec_condu_optab_supported_p): Delete.
18413         (direct_vec_condeq_optab_supported_p): Delete.
18414         * gimple-isel.cc: Include internal-fn.h.
18415         (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
18416         before using it.
18417
18418 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
18419
18420         PR tree-optimization/98560
18421         * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
18422         IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
18423
18424 2021-01-07  Uroš Bizjak  <ubizjak@gmail.com>
18425
18426         * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
18427         rotate_insn and optab code attributes.
18428         Update all uses to merged code attribute.
18429         * config/i386/sse.md: Update all uses to merged code attribute.
18430         * config/i386/mmx.md: Update all uses to merged code attribute.
18431
18432 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
18433
18434         PR tree-optimization/98568
18435         * gimple-ssa-store-merging.c (bswap_view_convert): New function.
18436         (bswap_replace): Use it.
18437
18438 2021-01-06  Vladimir N. Makarov  <vmakarov@redhat.com>
18439
18440         PR rtl-optimization/97978
18441         * lra-int.h (lra_hard_reg_split_p): New external.
18442         * lra.c (lra_hard_reg_split_p): New global.
18443         (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
18444         * lra-assigns.c (lra_assign): Don't check allocation correctness
18445         after hard reg splitting.
18446
18447 2021-01-06  Martin Sebor  <msebor@redhat.com>
18448
18449         PR c++/98305
18450         * builtins.c (new_delete_mismatch_p): New overload.
18451         (new_delete_mismatch_p (tree, tree)): Call it.
18452
18453 2021-01-06  Alexandre Oliva  <oliva@adacore.com>
18454
18455         * Makefile.in (T_GLIMITS_H): New.
18456         (stmp-int-hdrs): Depend on it, use it.
18457         * config/t-vxworks (T_GLIMITS_H): Override it.
18458         (vxw-glimits.h): New.
18459
18460 2021-01-06  Richard Biener  <rguenther@suse.de>
18461
18462         PR tree-optimization/98513
18463         * value-range.cc (intersect_ranges): Compare the upper bounds
18464         for the expected relation.
18465
18466 2021-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
18467
18468         Revert:
18469         2020-12-28  Gerald Pfeifer  <gerald@pfeifer.com>
18470
18471         * doc/standards.texi (HSAIL): Remove section.
18472
18473 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
18474
18475         * configure: Re-generate.
18476
18477 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
18478
18479         * doc/invoke.texi (-std=c++20): Adjust for the publication of
18480         ISO 14882:2020 standard.
18481         * doc/standards.texi: Likewise.
18482
18483 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
18484
18485         PR tree-optimization/94802
18486         * expr.h (maybe_optimize_sub_cmp_0): Declare.
18487         * expr.c: Include tree-pretty-print.h and flags.h.
18488         (maybe_optimize_sub_cmp_0): New function.
18489         (do_store_flag): Use it.
18490         * cfgexpand.c (expand_gimple_cond): Likewise.
18491
18492 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
18493
18494         * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
18495         * rtlanal.c (simple_regno_set): Tweak description to clarify the
18496         RMW condition.
18497
18498 2021-01-05  Richard Biener  <rguenther@suse.de>
18499
18500         PR tree-optimization/98516
18501         * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
18502         lanes when materializing on a VEC_PERM node.
18503         (vectorizable_slp_permutation): Dump the permute properly.
18504
18505 2021-01-05  Richard Biener  <rguenther@suse.de>
18506
18507         * tree-vect-slp.c (vect_slp_region): Move debug counter
18508         to cover individual subgraphs.
18509
18510 2021-01-05  Richard Biener  <rguenther@suse.de>
18511
18512         PR tree-optimization/98428
18513         * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
18514         vector lane extracts for loop vectorization.
18515
18516 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
18517
18518         PR tree-optimization/98514
18519         * tree-ssa-reassoc.c (bb_rank): Change type from long * to
18520         int64_t *.
18521         (operand_rank): Change type from hash_map<tree, long> to
18522         hash_map<tree, int64_t>.
18523         (phi_rank): Change return type from long to int64_t.
18524         (loop_carried_phi): Change block_rank variable type from long to
18525         int64_t.
18526         (propagate_rank): Change return type, rank parameter type and
18527         op_rank variable type from long to int64_t.
18528         (find_operand_rank): Change return type from long to int64_t
18529         and change slot variable type from long * to int64_t *.
18530         (insert_operand_rank): Change rank parameter type from long to
18531         int64_t.
18532         (get_rank): Change return type and rank variable type from long to
18533         int64_t.  Use PRId64 instead of ld to print the rank.
18534         (init_reassoc): Change rank variable type from long to int64_t
18535         and adjust correspondingly bb_rank and operand_rank initialization.
18536
18537 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
18538
18539         PR tree-optimization/96928
18540         * tree-ssa-phiopt.c (xor_replacement): New function.
18541         (tree_ssa_phiopt_worker): Call it.
18542
18543 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
18544
18545         PR tree-optimization/96930
18546         * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
18547         from narrower value which has the same type as 1 << B, perform
18548         the right shift on the narrower value followed by extension.
18549
18550 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
18551
18552         PR tree-optimization/96239
18553         * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
18554         function.
18555         (get_status_for_store_merging): Don't return BB_INVALID for blocks
18556         with potential bswap optimizable CONSTRUCTORs.
18557         (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
18558         if possible.
18559
18560 2021-01-05  Richard Biener  <rguenther@suse.de>
18561
18562         PR tree-optimization/98381
18563         * tree.c (vector_element_bits): Properly compute bool vector
18564         element size.
18565         * tree-vect-loop.c (vectorizable_live_operation): Properly
18566         compute the last lane bit offset.
18567
18568 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
18569
18570         PR target/98522
18571         * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
18572         Clear the top 64 bytes of the input XMM register.
18573         (sse_cvttps2pi): Ditto.
18574
18575 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
18576
18577         PR target/98521
18578         * config/i386/xopintrin.h (_mm256_cmov_si256): New.
18579
18580 2021-01-05  H.J. Lu  <hjl.tools@gmail.com>
18581
18582         PR target/98495
18583         * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
18584         short first.
18585
18586 2021-01-05  Claudiu Zissulescu  <claziss@synopsys.com>
18587
18588         * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
18589         (umaddsidi4_split): Likewise.
18590
18591 2021-01-05  liuhongt  <hongtao.liu@intel.com>
18592
18593         PR target/98461
18594         * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
18595         define_insn_and_split for zero_extend of subreg HI of pmovskb
18596         result.
18597         (*sse2_pmovskb_zexthisi): Add new combine splitters for
18598         zero_extend of not of subreg HI of pmovskb result.
18599
18600 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
18601
18602         PR target/97269
18603         * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
18604         nested in CONSTs.
18605         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
18606         convert_memory_address to convert symbolic immediates to ptr_mode
18607         before forcing them to memory.
18608
18609 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
18610
18611         PR rtl-optimization/97144
18612         * recog.c (constrain_operands): Initialize matching_operand
18613         for each alternative, rather than only doing it once.
18614
18615 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
18616
18617         PR rtl-optimization/98403
18618         * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
18619         why we don't remove call clobbers.
18620         (function_info::apply_changes_to_insn): Don't attempt to add
18621         call clobbers here.
18622
18623 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
18624
18625         PR tree-optimization/98371
18626         * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
18627         (vect_analyze_loop): If an epilogue loop appears to be cheaper
18628         than the main loop, re-analyze it as a main loop before adopting
18629         it as a main loop.
18630
18631 2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18632
18633         PR c++/98316
18634         * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
18635         * aclocal.m4, configure: Regenerate.
18636         * Makefile.in (NETLIBS): Define.
18637         (BACKEND): Remove $(CODYLIB).
18638
18639 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
18640
18641         PR rtl-optimization/98334
18642         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
18643         Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
18644
18645 2021-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18646
18647         * tree-inline.c (expand_call_inline): Restore input_location.
18648         Return result from recursive call.
18649
18650 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
18651
18652         PR tree-optimization/95401
18653         * config/aarch64/aarch64-sve-builtins.cc
18654         (gimple_folder::load_store_cookie): Use bits rather than bytes
18655         for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
18656         * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
18657         * tree-vect-stmts.c (vectorizable_store): Likewise.
18658         (vectorizable_load): Likewise.
18659
18660 2021-01-04  Richard Biener  <rguenther@suse.de>
18661
18662         PR tree-optimization/98308
18663         * tree-vect-stmts.c (vectorizable_load): Set invariant mask
18664         SLP vectype.
18665
18666 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
18667
18668         PR tree-optimization/95771
18669         * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
18670         with precision smaller than int's precision and types with precision
18671         twice as large as long long.  Formatting fixes.
18672
18673 2021-01-04  Richard Biener  <rguenther@suse.de>
18674
18675         PR tree-optimization/98464
18676         * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
18677         (vn_valueize_wrapper): ... this.  Temporarily adjust vn_context_bb.
18678         (process_bb): Adjust.
18679
18680 2021-01-04  Matthew Malcomson  <matthew.malcomson@arm.com>
18681
18682         PR other/98437
18683         * doc/invoke.texi (-fsanitize=address): Fix wording describing
18684         clash with -fsanitize=hwaddress.
18685
18686 2021-01-04  Richard Biener  <rguenther@suse.de>
18687
18688         PR tree-optimization/98282
18689         * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
18690         invariants as VN_NARY.
18691
18692 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
18693
18694         PR target/89057
18695         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
18696         aarch64_simd_reg_or_zero for operand 2.  Use the combinez patterns
18697         to handle zero operands.
18698
18699 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
18700
18701         * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
18702         (offset_6bit_unsigned_scaled_p): Fix typo in comment.
18703         (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
18704         [-32, 31].
18705
18706 2021-01-04  Richard Biener  <rguenther@suse.de>
18707
18708         PR tree-optimization/98393
18709         * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
18710         when hitting the limit.
18711
18712 2021-01-04  Richard Biener  <rguenther@suse.de>
18713
18714         PR tree-optimization/98291
18715         * tree-vect-loop.c (vectorizable_reduction): Bypass
18716         associativity check for SLP reductions with VF 1.
18717
18718 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
18719
18720         PR tree-optimization/96782
18721         * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
18722
18723 2021-01-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18724
18725         * collect-utils.c (collect_execute): Check dumppfx.
18726         * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
18727         to collect_execute.
18728         (do_link): Add new parameter atsuffix.
18729         (main): Handle -dumpdir option.  Skip one argument for
18730         -o, -isystem and -B options.
18731         * gcc.c (make_at_file): New helper function.
18732         (close_at_file): Use it.
18733
18734 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
18735
18736         * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
18737         Amend handling for LD64_VERSION fallback defaults.
18738
18739 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
18740
18741         * config.gcc: Compute default version information
18742         from the configured target.  Likewise defaults for
18743         ld64.
18744         * config/darwin10.h: Removed.
18745         * config/darwin12.h: Removed.
18746         * config/darwin9.h: Removed.
18747         * config/rs6000/darwin8.h: Removed.
18748
18749 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
18750
18751         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
18752
18753 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
18754
18755         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
18756         * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
18757
18758 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
18759
18760         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
18761         here...
18762         * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
18763
18764 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
18765
18766         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
18767         for the Darwin10 unwinder stub from here ...
18768         * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
18769
18770 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
18771
18772         * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
18773         (ASM_DEBUG_SPEC):Only define if the assembler supports
18774         stabs.
18775         (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
18776         (DARWIN_PREFER_DWARF): Define.
18777         * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
18778         (DARWIN_PREFER_DWARF): Likewise
18779         (DSYMUTIL_SPEC): Likewise.
18780         (COLLECT_RUN_DSYMUTIL): Likewise.
18781         (ASM_DEBUG_SPEC): Likewise.
18782         (ASM_DEBUG_OPTION_SPEC): Likewise.
18783
18784 2021-01-02  Jan Hubicka  <jh@suse.cz>
18785
18786         * cfg.c (free_block): ggc_free bb.
18787
18788 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
18789
18790         * gcc.c (process_command): Update copyright notice dates.
18791         * gcov-dump.c (print_version): Ditto.
18792         * gcov.c (print_version): Ditto.
18793         * gcov-tool.c (print_version): Ditto.
18794         * gengtype.c (create_file): Ditto.
18795         * doc/cpp.texi: Bump @copying's copyright year.
18796         * doc/cppinternals.texi: Ditto.
18797         * doc/gcc.texi: Ditto.
18798         * doc/gccint.texi: Ditto.
18799         * doc/gcov.texi: Ditto.
18800         * doc/install.texi: Ditto.
18801         * doc/invoke.texi: Ditto.
18802
18803 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
18804
18805         * ChangeLog-2020: Rotate ChangeLog.  New file.
18806
18807 \f
18808 Copyright (C) 2021 Free Software Foundation, Inc.
18809
18810 Copying and distribution of this file, with or without modification,
18811 are permitted in any medium without royalty provided the copyright
18812 notice and this notice are preserved.