Daily bump.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2021-07-18  H.J. Lu  <hjl.tools@gmail.com>
2
3         PR target/101492
4         * common/config/i386/i386-common.c (ix86_handle_option): For
5         -mgeneral-regs-only, enable the GPR only instructions which are
6         enabled implicitly by SSE ISAs unless they have been disabled
7         explicitly.
8
9 2021-07-18  H.J. Lu  <hjl.tools@gmail.com>
10
11         PR target/101495
12         * config/i386/i386.c (ix86_check_avx_upper_stores): Moved before
13         ix86_avx_u128_mode_needed.
14         (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY if callee
15         returns AVX register.
16
17 2021-07-17  Jan Hubicka  <hubicka@ucw.cz>
18
19         * tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED.
20         (handle_const_call): Liekise
21         (handle_pure_call): Liekise
22
23 2021-07-17  Andrew MacLeod  <amacleod@redhat.com>
24
25         PR tree-optimization/96542
26         * range-op.cc (range_operator::wi_fold_in_parts): New.
27         (range_operator::fold_range): Call wi_fold_in_parts.
28         (operator_lshift::wi_fold): Fix broken lshift by [0,0].
29         * range-op.h (wi_fold_in_parts): Add prototype.
30
31 2021-07-16  David Malcolm  <dmalcolm@redhat.com>
32
33         * doc/analyzer.texi: Add __analyzer_dump_state.
34
35 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
36
37         * config/rs6000/rbtree.c: New file.
38         * config/rs6000/rbtree.h: New file.
39
40 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
41
42         * config/rs6000/rs6000-gen-builtins.c (restriction): New enum.
43         (typeinfo): Add restr field.
44         (match_bracketed_pair): New function.
45         (match_const_restriction): Implement.
46
47 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
48
49         * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement.
50
51 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
52
53         * config/rs6000/rs6000-gen-builtins.c (void_status): New enum.
54         (basetype): Likewise.
55         (typeinfo): Likewise.
56         (handle_pointer): New function.
57         (match_basetype): New stub function.
58         (match_const_restriction): Likewise.
59         (match_type): New function.
60
61 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
62
63         * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New
64         function.
65         (advance_line): Likewise.
66         (safe_inc_pos): Likewise.
67         (match_identifier): Likewise.
68         (match_integer): Likewise.
69         (match_to_right_bracket): Likewise.
70
71 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
72
73         * config/rs6000/rs6000-gen-builtins.c (bif_file): New variable.
74         (ovld_file): Likewise.
75         (header_file): Likewise.
76         (init_file): Likewise.
77         (defines_file): Likewise.
78         (pgm_path): Likewise.
79         (bif_path): Likewise.
80         (ovld_path): Likewise.
81         (header_path): Likewise.
82         (init_path): Likewise.
83         (defines_path): Likewise.
84         (LINELEN): New macro.
85         (linebuf): New variable.
86         (line): Likewise.
87         (pos): Likewise.
88         (diag): Likewise.
89         (bif_diag): New function.
90         (ovld_diag): Likewise.
91
92 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
93
94         * config/rs6000/rs6000-builtin-new.def: New.
95         * config/rs6000/rs6000-overload.def: New.
96
97 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
98
99         * config/rs6000/rs6000-gen-builtins.c: New.
100
101 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
102
103         * Makefile.in (EXTRA_GTYPE_DEPS): New variable.
104         (s-gtype): Depend on EXTRA_GTYPE_DEPS.
105         * gengtype-state.c (state_writer::write_state_file_list): Add a
106         parameter to the fileslist expression for the number of build
107         headers to scan.
108         (read_state_files_list): Detect build headers and strip the
109         initial "./" or ".\" from their names.
110         * gengtype.c (build_headers): New global variable.
111         (num_build_headers): Likewise.
112         (open_base_files): Emit #include for each build header.
113         (main): Detect and count build headers.
114         * gengtype.h (build_headers): New extern variable.
115         (num_build_headers): Likewise.
116
117 2021-07-16  Richard Biener   <rguenther@suse.de>
118
119         * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use
120         the type of the LHS.
121         (find_bswap_or_nop_1): Likewise.
122         (find_bswap_or_nop): Likewise.
123         * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust
124         prototype.
125         * tree-vect-data-refs.c (vect_get_smallest_scalar_type):
126         Remove unused parameters, pass in the scalar type.  Fix
127         internal store function handling.
128         * tree-vect-stmts.c (vect_analyze_stmt): Remove assert.
129         (vect_get_vector_types_for_stmt): Move down check for
130         existing vector stmt after we've determined a scalar type.
131         Pass down the used scalar type to vect_get_smallest_scalar_type.
132         * tree-vect-generic.c (expand_vector_condition): Use
133         the type of the LHS.
134         (expand_vector_scalar_condition): Likewise.
135         (expand_vector_operations_1): Likewise.
136         * tree-vect-patterns.c (vect_widened_op_tree): Likewise.
137         (vect_recog_dot_prod_pattern): Likewise.
138         (vect_recog_sad_pattern): Likewise.
139         (vect_recog_widen_op_pattern): Likewise.
140         (vect_recog_widen_sum_pattern): Likewise.
141         (vect_recog_mixed_size_cond_pattern): Likewise.
142
143 2021-07-16  Jan Hubicka  <hubicka@ucw.cz>
144
145         * ipa-modref.c (struct escape_entry): Use eaf_fleags_t.
146         (dump_eaf_flags): Dump EAF_NOT_RETURNED
147         (eaf_flags_useful_p): Use eaf_fleags_t; handle const functions
148         and EAF_NOT_RETURNED.
149         (modref_summary::useful_p): Likewise.
150         (modref_summary_lto::useful_p): Likewise.
151         (struct) modref_summary_lto: Use eaf_fleags_t.
152         (deref_flags): Handle EAF_NOT_RETURNED.
153         (struct escape_point): Use min_flags.
154         (modref_lattice::init): Add EAF_NOT_RETURNED.
155         (merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions
156         (analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return;
157         handle call flags.
158         (analyze_parms): Also analyze const functions; update conition on
159         flags usefulness.
160         (modref_write): Update streaming.
161         (read_section): Update streaming.
162         (remap_arg_flags): Use eaf_flags_t.
163         (modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED.
164         * ipa-modref.h: (eaf_flags_t): New typedef.
165         (struct modref_summary): Use eaf_flags_t.
166         * tree-core.h (EAF_NOT_RETURNED): New constant.
167
168 2021-07-16  Richard Biener  <rguenther@suse.de>
169
170         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use
171         the type of the LHS.
172         (gimple_assign_nonnegative_warnv_p): Likewise.
173         (gimple_call_nonnegative_warnv_p): Likewise.  Return false
174         if the call has no LHS.
175         * gimple.c (gimple_could_trap_p_1): Use the type of the LHS.
176         * tree-eh.c (stmt_could_throw_1_p): Likewise.
177         * tree-inline.c (insert_init_stmt): Likewise.
178         * tree-ssa-loop-niter.c (get_val_for): Likewise.
179         * tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of
180         the def.
181         * tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a
182         gassign *.  Use the type of the lhs.
183         (vn_nary_op_lookup_stmt): Adjust.
184         (vn_nary_op_insert_stmt): Likewise.
185
186 2021-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>
187
188         * config/s390/predicates.md (bras_sym_operand): Accept all
189         functions in 64-bit mode, use UNSPEC_PLT31.
190         (larl_operand): Use UNSPEC_PLT31.
191         * config/s390/s390.c (s390_loadrelative_operand_p): Likewise.
192         (legitimize_pic_address): Likewise.
193         (s390_emit_tls_call_insn): Mark __tls_get_offset as function,
194         use UNSPEC_PLT31.
195         (s390_delegitimize_address): Use UNSPEC_PLT31.
196         (s390_output_addr_const_extra): Likewise.
197         (print_operand): Add @PLT to TLS calls, handle %K.
198         (s390_function_profiler): Mark __fentry__/_mcount as function,
199         use %K, use UNSPEC_PLT31.
200         (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K.
201         (s390_emit_call): Use UNSPEC_PLT31.
202         (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function.
203         * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT.
204         (*movdi_64): Use %K.
205         (reload_base_64): Likewise.
206         (*sibcall_brc): Likewise.
207         (*sibcall_brcl): Likewise.
208         (*sibcall_value_brc): Likewise.
209         (*sibcall_value_brcl): Likewise.
210         (*bras): Likewise.
211         (*brasl): Likewise.
212         (*bras_r): Likewise.
213         (*brasl_r): Likewise.
214         (*bras_tls): Likewise.
215         (*brasl_tls): Likewise.
216         (main_base_64): Likewise.
217         (reload_base_64): Likewise.
218         (@split_stack_call<mode>): Likewise.
219
220 2021-07-16  Richard Biener  <rguenther@suse.de>
221
222         PR tree-optimization/101467
223         * tree-vect-stmts.c (vect_gen_while): Properly guard
224         make_temp_ssa_name usage.
225
226 2021-07-16  Cooper Qu  <cooper.qu@linux.alibaba.com>
227
228         * config.gcc: Don't use forked print-sysroot-suffix.sh and
229         t-sysroot-suffix for C-SKY.
230         * config/csky/print-sysroot-suffix.sh: Delete.
231         * config/csky/t-csky-linux: Delete.
232         * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES
233         instead of CSKY_MULTILIB_DIRNAMES.
234
235 2021-07-16  Richard Biener  <rguenther@suse.de>
236
237         * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign
238         conversion issues with the partial reduction of the reused
239         vector accumulator.
240
241 2021-07-16  Richard Biener  <rguenther@suse.de>
242
243         * config/i386/i386-options.c (ix86_option_override_internal): Set
244         param_vect_partial_vector_usage to zero if not set.
245
246 2021-07-15  Uroš Bizjak  <ubizjak@gmail.com>
247
248         PR target/101346
249         * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode.
250         (VALID_INT_MODE_P): Add SDmode and DDmode.
251         Add TDmode for TARGET_64BIT.
252         (VALID_DFP_MODE_P): Remove.
253         * config/i386/i386.c (ix86_hard_regno_mode_ok):
254         Do not use VALID_DFP_MODE_P.
255
256 2021-07-15  Andrew MacLeod  <amacleod@redhat.com>
257
258         * gimple-range-fold.cc (adjust_pointer_diff_expr): Use
259         gimple_range_type.
260         (fold_using_range::fold_stmt): Ditto.
261         (fold_using_range::range_of_range_op): Ditto.
262         (fold_using_range::range_of_phi): Ditto.
263         (fold_using_range::range_of_call): Ditto.
264         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
265         (fold_using_range::range_of_builtin_call): Ditto.
266         (fold_using_range::range_of_cond_expr): Ditto.
267         * gimple-range-fold.h (gimple_range_type): New.
268
269 2021-07-15  Martin Sebor  <msebor@redhat.com>
270
271         PR middle-end/97027
272         * tree-ssa-strlen.c (handle_assign): New function.
273         (maybe_warn_overflow): Add argument.
274         (nonzero_bytes_for_type): New function.
275         (count_nonzero_bytes): Handle more tree types.  Call
276         nonzero_bytes_for_tye.
277         (count_nonzero_bytes): Handle types.
278         (handle_store): Handle stores from function calls.
279         (strlen_check_and_optimize_call): Move code to handle_assign.  Call
280         it for assignments from function calls.
281
282 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
283
284         PR analyzer/95006
285         PR analyzer/94713
286         PR analyzer/94714
287         * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value.
288
289 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
290
291         * doc/invoke.texi (-fdump-analyzer-exploded-paths): New.
292
293 2021-07-15  Martin Sebor  <msebor@redhat.com>
294
295         PR c/101289
296         PR c/97548
297         * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME.
298         (operand_compare::verify_hash_value): Same.
299         * tree-core.h (OEP_DECL_NAME): New.
300
301 2021-07-15  Martin Jambor  <mjambor@suse.cz>
302
303         * profile-count.h (profile_count::value): Change the return type to
304         uint64_t.
305         * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print
306         statement.
307         * tree-cfg.c (dump_function_to_file): Likewise.
308
309 2021-07-15  Bill Schmidt  <wschmidt@linux.ibm.com>
310
311         PR target/101129
312         * config/rs6000/rs6000-p8swap.c (has_part_mult): New.
313         (rs6000_analyze_swaps): Insns containing a subreg of a mult are
314         not swappable.
315
316 2021-07-15  Richard Biener  <rguenther@suse.de>
317
318         * tree-vectorizer.h (vect_gen_while): Match up with
319         vect_gen_while_not.
320         * tree-vect-stmts.c (vect_gen_while): Adjust API to that
321         of vect_gen_while_not.
322         (vect_gen_while_not): Adjust.
323         * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise.
324
325 2021-07-15  Aldy Hernandez  <aldyh@redhat.com>
326
327         * gimple-range-cache.cc (non_null_ref::adjust_range): New.
328         (ranger_cache::range_of_def): Call adjust_range.
329         (ranger_cache::entry_range): Same.
330         * gimple-range-cache.h (non_null_ref::adjust_range): New.
331         * gimple-range.cc (gimple_ranger::range_of_expr): Call
332         adjust_range.
333         (gimple_ranger::range_on_entry): Same.
334
335 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
336
337         Revert:
338         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
339
340         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
341
342 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
343
344         Revert:
345         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
346
347         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
348         (sdot_prod, udot_prod): ...These.
349         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
350         (aarch64_<sur>dot<vsi2qi>): Rename to...
351         (<sur>dot_prod<vsi2qi>): ...This.
352         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
353         Update builtins.
354
355 2021-07-15  Jakub Jelinek  <jakub@redhat.com>
356
357         PR middle-end/101437
358         * gimplify.c (gimplify_expr): Throw away volatile reads from empty
359         types even if they have non-BLKmode TYPE_MODE.
360
361 2021-07-15  Richard Biener  <rguenther@suse.de>
362
363         PR driver/101383
364         * gcc.c (process_command): Process -gtoggle like process_options
365         would after parsing options.
366
367 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
368
369         * cfgexpand.c (expand_asm_loc): Adjust.
370         (expand_asm_stmt): Likewise.
371         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise.
372         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
373         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
374         * config/avr/avr.c (avr_md_asm_adjust): Likewise.
375         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
376         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
377         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
378         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
379         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
380         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
381         * config/s390/s390.c (s390_md_asm_adjust): Likewise.
382         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
383         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
384         * doc/tm.texi: Regenerate.
385         * target.def: Add location argument to md_asm_adjust.
386
387 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
388
389         * tree-diagnostic.c (diagnostic_report_current_function): Use the
390         diagnostic's location, not input_location.
391
392 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
393
394         * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to
395         diagnostics.
396         (expand_asm_stmt): Likewise.
397
398 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
399
400         * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower
401         addressed memory rtx, if any.
402         (rs6000_split_multireg_move): Fix code formatting.
403         Handle MMA build built-ins with operands in adjacent memory locations.
404
405 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
406
407         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later
408         in the file.
409
410 2021-07-14  Jason Merrill  <jason@redhat.com>
411
412         * sel-sched-ir.h (get_all_loop_exits): Use auto_vec.
413
414 2021-07-14  Jason Merrill  <jason@redhat.com>
415
416         * doc/invoke.texi: -fdelete-dead-exceptions is on by default for
417         C++.
418
419 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
420
421         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
422         Remove erroneous line.
423
424 2021-07-14  Andrew MacLeod  <amacleod@redhat.com>
425
426         * params.opt (param_evrp_mode): Change default.
427
428 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
429
430         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
431         (sdot_prod, udot_prod): ...These.
432         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
433         (aarch64_<sur>dot<vsi2qi>): Rename to...
434         (<sur>dot_prod<vsi2qi>): ...This.
435         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
436         Update builtins.
437
438 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
439
440         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
441
442 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
443
444         * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document.
445
446 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
447
448         * config/arm/neon.md (usdot_prod<vsi2qi>): New.
449
450 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
451
452         * config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to...
453         (usdot_prod<vsi2qi>): ... This.
454         * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to...
455         (usdot_prod): ...This.
456         * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise.
457         * config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>):
458         Rename to...
459         (@<sur>dot_prod<vsi2qi>): ...This.
460         * config/aarch64/aarch64-sve-builtins-base.cc
461         (svusdot_impl::expand): Use it.
462
463 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
464
465         * optabs.def (usdot_prod_optab): New.
466         * doc/md.texi: Document it and clarify other dot prod optabs.
467         * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign.
468         * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab.
469         * optabs.c (expand_widen_pattern_expr): Likewise.
470         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
471         * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind.
472         * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional
473         optab subtype.
474         (vect_widened_op_tree): Optionally ignore
475         mismatch types.
476         (vect_recog_dot_prod_pattern): Support usdot_prod_optab.
477
478 2021-07-14  H.J. Lu  <hjl.tools@gmail.com>
479
480         PR target/101395
481         * config/i386/driver-i386.c (host_detect_local_cpu): Check
482         "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen.
483         Enable UINTR only for 64-bit codegen.
484         * config/i386/i386-options.c
485         (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not
486         in 64-bit mode.
487         * config/i386/i386.h (ARCH_ARG): New.
488         (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and
489         "[arch|tune] 64" for 64-bit codegen.
490
491 2021-07-14  Richard Biener  <rguenther@suse.de>
492
493         PR tree-optimization/101445
494         * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment
495         of the IV in the correct direction for negative stride
496         accesses.
497
498 2021-07-14  Jakub Jelinek  <jakub@redhat.com>
499
500         PR go/101407
501         * godump.c (godump_str_hash): New type.
502         (godump_container::pot_dummy_types): Use string_hash instead of
503         ptr_hash in the hash_set.
504
505 2021-07-14  Richard Biener  <rguenther@suse.de>
506
507         * tree-vect-loop.c (vect_find_reusable_accumulator): Handle
508         vector types where the old vector type has a multiple of
509         the new vector type elements.
510         (vect_create_partial_epilog): New function, split out from...
511         (vect_create_epilog_for_reduction): ... here.
512         (vect_transform_cycle_phi): Reduce the re-used accumulator
513         to the new vector type.
514
515 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
516
517         * tree-ssa-alias.c (attr_fnspec::verify): Fix index in
518         non-'t'-sized arg check.
519
520 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
521
522         * tree-cfg.c (cleanup_dead_labels_eh): Update
523         post_landing_pad label upon change of landing pad block's
524         primary label.
525         (cleanup_dead_labels): Check that a removed label is not that
526         of a landing pad.
527
528 2021-07-13  Jonathan Wright  <jonathan.wright@arm.com>
529
530         * combine.c (combine_simplify_rtx): Add vec_select -> subreg
531         simplification.
532         * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64):
533         Add Neon to general purpose register case for zero-extend
534         pattern.
535         * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r
536         case to prevent some cases opting to go through memory.
537         * cse.c (fold_rtx): Add vec_select -> subreg simplification.
538         * rtl.c (rtvec_series_p): Define predicate to determine
539         whether a vector contains a linear series of integers.
540         * rtl.h (rtvec_series_p): Define.
541         * rtlanal.c (vec_series_lowpart_p): Define predicate to
542         determine if a vector selection is equivalent to the low part
543         of the vector.
544         * rtlanal.h (vec_series_lowpart_p): Define.
545         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
546         Add vec_select -> subreg simplification.
547
548 2021-07-13  Paul A. Clarke  <pc@us.ibm.com>
549
550         * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128,
551         _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros,
552         _mm_test_mix_ones_zeros): New.
553
554 2021-07-13  Roger Sayle  <roger@nextmovesoftware.com>
555             Richard Biener  <rguenther@suse.de>
556
557         * gimple.c (gimple_could_trap_p_1):  Make S argument a
558         "const gimple*".  Preserve constness in call to
559         gimple_asm_volatile_p.
560         (gimple_could_trap_p): Make S argument a "const gimple*".
561         * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p):
562         Update function prototypes.
563
564 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
565
566         * tree-vectorizer.h (vect_reusable_accumulator): New structure.
567         (_loop_vec_info::main_loop_edge): New field.
568         (_loop_vec_info::skip_main_loop_edge): Likewise.
569         (_loop_vec_info::skip_this_loop_edge): Likewise.
570         (_loop_vec_info::reusable_accumulators): Likewise.
571         (_stmt_vec_info::reduc_scalar_results): Likewise.
572         (_stmt_vec_info::reused_accumulator): Likewise.
573         (vect_get_main_loop_result): Declare.
574         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
575         reduc_scalar_inputs.
576         (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs.
577         * tree-vect-loop-manip.c (vect_get_main_loop_result): New function.
578         (vect_do_peeling): Fill an epilogue loop's main_loop_edge,
579         skip_main_loop_edge and skip_this_loop_edge fields.
580         * tree-vect-loop.c (INCLUDE_ALGORITHM): Define.
581         (vect_emit_reduction_init_stmts): New function.
582         (get_initial_def_for_reduction): Use it.
583         (get_initial_defs_for_reduction): Likewise.  Change the vinfo
584         parameter to a loop_vec_info.
585         (vect_create_epilog_for_reduction): Store the scalar results
586         in the reduc_info.  If an epilogue loop is reusing an accumulator
587         from the main loop, and if the epilogue loop can also be skipped,
588         try to place the reduction code in the join block.  Record
589         accumulators that could potentially be reused by epilogue loops.
590         (vect_transform_cycle_phi): When vectorizing epilogue loops,
591         try to reuse accumulators from the main loop.  Record the initial
592         value in reduc_info for non-SLP reductions too.
593
594 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
595
596         * tree-vect-loop.c (get_initial_def_for_reduction): Remove
597         adjustment handling.  Take the neutral value as an argument,
598         in place of the code argument.
599         (vect_transform_cycle_phi): Update accordingly.  Handle the
600         initial values of cond reductions separately from code reductions.
601         Choose the adjustment here rather than in
602         get_initial_def_for_reduction.  Sink the splat of vec_initial_def.
603
604 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
605
606         * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with...
607         (neutral_op_for_reduction): ...this, providing a more general
608         interface.
609         (vect_create_epilog_for_reduction): Update accordingly.
610         (vectorizable_reduction): Likewise.
611         (vect_transform_cycle_phi): Likewise.
612
613 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
614
615         * tree-vect-loop.c (get_initial_def_for_reduction): Take the
616         reduc_info instead of the original stmt_vec_info.
617         (vect_transform_cycle_phi): Update accordingly.
618
619 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
620
621         * tree-vect-loop.c (get_initial_defs_for_reduction): Take the
622         reduc_info as an additional parameter.
623         (vect_transform_cycle_phi): Update accordingly.
624
625 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
626
627         * tree-vectorizer.h: Include tree-ssa-operands.h.
628         (vect_phi_initial_value): New function.
629         * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it.
630         (get_initial_defs_for_reduction, info_for_reduction): Likewise.
631         (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise.
632         (vect_transform_cycle_phi, vectorizable_induction): Likewise.
633
634 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
635
636         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
637         the phi results to vectype after creating them.  Remove later
638         conversion code that thus becomes redundant.
639
640 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
641
642         * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace
643         the new_phis vector with a reduc_inputs vector.  Combine handling
644         of reduction chains and ncopies > 1.
645
646 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
647
648         * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate
649         scalar_results to group_size elements after reducing down from
650         N*group_size elements.  Construct an array_slice of the live-out
651         stmts and assert that there is one stmt per scalar result.
652
653 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
654
655         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
656         nested_in_vect_loop and use double_reduc everywhere.  Remove dead
657         assignment to "loop".
658
659 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
660
661         * internal-fn.c (vectorized_internal_fn_supported_p): Handle
662         vector types first.  For scalar types, consider both the preferred
663         vector mode and the alternative vector modes.
664         * optabs-query.c (can_vec_mask_load_store_p): Use the same
665         structure as above, in particular using related_vector_mode
666         for modes provided by autovectorize_vector_modes.
667
668 2021-07-13  Jakub Jelinek  <jakub@redhat.com>
669             Richard Biener  <rguenther@suse.de>
670
671         PR tree-optimization/101419
672         * tree-pass.h (PROP_objsz): Define.
673         (make_pass_early_object_sizes): Declare.
674         * passes.def (pass_all_early_optimizations): Rename pass_object_sizes
675         there to pass_early_object_sizes, drop parameter.
676         (pass_all_optimizations): Move pass_object_sizes right after pass_ccp,
677         drop parameter, move pass_post_ipa_warn right after that.
678         * tree-object-size.c (pass_object_sizes::execute): Rename to...
679         (object_sizes_execute): ... this.  Add insert_min_max_p argument.
680         (pass_data_object_sizes): Move after object_sizes_execute.
681         (pass_object_sizes): Likewise.  In execute method call
682         object_sizes_execute, drop set_pass_param method and insert_min_max_p
683         non-static data member and its initializer in the ctor.
684         (pass_data_early_object_sizes, pass_early_object_sizes,
685         make_pass_early_object_sizes): New.
686         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use
687         (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining.
688
689 2021-07-13  Kito Cheng  <kito.cheng@sifive.com>
690
691         PR target/101275
692         * config/riscv/constraints.md ("S"): Update description and remove
693         @internal.
694         * doc/md.texi (Machine Constraints): Document the 'S' constraints
695         for RISC-V.
696
697 2021-07-13  Richard Biener  <rguenther@suse.de>
698
699         Revert:
700         2021-07-12  Richard Biener  <rguenther@suse.de>
701
702         * tree-vect-slp.c (vect_slp_region): Show the number of
703         SLP graph entries in the optimization message.
704
705 2021-07-13  Michael Meissner  <meissner@linux.ibm.com>
706
707         * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable
708         value to to long.
709         * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change
710         return type to long.
711         * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return
712         type to long.
713
714 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
715
716         * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call):
717         Query relation between the 2 operands and use it.
718
719 2021-07-12  Sergei Trofimovich  <siarheit@google.com>
720
721         * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo.
722
723 2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>
724
725         PR target/101424
726         * config/i386/predicates.md (vec_setm_sse41_operand):
727         Rename from vec_setm_operand.
728         (vec_setm_avx2_operand): New predicate.
729         * config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator.
730         Use vec_setm_sse41_operand as operand 2 predicate.
731         (vec_set<V_256_512:mode): New expander.
732         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand
733         as operand 2 predicate.
734
735 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
736
737         PR tree-optimization/101335
738         * range-op.cc (operator_cast::lhs_op1_relation): Delete.
739
740 2021-07-12  Andrew Pinski  <apinski@marvell.com>
741
742         * tree-ssa-phiopt.c (match_simplify_replacement): Move
743         insert of the sequence before the movement of the
744         statement. Check if to see if the statement is used
745         outside of the original phi to see if we should move it.
746
747 2021-07-12  Richard Biener  <rguenther@suse.de>
748
749         * dump-context.h (debug_dump_context::debug_dump_context):
750         Add FILE * parameter defaulted to stderr.
751         * dumpfile.c (debug_dump_context::debug_dump_context): Adjust.
752         * tree-vect-slp.c (dot_slp_tree): New functions.
753
754 2021-07-12  Richard Biener  <rguenther@suse.de>
755
756         PR tree-optimization/101373
757         * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping
758         references when the BB may not return.
759         (compute_avail): Pass in the function we're working on and
760         replace cfun references with it.  Externally throwing
761         const calls also possibly terminate the function.
762         (pass_pre::execute): Pass down the function we're working on.
763         * gcse.c (compute_hash_table_work): Externally throwing
764         const/pure calls also need record_last_mem_set_info.
765         * postreload-gcse.c (record_opr_changes): Looping or externally
766         throwing const/pure calls also need record_last_mem_set_info.
767
768 2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>
769
770         * recog.c (memory_address_addr_space_p): Change the type to bool.
771         Return true/false instead of 1/0.
772         (offsettable_memref_p): Ditto.
773         (offsettable_nonstrict_memref_p): Ditto.
774         (offsettable_address_addr_space_p): Ditto.
775         Change the type of addressp indirect function to bool.
776         * recog.h (memory_address_addr_space_p): Change the type to bool.
777         (strict_memory_address_addr_space_p): Ditto.
778         (offsettable_memref_p): Ditto.
779         (offsettable_nonstrict_memref_p): Ditto.
780         (offsettable_address_addr_space_p): Ditto.
781         * reload.c (maybe_memory_address_addr_space_p): Ditto.
782         (strict_memory_address_addr_space_p): Change the type to bool.
783         Return true/false instead of 1/0.
784         (maybe_memory_address_addr_space_p): Change the type to bool.
785
786 2021-07-12  Richard Biener  <rguenther@suse.de>
787
788         * tree-vect-slp.c (vect_slp_region): Show the number of
789         SLP graph entries in the optimization message.
790
791 2021-07-12  Richard Biener  <rguenther@suse.de>
792
793         PR tree-optimization/101394
794         * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting
795         copies from abnormals for a full redundancy.
796
797 2021-07-12  Richard Biener  <rguenther@suse.de>
798
799         PR middle-end/101423
800         * gimple.c (gimple_could_trap_p_1): Internal function calls
801         do not trap.
802         * tree-eh.c (tree_could_trap_p): Likewise.
803
804 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
805
806         PR target/66791
807         * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with
808         __a * __b.
809         (vmulq_n_u32): Likewise.
810         (vmul_n_f32): Gate __a * __b on __FAST_MATH__.
811         (vmulq_n_f32): Likewise.
812         (vmul_n_f16): Likewise.
813         (vmulq_n_f16): Likewise.
814
815 2021-07-12  Martin Liska  <mliska@suse.cz>
816
817         PR sanitizer/101425
818         * gcc.c (check_offload_target_name): Call
819           candidates_list_and_hint only if we have a candidate.
820
821 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
822
823         PR target/98435
824         * config/arm/neon.md (vec_init): Move to ...
825         * config/arm/vec-common.md (vec_init): ... here.
826         Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE.
827
828 2021-07-12  Roger Sayle  <roger@nextmovesoftware.com>
829
830         PR tree-optimization/101403
831         * match.pd ((T)bswap(X)>>C): Correctly handle cases where
832         signedness of the shift is not the same as the signedness of
833         the type extension.
834
835 2021-07-09  Roger Sayle  <roger@nextmovesoftware.com>
836             Uroš Bizjak  <ubizjak@gmail.com>
837
838         * config/i386/i386.md (*divmodsi4_const): Optimize SImode
839         divmod of a constant numerator with new define_insn_and_split.
840
841 2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>
842
843         PR target/100152
844         * config/i386/i386-expand.c (ix86_expand_call): If a call is
845         to a non-local-binding, or local but to a public symbol, then
846         assume that it might be indirected via the lazy symbol binder.
847         Mark R10 and R10 as clobbered in that case.
848
849 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
850
851         PR target/101377
852         * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in
853         the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined
854         and HAVE_LD_BROKEN_PE_DWARF5 is defined.
855
856 2021-07-09  Uroš Bizjak  <ubizjak@gmail.com>
857
858         * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the
859         log2 range of operands[3] to [1,31].
860         (*udivmodsi4_pow2_zext_2): Ditto.  Correct insn RTX pattern.
861
862 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
863
864         * doc/md.texi: Don't split @smallexample in multiple @groups.
865
866 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
867
868         * doc/md.texi: Add missing 'see' word.
869
870 2021-07-09  Andrew Pinski  <apinski@marvell.com>
871
872         * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments
873         to take sequence and gimple_match_op.  Accept the case where
874         op is a SSA_NAME and one statement in the sequence.
875         Also allow constants.
876         (gimple_simplify_phiopt): Always pass a sequence to resimplify.
877         Update call to phiopt_early_allow.  Discard the sequence if not
878         used.
879
880 2021-07-09  Xi Ruoyao  <xry111@mengyan1223.wang>
881
882         PR target/100760
883         PR target/100761
884         PR target/100762
885         * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P
886         instead of ISA_HAS_MSA.
887         (mips_expand_vec_unpack): Likewise.
888         (mips_expand_vector_init): Likewise.
889
890 2021-07-09  Kewen Lin  <linkw@linux.ibm.com>
891
892         * config/rs6000/vsx.md (mods_<mode>): Rename to...
893         (mod<mode>3): ... this.
894         (modu_<mode>): Rename to...
895         (umod<mode>3): ... this.
896         * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI,
897         MODU_V4SI): Adjust.
898
899 2021-07-08  Jeff Law  <jeffreyalaw@gmail.com>
900
901         * config/h8300/shiftrotate.md (variable shifts): Expose condition
902         code handling for the test before the loop.
903
904 2021-07-08  Martin Jambor  <mjambor@suse.cz>
905
906         PR ipa/101066
907         * ipa-sra.c (class isra_call_summary): New member
908         m_before_any_store, initialize it in the constructor.
909         (isra_call_summary::dump): Dump the new field.
910         (ipa_sra_call_summaries::duplicate): Copy it.
911         (process_scan_results): Set it.
912         (isra_write_edge_summary): Stream it.
913         (isra_read_edge_summary): Likewise.
914         (param_splitting_across_edge): Only override
915         safe_to_import_accesses if m_before_any_store is set.
916
917 2021-07-08  Martin Sebor  <msebor@redhat.com>
918
919         PR bootstrap/101374
920         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
921         Use Object Size Type 0 instead of 1.
922
923 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
924
925         * tree-vect-loop.c (vectorizable_reduction): Remove always-true
926         if condition.
927
928 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
929
930         * match.pd: Simplify an extend-operate-truncate sequence involving
931         a POLY_INT_CST.
932
933 2021-07-08  Roger Sayle  <roger@nextmovesoftware.com>
934             Richard Biener  <rguenther@suse.de>
935
936         PR tree-optimization/40210
937         * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as
938         (x>>C3)&C2 when possible.  Simplify bswap(x)>>C1 as ((T)x)>>C2
939         when possible.  Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255.
940
941 2021-07-08  Uroš Bizjak  <ubizjak@gmail.com>
942
943         PR target/100637
944         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
945         Handle V4QI mode.
946         * config/i386/mmx.md (V_32): New mode iterator.
947         (mov<V_32:mode>): Use V_32 mode iterator.
948         (*mov<V_32:mode>_internal): Ditto.
949         (*push<V_32:mode>2_rex64): Ditto.
950         (*push<V_32:mode>2): Ditto.
951         (movmisalign<V_32:mode>): Ditto.
952         (mmx_<any_shiftrt:insn>v1si3): New insn pattern.
953         (sse4_1_<any_extend:code>v2qiv2hi2): Ditto.
954         (vec_unpacks_lo_v4qi): New expander.
955         (vec_unpacks_hi_v4qi): Ditto.
956         (vec_unpacku_lo_v4qi): Ditto.
957         (vec_unpacku_hi_v4qi): Ditto.
958         * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode.
959         (VALID_INT_MODE_P): Ditto.
960
961 2021-07-08  Michael Meissner  <meissner@linux.ibm.com>
962
963         PR target/100809
964         * config/rs6000/rs6000.md (udivti3): New insn.
965         (divti3): New insn.
966         (umodti3): New insn.
967         (modti3): New insn.
968
969 2021-07-07  Martin Sebor  <msebor@redhat.com>
970
971         PR tree-optimization/100137
972         PR tree-optimization/99121
973         PR tree-optimization/97027
974         * builtins.c (access_ref::access_ref): Also set offmax.
975         (access_ref::offset_in_range): Define new function.
976         (access_ref::add_offset): Set offmax.
977         (access_ref::inform_access): Handle access_none.
978         (handle_mem_ref): Clear ostype.
979         (compute_objsize_r): Handle ASSERT_EXPR.
980         * builtins.h (struct access_ref): Add offmax member.
981         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use
982         compute_objsize() and simplify.
983
984 2021-07-07  Peter Bergner  <bergner@linux.ibm.com>
985
986         * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP
987         and VSX_BUILTIN_STXVP.
988
989 2021-07-07  Martin Sebor  <msebor@redhat.com>
990
991         PR target/101363
992         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove
993         a stray %K from error_at() missed in r12-2088.
994
995 2021-07-07  Richard Biener  <rguenther@suse.de>
996
997         PR tree-optimization/99728
998         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record
999         aggregate copies.
1000         (mem_refs_may_alias_p): Add assert we handled aggregate
1001         copies elsewhere.
1002         (sm_seq_valid_bb): Give up when running into aggregate copies.
1003         (ref_indep_loop_p): Handle aggregate copies as never
1004         being invariant themselves but allow other refs to be
1005         disambiguated against them.
1006         (can_sm_ref_p): Do not try to apply store-motion to aggregate
1007         copies.
1008
1009 2021-07-06  Indu Bhagat  <indu.bhagat@oracle.com>
1010
1011         PR debug/101283
1012         * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get
1013         number of bits.
1014
1015 2021-07-06  Martin Sebor  <msebor@redhat.com>
1016
1017         * gimple-pretty-print.c (percent_G_format): Remove.
1018         * tree-diagnostic.c (default_tree_printer): Remove calls.
1019         * tree-pretty-print.c (percent_K_format): Remove.
1020         * tree-pretty-print.h (percent_K_format): Remove.
1021
1022 2021-07-06  Martin Sebor  <msebor@redhat.com>
1023
1024         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
1025         Remove %K and use error_at.
1026         (aarch64_expand_fcmla_builtin): Same.
1027         (aarch64_expand_builtin_tme): Same.
1028         (aarch64_expand_builtin_memtag): Same.
1029         * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same.
1030         (arm_expand_builtin): Same.
1031         * config/arm/arm.c (bounds_check): Same.
1032
1033 2021-07-06  Martin Sebor  <msebor@redhat.com>
1034
1035         * builtins.c (warn_string_no_nul): Remove %G.
1036         (maybe_warn_for_bound): Same.
1037         (warn_for_access): Same.
1038         (check_access): Same.
1039         (check_strncat_sizes): Same.
1040         (expand_builtin_strncat): Same.
1041         (expand_builtin_strncmp): Same.
1042         (expand_builtin): Same.
1043         (expand_builtin_object_size): Same.
1044         (warn_dealloc_offset): Same.
1045         (maybe_emit_free_warning): Same.
1046         * calls.c (maybe_warn_alloc_args_overflow): Same.
1047         (maybe_warn_nonstring_arg): Same.
1048         (maybe_warn_rdwr_sizes): Same.
1049         * expr.c (expand_expr_real_1): Remove %K.
1050         * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G.
1051         (gimple_fold_builtin_strncat): Same.
1052         * gimple-ssa-sprintf.c (format_directive): Same.
1053         (handle_printf_call): Same.
1054         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same.
1055         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
1056         (maybe_diag_access_bounds): Same.  Call gimple_location.
1057         (check_bounds_or_overlap): Same.
1058         * trans-mem.c (ipa_tm_scan_irr_block): Remove %K.  Simplify.
1059         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G.
1060         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
1061         (maybe_diag_stxncpy_trunc): Same.
1062         (handle_builtin_stxncpy_strncat): Same.
1063         (maybe_warn_pointless_strcmp): Same.
1064         * tree-ssa-uninit.c (maybe_warn_operand): Same.
1065
1066 2021-07-06  Uroš Bizjak  <ubizjak@gmail.com>
1067
1068         PR target/97194
1069         * config/i386/predicates.md (vec_setm_operand): Enable
1070         register_operand for TARGET_SSE4_1.
1071         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand
1072         as operand 2 predicate.  Call ix86_expand_vector_set_var
1073         for non-constant index operand.
1074         (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate.
1075         Call ix86_expand_vector_set_var for non-constant index operand.
1076
1077 2021-07-06  Jeff Law  <jeffreyalaw@gmail.com>
1078
1079         * config/h8300/jumpcall.md (*branch): When possible, generate
1080         the comparison in CCZN mode.
1081         * config/h8300/predicates.md (simple_memory_operand): Reject all
1082         auto-increment addressing modes.
1083
1084 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
1085
1086         PR bootstrap/100246
1087         * config/i386/i386.h (struct stringop_algs): Define a CTOR for
1088         this type.
1089
1090 2021-07-06  Richard Biener  <rguenther@suse.de>
1091
1092         * doc/md.texi (vec_fmaddsub<mode>4): Document.
1093         (vec_fmsubadd<mode>4): Likewise.
1094         * optabs.def (vec_fmaddsub$a4): Add.
1095         (vec_fmsubadd$a4): Likewise.
1096         * internal-fn.def (IFN_VEC_FMADDSUB): Add.
1097         (IFN_VEC_FMSUBADD): Likewise.
1098         * tree-vect-slp-patterns.c (addsub_pattern::recognize):
1099         Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD.
1100         (addsub_pattern::build): Likewise.
1101         * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB
1102         and CFN_VEC_FMSUBADD are not transparent for permutes.
1103         * config/i386/sse.md (vec_fmaddsub<mode>4): New expander.
1104         (vec_fmsubadd<mode>4): Likewise.
1105
1106 2021-07-06  Richard Biener  <rguenther@suse.de>
1107
1108         * doc/invoke.texi (fmove-loop-stores): Document.
1109         * common.opt (fmove-loop-stores): New option.
1110         * opts.c (default_options_table): Enable -fmove-loop-stores
1111         at -O1 but not -Og.
1112         * tree-ssa-loop-im.c (pass_lim::execute): Pass
1113         flag_move_loop_stores instead of true to
1114         loop_invariant_motion_in_fun.
1115
1116 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
1117
1118         * doc/install.texi: Document --with-dsymutil.
1119
1120 2021-07-06  Andrew Pinski  <apinski@marvell.com>
1121
1122         PR tree-optimization/101256
1123         * dbgcnt.def (phiopt_edge_range): New counter.
1124         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
1125         Check to make sure the new name is defined in the same
1126         bb as the conditional before duplicating range info.
1127         Also add debug counter.
1128
1129 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
1130
1131         PR rtl-optimization/100328
1132         * config/i386/i386-options.c (ix86_option_override_internal):
1133         Set param_ira_consider_dup_in_all_alts to 0.
1134
1135 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
1136
1137         PR rtl-optimization/100328
1138         * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new
1139         parameter.
1140         * ira.c (ira_get_dup_out_num): Adjust as parameter
1141         param_ira_consider_dup_in_all_alts.
1142         * params.opt (ira-consider-dup-in-all-alts): New.
1143         * ira-conflicts.c (process_regs_for_copy): Add one parameter
1144         single_input_op_has_cstr_p.
1145         (get_freq_for_shuffle_copy): New function.
1146         (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p.
1147         * ira-int.h (ira_get_dup_out_num): Add one bool parameter.
1148
1149 2021-07-05  Jeff Law  <jeffreyalaw@gmail.com>
1150
1151         * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to
1152         generate condition code aware RTL directly.
1153
1154 2021-07-05  Andrew Pinski  <apinski@marvell.com>
1155
1156         PR tree-optimization/101039
1157         * match.pd (A CMP 0 ? A : -A): New patterns.
1158         * tree-ssa-phiopt.c (abs_replacement): Delete function.
1159         (tree_ssa_phiopt_worker): Don't call abs_replacement.
1160         Update comment about abs_replacement.
1161
1162 2021-07-05  Andrew Pinski  <apinski@marvell.com>
1163
1164         * tree-ssa-phiopt.c (gimple_simplify_phiopt):
1165         If "A ? B : C" fails to simplify, try "(!A) ? C : B".
1166
1167 2021-07-05  Andrew Pinski  <apinski@marvell.com>
1168
1169         * tree-ssa-phiopt.c (match_simplify_replacement):
1170         Add early_p argument. Call gimple_simplify_phiopt
1171         instead of gimple_simplify.
1172         (tree_ssa_phiopt_worker): Update call to
1173         match_simplify_replacement and allow unconditionally.
1174         (phiopt_early_allow): New function.
1175         (gimple_simplify_phiopt): New function.
1176
1177 2021-07-05  Andrew Pinski  <apinski@marvell.com>
1178
1179         PR middle-end/101237
1180         * fold-const.c (negate_expr_p): Remove call to element_mode
1181         and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS,
1182         HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS.
1183         (fold_negate_expr_1): Likewise.
1184         (const_unop): Likewise.
1185         (fold_cond_expr_with_comparison): Likewise.
1186         (fold_binary_loc): Likewise.
1187         (fold_ternary_loc): Likewise.
1188         (tree_call_nonnegative_warnv_p): Likewise.
1189         * match.pd (-(A + B) -> (-B) - A): Likewise.
1190
1191 2021-07-05  Iain Sandoe  <iain@sandoe.co.uk>
1192
1193         * configure.ac: Handle --with-dsymutil in the same way as we
1194         do for the assembler and linker.  (DEFAULT_DSYMUTIL): New.
1195         Extract the type and version for the dsymutil configured or
1196         found by the default searches.
1197         * config.in: Regenerated.
1198         * configure: Regenerated.
1199         * collect2.c (do_dsymutil): Handle locating dsymutil in the
1200         same way as for the assembler and  linker.
1201         * config/darwin.h (DSYMUTIL): Delete.
1202         * gcc.c: Report a configured dsymutil correctly.
1203         * exec-tool.in: Allow for dsymutil.
1204
1205 2021-07-05  Uroš Bizjak  <ubizjak@gmail.com>
1206
1207         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
1208         Handle V4QI and V2HI modes.
1209         (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1.
1210         Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes.
1211         (expand_vec_perm_pshufb): Rewrite to use switch statemets.
1212         Handle 4-byte dual operands with TARGET_XOP and single operands
1213         with TARGET_SSSE3.  Emit mmx_ppermv32 for TARGET_XOP and
1214         mmx_pshufbv4qi3 for TARGET_SSSE3.
1215         (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1.
1216         (expand_vec_perm_interleave2): Allow 4-byte vector modes.
1217         (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3.
1218         (expand_vec_perm_even_odd_1): Handle V4QI mode.
1219         (expand_vec_perm_broadcast_1): Handle V4QI mode.
1220         (ix86_vectorize_vec_perm_const): Handle V4QI mode.
1221         * config/i386/mmx.md (mmx_ppermv32): New insn pattern.
1222         (mmx_pshufbv4qi3): Ditto.
1223         (*mmx_pblendw32): Ditto.
1224         (*mmx_pblendw64): Rename from *mmx_pblendw.
1225         (mmx_punpckhbw_low): New insn_and_split pattern.
1226         (mmx_punpcklbw_low): Ditto.
1227
1228 2021-07-05  Richard Biener  <rguenther@suse.de>
1229
1230         * tree-vect-loop-manip.c (vect_loop_versioning): Do not
1231         set LOOP_C_INFINITE on the vectorized loop.
1232
1233 2021-07-05  Richard Biener  <rguenther@suse.de>
1234
1235         PR middle-end/101291
1236         * cfgloopmanip.c (loop_version): Set the loop copy of the
1237         versioned loop to the new loop.
1238
1239 2021-07-04  Iain Sandoe  <iain@sandoe.co.uk>
1240
1241         PR target/100269
1242         * config.gcc: Ensure that Darwin biarch definitions are
1243         added before i386.h.
1244         * config/i386/darwin.h (TARGET_64BIT): Remove.
1245         (PR80556_WORKAROUND): New.
1246         (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND.
1247         (DARWIN_SUBARCH_SPEC): New.
1248         * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT,
1249         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
1250         (REAL_LIBGCC_SPEC): Remove.
1251         * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT,
1252         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
1253         (REAL_LIBGCC_SPEC): Remove.
1254
1255 2021-07-03  H.J. Lu  <hjl.tools@gmail.com>
1256
1257         PR middle-end/101294
1258         * expr.c (store_constructor): Don't use vec_duplicate on vector.
1259
1260 2021-07-02  Martin Sebor  <msebor@redhat.com>
1261
1262         PR middle-end/98871
1263         PR middle-end/98512
1264         * diagnostic.c (get_any_inlining_info): New.
1265         (update_effective_level_from_pragmas): Handle inlining context.
1266         (diagnostic_enabled): Same.
1267         (diagnostic_report_diagnostic): Same.
1268         * diagnostic.h (struct diagnostic_info): Add ctor.
1269         (struct diagnostic_context): Add new member.
1270         * tree-diagnostic.c (set_inlining_locations): New.
1271         (tree_diagnostics_defaults): Set new callback pointer.
1272
1273 2021-07-02  Peter Bergner  <bergner@linux.ibm.com>
1274
1275         * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
1276         New macros.
1277         (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins.
1278         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand
1279         lxvp and stxvp built-ins.
1280         (mma_init_builtins): Handle lxvp and stxvp built-ins.
1281         (builtin_function_type): Likewise.
1282         * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document.
1283
1284 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1285
1286         * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept
1287         additional argument for the code.
1288         * config/h8300/h8300.c (compute_a_shift_cc): Accept additional
1289         argument for the code.  Just return if the ZN bits are useful or
1290         not rather than the old style CC_* enums.
1291         * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before
1292         more generic shiftqi patterns.
1293         (shifthi_noscratch, shiftsi_noscratch): Similarly.
1294         (shiftqi_noscratch_set_flags): New pattern.
1295         (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise.
1296
1297 2021-07-02  Andrew MacLeod  <amacleod@redhat.com>
1298
1299         PR tree-optimization/101223
1300         * range-op.cc (build_lt): Add -1 for signed values.
1301         (built_gt): Subtract -1 for signed values.
1302
1303 2021-07-02  David Faust  <david.faust@oracle.com>
1304
1305         * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT.
1306         (btf_asm_type): Likewise.
1307
1308 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1309
1310         * config/h8300/h8300-protos.h (output_a_shift): Make first argument
1311         an array of rtx rather than a pointer to rtx.  Add code argument.
1312         (compute_a_shift_length): Similarly.
1313         * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the
1314         shift itself isn't an operand.  Create dummy operand[0] to carry
1315         a mode and pass a suitable rtx code to compute_a_shift_length.
1316         (get_shift_alg): Adjust operand number of clobber in output templates.
1317         (output_a_shift): Make first argument an array of rtx rather than
1318         a pointer to rtx.  Add code argument for the type of shift.
1319         Adjust now that the shift itself is no longer an operand.
1320         (compute_a_shift_length): Similarly.
1321         * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an
1322         iterator rather than nshift_operator.
1323         (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise.
1324         (shiftqi_clobber_flags): Adjust to API changes in output_a_shift
1325         and compute_a_shift_length.
1326         (shiftqi_noscratch_clobber_flags): Likewise.
1327         (shifthi_noscratch_clobber_flags): Likewise.
1328         (shiftsi_noscratch_clobber_flags): Likewise.
1329
1330 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
1331
1332         PR debug/101283
1333         * config/darwin.h (DSYMUTIL_SPEC): Do not try to run
1334         dsymutil for BTF/CTF.
1335
1336 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
1337
1338         PR debug/101283
1339         * config/darwin.h (CTF_INFO_SECTION_NAME): Update the
1340         segment to include BTF.
1341         (BTF_INFO_SECTION_NAME): New.
1342
1343 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1344
1345         * config/m32r/m32r-protos.h (call_operand): Adjust return type.
1346         (small_data_operand, memreg_operand, small_insn_p): Likewise.
1347         * config/m32r/m32r.c (call_operand): Adjust return type.
1348         (small_data_operand, memreg_operand): Likewise.
1349
1350 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1351
1352         * config/frv/frv-protos.h  (integer_register_operand): Adjust return
1353         type.
1354         (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise.
1355         (fpr_or_int6_operand, gpr_or_int_operand); Likewise.
1356         (gpr_or_int12_operand, gpr_or_int10_operand); Likewise.
1357         (move_source_operand, move_destination_operand): Likewise.
1358         (condexec_source_operand, condexec_dest_operand): Likewise.
1359         (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise.
1360         (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise.
1361         (fcr_operand, icr_operand, cr_operand, call_operand): Likewise.
1362         (fpr_operand, even_reg_operand, odd_reg_operand): Likewise.
1363         (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise.
1364         (even_fpr_operand, odd_fpr_operand): Likewise.
1365         (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise.
1366         (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise.
1367         (uint4_operand, uint1_operand, int_2word_operand): Likewise
1368         (upper_int16_operand, uint16_operand, symbolic_operand): Likewise.
1369         (relational_operator, float_relational_operator): Likewise.
1370         (ccr_eqne_operator, minmax_operator): Likewise.
1371         (condexec_si_binary_operator, condexec_si_media_operator): Likewise.
1372         (condexec_si_divide_operator, condexec_si_unary_operator): Likewise.
1373         (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise.
1374         (intop_compare_operator, acc_operand, even_acc_operand): Likewise.
1375         (quad_acc_operand, accg_operand): Likewise.
1376
1377 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1378
1379         * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change
1380         return type to a bool.
1381         (nonimmediate_nonstack_operand): Likewise.
1382         (xstormy16_splittable_below100_operand): Likewise.
1383         * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix
1384         return type.
1385         (xstormy16_splittable_below100_operand): Likewise.
1386
1387 2021-07-02  Richard Biener  <rguenther@suse.de>
1388
1389         PR tree-optimization/101293
1390         * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases
1391         with combined offsets.
1392         (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were
1393         combined with the rest of the offset.
1394
1395 2021-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1396
1397         * config/i386/i386.c (asm_preferred_eh_data_format): Always use the
1398         PIC encodings for PE-COFF targets.
1399
1400 2021-07-02  Jakub Jelinek  <jakub@redhat.com>
1401
1402         PR target/101286
1403         * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant):
1404         Return nullptr for TImode inner mode.
1405
1406 2021-07-02  Richard Biener  <rguenther@suse.de>
1407
1408         PR tree-optimization/101280
1409         PR tree-optimization/101173
1410         * gimple-loop-interchange.cc
1411         (tree_loop_interchange::valid_data_dependences): Properly
1412         guard all dependence checks with DDR_REVERSED_P or its
1413         inverse.
1414
1415 2021-07-02  Hongyu Wang  <hongyu.wang@intel.com>
1416
1417         * config/i386/i386-expand.c (ix86_expand_builtin):
1418         Add branch to clear odata when ZF is set for asedecenc_expand
1419         and wideaesdecenc_expand.
1420
1421 2021-07-02  Eugene Rozenfeld  <erozen@microsoft.com>
1422
1423         * config/i386/gcc-auto-profile: regenerate
1424
1425 2021-07-02  liuhongt  <hongtao.liu@intel.com>
1426
1427         * config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to ..
1428         (trunc<mode><pmov_dst_4_lower>2): this.
1429
1430 2021-07-01  David Malcolm  <dmalcolm@redhat.com>
1431
1432         * diagnostic.h (diagnostic_context::m_file_cache): New field.
1433         * input.c (class fcache): Rename to...
1434         (class file_cache_slot): ...this, making most members private and
1435         prefixing fields with "m_".
1436         (file_cache_slot::get_file_path): New accessor.
1437         (file_cache_slot::get_use_count): New accessor.
1438         (file_cache_slot::missing_trailing_newline_p): New accessor.
1439         (file_cache_slot::inc_use_count): New.
1440         (fcache_buffer_size): Move to...
1441         (file_cache_slot::buffer_size): ...here.
1442         (fcache_line_record_size): Move to...
1443         (file_cache_slot::line_record_size): ...here.
1444         (fcache_tab): Delete, in favor of global_dc->m_file_cache.
1445         (fcache_tab_size): Move to file_cache::num_file_slots.
1446         (diagnostic_file_cache_init): Update for move of fcache_tab
1447         to global_dc->m_file_cache.
1448         (diagnostic_file_cache_fini): Likewise.
1449         (lookup_file_in_cache_tab): Convert to...
1450         (file_cache::lookup_file): ...this.
1451         (diagnostics_file_cache_forcibly_evict_file): Update for move of
1452         fcache_tab to global_dc->m_file_cache, moving most of
1453         implementation to...
1454         (file_cache::forcibly_evict_file): ...this new function and...
1455         (file_cache_slot::evict): ...this new function.
1456         (evicted_cache_tab_entry): Convert to...
1457         (file_cache::evicted_cache_tab_entry): ...this.
1458         (add_file_to_cache_tab): Convert to...
1459         (file_cache::add_file): ...this, moving bulk of implementation
1460         to...
1461         (file_cache_slot::create): ..this new function.
1462         (file_cache::file_cache): New.
1463         (file_cache::~file_cache): New.
1464         (lookup_or_add_file_to_cache_tab): Convert to...
1465         (file_cache::lookup_or_add_file): ..this new function.
1466         (fcache::fcache): Rename to...
1467         (file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes
1468         to fields.
1469         (fcache::~fcache): Rename to...
1470         (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes
1471         to fields.
1472         (needs_read): Convert to...
1473         (file_cache_slot::needs_read_p): ...this.
1474         (needs_grow): Convert to...
1475         (file_cache_slot::needs_grow_p): ...this.
1476         (maybe_grow): Convert to...
1477         (file_cache_slot::maybe_grow): ...this.
1478         (read_data): Convert to...
1479         (file_cache_slot::read_data): ...this.
1480         (maybe_read_data): Convert to...
1481         (file_cache_slot::maybe_read_data): ...this.
1482         (get_next_line): Convert to...
1483         (file_cache_slot::get_next_line): ...this.
1484         (goto_next_line): Convert to...
1485         (file_cache_slot::goto_next_line): ...this.
1486         (read_line_num): Convert to...
1487         (file_cache_slot::read_line_num): ...this.
1488         (location_get_source_line): Update for moving of globals to
1489         global_dc->m_file_cache.
1490         (location_missing_trailing_newline): Likewise.
1491         * input.h (class file_cache_slot): New forward decl.
1492         (class file_cache): New.
1493
1494 2021-07-01  Michael Meissner  <meissner@linux.ibm.com>
1495
1496         * config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE
1497         128-bit floating point conditional move support.
1498         (have_compare_and_set_mask): Add IEEE 128-bit floating point
1499         types.
1500         * config/rs6000/rs6000.md (mov<mode>cc, IEEE128 iterator): New insn.
1501         (mov<mode>cc_p10, IEEE128 iterator): New insn.
1502         (mov<mode>cc_invert_p10, IEEE128 iterator): New insn.
1503         (fpmask<mode>, IEEE128 iterator): New insn.
1504         (xxsel<mode>, IEEE128 iterator): New insn.
1505
1506 2021-07-01  Iain Sandoe  <iain@sandoe.co.uk>
1507
1508         PR debug/101283
1509         * config/darwin.h (CTF_INFO_SECTION_NAME): New.
1510
1511 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
1512
1513         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
1514         Make it global.
1515         * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate):
1516         New prototype.
1517         * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator.
1518         (vec_duplicate<mode>): New expander.
1519
1520 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
1521
1522         PR target/100865
1523         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
1524         New prototype.
1525         (ix86_byte_broadcast): New function.
1526         (ix86_convert_const_wide_int_to_broadcast): Likewise.
1527         (ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode
1528         size is 16 bytes or bigger.
1529         (ix86_broadcast_from_integer_constant): New function.
1530         (ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR
1531         to broadcast if mode size is 16 bytes or bigger.
1532         * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New
1533         prototype.
1534         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function.
1535
1536 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
1537
1538         * config/i386/predicates.md (ix86_endbr_immediate_operand):
1539         Return true/false instead of 1/0.
1540         (movq_parallel): Ditto.
1541
1542 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
1543
1544         * recog.c (general_operand): Return true/false instead of 1/0.
1545         (register_operand): Ditto.
1546         (immediate_operand): Ditto.
1547         (const_int_operand): Ditto.
1548         (const_scalar_int_operand): Ditto.
1549         (const_double_operand): Ditto.
1550         (push_operand): Ditto.
1551         (pop_operand): Ditto.
1552         (memory_operand): Ditto.
1553         (indirect_operand): Ditto.
1554
1555 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
1556
1557         * genpreds.c (write_predicate_subfunction):
1558         Change the type of written subfunction to bool.
1559         (write_one_predicate_function):
1560         Change the type of written function to bool.
1561         (write_tm_preds_h): Ditto.
1562         * recog.h (*insn_operand_predicate_fn): Change the type to bool.
1563         * recog.c (general_operand): Change the type to bool.
1564         (address_operand): Ditto.
1565         (register_operand): Ditto.
1566         (pmode_register_operand): Ditto.
1567         (scratch_operand): Ditto.
1568         (immediate_operand): Ditto.
1569         (const_int_operand): Ditto.
1570         (const_scalar_int_operand): Ditto.
1571         (const_double_operand): Ditto.
1572         (nonimmediate_operand): Ditto.
1573         (nonmemory_operand): Ditto.
1574         (push_operand): Ditto.
1575         (pop_operand): Ditto.
1576         (memory_operand): Ditto.
1577         (indirect_operand): Ditto.
1578         (ordered_comparison_operator): Ditto.
1579         (comparison_operator): Ditto.
1580         * config/i386/i386-expand.c (ix86_expand_sse_cmp):
1581         Change the type of indirect predicate function to bool.
1582         * config/rs6000/rs6000.c (easy_vector_constant):
1583         Change the type to bool.
1584         * config/mips/mips-protos.h (m16_based_address_p):
1585         Change the type of operand 3 to bool.
1586
1587 2021-07-01  Richard Biener  <rguenther@suse.de>
1588
1589         PR tree-optimization/101280
1590         PR tree-optimization/101173
1591         * gimple-loop-interchange.cc
1592         (tree_loop_interchange::valid_data_dependences): Revert
1593         previous change and instead correctly handle DDR_REVERSED_P
1594         dependence.
1595
1596 2021-07-01  Richard Biener  <rguenther@suse.de>
1597
1598         PR tree-optimization/101278
1599         * tree-ssa-dse.c (dse_classify_store): First check for
1600         uses, then ignore stmt for chaining purposes.
1601
1602 2021-07-01  Richard Biener  <rguenther@suse.de>
1603
1604         PR tree-optimization/100778
1605         * tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping
1606         vectorized ops ahead of their scalar BB.
1607
1608 2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>
1609
1610         PR target/101044
1611         * config/i386/i386.md (*nabs<dwi>2_doubleword):
1612         New insn_and_split pattern.
1613         (*nabs<dwi>2_1): Ditto.
1614         * config/i386/i386-features.c
1615         (general_scalar_chain::compute_convert_gain):
1616         Handle (NEG (ABS (...))) RTX.  Rewrite src code
1617         scanner as switch statement.
1618         (general_scalar_chain::convert_insn):
1619         Handle (NEG (ABS (...))) RTX.
1620         (general_scalar_to_vector_candidate_p):
1621         Detect  (NEG (ABS (...))) RTX.  Reorder case statements
1622         for (AND (NOT (...) ...)) fallthrough.
1623
1624 2021-07-01  Richard Biener  <rguenther@suse.de>
1625
1626         PR tree-optimization/101178
1627         * tree-vect-slp.c (slpg_vertex::materialize): Remove.
1628         (slpg::perm_in): Add.
1629         (slpg::get_perm_in): Remove.
1630         (slpg::get_perm_materialized): Add.
1631         (vect_optimize_slp): Handle VEC_PERM nodes more optimally
1632         during permute propagation and materialization.
1633
1634 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
1635
1636         PR debug/101266
1637         * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR.
1638
1639 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
1640
1641         PR middle-end/94366
1642         * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to
1643         is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type,
1644         use boolean_type_node instead of integer_type_node as NE_EXPR type.
1645         (lower_reduction_clauses): Likewise.
1646
1647 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
1648
1649         * config/gcn/gcn.c: Include dwarf2.h.
1650         (gcn_addr_space_debug): New function.
1651         (TARGET_ADDR_SPACE_DEBUG): New hook.
1652
1653 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
1654
1655         * common/config/gcn/gcn-common.c
1656         (gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3.
1657         * config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer
1658         when emitting CFI.
1659         (gcn_expand_prologue): Prefer the frame pointer when emitting CFI.
1660         (gcn_frame_pointer_rqd): New function.
1661         (TARGET_FRAME_POINTER_REQUIRED): New hook.
1662
1663 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
1664
1665         * config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for
1666         prologue register saves.
1667         (gcn_debug_unwind_info): Use UI_DWARF2.
1668         (gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC.
1669         (gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span.
1670         * config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define.
1671         (DWARF_LINK_REGISTER): New define.
1672         (FIRST_PSEUDO_REGISTER): Increment.
1673         (FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER.
1674         (CALL_USED_REGISTERS): Likewise.
1675         (REGISTER_NAMES): Likewise.
1676
1677 2021-06-30  Richard Biener  <rguenther@suse.de>
1678
1679         PR tree-optimization/101267
1680         * tree-vect-stmts.c (vect_check_scalar_mask): Adjust
1681         API and use SLP compatible interface of vect_is_simple_use.
1682         Reject not vectorized SLP defs for callers that do not support
1683         that.
1684         (vect_check_store_rhs): Handle masked stores and pass down
1685         the appropriate operator index.
1686         (vectorizable_call): Adjust.
1687         (vectorizable_store): Likewise.
1688         (vectorizable_load): Likewise.  Handle SLP pecularity of
1689         masked loads.
1690         (vect_is_simple_use): Remove special-casing of masked stores.
1691
1692 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
1693
1694         * common.opt (foffload): Remove help as Driver only.
1695         * gcc.c (display_help): Add -foffload.
1696
1697 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
1698
1699         * gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC.
1700         (check_offload_target_name): Fix splitting OFFLOAD_TARGETS into
1701         a candidate list; better inform no offload target is configured
1702         and fix hint extraction when passed target is not '\0' at [len].
1703         * common.opt (foffload): Add tailing '.'.
1704         (foffload-options): Likewise; fix flag name in the help string.
1705
1706 2021-06-30  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
1707
1708         PR target/66791
1709         * config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32.
1710         (vcage_f32): Gate comparison on __FAST_MATH__.
1711         (vcageq_f32): Likewise.
1712         (vcale_f32): Likewise.
1713         (vcaleq_f32): Likewise.
1714         (vcagt_f32): Likewise.
1715         (vcagtq_f32): Likewise.
1716         (vcalt_f32): Likewise.
1717         (vcaltq_f32): Likewise.
1718         (vcage_f16): Likewise.
1719         (vcageq_f16): Likewise.
1720         (vcale_f16): Likewise.
1721         (vcaleq_f16): Likewise.
1722         (vcagt_f16): Likewise.
1723         (vcagtq_f16): Likewise.
1724         (vcalt_f16): Likewise.
1725         (vcaltq_f16): Likewise.
1726
1727 2021-06-30  Richard Biener  <rguenther@suse.de>
1728
1729         PR tree-optimization/101264
1730         * tree-vect-slp.c (vect_optimize_slp): Propagate the
1731         computed perm_in to all "any" permute successors
1732         we cannot de-duplicate immediately.
1733
1734 2021-06-30  liuhongt  <hongtao.liu@intel.com>
1735
1736         PR target/101248
1737         * config/i386/sse.md
1738         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>):
1739         Refined to ..
1740         (avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>):
1741         this.
1742         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>"): Refined.
1743         * config/i386/subst.md (maskz_scalar): New define_subst.
1744         (maskz_scalar_name): New subst_attr.
1745         (maskz_scalar_op5): Ditto.
1746         (round_saeonly_maskz_scalar_op5): Ditto.
1747         (round_saeonly_maskz_scalar_operand5): Ditto.
1748
1749 2021-06-30  David Edelsohn  <dje.gcc@gmail.com>
1750
1751         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
1752         Increase code CSECT alignment to at least 32 bytes.
1753         * config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte
1754         alignment designation.
1755
1756 2021-06-29  Sergei Trofimovich  <siarheit@google.com>
1757
1758         * doc/generic.texi: Fix s/net yet/not yet/ typo.
1759
1760 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
1761
1762         PR tree-optimization/101254
1763         * range-op.cc (operator_minus::op1_op2_relation_effect): Check for
1764         wrapping/non-wrapping when setting the result range.
1765
1766 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
1767
1768         * value-query.cc (gimple_range_global): Allow phis.
1769
1770 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
1771
1772         * vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt.
1773         (simplify_using_ranges::op_with_boolean_value_range_p): Add a
1774         statement for location context.
1775         (check_for_binary_op_overflow): Ditto.
1776         (simplify_using_ranges::get_vr_for_comparison): Ditto.
1777         (simplify_using_ranges::compare_name_with_value): Ditto.
1778         (simplify_using_ranges::compare_names): Ditto.
1779         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto.
1780         (simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto.
1781         (simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto.
1782         (simplify_using_ranges::simplify_internal_call_using_ranges): Ditto.
1783         (simplify_using_ranges::two_valued_val_range_p): Ditto.
1784         (simplify_using_ranges::simplify): Ditto.
1785         * vr-values.h: Adjust prototypes.
1786
1787 2021-06-29  Uroš Bizjak  <ubizjak@gmail.com>
1788
1789         PR target/95046
1790         * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern.
1791
1792 2021-06-29  Julian Brown  <julian@codesourcery.com>
1793
1794         * config/gcn/gcn.c (gcn_init_libfuncs): New function.
1795         (TARGET_INIT_LIBFUNCS): Define target hook using above function.
1796         * config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4
1797         otherwise.
1798         (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions.
1799         (MAX_FIXED_MODE_SIZE): Change to 128.
1800
1801 2021-06-29  Julian Brown  <julian@codesourcery.com>
1802
1803         * config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant.
1804         (s_mnemonic): Add clrsb.
1805         (gcn_flbit<mode>_int): Add insn pattern for SImode/DImode.
1806         (clrsb<mode>2): Add expander for SImode/DImode.
1807
1808 2021-06-29  Julian Brown  <julian@codesourcery.com>
1809
1810         * config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm,
1811         muldi3): Add patterns.
1812
1813 2021-06-29  Julian Brown  <julian@codesourcery.com>
1814
1815         * config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander.
1816         (<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns.
1817
1818 2021-06-29  Julian Brown  <julian@codesourcery.com>
1819
1820         * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.
1821
1822 2021-06-29  Joseph Myers  <joseph@codesourcery.com>
1823
1824         * btfout.c, ctfout.c: Include "memmodel.h".
1825
1826 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
1827
1828         * gcc.c (check_offload_target_name): Cast len argument to
1829         %q.*s to 'int'; avoid -Wstringop-truncation warning.
1830
1831 2021-06-29  Richard Biener  <rguenther@suse.de>
1832
1833         * tree-vect-slp.c (vect_optimize_slp): Forward propagate
1834         to "any" permute nodes and relax "any" permute proapgation
1835         during iterative backward propagation.
1836
1837 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
1838
1839         PR other/67300
1840         * common.opt (-foffload=): Update description.
1841         (-foffload-options=): New.
1842         * doc/invoke.texi (C Language Options): Document
1843         -foffload and -foffload-options.
1844         * gcc.c (check_offload_target_name): New, split off from
1845         handle_foffload_option.
1846         (check_foffload_target_names): New.
1847         (handle_foffload_option): Handle -foffload=default.
1848         (driver_handle_option): Update for -foffload-options.
1849         * lto-opts.c (lto_write_options): Use -foffload-options
1850         instead of -foffload.
1851         * lto-wrapper.c (merge_and_complain, append_offload_options):
1852         Likewise.
1853         * opts.c (common_handle_option): Likewise.
1854
1855 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
1856
1857         * doc/invoke.texi (C Language Options): Sort options
1858         alphabetically in optlist and also the description itself.
1859         Remove leftover -fallow-single-precision from and add missing
1860         -fgnu-tm to the optlist.
1861
1862 2021-06-29  Richard Biener  <rguenther@suse.de>
1863
1864         * tree-vect-slp.c (slpg_vertex::visited): Remove.
1865         (vect_slp_perms_eq): Handle -1 permutes.
1866         (vect_optimize_slp): Rewrite permute propagation.
1867
1868 2021-06-29  Jakub Jelinek  <jakub@redhat.com>
1869
1870         PR c++/101210
1871         * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't
1872         perform the optimization in GENERIC when sanitizing and x has a
1873         reference type.
1874
1875 2021-06-29  Richard Biener  <rguenther@suse.de>
1876
1877         PR tree-optimization/101242
1878         * tree-vect-slp.c (vect_slp_build_vertices): Force-add
1879         PHIs with not represented initial values as leafs.
1880
1881 2021-06-29  Jan-Benedict Glaw  <jbglaw@getslash.de>
1882
1883         * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning.
1884         * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove
1885         "register" keyword.
1886         (pdp11_initial_elimination_offset) Remove unused variable.
1887         (pdp11_cmp_length) Ditto.
1888         (pdp11_insn_cost): Ditto, and fix signedness warning.
1889
1890 2021-06-29  David Edelsohn  <dje.gcc@gmail.com>
1891
1892         * btfout.c: Include tm_p.h.
1893         * ctfout.c: Same.
1894
1895 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
1896
1897         * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as
1898         frame related.
1899         (bpf_expand_epilogue): Likewise.
1900         * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0.
1901         Do not define DBX_DEBUGGING_INFO.
1902
1903 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
1904
1905         * doc/invoke.texi: Document the CTF and BTF debug info options.
1906
1907 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
1908             David Faust  <david.faust@oracle.com>
1909             Jose E. Marchesi  <jose.marchesi@oracle.com>
1910             Weimin Pan  <weimin.pan@oracle.com>
1911
1912         * Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to
1913         GTFILES.  Add new object files.
1914         * common.opt: Add CTF and BTF debug info options.
1915         * btfout.c: New file.
1916         * ctfc.c: Likewise.
1917         * ctfc.h: Likewise.
1918         * ctfout.c: Likewise.
1919         * dwarf2ctf.c: Likewise.
1920         * dwarf2ctf.h: Likewise.
1921         * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and
1922         BTF_DEBUG.
1923         * dwarf2out.c (dwarf2out_source_line): Likewise.
1924         (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to
1925         be generated.
1926         (debug_format_do_cu): New function.
1927         (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for
1928         them if requested.
1929         Include dwarf2ctf.c.
1930         * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug
1931         formats.
1932         * flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG.
1933         (CTF_DEBUG): New bitmask.
1934         (BTF_DEBUG): Likewise.
1935         (enum ctf_debug_info_levels): New enum.
1936         * gengtype.c (open_base_files): Handle ctfc.h.
1937         (main): Handle uint32_t type.
1938         * flags.h (btf_debuginfo_p): New definition.
1939         (dwarf_based_debuginfo_p): Likewise.
1940         * opts.c (debug_type_names): Add entries for CTF and BTF.
1941         (btf_debuginfo_p): New function.
1942         (dwarf_based_debuginfo_p): Likewise.
1943         (common_handle_option): Handle -gctfN and -gbtf options.
1944         (set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate.
1945         * toplev.c (process_options): Inform the user and ignore -gctfLEVEL if
1946         frontend is not C.
1947
1948 2021-06-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
1949
1950         * dwarf2out.c (AT_class): Function is no longer static.
1951         (AT_int): Likewise.
1952         (AT_unsigned): Likewise.
1953         (AT_loc): Likewise.
1954         (get_AT): Likewise.
1955         (get_AT_string): Likewise.
1956         (get_AT_flag): Likewise.
1957         (get_AT_unsigned): Likewise.
1958         (get_AT_ref): Likewise.
1959         (new_die_raw): Likewise.
1960         (lookup_decl_die): Likewise.
1961         (base_type_die): Likewise.
1962         (add_name_attribute): Likewise.
1963         (add_AT_int): Likewise.
1964         (add_AT_unsigned): Likewise.
1965         (add_AT_loc): Likewise.
1966         (dw_get_die_tag): New function.
1967         (dw_get_die_child): Likewise.
1968         (dw_get_die_sib): Likewise.
1969         (struct dwarf_file_data): Move from here to dwarf2out.h
1970         (struct dw_attr_struct): Likewise.
1971         * dwarf2out.h: Analogous changes.
1972
1973 2021-06-28  Martin Jambor  <mjambor@suse.cz>
1974
1975         PR ipa/93385
1976         * ipa-param-manipulation.h (class ipa_param_body_adjustments): New
1977         members m_dead_stmts and m_dead_ssas.
1978         * ipa-param-manipulation.c
1979         (ipa_param_body_adjustments::mark_dead_statements): New function.
1980         (ipa_param_body_adjustments::common_initialization): Call it on
1981         all removed but not split parameters.
1982         (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
1983         new mwmbers.
1984         (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that
1985         are dead.
1986         * tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset
1987         dead debug statements.
1988         (copy_phis_for_bb): Do not copy dead PHI nodes.
1989
1990 2021-06-28  Martin Jambor  <mjambor@suse.cz>
1991
1992         PR ipa/93385
1993         * symtab-clones.h (clone_info): Removed member param_adjustments.
1994         * ipa-param-manipulation.h: Adjust initial comment to reflect how we
1995         deal with pass-through splits now.
1996         (ipa_param_performed_split): Removed.
1997         (ipa_param_adjustments::modify_call): Adjusted parameters.
1998         (class ipa_param_body_adjustments): Adjusted parameters of
1999         register_replacement, modify_gimple_stmt and modify_call_stmt.
2000         (ipa_verify_edge_has_no_modifications): Declare.
2001         (ipa_edge_modifications_finalize): Declare.
2002         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove
2003         performed_splits processing, pas only edge to padjs->modify_call,
2004         check that call arguments were not modified if they should not have
2005         been.
2006         * cgraphclones.c (cgraph_node::create_clone): Do not copy performed
2007         splits.
2008         * ipa-param-manipulation.c (struct pass_through_split_map): New type.
2009         (ipa_edge_modification_info): Likewise.
2010         (ipa_edge_modification_sum): Likewise.
2011         (ipa_edge_modifications): New edge summary.
2012         (ipa_verify_edge_has_no_modifications): New function.
2013         (transitive_split_p): Removed.
2014         (transitive_split_map): Likewise.
2015         (init_transitive_splits): Likewise.
2016         (ipa_param_adjustments::modify_call): Adjusted to use the new edge
2017         summary instead of performed_splits.
2018         (ipa_param_body_adjustments::register_replacement): Drop dummy
2019         parameter, set base_index of the created ipa_param_body_replacement.
2020         (phi_arg_will_live_p): New function.
2021         (ipa_param_body_adjustments::common_initialization): Do not create
2022         IPA_SRA dummy decls.
2023         (simple_tree_swap_info): Removed.
2024         (remap_split_decl_to_dummy): Likewise.
2025         (record_argument_state_1): New function.
2026         (record_argument_state): Likewise.
2027         (ipa_param_body_adjustments::modify_call_stmt): New parameter
2028         orig_stmt.  Do not work with dummy decls, save necessary info about
2029         changes to ipa_edge_modifications.
2030         (ipa_param_body_adjustments::modify_gimple_stmt): New parameter
2031         orig_stmt, pass it to modify_call_stmt.
2032         (ipa_param_body_adjustments::modify_cfun_body): Adjust call to
2033         modify_gimple_stmt.
2034         (ipa_edge_modifications_finalize): New function.
2035         * tree-inline.c (remap_gimple_stmt): Pass original statement to
2036         modify_gimple_stmt.
2037         (copy_phis_for_bb): Do not copy dead PHI nodes.
2038         (expand_call_inline): Do not remap performed_splits.
2039         (update_clone_info): Likewise.
2040         * toplev.c: Include ipa-param-manipulation.h.
2041         (toplev::finalize): Call ipa_edge_modifications_finalize.
2042
2043 2021-06-28  Andrew Pinski  <apinski@marvell.com>
2044
2045         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range
2046         info if we're the only things setting the target PHI.
2047         (value_replacement): Don't duplicate range here.
2048         (minmax_replacement): Likewise.
2049
2050 2021-06-28  Richard Biener  <rguenther@suse.de>
2051
2052         PR tree-optimization/101229
2053         * gimple-walk.c (gimple_walk_op): Handle PHIs.
2054
2055 2021-06-28  Martin Liska  <mliska@suse.cz>
2056
2057         * config/v850/v850.c (construct_dispose_instruction): Allocate
2058         a bigger buffer.
2059         (construct_prepare_instruction): Likewise.
2060
2061 2021-06-28  Martin Liska  <mliska@suse.cz>
2062
2063         * config/v850/v850.c (v850_option_override): Build default
2064         target node.
2065         (v850_can_inline_p): New.  Allow MASK_PROLOG_FUNCTION to be
2066         ignored for inlining.
2067         (TARGET_CAN_INLINE_P): New.
2068
2069 2021-06-28  Richard Biener  <rguenther@suse.de>
2070
2071         PR tree-optimization/101207
2072         * tree-vect-slp.c (vect_optimize_slp): Do BB reduction
2073         permute eliding for load permutations properly.
2074
2075 2021-06-28  Richard Biener  <rguenther@suse.de>
2076
2077         PR tree-optimization/101173
2078         * gimple-loop-interchange.cc
2079         (tree_loop_interchange::valid_data_dependences): Disallow outer
2080         loop dependence distance of zero.
2081
2082 2021-06-28  liuhongt  <hongtao.liu@intel.com>
2083
2084         PR target/100648
2085         * config/i386/sse.md (*avx_cmp<mode>3_lt): New
2086         define_insn_and_split.
2087         (*avx_cmp<mode>3_ltint): Ditto.
2088         (*avx2_pcmp<mode>3_3): Ditto.
2089         (*avx2_pcmp<mode>3_4): Ditto.
2090         (*avx2_pcmp<mode>3_5): Ditto.
2091
2092 2021-06-28  liuhongt  <hongtao.liu@intel.com>
2093
2094         * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256,
2095         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256,
2096         IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS,
2097         IX86_BUILTIN_PBLENDVB128): Replace icode with
2098         CODE_FOR_nothing.
2099         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv
2100         builtins.
2101         * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not):
2102         New pre_reload splitter.
2103
2104 2021-06-27  Andrew Pinski  <apinski@marvell.com>
2105
2106         PR middle-end/101230
2107         * fold-const.c (fold_ternary_loc): Check
2108         the return value of invert_tree_comparison.
2109
2110 2021-06-27  David Edelsohn  <dje.gcc@gmail.com>
2111
2112         * config.gcc: Add SPDX License Identifier.
2113         (powerpc-ibm-aix789): Default to aix73.h.
2114         (powerpc-ibm-aix7.2.*.*): New stanza.
2115         * config/rs6000/aix72.h: Add SPDX License Identifier.
2116         * config/rs6000/aix73.h: New file.
2117
2118 2021-06-26  Jason Merrill  <jason@redhat.com>
2119
2120         * except.c: #include "dwarf2.h" instead of "dwarf2out.h".
2121
2122 2021-06-26  Andrew Pinski  <apinski@marvell.com>
2123
2124         * genmatch.c (lower_cond): Copy for_subst_vec
2125         for the simplify also.
2126         (lower): Swap the order for lower_for and lower_cond.
2127
2128 2021-06-26  Andrew Pinski  <apinski@marvell.com>
2129
2130         * tree-ssa-phiopt.c (match_simplify_replacement): Reset
2131         flow senatitive info on the moved ssa set.
2132
2133 2021-06-26  Andrew Pinski  <apinski@marvell.com>
2134
2135         * fold-const.c (fold_cond_expr_with_comparison):
2136         Exand arg0 into comp_code, arg00, and arg01.
2137         (fold_ternary_loc): Use invert_tree_comparison
2138         instead of fold_invert_truthvalue for the case
2139         where we have A CMP B ? C : A.
2140
2141 2021-06-25  Martin Sebor  <msebor@redhat.com>
2142
2143         PR middle-end/101216
2144         * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant.
2145
2146 2021-06-25  Jeff Law  <jeffreyalaw@gmail.com>
2147
2148         * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT.
2149
2150 2021-06-25  Richard Biener  <rguenther@suse.de>
2151
2152         PR tree-optimization/101202
2153         * tree-vect-slp.c (vect_optimize_slp): Explicitely handle
2154         failed nodes.
2155
2156 2021-06-25  Richard Biener  <rguenther@suse.de>
2157
2158         * tree-vect-slp-patterns.c (addsub_pattern::build): Copy
2159         STMT_VINFO_REDUC_DEF from the original representative.
2160
2161 2021-06-25  Martin Sebor  <msebor@redhat.com>
2162
2163         * builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING,
2164         gimple_no_warning_p and gimple_set_no_warning with
2165         warning_suppressed_p, and suppress_warning.
2166         (c_strlen): Same.
2167         (maybe_warn_for_bound): Same.
2168         (warn_for_access): Same.
2169         (check_access): Same.
2170         (expand_builtin_strncmp): Same.
2171         (fold_builtin_varargs): Same.
2172         * calls.c (maybe_warn_nonstring_arg): Same.
2173         (maybe_warn_rdwr_sizes): Same.
2174         * cfgexpand.c (expand_call_stmt): Same.
2175         * cgraphunit.c (check_global_declaration): Same.
2176         * fold-const.c (fold_undefer_overflow_warnings): Same.
2177         (fold_truth_not_expr): Same.
2178         (fold_unary_loc): Same.
2179         (fold_checksum_tree): Same.
2180         * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same.
2181         (array_bounds_checker::check_mem_ref): Same.
2182         (array_bounds_checker::check_addr_expr): Same.
2183         (array_bounds_checker::check_array_bounds): Same.
2184         * gimple-expr.c (copy_var_decl): Same.
2185         * gimple-fold.c (gimple_fold_builtin_strcpy): Same.
2186         (gimple_fold_builtin_strncat): Same.
2187         (gimple_fold_builtin_stxcpy_chk): Same.
2188         (gimple_fold_builtin_stpcpy): Same.
2189         (gimple_fold_builtin_sprintf): Same.
2190         (fold_stmt_1): Same.
2191         * gimple-ssa-isolate-paths.c (diag_returned_locals): Same.
2192         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
2193         * gimple-ssa-sprintf.c (handle_printf_call): Same.
2194         * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same.
2195         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
2196         * gimple-ssa-warn-restrict.h: Adjust declarations.
2197         (maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING,
2198         gimple_no_warning_p and gimple_set_no_warning with
2199         warning_suppressed_p, and suppress_warning.
2200         (check_call): Same.
2201         (check_bounds_or_overlap): Same.
2202         * gimple.c (gimple_build_call_from_tree): Same.
2203         * gimplify.c (gimplify_return_expr): Same.
2204         (gimplify_cond_expr): Same.
2205         (gimplify_modify_expr_complex_part): Same.
2206         (gimplify_modify_expr): Same.
2207         (gimple_push_cleanup): Same.
2208         (gimplify_expr): Same.
2209         * omp-expand.c (expand_omp_for_generic): Same.
2210         (expand_omp_taskloop_for_outer): Same.
2211         * omp-low.c (lower_rec_input_clauses): Same.
2212         (lower_lastprivate_clauses): Same.
2213         (lower_send_clauses): Same.
2214         (lower_omp_target): Same.
2215         * tree-cfg.c (pass_warn_function_return::execute): Same.
2216         * tree-complex.c (create_one_component_var): Same.
2217         * tree-inline.c (remap_gimple_op_r): Same.
2218         (copy_tree_body_r): Same.
2219         (declare_return_variable): Same.
2220         (expand_call_inline): Same.
2221         * tree-nested.c (lookup_field_for_decl): Same.
2222         * tree-sra.c (create_access_replacement): Same.
2223         (generate_subtree_copies): Same.
2224         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same.
2225         * tree-ssa-forwprop.c (combine_cond_expr_cond): Same.
2226         * tree-ssa-loop-ch.c (ch_base::copy_headers): Same.
2227         * tree-ssa-loop-im.c (execute_sm): Same.
2228         * tree-ssa-phiopt.c (cond_store_replacement): Same.
2229         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
2230         (handle_builtin_strcpy): Same.
2231         (maybe_diag_stxncpy_trunc): Same.
2232         (handle_builtin_stxncpy_strncat): Same.
2233         (handle_builtin_strcat): Same.
2234         * tree-ssa-uninit.c (get_no_uninit_warning): Same.
2235         (set_no_uninit_warning): Same.
2236         (uninit_undefined_value_p): Same.
2237         (warn_uninit): Same.
2238         (maybe_warn_operand): Same.
2239         * tree-vrp.c (compare_values_warnv): Same.
2240         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same.
2241         (test_for_singularity): Same.
2242         * gimple.h (warning_suppressed_p): New function.
2243         (suppress_warning): Same.
2244         (copy_no_warning): Same.
2245         (gimple_set_block): Call gimple_set_location.
2246         (gimple_set_location): Call copy_warning.
2247
2248 2021-06-25  Martin Sebor  <msebor@redhat.com>
2249
2250         * tree.h (warning_suppressed_at, copy_warning,
2251         warning_suppressed_p, suppress_warning): New functions.
2252
2253 2021-06-25  Martin Sebor  <msebor@redhat.com>
2254
2255         * Makefile.in (OBJS-libcommon): Add diagnostic-spec.o.
2256         * gengtype.c (open_base_files): Add diagnostic-spec.h.
2257         * diagnostic-spec.c: New file.
2258         * diagnostic-spec.h: New file.
2259         * tree.h (no_warning, all_warnings, suppress_warning_at): New
2260         declarations.
2261         * warning-control.cc: New file.
2262
2263 2021-06-25  liuhongt  <hongtao.liu@intel.com>
2264
2265         PR target/101185
2266         * config/i386/i386.c (x86_order_regs_for_local_alloc):
2267         Revert r12-1669.
2268
2269 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
2270
2271         PR tree-optimization/101189
2272         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass
2273         LHS range of condition to postfold routine.
2274         (fold_using_range::postfold_gcond_edges): Only process the TRUE or
2275         FALSE edge if the LHS range supports it being taken.
2276         * gimple-range-fold.h (postfold_gcond_edges): Add range parameter.
2277
2278 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
2279
2280         * value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks.
2281         (relation_oracle::find_relation_block): Check correct bitmap.
2282         (relation_oracle::dump): Do not dump NULL blocks.
2283
2284 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
2285
2286         * gimple-range-cache.cc (ranger_cache::propagate_cache): Call
2287         range_on_edge instead of manually calculating.
2288
2289 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
2290
2291         * range-op.cc: Fix comment.
2292
2293 2021-06-24  Uroš Bizjak  <ubizjak@gmail.com>
2294
2295         PR target/89021
2296         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
2297         Handle V8QI and V4HI modes.
2298         * config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2):
2299         New insn pattern.
2300         (sse4_1_<any_extend:code>v4qiv4hi2): Ditto.
2301         (mmxpackmode): New mode attribute.
2302         (vec_pack_trunc_<mmxpackmode:mode>): New expander.
2303         (mmxunpackmode): New mode attribute.
2304         (vec_unpacks_lo_<mmxunpackmode:mode>): New expander.
2305         (vec_unpacks_hi_<mmxunpackmode:mode>): Ditto.
2306         (vec_unpacku_lo_<mmxunpackmode:mode>): Ditto.
2307         (vec_unpacku_hi_<mmxunpackmode:mode>): Ditto.
2308         * config/i386/i386.md (extsuffix): Move from ...
2309         * config/i386/sse.md: ... here.
2310
2311 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
2312
2313         * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here..
2314         (dwarf2out_finish): ...instead of here.
2315
2316 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
2317
2318         * configure.ac (--gdwarf-5 option): Use objdump instead of readelf.
2319         (working --gdwarf-4/--gdwarf-5 for all sources): Likewise.
2320         (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows.
2321         * configure: Regenerate.
2322
2323 2021-06-24  Richard Biener  <rguenther@suse.de>
2324
2325         * config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3,
2326         vec_addsubv8sf3, vec_addsubv4sf3): Merge into ...
2327         (vec_addsub<mode>3): ... using a new addsub_cst mode attribute.
2328
2329 2021-06-24  Richard Biener  <rguenther@suse.de>
2330
2331         * config/i386/sse.md (avx_addsubv4df3): Rename to
2332         vec_addsubv4df3.
2333         (avx_addsubv8sf3): Rename to vec_addsubv8sf3.
2334         (sse3_addsubv2df3): Rename to vec_addsubv2df3.
2335         (sse3_addsubv4sf3): Rename to vec_addsubv4sf3.
2336         * config/i386/i386-builtin.def: Adjust.
2337         * internal-fn.def (VEC_ADDSUB): New internal optab fn.
2338         * optabs.def (vec_addsub_optab): New optab.
2339         * tree-vect-slp-patterns.c (class addsub_pattern): New.
2340         (slp_patterns): Add addsub_pattern.
2341         * tree-vect-slp.c (vect_optimize_slp): Disable propagation
2342         across CFN_VEC_ADDSUB.
2343         * tree-vectorizer.h (vect_pattern::vect_pattern): Make
2344         m_ops optional.
2345         * doc/md.texi (vec_addsub<mode>3): Document.
2346
2347 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
2348
2349         PR middle-end/101170
2350         * df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs
2351         where regno + subreg_regno_offset wraps around use 0 as starting
2352         regno.
2353
2354 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
2355
2356         PR middle-end/101172
2357         * stor-layout.c (finish_bitfield_representative): If nextf has
2358         error_mark_node type, set repr type to error_mark_node too.
2359
2360 2021-06-24  Ilya Leoshkevich  <iii@linux.ibm.com>
2361
2362         * config/s390/s390.c (s390_function_profiler): Ignore labelno
2363         parameter.
2364         * config/s390/s390.h (NO_PROFILE_COUNTERS): Define.
2365
2366 2021-06-24  Richard Biener  <rguenther@suse.de>
2367
2368         * tree-vect-slp.c (vect_optimize_slp): Do not propagate
2369         across operations that have different semantics on different
2370         lanes.
2371
2372 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
2373
2374         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP.
2375         * gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses
2376         with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification
2377         of non-decl OMP_CLAUSE_DECL.  For OMP_CLAUSE_IN_REDUCTION on
2378         OMP_TARGET user outer_ctx instead of ctx for placeholders and
2379         initializer/combiner gimplification.
2380         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION
2381         on target constructs.
2382         (lower_rec_input_clauses): Likewise.
2383         (lower_omp_target): Likewise.
2384         * omp-expand.c (expand_omp_target): Temporarily ignore nowait clause
2385         on target if in_reduction is present.
2386
2387 2021-06-24  Kewen Lin  <linkw@linux.ibm.com>
2388
2389         * tree-predcom.c (class pcom_worker): New class.
2390         (release_chain): Renamed to...
2391         (pcom_worker::release_chain): ...this.
2392         (release_chains): Renamed to...
2393         (pcom_worker::release_chains): ...this.
2394         (aff_combination_dr_offset): Renamed to...
2395         (pcom_worker::aff_combination_dr_offset): ...this.
2396         (determine_offset): Renamed to...
2397         (pcom_worker::determine_offset): ...this.
2398         (class comp_ptrs): New class.
2399         (split_data_refs_to_components): Renamed to...
2400         (pcom_worker::split_data_refs_to_components): ...this,
2401         and update with class comp_ptrs.
2402         (suitable_component_p): Renamed to...
2403         (pcom_worker::suitable_component_p): ...this.
2404         (filter_suitable_components): Renamed to...
2405         (pcom_worker::filter_suitable_components): ...this.
2406         (valid_initializer_p): Renamed to...
2407         (pcom_worker::valid_initializer_p): ...this.
2408         (find_looparound_phi): Renamed to...
2409         (pcom_worker::find_looparound_phi): ...this.
2410         (add_looparound_copies): Renamed to...
2411         (pcom_worker::add_looparound_copies): ...this.
2412         (determine_roots_comp): Renamed to...
2413         (pcom_worker::determine_roots_comp): ...this.
2414         (determine_roots): Renamed to...
2415         (pcom_worker::determine_roots): ...this.
2416         (single_nonlooparound_use): Renamed to...
2417         (pcom_worker::single_nonlooparound_use): ...this.
2418         (remove_stmt): Renamed to...
2419         (pcom_worker::remove_stmt): ...this.
2420         (execute_pred_commoning_chain): Renamed to...
2421         (pcom_worker::execute_pred_commoning_chain): ...this.
2422         (execute_pred_commoning): Renamed to...
2423         (pcom_worker::execute_pred_commoning): ...this.
2424         (struct epcc_data): New member worker.
2425         (execute_pred_commoning_cbck): Call execute_pred_commoning
2426         with pcom_worker pointer.
2427         (find_use_stmt): Renamed to...
2428         (pcom_worker::find_use_stmt): ...this.
2429         (find_associative_operation_root): Renamed to...
2430         (pcom_worker::find_associative_operation_root): ...this.
2431         (find_common_use_stmt): Renamed to...
2432         (pcom_worker::find_common_use_stmt): ...this.
2433         (combinable_refs_p): Renamed to...
2434         (pcom_worker::combinable_refs_p): ...this.
2435         (reassociate_to_the_same_stmt): Renamed to...
2436         (pcom_worker::reassociate_to_the_same_stmt): ...this.
2437         (stmt_combining_refs): Renamed to...
2438         (pcom_worker::stmt_combining_refs): ...this.
2439         (combine_chains): Renamed to...
2440         (pcom_worker::combine_chains): ...this.
2441         (try_combine_chains): Renamed to...
2442         (pcom_worker::try_combine_chains): ...this.
2443         (prepare_initializers_chain): Renamed to...
2444         (pcom_worker::prepare_initializers_chain): ...this.
2445         (prepare_initializers): Renamed to...
2446         (pcom_worker::prepare_initializers): ...this.
2447         (prepare_finalizers_chain): Renamed to...
2448         (pcom_worker::prepare_finalizers_chain): ...this.
2449         (prepare_finalizers): Renamed to...
2450         (pcom_worker::prepare_finalizers): ...this.
2451         (tree_predictive_commoning_loop): Renamed to...
2452         (pcom_worker::tree_predictive_commoning_loop): ...this, adjust
2453         some calls and remove some cleanup code.
2454         (tree_predictive_commoning): Adjusted to use pcom_worker instance.
2455         (static variable looparound_phis): Remove.
2456         (static variable name_expansions): Remove.
2457
2458 2021-06-24  Richard Biener  <rguenther@suse.de>
2459
2460         * tree-vect-slp.c (slpg_vertex): New struct.
2461         (vect_slp_build_vertices): Adjust.
2462         (vect_optimize_slp): Likewise.  Maintain an outgoing permute
2463         and a materialized one.
2464
2465 2021-06-24  Richard Biener  <rguenther@suse.de>
2466
2467         PR tree-optimization/101105
2468         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
2469         Only ignore steps when they are equal or scalar order is preserved.
2470
2471 2021-06-24  liuhongt  <hongtao.liu@intel.com>
2472
2473         PR target/98434
2474         * config/i386/i386-expand.c (ix86_expand_vec_interleave):
2475         Adjust comments for ix86_expand_vecop_qihi2.
2476         (ix86_expand_vecmul_qihi): Renamed to ..
2477         (ix86_expand_vecop_qihi2): Adjust function prototype to
2478         support shift operation, add static to definition.
2479         (ix86_expand_vec_shift_qihi_constant): Add static to definition.
2480         (ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and
2481         ix86_expand_vec_shift_qihi_constant.
2482         * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted.
2483         (ix86_expand_vec_shift_qihi_constant): Deleted.
2484         * config/i386/sse.md (VI12_256_512_AVX512VL): New mode
2485         iterator.
2486         (mulv8qi3): Call ix86_expand_vecop_qihi directly, add
2487         condition TARGET_64BIT.
2488         (mul<mode>3): Ditto.
2489         (<insn><mode>3): Ditto.
2490         (vlshr<mode>3): Extend to support avx512 vlshr.
2491         (v<insn><mode>3): New expander for
2492         vashr/vlshr/vashl.
2493         (v<insn>v8qi3): Ditto.
2494         (vashrv8hi3<mask_name>): Renamed to ..
2495         (vashr<mode>3): And extend to support V16QImode for avx512.
2496         (vashrv16qi3): Deleted.
2497         (vashrv2di3<mask_name>): Extend expander to support avx512
2498         instruction.
2499
2500 2021-06-23  Dimitar Dimitrov  <dimitar@dinux.eu>
2501
2502         * doc/lto.texi (Design Overview): Update that slim objects are
2503         the default.
2504
2505 2021-06-23  Aaron Sawdey  <acsawdey@linux.ibm.com>
2506
2507         * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out
2508         of OTHER_POWER10_MASKS so it will not be enabled by default.
2509
2510 2021-06-23  Richard Biener  <rguenther@suse.de>
2511             Martin Jambor  <mjambor@suse.cz>
2512
2513         * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the
2514         param replacement unconditionally.  Adjust comment.
2515
2516 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
2517
2518         * Makefile.in (OBJS): Add gimple-range-fold.o
2519         * gimple-range-fold.cc: New.
2520         * gimple-range-fold.h: New.
2521         * gimple-range-gori.cc (gimple_range_calc_op1): Move to here.
2522         (gimple_range_calc_op2): Ditto.
2523         * gimple-range-gori.h: Move prototypes to here.
2524         * gimple-range.cc: Adjust include files.
2525         (fur_source:fur_source): Relocate to gimple-range-fold.cc.
2526         (fur_source::get_operand): Ditto.
2527         (fur_source::get_phi_operand): Ditto.
2528         (fur_source::query_relation): Ditto.
2529         (fur_source::register_relation): Ditto.
2530         (class fur_edge): Ditto.
2531         (fur_edge::fur_edge): Ditto.
2532         (fur_edge::get_operand): Ditto.
2533         (fur_edge::get_phi_operand): Ditto.
2534         (fur_stmt::fur_stmt): Ditto.
2535         (fur_stmt::get_operand): Ditto.
2536         (fur_stmt::get_phi_operand): Ditto.
2537         (fur_stmt::query_relation): Ditto.
2538         (class fur_depend): Relocate to gimple-range-fold.h.
2539         (fur_depend::fur_depend): Relocate to gimple-range-fold.cc.
2540         (fur_depend::register_relation): Ditto.
2541         (fur_depend::register_relation): Ditto.
2542         (class fur_list): Ditto.
2543         (fur_list::fur_list): Ditto.
2544         (fur_list::get_operand): Ditto.
2545         (fur_list::get_phi_operand): Ditto.
2546         (fold_range): Ditto.
2547         (adjust_pointer_diff_expr): Ditto.
2548         (gimple_range_adjustment): Ditto.
2549         (gimple_range_base_of_assignment): Ditto.
2550         (gimple_range_operand1): Ditto.
2551         (gimple_range_operand2): Ditto.
2552         (gimple_range_calc_op1): Relocate to gimple-range-gori.cc.
2553         (gimple_range_calc_op2): Ditto.
2554         (fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc.
2555         (fold_using_range::range_of_range_op): Ditto.
2556         (fold_using_range::range_of_address): Ditto.
2557         (fold_using_range::range_of_phi): Ditto.
2558         (fold_using_range::range_of_call): Ditto.
2559         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
2560         (fold_using_range::range_of_builtin_call): Ditto.
2561         (fold_using_range::range_of_cond_expr): Ditto.
2562         (fold_using_range::range_of_ssa_name_with_loop_info): Ditto.
2563         (fold_using_range::relation_fold_and_or): Ditto.
2564         (fold_using_range::postfold_gcond_edges): Ditto.
2565         * gimple-range.h: Add gimple-range-fold.h to include files. Change
2566         GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H.
2567         (gimple_range_handler): Relocate to gimple-range-fold.h.
2568         (gimple_range_ssa_p): Ditto.
2569         (range_compatible_p): Ditto.
2570         (class fur_source): Ditto.
2571         (class fur_stmt): Ditto.
2572         (class fold_using_range): Ditto.
2573         (gimple_range_calc_op1): Relocate to gimple-range-gori.h
2574         (gimple_range_calc_op2): Ditto.
2575
2576 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
2577
2578         PR tree-optimization/101148
2579         PR tree-optimization/101014
2580         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
2581         (ranger_cache::~ranger_cache): Adjust.
2582         (ranger_cache::block_range): Check if propagation disallowed.
2583         (ranger_cache::propagate_cache): Disallow propagation if new value
2584         can't be stored properly.
2585         * gimple-range-cache.h (ranger_cache::m_propfail): New member.
2586
2587 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
2588
2589         * gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype.
2590         (sbr_vector::set_bb_range): Return true.
2591         (class sbr_sparse_bitmap): Adjust.
2592         (sbr_sparse_bitmap::set_bb_range): Return value.
2593         (block_range_cache::set_bb_range): Return value.
2594         (ranger_cache::propagate_cache): Use return value to print msg.
2595         * gimple-range-cache.h (class block_range_cache): Adjust.
2596
2597 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
2598
2599         * gimple-range.cc (dump_bb): Use range_on_edge from the cache.
2600
2601 2021-06-23  Jeff Law  <jeffreyalaw@gmail.com>
2602
2603         * config/h8300/logical.md (<code><mode>3<ccnz>): Use <cczn>
2604         so this pattern can be used for test/compare removal.  Pass
2605         current insn to compute_logical_op_length and output_logical_op.
2606         * config/h8300/h8300.c (compute_logical_op_cc): Remove.
2607         (h8300_and_costs): Add argument to compute_logical_op_length.
2608         (output_logical_op): Add new argument.  Use it to determine if the
2609         condition codes are used and adjust the output accordingly.
2610         (compute_logical_op_length): Add new argument and update length
2611         computations when condition codes are used.
2612         * config/h8300/h8300-protos.h (compute_logical_op_length): Update
2613         prototype.
2614         (output_logical_op): Likewise.
2615
2616 2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>
2617
2618         PR target/89021
2619         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
2620         Handle 64bit modes for TARGET_XOP.  Use indirect gen_* functions.
2621         * config/i386/mmx.md (mmx_ppermv64): New insn pattern.
2622         * config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ...
2623         * config/i386/sse.md (unspec): ... here.
2624
2625 2021-06-23  Martin Liska  <mliska@suse.cz>
2626
2627         PR target/98636
2628         * optc-save-gen.awk: Put back arm_fp16_format to
2629         checked_options.
2630
2631 2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>
2632
2633         PR target/101175
2634         * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX.
2635         (bsr): Ditto.
2636         (*bsrhi): Remove.
2637         (clz<mode>2): Update RTX pattern for additions.
2638
2639 2021-06-23  Jakub Jelinek  <jakub@redhat.com>
2640
2641         PR middle-end/101167
2642         * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs
2643         and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set.
2644
2645 2021-06-22  Sergei Trofimovich  <siarheit@google.com>
2646
2647         * doc/rtl.texi: drop unbalanced parenthesis.
2648
2649 2021-06-22  Richard Biener  <rguenther@suse.de>
2650
2651         PR middle-end/101156
2652         * gimplify.c (gimplify_expr): Remove premature incorrect
2653         optimization.
2654
2655 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
2656
2657         PR tree-optimization/101159
2658         * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some
2659         comment typos.
2660
2661 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
2662
2663         PR middle-end/101160
2664         * function.c (assign_parms): For decl_result with TYPE_EMPTY_P type
2665         clear crtl->return_rtx instead of keeping it referencing a pseudo.
2666
2667 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
2668             Andrew Pinski  <apinski@marvell.com>
2669
2670         PR tree-optimization/101162
2671         * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer
2672         types.
2673
2674 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2675
2676         * range-op.cc (range_relational_tests): New.
2677         (range_op_tests): Call range_relational_tests.
2678
2679 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2680
2681         * range-op.cc (operator_cast::lhs_op1_relation): New.
2682         (operator_identity::lhs_op1_relation): Mew.
2683
2684 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2685
2686         * range-op.cc (operator_minus::op1_op2_relation_effect): New.
2687
2688 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2689
2690         * range-op.cc (operator_plus::lhs_op1_relation): New.
2691         (operator_plus::lhs_op2_relation): New.
2692
2693 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2694
2695         * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a
2696         relation_oracle if dominators exist.
2697         (ranger_cache::~ranger_cache): Dispose of oracle.
2698         (ranger_cache::dump_bb): Dump oracle.
2699         * gimple-range.cc (fur_source::fur_source): New.
2700         (fur_source::get_operand): Use mmeber query.
2701         (fur_source::get_phi_operand): Use member_query.
2702         (fur_source::query_relation): New.
2703         (fur_source::register_dependency): Delete.
2704         (fur_source::register_relation): New.
2705         (fur_edge::fur_edge): Adjust.
2706         (fur_edge::get_phi_operand): Fix comment.
2707         (fur_edge::query): Delete.
2708         (fur_stmt::fur_stmt): Adjust.
2709         (fur_stmt::query): Delete.
2710         (fur_depend::fur_depend): Adjust.
2711         (fur_depend::register_relation): New.
2712         (fur_depend::register_relation): New.
2713         (fur_list::fur_list): Adjust.
2714         (fur_list::get_operand): Use member query.
2715         (fold_using_range::range_of_range_op): Process and query relations.
2716         (fold_using_range::range_of_address): Adjust dependency call.
2717         (fold_using_range::range_of_phi): Ditto.
2718         (gimple_ranger::gimple_ranger): New.  Use ranger_ache oracle.
2719         (fold_using_range::relation_fold_and_or): New.
2720         (fold_using_range::postfold_gcond_edges): New.
2721         * gimple-range.h (class gimple_ranger): Adjust.
2722         (class fur_source): Adjust members.
2723         (class fur_stmt): Ditto.
2724         (class fold_using_range): Ditto.
2725
2726 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2727
2728         * range-op.cc (range_operator::wi_fold): Apply relation effect.
2729         (range_operator::fold_range): Adjust and apply relation effect.
2730         (*::fold_range): Add relation parameters.
2731         (*::op1_range): Ditto.
2732         (*::op2_range): Ditto.
2733         (range_operator::lhs_op1_relation): New.
2734         (range_operator::lhs_op2_relation): New.
2735         (range_operator::op1_op2_relation): New.
2736         (range_operator::op1_op2_relation_effect): New.
2737         (relop_early_resolve): New.
2738         (operator_equal::op1_op2_relation): New.
2739         (operator_equal::fold_range): Call relop_early_resolve.
2740         (operator_not_equal::op1_op2_relation): New.
2741         (operator_not_equal::fold_range): Call relop_early_resolve.
2742         (operator_lt::op1_op2_relation): New.
2743         (operator_lt::fold_range): Call relop_early_resolve.
2744         (operator_le::op1_op2_relation): New.
2745         (operator_le::fold_range): Call relop_early_resolve.
2746         (operator_gt::op1_op2_relation): New.
2747         (operator_gt::fold_range): Call relop_early_resolve.
2748         (operator_ge::op1_op2_relation): New.
2749         (operator_ge::fold_range): Call relop_early_resolve.
2750         * range-op.h (class range_operator): Adjust parameters and methods.
2751
2752 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2753
2754         * Makefile.in (OBJS): Add value-relation.o.
2755         * gimple-range.h: Adjust include files.
2756         * tree-data-ref.c: Adjust include file order.
2757         * value-query.cc (range_query::get_value_range): Default to no oracle.
2758         (range_query::query_relation): New.
2759         (range_query::query_relation): New.
2760         * value-query.h (class range_query): Adjust.
2761         * value-relation.cc: New.
2762         * value-relation.h: New.
2763
2764 2021-06-22  Richard Biener  <rguenther@suse.de>
2765
2766         PR tree-optimization/101151
2767         * tree-ssa-sink.c (statement_sink_location): Expand irreducible
2768         region check.
2769
2770 2021-06-22  Jojo R  <rjiejie@linux.alibaba.com>
2771
2772         * config/riscv/riscv.c (thead_c906_tune_info): New.
2773         (riscv_tune_info_table): Use new tune.
2774
2775 2021-06-22  Richard Biener  <rguenther@suse.de>
2776
2777         PR tree-optimization/101158
2778         * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand
2779         checking after checking for matching operation.
2780
2781 2021-06-22  Richard Biener  <rguenther@suse.de>
2782
2783         PR tree-optimization/101159
2784         * tree-vect-patterns.c (vect_recog_popcount_pattern): Add
2785         missing NULL vectype check.
2786
2787 2021-06-22  Richard Biener  <rguenther@suse.de>
2788
2789         PR tree-optimization/101154
2790         * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access.
2791
2792 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
2793
2794         PR target/11877
2795         * config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare.
2796         * config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable.
2797         * config/i386/i386.c (ix86_expand_prologue): Clear it.
2798         * config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx):
2799         Remove "" from match_operand.  Emit new insns using emit_move_insn and
2800         set ix86_last_zero_store_uid to INSN_UID of the last store.
2801         Add peephole2s for 1/2/4 stores of const0_rtx following previous
2802         successful peep2s.
2803
2804 2021-06-22  Martin Liska  <mliska@suse.cz>
2805
2806         * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format
2807         was changed.
2808
2809 2021-06-22  Martin Liska  <mliska@suse.cz>
2810
2811         * gcov-io.h: Remove padding entries.
2812
2813 2021-06-22  liuhongt  <hongtao.liu@intel.com>
2814
2815         PR tree-optimization/97770
2816         * tree-vect-patterns.c (vect_recog_popcount_pattern):
2817         New.
2818         (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern.
2819
2820 2021-06-22  liuhongt  <hongtao.liu@intel.com>
2821
2822         PR target/100267
2823         * config/i386/i386-builtin.def (BDESC): Adjust builtin name.
2824         * config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to ..
2825         (expand<mode>_mask): this ..
2826         (*expand<mode>_mask): New pre_reload splitter to transform
2827         v{,p}expand* to vmov* when mask is zero, all ones, or has all
2828         ones in it's lower part, otherwise still generate
2829         v{,p}expand*.
2830
2831 2021-06-22  liuhongt  <hongtao.liu@intel.com>
2832
2833         PR target/100310
2834         * config/i386/i386-expand.c
2835         (ix86_expand_special_args_builtin): Keep constm1_operand only
2836         if it satisfies insn's operand predicate.
2837
2838 2021-06-21  Jason Merrill  <jason@redhat.com>
2839
2840         PR target/88529
2841         * df-scan.c (df_ref_record): Check that regno < endregno.
2842         * function.c (assign_parms, expand_function_end): Do nothing with a
2843         TYPE_EMPTY_P result.
2844
2845 2021-06-21  Richard Biener  <rguenther@suse.de>
2846
2847         PR tree-optimization/101120
2848         * tree-vect-data-refs.c (bump_vector_ptr): Fold the
2849         built increment.
2850         * tree-vect-slp.c (vect_transform_slp_perm_load): Add
2851         DR chain DCE capability.
2852         * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
2853         * tree-vect-stmts.c (vectorizable_load): Remove unused
2854         loads in the DR chain for SLP.
2855
2856 2021-06-21  Jakub Jelinek  <jakub@redhat.com>
2857
2858         PR inline-asm/100785
2859         * gimplify.c (gimplify_asm_expr): Don't diagnose errors if
2860         output or input operands were already error_mark_node.
2861         * cfgexpand.c (expand_asm_stmt): If errors are emitted,
2862         remove all inputs, outputs and clobbers from the asm and
2863         set template to "".
2864
2865 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
2866
2867         * config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b.
2868         (vceq_s16): Likewise.
2869         (vceq_s32): Likewise.
2870         (vceq_u8): Likewise.
2871         (vceq_u16): Likewise.
2872         (vceq_u32): Likewise.
2873         (vceq_p8): Likewise.
2874         (vceqq_s8): Likewise.
2875         (vceqq_s16): Likewise.
2876         (vceqq_s32): Likewise.
2877         (vceqq_u8): Likewise.
2878         (vceqq_u16): Likewise.
2879         (vceqq_u32): Likewise.
2880         (vceqq_p8): Likewise.
2881         (vceq_f32): Gate __a == __b on __FAST_MATH__.
2882         (vceqq_f32): Likewise.
2883         (vceq_f16): Likewise.
2884         (vceqq_f16): Likewise.
2885
2886 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
2887
2888         PR target/97906
2889         * config/arm/iterators.md (NEON_VACMP): Remove.
2890         * config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE
2891         iterator.
2892         (neon_vca<cmp_op><mode>_insn): Likewise.
2893         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of
2894         NEON_VACMP.
2895
2896 2021-06-21  Richard Biener  <rguenther@suse.de>
2897
2898         PR tree-optimization/101121
2899         * tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally
2900         when we just lack a stmt with the desired op when doing permutation.
2901         (vect_build_slp_tree): When caching a failed SLP build attempt
2902         assert that at least one lane is marked as not matching.
2903
2904 2021-06-21  liuhongt  <hongtao.liu@intel.com>
2905
2906         PR target/101142
2907         * config/i386/i386.md: (*anddi_1): Disparage slightly the mask
2908         register alternative.
2909         (*and<mode>_1): Ditto.
2910         (*andqi_1): Ditto.
2911         (*andn<mode>_1): Ditto.
2912         (*<code><mode>_1): Ditto.
2913         (*<code>qi_1): Ditto.
2914         (*one_cmpl<mode>2_1): Ditto.
2915         (*one_cmplsi2_1_zext): Ditto.
2916         (*one_cmplqi2_1): Ditto.
2917         * config/i386/i386.c (x86_order_regs_for_local_alloc): Change
2918         the order of mask registers to be before general registers.
2919
2920 2021-06-21  Roger Sayle  <roger@nextmovesoftware.com>
2921
2922         PR target/11877
2923         * config/i386/i386.md: New define_peephole2s to shrink writing
2924         1, 2 or 4 consecutive zeros to memory when optimizing for size.
2925
2926 2021-06-18  Jeff Law  <jeffreyalaw@gmail.com>
2927
2928         * config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF.
2929         * config/h8300/logical.md (<code><mode>3 logcial expander): Generate
2930         more efficient code when the source can be trivially simplified.
2931
2932 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
2933
2934         * gimple-range-cache.cc (ranger_cache::range_of_def):  Calculate
2935         a range if global is not available.
2936         (ranger_cache::entry_range): Fallback to range_of_def.
2937         * gimple-range-cache.h (range_of_def): Adjust prototype.
2938
2939 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
2940
2941         PR tree-optimization/101014
2942         * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor
2943         value list.
2944         (ranger_cache::~ranger_cache): Ditto.
2945         (ranger_cache::enable_new_values): Delete.
2946         (ranger_cache::push_poor_value): Delete.
2947         (ranger_cache::range_of_def): Remove poor value processing.
2948         (ranger_cache::entry_range): Ditto.
2949         (ranger_cache::fill_block_cache): Ditto.
2950         * gimple-range-cache.h (class ranger_cache): Remove poor value members.
2951         * gimple-range.cc (gimple_ranger::range_of_expr): Remove call.
2952         * gimple-range.h (class gimple_ranger): Adjust.
2953
2954 2021-06-18  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
2955
2956         PR target/100856
2957         * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function
2958         derived from arm_canon_arch.
2959         (arm_canon_arch_option): Call it.
2960         (arm_canon_arch_multilib_option): New function.
2961         * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup.
2962         * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype.
2963         (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro.
2964         (MULTILIB_ARCH_CANONICAL_SPECS): New macro.
2965         (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS.
2966         * config/arm/arm.opt (mlibarch): New option.
2967         * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use
2968         of march on RHS with mlibarch.
2969
2970 2021-06-18  Marcel Vollweiler  <marcel@codesourcery.com>
2971
2972         * config.in: Regenerate.
2973         * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
2974         functions.
2975         * configure: Regenerate.
2976         * configure.ac: Fix for global_load assembler functions.
2977
2978 2021-06-18  Richard Biener  <rguenther@suse.de>
2979
2980         PR tree-optimization/101112
2981         * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition
2982         to lookup a pattern stmt def.
2983
2984 2021-06-18  Jakub Jelinek  <jakub@redhat.com>
2985
2986         PR middle-end/101062
2987         * stor-layout.c (finish_bitfield_layout): Don't add bitfield
2988         representatives in QUAL_UNION_TYPE.
2989
2990 2021-06-18  Andrew Pinski  <apinski@marvell.com>
2991
2992         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
2993         Add counting of how many times it is done.
2994         (factor_out_conditional_conversion): Likewise.
2995         (match_simplify_replacement): Likewise.
2996         (value_replacement): Likewise.
2997         (spaceship_replacement): Likewise.
2998         (cond_store_replacement): Likewise.
2999         (cond_if_else_store_replacement_1): Likewise.
3000         (hoist_adjacent_loads): Likewise.
3001
3002 2021-06-18  Andrew Pinski  <apinski@marvell.com>
3003
3004         * tree-cfg.c (verify_gimple_assign_unary): Reject point and offset
3005         types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR.
3006         (verify_gimple_assign_binary): Reject point and offset types on
3007         MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR,
3008         FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR,
3009         FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR.
3010
3011 2021-06-18  Michael Meissner  <meissner@linux.ibm.com>
3012
3013         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA
3014         3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions.
3015         * config/rs6000/rs6000.md (s<minmax><mode>3, IEEE128 iterator):
3016         New insns.
3017
3018 2021-06-17  Aaron Sawdey  <acsawdey@linux.ibm.com>
3019
3020         * config/rs6000/genfusion.pl (gen_logical_addsubf): Add
3021         earlyclobber to alts 0/1.
3022         (gen_addadd): Add earlyclobber to alts 0/1.
3023         * config/rs6000/fusion.md: Regenerate file.
3024
3025 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3026
3027         * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec.
3028
3029 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
3030
3031         * gimple-range-cache.cc: Comment cleanups.
3032         * gimple-range-gori.cc: Comment cleanups.
3033         * gimple-range.cc: Comment/spacing cleanups
3034         * value-range.h: Comment cleanups.
3035
3036 2021-06-17  H.J. Lu  <hjl.tools@gmail.com>
3037
3038         PR target/100704
3039         * calls.c (expand_call): Replace PUSH_ARGS with
3040         targetm.calls.push_argument (0).
3041         (emit_library_call_value_1): Likewise.
3042         * defaults.h (PUSH_ARGS): Removed.
3043         (PUSH_ARGS_REVERSED): Replace PUSH_ARGS with
3044         targetm.calls.push_argument (0).
3045         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
3046         (emit_push_insn): Pass the number bytes to push to
3047         targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0.
3048         * hooks.c (hook_bool_uint_true): New.
3049         * hooks.h (hook_bool_uint_true): Likewise.
3050         * rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with
3051         targetm.calls.push_argument (0).
3052         * target.def (push_argument): Add a targetm.calls hook.
3053         * targhooks.c (default_push_argument): New.
3054         * targhooks.h (default_push_argument): Likewise.
3055         * config/bpf/bpf.h (PUSH_ARGS): Removed.
3056         * config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New.
3057         * config/cr16/cr16.h (PUSH_ARGS): Removed.
3058         * config/i386/i386.c (ix86_push_argument): New.
3059         (TARGET_PUSH_ARGUMENT): Likewise.
3060         * config/i386/i386.h (PUSH_ARGS): Removed.
3061         * config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New.
3062         * config/m32c/m32c.h (PUSH_ARGS): Removed.
3063         * config/nios2/nios2.h (PUSH_ARGS): Likewise.
3064         * config/pru/pru.h (PUSH_ARGS): Likewise.
3065         * doc/tm.texi.in: Remove PUSH_ARGS documentation.  Add
3066         TARGET_PUSH_ARGUMENT hook.
3067         * doc/tm.texi: Regenerated.
3068
3069 2021-06-17  Uroš Bizjak  <ubizjak@gmail.com>
3070
3071         PR target/97194
3072         * config/i386/i386-expand.c (expand_vector_set_var):
3073         Handle V2FS mode remapping.  Pass TARGET_MMX_WITH_SSE to
3074         ix86_expand_vector_init_duplicate.
3075         (ix86_expand_vector_init_duplicate): Emit insv_1 for
3076         QImode for !TARGET_PARTIAL_REG_STALL.
3077         * config/i386/predicates.md (vec_setm_mmx_operand): New predicate.
3078         * config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand
3079         as operand 2 predicate.  Call ix86_expand_vector_set_var
3080         for non-constant index operand.
3081         (vec_setv2si): Ditto.
3082         (vec_setv4hi): Ditto.
3083         (vec_setv8qi): ditto.
3084
3085 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
3086
3087         PR tree-optimization/100790
3088         * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz
3089         code.
3090
3091 2021-06-17  Martin Liska  <mliska@suse.cz>
3092
3093         * doc/invoke.texi: Use consistently -O1 instead of -O.
3094
3095 2021-06-17  Martin Liska  <mliska@suse.cz>
3096
3097         * gcov-io.h: Update documentation entry about string format.
3098
3099 2021-06-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
3100
3101         PR target/100871
3102         * config/s390/vecintrin.h (vec_doublee): Fix to use
3103           __builtin_s390_vflls.
3104         (vec_floate): Fix to use __builtin_s390_vflrd.
3105
3106 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3107
3108         * dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>.
3109         * dominance.h (get_dominated_to_depth): Likewise.
3110         (get_all_dominated_blocks): Likewise.
3111         * cfgcleanup.c (delete_unreachable_blocks): Adjust.
3112         * gcse.c (hoist_code): Likewise.
3113         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
3114         * tree-parloops.c (oacc_entry_exit_ok): Likewise.
3115         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3116         * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise.
3117
3118 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3119
3120         * dominance.c (get_dominated_by_region): Return auto_vec<basic_block>.
3121         * dominance.h (get_dominated_by_region): Likewise.
3122         * tree-cfg.c (gimple_duplicate_sese_region): Adjust.
3123         (gimple_duplicate_sese_tail): Likewise.
3124         (move_sese_region_to_fn): Likewise.
3125
3126 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3127
3128         * dominance.c (get_dominated_by): Return auto_vec<basic_block>.
3129         * dominance.h (get_dominated_by): Likewise.
3130         * auto-profile.c (afdo_find_equiv_class): Adjust.
3131         * cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise.
3132         * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
3133         * tree-cfg.c (test_linear_chain): Likewise.
3134         (test_diamond): Likewise.
3135
3136 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3137
3138         * cfgloop.h (get_loop_hot_path): Return auto_vec<basic_block>.
3139         * cfgloopanal.c (get_loop_hot_path): Likewise.
3140         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
3141
3142 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3143
3144         * cgraph.c (cgraph_node::collect_callers): Return
3145         auto_vec<cgraph_edge *>.
3146         * cgraph.h (cgraph_node::collect_callers): Likewise.
3147         * ipa-cp.c (create_specialized_node): Adjust.
3148         (decide_about_value): Likewise.
3149         (decide_whether_version_node): Likewise.
3150         * ipa-sra.c (process_isra_node_results): Likewise.
3151
3152 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3153
3154         * vec.h (vl_ptr>::using_auto_storage): Handle null m_vec.
3155         (auto_vec<T, 0>::auto_vec): Define move constructor, and delete copy
3156         constructor.
3157         (auto_vec<T, 0>::operator=): Define move assignment and delete copy
3158         assignment.
3159
3160 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
3161
3162         * gimple-range.cc (debug_seed_ranger): New.
3163         (dump_ranger): New.
3164         (debug_ranger): New.
3165
3166 2021-06-17  Richard Biener   <rguenther@suse.de>
3167
3168         PR tree-optimization/54400
3169         * tree-vectorizer.h (enum slp_instance_kind): Add
3170         slp_inst_kind_bb_reduc.
3171         (reduction_fn_for_scalar_code): Declare.
3172         * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
3173         Check SLP_INSTANCE_KIND instead of looking at the
3174         representative.
3175         (vect_slp_analyze_instance_alignment): Likewise.
3176         * tree-vect-loop.c (reduction_fn_for_scalar_code): Export.
3177         * tree-vect-slp.c (vect_slp_linearize_chain): Split out
3178         chain linearization from vect_build_slp_tree_2 and generalize
3179         for the use of BB reduction vectorization.
3180         (vect_build_slp_tree_2): Adjust accordingly.
3181         (vect_optimize_slp): Elide permutes at the root of BB reduction
3182         instances.
3183         (vectorizable_bb_reduc_epilogue): New function.
3184         (vect_slp_prune_covered_roots): Likewise.
3185         (vect_slp_analyze_operations): Use them.
3186         (vect_slp_check_for_constructors): Recognize associatable
3187         chains for BB reduction vectorization.
3188         (vectorize_slp_instance_root_stmt): Generate code for the
3189         BB reduction epilogue.
3190
3191 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
3192
3193         * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with
3194         may_recompute_p.
3195         (gori_compute::may_recompute_p): New.
3196         (gori_compute::outgoing_edge_range_p): Perform recomputations.
3197         * gimple-range-gori.h (class gori_compute): Add prototype.
3198
3199 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
3200
3201         * gimple-range-cache.cc (ranger_cache::range_on_edge): Always return
3202         true when a range can be calculated.
3203         * gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p.
3204
3205 2021-06-16  Martin Sebor  <msebor@redhat.com>
3206
3207         * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete):
3208         Correct documented defaults.
3209
3210 2021-06-16  Andrew MacLeod  <amacleod@redhat.com>
3211
3212         * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize
3213         m_new_value_p directly.
3214
3215 2021-06-16  Uroš Bizjak  <ubizjak@gmail.com>
3216
3217         PR target/89021
3218         * config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv):
3219         Handle 64bit modes for TARGET_SSE4_1.
3220         (expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3.
3221         (expand_vec_perm_even_odd_pack): Handle V4HI mode.
3222         (expand_vec_perm_even_odd_1) <case E_V4HImode>: Expand via
3223         expand_vec_perm_pshufb2 for TARGET_SSSE3 and via
3224         expand_vec_perm_even_odd_pack for TARGET_SSE4_1.
3225         * config/i386/mmx.md (mmx_packusdw): New insn pattern.
3226
3227 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
3228
3229         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>):
3230         Change to an expander that emits the correct instruction
3231         depending on endianness.
3232         (aarch64_<sur><addsub>hn<mode>_insn_le): Define.
3233         (aarch64_<sur><addsub>hn<mode>_insn_be): Define.
3234
3235 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
3236
3237         * config/aarch64/aarch64-simd-builtins.def: Split generator
3238         for aarch64_<su>qmovn builtins into scalar and vector
3239         variants.
3240         * config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le):
3241         Define.
3242         (aarch64_<su>qmovn<mode>_insn_be): Define.
3243         (aarch64_<su>qmovn<mode>): Split into scalar and vector
3244         variants. Change vector variant to an expander that emits the
3245         correct instruction depending on endianness.
3246
3247 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
3248
3249         * config/aarch64/aarch64-simd-builtins.def: Split generator
3250         for aarch64_sqmovun builtins into scalar and vector variants.
3251         * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>):
3252         Split into scalar and vector variants. Change vector variant
3253         to an expander that emits the correct instruction depending
3254         on endianness.
3255         (aarch64_sqmovun<mode>_insn_le): Define.
3256         (aarch64_sqmovun<mode>_insn_be): Define.
3257
3258 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
3259
3260         * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le):
3261         Define - modeling zero-high-half semantics.
3262         (aarch64_xtn<mode>): Change to an expander that emits the
3263         appropriate instruction depending on endianness.
3264         (aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half
3265         semantics.
3266         (aarch64_xtn2<mode>_le): Rename to...
3267         (aarch64_xtn2<mode>_insn_le): This.
3268         (aarch64_xtn2<mode>_be): Rename to...
3269         (aarch64_xtn2<mode>_insn_be): This.
3270         (vec_pack_trunc_<mode>): Emit truncation instruction instead
3271         of aarch64_xtn.
3272         * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode
3273         attribute iterator.
3274
3275 2021-06-16  Martin Jambor  <mjambor@suse.cz>
3276
3277         PR tree-optimization/100453
3278         * tree-sra.c (create_access): Disqualify any const candidates
3279         which are written to.
3280         (sra_modify_expr): Do not store sub-replacements back to a const base.
3281         (handle_unscalarized_data_in_subtree): Likewise.
3282         (sra_modify_assign): Likewise.  Earlier, use TREE_READONLy test
3283         instead of constant_decl_p.
3284
3285 2021-06-16  Jakub Jelinek  <jakub@redhat.com>
3286
3287         PR middle-end/101062
3288         * stor-layout.c (finish_bitfield_representative): For fields in unions
3289         assume nextf is always NULL.
3290         (finish_bitfield_layout): Compute bit field representatives also in
3291         unions, but handle it as if each bitfield was the only field in the
3292         aggregate.
3293
3294 2021-06-16  Richard Biener  <rguenther@suse.de>
3295
3296         PR tree-optimization/101088
3297         * tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for
3298         supported refs on edges.  Do not assert same ref but
3299         different kind stores are unsuported but mark them so.
3300         (hoist_memory_references): Only look for supported refs
3301         on exits.
3302
3303 2021-06-16  Roger Sayle  <roger@nextmovesoftware.com>
3304
3305         PR rtl-optimization/46235
3306         * config/i386/i386.md: New define_split for bt followed by cmov.
3307         (*bt<mode>_setcqi): New define_insn_and_split for bt followed by setc.
3308         (*bt<mode>_setncqi): New define_insn_and_split for bt then setnc.
3309         (*bt<mode>_setnc<mode>): New define_insn_and_split for bt followed
3310         by setnc with zero extension.
3311
3312 2021-06-16  Richard Biener  <rguenther@suse.de>
3313
3314         PR tree-optimization/101083
3315         * tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get
3316         vectype as argument.
3317         (vect_build_slp_tree_2): Adjust.
3318
3319 2021-06-15  Martin Sebor  <msebor@redhat.com>
3320
3321         PR middle-end/100876
3322         * builtins.c: (gimple_call_return_array): Account for size_t
3323         mangling as either unsigned int or unsigned long
3324
3325 2021-06-15  Jeff Law  <jeffreyalaw@gmail.com>
3326
3327         * compare-elim.c (try_eliminate_compare): Run DCE to clean things
3328         up before eliminating comparisons.
3329
3330 2021-06-15  Aldy Hernandez  <aldyh@redhat.com>
3331
3332         * range-op.cc (operator_bitwise_or::wi_fold): Make sure
3333         nonzero|X is nonzero.
3334         (range_op_bitwise_and_tests): Add tests for above.
3335
3336 2021-06-15  Carl Love  <cel@us.ibm.com>
3337
3338         PR target/101022
3339         * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the
3340         enum definition.
3341         (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2
3342         definitions.
3343
3344 2021-06-15  Tobias Burnus  <tobias@codesourcery.com>
3345
3346         PR fortran/92568
3347         * gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET.
3348         (struct gimplify_omp_ctx): Extend defaultmap array by one.
3349         (new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET].
3350         (omp_notice_variable): Update type classification for Fortran.
3351         (gimplify_scan_omp_clauses): Update calls for new argument; handle
3352         GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY.
3353         * langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument.
3354         * langhooks.c (lhd_omp_scalar_p): Likewise.
3355         (LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
3356         (LANG_HOOKS_DECLS): Add them.
3357         * langhooks.h (struct lang_hooks_for_decls): Add new hooks, update
3358         omp_scalar_p pointer type to include the new bool argument.
3359
3360 2021-06-15  David Malcolm  <dmalcolm@redhat.com>
3361
3362         * doc/analyzer.texi
3363         (Special Functions for Debugging the Analyzer): Add
3364         __analyzer_dump_capacity.
3365
3366 2021-06-15  Jakub Jelinek  <jakub@redhat.com>
3367
3368         PR target/101046
3369         * expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR,
3370         case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode.
3371
3372 2021-06-15  Richard Biener  <rguenther@suse.de>
3373
3374         * cfgloopanal.c (mark_irreducible_loops): Use a dominance
3375         check to identify loop latches.
3376         * cfgloop.c (verify_loop_structure): Likewise.
3377         * loop-init.c (apply_loop_flags): Allow marked irreducible
3378         regions even with multiple latches.
3379         * predict.c (rebuild_frequencies): Simplify.
3380
3381 2021-06-15  Richard Biener  <rguenther@suse.de>
3382
3383         * tree-ssa-threadupdate.c
3384         (jump_thread_path_registry::mark_threaded_blocks): Assert we
3385         have marked irreducible regions.
3386
3387 2021-06-14  Martin Sebor  <msebor@redhat.com>
3388
3389         PR c++/100876
3390         * builtins.c (gimple_call_return_array): Check for attribute fn spec.
3391         Handle calls to placement new.
3392         (ndecl_dealloc_argno): Avoid placement delete.
3393
3394 2021-06-14  Peter Bergner  <bergner@linux.ibm.com>
3395
3396         PR target/100777
3397         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use
3398         create_tmp_reg_or_ssa_name().
3399
3400 2021-06-14  Andrew MacLeod  <amacleod@redhat.com>
3401
3402         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
3403         (ranger_cache::enable_new_values): Set to specified value and
3404         return the old value.
3405         (ranger_cache::disable_new_values): Delete.
3406         (ranger_cache::fill_block_cache): Disable non 1st order derived
3407         poor values.
3408         * gimple-range-cache.h (ranger_cache): Adjust prototypes.
3409         * gimple-range.cc (gimple_ranger::range_of_expr): Adjust.
3410
3411 2021-06-14  Uroš Bizjak  <ubizjak@gmail.com>
3412
3413         PR target/101058
3414         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
3415         Return true early when testing with V2HImode.
3416         * config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1.
3417
3418 2021-06-14  Christophe Lyon  <christophe.lyon@linaro.org>
3419
3420         * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): New pattern.
3421         (mve_vec_unpack<US>_hi_<mode>): New pattern.
3422         (@mve_vec_pack_trunc_lo_<mode>): New pattern.
3423         (mve_vmovntq_<supf><mode>): Prefix with '@'.
3424         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move to
3425         vec-common.md.
3426         (vec_unpack<US>_lo_<mode>): Likewise.
3427         (vec_pack_trunc_<mode>): Rename to
3428         neon_quad_vec_pack_trunc_<mode>.
3429         * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): New
3430         pattern.
3431         (vec_unpack<US>_lo_<mode>): New.
3432         (vec_pack_trunc_<mode>): New.
3433
3434 2021-06-14  Richard Biener  <rguenther@suse.de>
3435
3436         PR tree-optimization/100934
3437         * tree-ssa-dom.c (pass_dominator::execute): Properly
3438         mark irreducible regions.
3439
3440 2021-06-14  Martin Liska  <mliska@suse.cz>
3441
3442         * doc/invoke.texi: Put r{...} on the same line as @item.
3443
3444 2021-06-14  Martin Liska  <mliska@suse.cz>
3445
3446         * doc/invoke.texi: Add missing newline.
3447
3448 2021-06-14  Martin Liska  <mliska@suse.cz>
3449
3450         * doc/invoke.texi: Remove '+' charasters.
3451
3452 2021-06-14  Claudiu Zissulescu  <claziss@synopsys.com>
3453
3454         * config.gcc (arc): Add support for with_cpu option.
3455         * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu.
3456
3457 2021-06-14  Richard Biener  <rguenther@suse.de>
3458
3459         PR tree-optimization/101031
3460         * tree-ssa-strlen.c (maybe_invalidate): Increment max_size
3461         instead of size when accounting for a possibly string
3462         terminating nul.
3463
3464 2021-06-14  Martin Liska  <mliska@suse.cz>
3465
3466         * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[].
3467
3468 2021-06-14  Aldy Hernandez  <aldyh@redhat.com>
3469
3470         * value-query.cc (gimple_range_global): Call get_range_global
3471         if called after inlining.
3472
3473 2021-06-13  Uroš Bizjak  <ubizjak@gmail.com>
3474
3475         PR target/101021
3476         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
3477         Emit constant permutation insn directly from here.
3478
3479 2021-06-13  Trevor Saunders  <tbsaunde@tbsaunde.org>
3480
3481         * attribs.c (find_attribute_namespace): Iterate over vec<> with
3482         range based for.
3483         * auto-profile.c (afdo_find_equiv_class): Likewise.
3484         * gcc.c (do_specs_vec): Likewise.
3485         (do_spec_1): Likewise.
3486         (driver::set_up_specs): Likewise.
3487         * gimple-loop-jam.c (any_access_function_variant_p): Likewise.
3488         * gimple-ssa-store-merging.c (compatible_load_p): Likewise.
3489         (imm_store_chain_info::try_coalesce_bswap): Likewise.
3490         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
3491         (get_location_for_stmts): Likewise.
3492         * graphite-poly.c (print_iteration_domains): Likewise.
3493         (free_poly_bb): Likewise.
3494         (remove_gbbs_in_scop): Likewise.
3495         (free_scop): Likewise.
3496         (dump_gbb_cases): Likewise.
3497         (dump_gbb_conditions): Likewise.
3498         (print_pdrs): Likewise.
3499         (print_scop): Likewise.
3500         * ifcvt.c (cond_move_process_if_block): Likewise.
3501         * lower-subreg.c (decompose_multiword_subregs): Likewise.
3502         * regcprop.c (pass_cprop_hardreg::execute): Likewise.
3503         * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
3504         * sel-sched-dump.c (dump_insn_vector): Likewise.
3505         * store-motion.c (store_ops_ok): Likewise.
3506         (store_killed_in_insn): Likewise.
3507         * timevar.c (timer::named_items::print): Likewise.
3508         * tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise.
3509         (cleanup_tree_cfg_noloop): Likewise.
3510         * tree-data-ref.c (dump_data_references): Likewise.
3511         (print_dir_vectors): Likewise.
3512         (print_dist_vectors): Likewise.
3513         (dump_data_dependence_relations): Likewise.
3514         (dump_dist_dir_vectors): Likewise.
3515         (dump_ddrs): Likewise.
3516         (create_runtime_alias_checks): Likewise.
3517         (free_subscripts): Likewise.
3518         (save_dist_v): Likewise.
3519         (save_dir_v): Likewise.
3520         (invariant_access_functions): Likewise.
3521         (same_access_functions): Likewise.
3522         (access_functions_are_affine_or_constant_p): Likewise.
3523         (find_data_references_in_stmt): Likewise.
3524         (graphite_find_data_references_in_stmt): Likewise.
3525         (free_dependence_relations): Likewise.
3526         (free_data_refs): Likewise.
3527         * tree-inline.c (copy_debug_stmts): Likewise.
3528         * tree-into-ssa.c (dump_currdefs): Likewise.
3529         (rewrite_update_phi_arguments): Likewise.
3530         * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
3531         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
3532         Likewise.
3533         (vect_slp_analyze_node_dependences): Likewise.
3534         (vect_slp_analyze_instance_dependence): Likewise.
3535         (vect_record_base_alignments): Likewise.
3536         (vect_get_peeling_costs_all_drs): Likewise.
3537         (vect_peeling_supportable): Likewise.
3538         * tree-vectorizer.c (vec_info::~vec_info): Likewise.
3539         (vec_info::free_stmt_vec_infos): Likewise.
3540
3541 2021-06-13  Jeff Law  <jeffreyalaw@gmail.com>
3542
3543         * config/h8300/logical.md (<code>qi3_1<cczn>): New pattern.
3544         (andqi3_1<cczn>): Removed.
3545         (<ors>qi3_1): Do not split for IOR/XOR a single bit.
3546         (H8/SX bit logicals): Split out from other patterns.
3547         * config/h8300/multiply.md (mulqihi3_const<cczn>): Renamed from
3548         mulqihi3_const_clobber_flags.
3549         (mulqihi3<cczn>, mulhisi3_const<cczn>, mulhisi3<cczn>): Similarly
3550
3551 2021-06-13  H.J. Lu  <hjl.tools@gmail.com>
3552
3553         PR target/101023
3554         * config/i386/i386.c (ix86_expand_prologue): Set red_zone_used
3555         to true if red zone is used.
3556         (ix86_output_indirect_jmp): Replace ix86_red_zone_size with
3557         ix86_red_zone_used.
3558         * config/i386/i386.h (machine_function): Add red_zone_used.
3559         (ix86_red_zone_size): Removed.
3560         (ix86_red_zone_used): New.
3561         * config/i386/i386.md (peephole2 patterns): Replace
3562         ix86_red_zone_size with ix86_red_zone_used.
3563
3564 2021-06-12  Jason Merrill  <jason@redhat.com>
3565
3566         * doc/extend.texi (unused variable attribute): Applies to
3567         structure fields as well.
3568
3569 2021-06-12  Eugene Rozenfeld  <erozen@microsoft.com>
3570
3571         * auto-profile.c (read_profile): fix a typo in an error string
3572
3573 2021-06-11  Thomas Schwinge  <thomas@codesourcery.com>
3574
3575         * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
3576         default argument.
3577         * tree-pretty-print.c (dump_omp_clauses): Update.
3578         (dump_generic_node) <OMP_CLAUSE>: Use it.
3579
3580 2021-06-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
3581
3582         PR target/101016
3583         * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0,
3584         int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for
3585         the polymorphic variants matching code.
3586         (__arm_vld1q_z): Likewise.
3587         (__arm_vld2q): Likewise.
3588         (__arm_vld4q): Likewise.
3589         (__arm_vldrbq_gather_offset): Likewise.
3590         (__arm_vldrbq_gather_offset_z): Likewise.
3591
3592 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
3593
3594         PR tree-optimization/96392
3595         * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype.
3596
3597 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
3598
3599         PR tree-optimization/96392
3600         * fold-const.c (fold_real_zero_addition_p): Take both arguments
3601         of the addition or subtraction, not just the zero.  Use this
3602         other argument in tests for signaling NaNs and signed zeros.
3603         (tree_expr_maybe_real_minus_zero_p): New predicate.
3604         * fold-const.h (fold_real_zero_addition_p): Update prototype.
3605         (tree_expr_maybe_real_minus_zero_p): New function prototype.
3606         * match.pd: Update calls to fold_real_zero_addition_p.
3607         Replace HONOR_NANS with tree_expr_maybe_nan_p.
3608         Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p.
3609         Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p.
3610         * tree-ssa-reassoc.c (eliminate_using_constants): Update
3611         call to fold_real_zero_addition_p.
3612
3613 2021-06-11  Richard Biener  <rguenther@suse.de>
3614
3615         PR tree-optimization/101025
3616         * tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process
3617         all refs that require dependence checking.
3618
3619 2021-06-11  Richard Biener  <rguenther@suse.de>
3620
3621         PR tree-optimization/101028
3622         * tree-vect-slp.c (vect_build_slp_tree_2): When SLP
3623         reassoc discovery fails fatally, mark appropriate lanes
3624         in matches[] so.
3625
3626 2021-06-11  Richard Biener  <rguenther@suse.de>
3627
3628         PR tree-optimization/101026
3629         * tree-vect-slp.c (vect_build_slp_tree_2): Make sure we
3630         have a representative for the associated chain nodes.
3631
3632 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
3633
3634         PR rtl-optimization/101008
3635         * simplify-rtx.c (relational_result): New function.
3636         (simplify_logical_relational_operation,
3637         simplify_relational_operation): Use it.
3638
3639 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
3640
3641         PR target/101007
3642         * config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2.
3643
3644 2021-06-11  Uroš Bizjak  <ubizjak@gmail.com>
3645
3646         PR target/101021
3647         * config/i386/i386-expand.c (expand_vec_perm_pshufb): Return
3648         false if the permutation can be implemented with constant
3649         permutation instruction in wider mode.
3650         (canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb.
3651         Handle V8QImode and V4HImode.
3652
3653 2021-06-11  Martin Liska  <mliska@suse.cz>
3654
3655         PR gcov-profile/100788
3656         * common.opt: Add new option.
3657         * coverage.c (coverage_begin_function): Emit warning instead on
3658         the internal compiler error.
3659         * doc/invoke.texi: Document the option.
3660         * toplev.c (process_options): Enable it by default.
3661
3662 2021-06-11  Richard Biener  <rguenther@suse.de>
3663
3664         PR middle-end/101009
3665         * tree-data-ref.c (build_classic_dist_vector_1): Make sure
3666         to set *init_b to true when we encounter a constant equal
3667         index pair.
3668         (compute_affine_dependence): Also dump the actual DR_REF.
3669
3670 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
3671
3672         PR tree-optimization/100984
3673         * gimple-ssa-evrp.c  (ssa_equiv_stack): Use auto_vec for
3674         replacements table.
3675         (ssa_equiv_stack::~ssa_equiv_stack): Remove.
3676
3677 2021-06-11  Kewen Lin  <linkw@linux.ibm.com>
3678
3679         * config/rs6000/rs6000.md
3680         (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New
3681         define_insn_and_split.
3682
3683 2021-06-11  Richard Biener  <rguenther@suse.de>
3684
3685         * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort
3686         to sort operands of the associative chain.
3687
3688 2021-06-11  Richard Biener  <rguenther@suse.de>
3689
3690         * system.h (gcc_stablesort_r): Declare.
3691         * sort.cc (gcc_sort_r): Support stable sort.
3692         (gcc_stablesort_r): Define.
3693         * vec.h (vec<>::stablesort): Add.
3694
3695 2021-06-10  Uroš Bizjak  <ubizjak@gmail.com>
3696
3697         PR target/89021
3698         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
3699         Handle V2SF mode.  Emit SHUFPS to fixup unpack-high for V2SF mode.
3700         (expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1.
3701         (expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3.
3702         (expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1.
3703         (expand_vec_perm_interleave2): Handle 64bit modes.
3704         (expand_vec_perm_even_odd_pack): Handle V8QI mode.
3705         (expand_vec_perm_even_odd_1): Ditto.
3706         (ix86_vectorize_vec_perm_const): Ditto.
3707         * config/i386/i386.md (UNSPEC_PSHUFB): Move from ...
3708         * config/i386/sse.md: ... here.
3709         * config/i386/mmx.md (*vec_interleave_lowv2sf):
3710         New insn_and_split pattern.
3711         (*vec_interleave_highv2sf): Ditto.
3712         (mmx_pshufbv8qi3): New insn pattern.
3713         (*mmx_pblendw): Ditto.
3714
3715 2021-06-10  Peter Bergner  <bergner@linux.ibm.com>
3716
3717         * config/rs6000/rs6000-builtin.def (build_pair): New built-in.
3718         (build_acc): Likewise.
3719         * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble
3720         source operands in little-endian mode.
3721         (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR.
3722         (mma_init_builtins): Likewise.
3723         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness
3724         ordering for the MMA assemble and build source operands.
3725         * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair):
3726         Document.
3727         (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove
3728         documentation.
3729
3730 2021-06-10  Jeff Law  <jeffreyalaw@gmail.com>
3731
3732         * config/h8300/h8300.c (select_cc_mode): Handle MEM.  Use
3733         REG_P.
3734         * config/h8300/extensions.md: Replace _clobber_flags patterns
3735         with <cczn>.
3736
3737 2021-06-10  Robin Dapp  <rdapp@linux.ibm.com>
3738
3739         * config/s390/vector.md (vcond_mask_<mode><mode>): Change to
3740         (vcond_mask_<mode><tointvec>): this.
3741
3742 2021-06-10  Andrew Stubbs  <ams@codesourcery.com>
3743             Thomas Schwinge  <thomas@codesourcery.com>
3744
3745         * omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into...
3746         (BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these.
3747         * gimple.h (enum gf_mask): Split
3748         'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into
3749         'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and
3750         'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'.
3751         (is_gimple_omp_oacc): Update.
3752         * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
3753         * gimplify.c (gimplify_omp_target_update): Likewise.
3754         * omp-expand.c (expand_omp_target, build_omp_regions_1)
3755         (omp_make_gimple_edges): Likewise.
3756         * omp-low.c (check_omp_nesting_restrictions, lower_omp_target):
3757         Likewise.
3758
3759 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
3760
3761         * value-query.cc (value_query::value_on_edge): Rename name to
3762         expr.
3763         (range_query::range_on_edge): Same.
3764         (range_query::value_of_expr): Same.
3765         (range_query::value_on_edge): Same.
3766         * value-query.h (class value_query): Same.
3767         (class range_query): Same.
3768
3769 2021-06-10  Richard Biener  <rguenther@suse.de>
3770
3771         PR tree-optimization/101003
3772         * tree-vect-slp.c (vect_build_slp_tree_2): Appropriately
3773         use the pattern stmt defs when linearizing a chain.
3774
3775 2021-06-10  Jakub Jelinek  <jakub@redhat.com>
3776
3777         PR debug/100852
3778         * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use
3779         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
3780
3781 2021-06-10  Clement Chigot  <clement.chigot@atos.net>
3782
3783         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive.
3784         * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
3785
3786 2021-06-09  Andrew Pinski  <apinski@marvell.com>
3787
3788         PR tree-optimization/100925
3789         * match.pd (a ? CST1 : CST2): Limit transformations
3790         that would produce a negative to integeral types only.
3791         Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also.
3792
3793 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
3794
3795         Revert:
3796         2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
3797
3798         * doc/tm.texi: Correctly update.
3799
3800 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
3801
3802         * doc/tm.texi: Correctly update.
3803
3804 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
3805
3806         PR other/100735
3807         * doc/tm.texi.in (Trampolines): Add a missing blank line.
3808
3809 2021-06-09  Paul Eggert  <eggert@cs.ucla.edu>
3810
3811         PR other/100735
3812         * doc/invoke.texi (Code Gen Options); Document that -fno-trampolines
3813         and -ftrampolines work only with Ada.
3814         * doc/tm.texi.in (Trampolines): Likewise.
3815         * doc/tm.texi: Regenerated.
3816
3817 2021-06-09  Carl Love  <cel@us.ibm.com>
3818
3819         * config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq):
3820         Add define for new builtins.
3821         * config/rs6000/altivec.md(altivec_vreveti2): Add define_expand.
3822         * config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL):  Add
3823         overloaded builtin definitions.
3824         (VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D,
3825         VSIGNEXTSD2Q):  Add builtin expansions.
3826         (SIGNEXT): Add P10 overload definition.
3827         * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL,
3828         P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions.
3829         * config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn.
3830         (vsignextend_v2di_v1ti, vsignextend_qi_<mode>, vsignextend_hi_<mode>,
3831         vsignextend_si_v2di)[VIlong]: Add define_expand.
3832         Make define_insn vsx_sign_extend_si_v2di visible.
3833         * doc/extend.texi:  Add documentation for the vec_signexti,
3834         vec_signextll builtins and vec_signextq.
3835
3836 2021-06-09  Carl Love  <cel@us.ibm.com>
3837
3838         * config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf,
3839         __floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw,
3840         __floattikf_sw, __floatuntikf_sw respectively.
3841         * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
3842         fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add
3843         define_insn for mode IEEE 128.
3844
3845 2021-06-09  Carl Love  <cel@us.ibm.com>
3846
3847         * config/rs6000/altivec.md (altivec_vslq, altivec_vsrq):
3848         Rename to altivec_vslq_<mode>, altivec_vsrq_<mode>, mode VEC_TI.
3849         * config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md.
3850         (vashlv1ti3): Change to vashl<mode>3, mode VEC_TI.
3851         (vlshrv1ti3): Change to vlshr<mode>3, mode VEC_TI.
3852         * config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update
3853         uses of VSX_TI to VEC_TI.
3854
3855 2021-06-09  Carl Love  <cel@us.ibm.com>
3856
3857         * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns.
3858
3859 2021-06-09  Carl Love  <cel@us.ibm.com>
3860
3861         * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new
3862         builtins.
3863         * config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD,
3864         UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs.
3865         (altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud,
3866         altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq,
3867         altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm,
3868         altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq,
3869         altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New
3870         define_insn.
3871         (vec_widen_umult_even_v2di, vec_widen_smult_even_v2di,
3872         vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi,
3873         altivec_vrlqnm): New define_expands.
3874         * config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P,
3875         VCMPGTUT_P): Add macro expansions.
3876         (BU_P10V_AV_P): Add builtin predicate definition.
3877         (VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI,
3878         CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P,
3879         VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ,
3880         VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI,
3881         MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions.
3882         (VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions.
3883         * config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT,
3884         P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI,
3885         P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST,
3886         P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI,
3887         P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI,
3888         P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD,
3889         P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD,
3890         P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS,
3891         P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI,
3892         P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ,
3893         P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ,
3894         P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P,
3895         P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P,
3896         P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET,
3897         P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P,
3898         P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI,
3899         P10V_BUILTIN_MODU_V1TI):
3900         New overloaded definitions.
3901         (rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT,
3902         P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI,
3903         P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT,
3904         P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI,
3905         P10V_BUILTIN_CMPLE_U1TI]: New case statements.
3906         (rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]:
3907         New assignments.
3908         (altivec_init_builtins): New E_V1TImode case statement.
3909         (builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD,
3910         P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI,
3911         P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI,
3912         P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements.
3913         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode,
3914         E_V1TImode]: New case statements.
3915         * config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum
3916         value RS6000_BTI_bool_V1TI.
3917         * config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti,
3918         vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti,
3919         vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p,
3920         vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3,
3921         vlshrv1ti3, vashrv1ti3): New define_expands.
3922         * config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ,
3923         UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ,
3924         UNSPEC_VSX_MODUQ): New unspecs.
3925         (mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti,
3926         vsx_diveu_v1ti, vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New
3927         define_insns.
3928         (vcmpnet): New define_expand.
3929         * doc/extend.texi: Add documentation for the new builtins vec_rl,
3930         vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo,
3931         vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt,
3932         vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt,
3933         vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt,
3934         vec_any_ge, vec_any_le.
3935
3936 2021-06-09  Carl Love  <cel@us.ibm.com>
3937
3938         * config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix
3939         bug in argument generation.
3940
3941 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
3942
3943         * config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S.
3944         (VCLZQ): Remove.
3945         * config/arm/mve.md (mve_vclzq_<supf><mode>): Add '@' prefix,
3946         remove <supf> iterator.
3947         (mve_vclzq_u<mode>): New.
3948         * config/arm/neon.md (clz<mode>2): Rename to neon_vclz<mode>.
3949         (neon_vclz<mode): Move to ...
3950         * config/arm/unspecs.md (VCLZQ_U, VCLZQ_S): Remove.
3951         * config/arm/vec-common.md: ... here. Add support for MVE.
3952
3953 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
3954
3955         * config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'.
3956         (@mve_vrhaddq_<supf><mode): Likewise.
3957         * config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise.
3958         * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
3959         (avg<mode>3_ceil", uavg<mode>3_ceil): New patterns.
3960
3961 2021-06-09  imba-tjd  <109224573@qq.com>
3962
3963         * doc/invoke.texi: Fix typo.
3964
3965 2021-06-09  Roger Sayle  <roger@nextmovesoftware.com>
3966
3967         PR middle-end/53267
3968         * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]:
3969         Support evaluation of fmod/fmodf/fmodl at compile-time.
3970
3971 2021-06-09  Richard Biener  <rguenther@suse.de>
3972
3973         PR tree-optimization/100981
3974         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
3975         gimple_get_lhs to also handle calls.
3976         * tree-vect-slp-patterns.c (complex_pattern::build): Transfer
3977         reduction info.
3978
3979 2021-06-09  Richard Biener  <rguenther@suse.de>
3980
3981         PR tree-optimization/97832
3982         * tree-vectorizer.h (_slp_tree::failed): New.
3983         * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
3984         failed member.
3985         (_slp_tree::~_slp_tree): Free failed.
3986         (vect_build_slp_tree): Retain failed nodes and record
3987         matches in them, copying that back out when running
3988         into a cached fail.  Dump start and end of discovery.
3989         (dt_sort_cmp): New.
3990         (vect_build_slp_tree_2): Handle associatable chains
3991         together doing more aggressive operand swapping.
3992
3993 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
3994
3995         PR target/100896
3996         * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and
3997         GNU targets.
3998         * doc/install.texi: Require glibc 2.1 and binutils 2.12 for
3999         Linux and GNU targets.
4000
4001 2021-06-09  Richard Biener  <rguenther@suse.de>
4002
4003         * tree-vect-stmts.c (vect_is_simple_use): Always get dt
4004         from the stmt.
4005
4006 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
4007
4008         * config/arc/arc.md (loop_end): Change it to
4009         define_insn_and_split.
4010
4011 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
4012
4013         * config/arc/arc.md (maddhisi4): Use VMAC2H instruction.
4014         (machi): New pattern.
4015         (umaddhisi4): Use VMAC2HU instruction.
4016         (umachi): New pattern.
4017
4018 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
4019
4020         * config/arc/arc-protos.h (arc_split_move_p): New prototype.
4021         * config/arc/arc.c (arc_split_move_p): New function.
4022         (arc_split_move): Clean up.
4023         * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p.
4024         (movdf_insn): Likewise.
4025         * config/arc/simdext.md (mov<VWH>_insn): Likewise.
4026
4027 2021-06-09  Uroš Bizjak  <ubizjak@gmail.com>
4028
4029         PR target/100936
4030         * config/i386/i386.c (print_operand_address_as): Rename "no_rip"
4031         argument to "raw".  Do not emit segment overrides when "raw" is true.
4032
4033 2021-06-09  Martin Liska  <mliska@suse.cz>
4034
4035         * doc/gcov.texi: Create a proper JSON files.
4036         * doc/invoke.texi: Remove dots in order to make it a valid
4037         JSON object.
4038
4039 2021-06-09  Xionghu Luo  <luoxhu@linux.ibm.com>
4040
4041         * config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New.
4042         (insn_is_load_p): Use pattern_is_rotate64.
4043         (insn_is_swap_p): Likewise.
4044         (quad_aligned_load_p): Likewise.
4045         (const_load_sequence_p): Likewise.
4046         (replace_swapped_aligned_load): Likewise.
4047         (recombine_lvx_pattern): Likewise.
4048         (recombine_stvx_pattern): Likewise.
4049
4050 2021-06-09  Andrew MacLeod  <amacleod@redhat.com>
4051
4052         * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a
4053         fur_stmt source record.
4054         * gimple-range.cc (fur_source::get_operand): Generic range query.
4055         (fur_source::get_phi_operand): New.
4056         (fur_source::register_dependency): New.
4057         (fur_source::query): New.
4058         (class fur_edge): New.  Edge source for operands.
4059         (fur_edge::fur_edge): New.
4060         (fur_edge::get_operand): New.
4061         (fur_edge::get_phi_operand): New.
4062         (fur_edge::query): New.
4063         (fur_stmt::fur_stmt): New.
4064         (fur_stmt::get_operand): New.
4065         (fur_stmt::get_phi_operand): New.
4066         (fur_stmt::query): New.
4067         (class fur_depend): New.  Statement source and process dependencies.
4068         (fur_depend::fur_depend): New.
4069         (fur_depend::register_dependency): New.
4070         (class fur_list): New.  List source for operands.
4071         (fur_list::fur_list): New.
4072         (fur_list::get_operand): New.
4073         (fur_list::get_phi_operand): New.
4074         (fold_range): New.  Instantiate appropriate fur_source class and fold.
4075         (fold_using_range::range_of_range_op): Use new API.
4076         (fold_using_range::range_of_address): Ditto.
4077         (fold_using_range::range_of_phi): Ditto.
4078         (imple_ranger::fold_range_internal): Use fur_depend class.
4079         (fold_using_range::range_of_ssa_name_with_loop_info): Use new API.
4080         * gimple-range.h (class fur_source): Now a base class.
4081         (class fur_stmt): New.
4082         (fold_range): New prototypes.
4083         (fur_source::fur_source): Delete.
4084
4085 2021-06-08  Andrew Pinski  <apinski@marvell.com>
4086
4087         PR tree-optimization/25290
4088         * tree-ssa-phiopt.c (xor_replacement): Delete.
4089         (tree_ssa_phiopt_worker): Delete use of xor_replacement.
4090         (match_simplify_replacement): Allow one cheap preparation
4091         statement that can be moved to before the if.
4092
4093 2021-06-08  Pat Haugen  <pthaugen@linux.ibm.com>
4094
4095         * config/rs6000/power10.md (power10-fused-load, power10-fused-store,
4096         power10-fused_alu, power10-fused-vec, power10-fused-branch): New.
4097
4098 2021-06-08  Jeff Law  <jeffreyalaw@gmail.com>
4099
4100         * config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split.
4101         Create length attribute on define_insn_and_split.  Only split for cases which we
4102         know will use AND.
4103         (andqi3_1<cczn>): Renamed from andqi3_1_clobber_flags.  Only handle AND here and
4104         fix length computation.
4105         (b<code><mode>msx): Combine QImode and HImode H8/SX patterns using iterator.
4106
4107 2021-06-08  Richard Biener  <rguenther@suse.de>
4108
4109         PR tree-optimization/100923
4110         * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to
4111         the operand vector to be valueized.
4112         (valueize_refs): Likewise.
4113         (valueize_shared_reference_ops_from_ref): Adjust.
4114         (valueize_shared_reference_ops_from_call): Likewise.
4115         (vn_reference_lookup_3): Likewise.
4116         (vn_reference_lookup_pieces): Likewise.  Re-valueize
4117         with honoring availability when we are about to create
4118         the ao_ref and valueized before.
4119         (vn_reference_lookup): Likewise.
4120         (vn_reference_insert_pieces): Adjust.
4121
4122 2021-06-08  Richard Biener  <rguenther@suse.de>
4123
4124         * tree-vectorizer.h (_slp_instance::root_stmt): Change to...
4125         (_slp_instance::root_stmts): ... a vector.
4126         (SLP_INSTANCE_ROOT_STMT): Rename to ...
4127         (SLP_INSTANCE_ROOT_STMTS): ... this.
4128         (slp_root::root): Change to...
4129         (slp_root::roots): ... a vector.
4130         (slp_root::slp_root): Adjust.
4131         * tree-vect-slp.c (_slp_instance::location): Adjust.
4132         (vect_free_slp_instance): Release the root stmt vector.
4133         (vect_build_slp_instance): Adjust.
4134         (vect_analyze_slp): Likewise.
4135         (_bb_vec_info::~_bb_vec_info): Likewise.
4136         (vect_slp_analyze_operations): Likewise.
4137         (vect_bb_vectorization_profitable_p): Likewise.  Adjust
4138         costs for the root stmt.
4139         (vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs
4140         as root stmts.
4141         (vect_slp_analyze_bb_1): Simplify by marking all root stmts
4142         as pure_slp.
4143         (vectorize_slp_instance_root_stmt): Adjust.
4144         (vect_schedule_slp): Likewise.
4145
4146 2021-06-08  Aldy Hernandez  <aldyh@redhat.com>
4147
4148         * gimple-ssa-evrp.c (class ssa_equiv_stack): New.
4149         (ssa_equiv_stack::ssa_equiv_stack): New.
4150         (ssa_equiv_stack::~ssa_equiv_stack): New.
4151         (ssa_equiv_stack::enter): New.
4152         (ssa_equiv_stack::leave): New.
4153         (ssa_equiv_stack::push_replacement): New.
4154         (ssa_equiv_stack::get_replacement): New.
4155         (is_pointer_ssa): New.
4156         (class pointer_equiv_analyzer): New.
4157         (pointer_equiv_analyzer::pointer_equiv_analyzer): New.
4158         (pointer_equiv_analyzer::~pointer_equiv_analyzer): New.
4159         (pointer_equiv_analyzer::set_global_equiv): New.
4160         (pointer_equiv_analyzer::set_cond_equiv): New.
4161         (pointer_equiv_analyzer::get_equiv): New.
4162         (pointer_equiv_analyzer::enter): New.
4163         (pointer_equiv_analyzer::leave): New.
4164         (pointer_equiv_analyzer::get_equiv_expr): New.
4165         (pta_valueize): New.
4166         (pointer_equiv_analyzer::visit_stmt): New.
4167         (pointer_equiv_analyzer::visit_edge): New.
4168         (hybrid_folder::value_of_expr): Call PTA.
4169         (hybrid_folder::value_on_edge): Same.
4170         (hybrid_folder::pre_fold_bb): New.
4171         (hybrid_folder::post_fold_bb): New.
4172         (hybrid_folder::pre_fold_stmt): New.
4173         (rvrp_folder::pre_fold_bb): New.
4174         (rvrp_folder::post_fold_bb): New.
4175         (rvrp_folder::pre_fold_stmt): New.
4176         (rvrp_folder::value_of_expr): Call PTA.
4177         (rvrp_folder::value_on_edge): Same.
4178
4179 2021-06-08  Jakub Jelinek  <jakub@redhat.com>
4180
4181         PR c++/100957
4182         * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't
4183         check TREE_CODE if OMP_CLAUSE_DECL is NULL.
4184
4185 2021-06-08  Richard Biener  <rguenther@suse.de>
4186
4187         PR middle-end/100951
4188         * tree-vect-generic.c (expand_vector_piecewise): Build a
4189         VECTOR_CST if all elements are constant.
4190         (expand_vector_condition): Likewise.
4191         (lower_vec_perm): Likewise.
4192         (expand_vector_conversion): Likewise.
4193
4194 2021-06-08  Martin Liska  <mliska@suse.cz>
4195
4196         * doc/invoke.texi: Document new param evrp-sparse-threshold.
4197
4198 2021-06-08  Martin Liska  <mliska@suse.cz>
4199
4200         * genautomata.c (create_automata): Fix typo.
4201
4202 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
4203
4204         PR tree-optimization/100794
4205         * tree-predcom.c (tree_predictive_commoning_loop): Add parameter
4206         allow_unroll_p and only allow unrolling when it's true.
4207         (tree_predictive_commoning): Add parameter allow_unroll_p and
4208         adjust for it.
4209         (run_tree_predictive_commoning): Likewise.
4210         (pass_predcom::gate): Check flag_tree_loop_vectorize and
4211         global_options_set.x_flag_predictive_commoning.
4212         (pass_predcom::execute): Adjust for allow_unroll_p.
4213
4214 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
4215
4216         * tree-predcom.c (execute_pred_commoning): Remove update_ssa call.
4217         (tree_predictive_commoning_loop): Factor some cleanup stuffs into
4218         lambda function cleanup, remove scev_reset call, and adjust return
4219         value.
4220         (tree_predictive_commoning): Adjust for different changed values,
4221         only set flag TODO_update_ssa_only_virtuals if changed.
4222         (pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals
4223         from todo_flags_finish.
4224
4225 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
4226
4227         * gimple-range-cache.cc (class sbr_sparse_bitmap): New.
4228         (sbr_sparse_bitmap::sbr_sparse_bitmap): New.
4229         (sbr_sparse_bitmap::bitmap_set_quad): New.
4230         (sbr_sparse_bitmap::bitmap_get_quad): New.
4231         (sbr_sparse_bitmap::set_bb_range): New.
4232         (sbr_sparse_bitmap::get_bb_range): New.
4233         (sbr_sparse_bitmap::bb_range_p): New.
4234         (block_range_cache::block_range_cache): initialize bitmap obstack.
4235         (block_range_cache::~block_range_cache): Destruct obstack.
4236         (block_range_cache::set_bb_range): Decide when to utilze the
4237         sparse on entry cache.
4238         * gimple-range-cache.h (block_range_cache): Add bitmap obstack.
4239         * params.opt (-param=evrp-sparse-threshold): New.
4240
4241 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
4242
4243         * bitmap.c (bitmap_set_aligned_chunk): New.
4244         (bitmap_get_aligned_chunk): New.
4245         (test_aligned_chunk): New.
4246         (bitmap_c_tests): Call test_aligned_chunk.
4247         * bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New.
4248
4249 2021-06-07  Uroš Bizjak  <ubizjak@gmail.com>
4250
4251         PR target/100637
4252         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
4253         Handle V4QI mode.
4254         (ix86_expand_vector_init_one_nonzero): Ditto.
4255         (ix86_expand_vector_init_one_var): Ditto.
4256         (ix86_expand_vector_init_general): Ditto.
4257         * config/i386/mmx.md (vec_initv4qiqi): New expander.
4258
4259 2021-06-07  Jeff Law  <jeffreyalaw@gmail.com>
4260
4261         * config/h8300/movepush.md: Change most _clobber_flags
4262         patterns to instead use <cczn> subst.
4263         (movsi_cczn): New pattern with usable CC cases split out.
4264         (movsi_h8sx_cczn): Likewise.
4265
4266 2021-06-07  Martin Liska  <mliska@suse.cz>
4267
4268         * common/common-target.def: Split long lines and replace them
4269         with '\n\'.
4270         * target.def: Likewise.
4271         * doc/tm.texi: Re-generated.
4272
4273 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
4274
4275         PR target/100887
4276         * fold-const.c (fold_read_from_vector): Return NULL if trying to
4277         read from a CONSTRUCTOR with vector type elements.
4278
4279 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
4280
4281         PR middle-end/100898
4282         * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy
4283         should copy any arguments.  Don't call gimple_call_num_args
4284         on id->call_stmt or call_stmt more than once.
4285
4286 2021-06-07  liuhongt  <hongtao.liu@intel.com>
4287
4288         PR target/100885
4289         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine
4290         constraints.
4291         (<insn>v4siv4di2): Delete constraints for define_expand.
4292
4293 2021-06-07  liuhongt  <hongtao.liu@intel.com>
4294
4295         PR target/82735
4296         * config/i386/i386-expand.c (ix86_expand_builtin): Remove
4297         assignment of cfun->machine->has_explicit_vzeroupper.
4298         * config/i386/i386-features.c
4299         (ix86_add_reg_usage_to_vzerouppers): Delete.
4300         (ix86_add_reg_usage_to_vzeroupper): Ditto.
4301         (rest_of_handle_insert_vzeroupper): Remove
4302         ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end
4303         of the function.
4304         (gate): Remove cfun->machine->has_explicit_vzeroupper.
4305         * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper):
4306         Declared.
4307         * config/i386/i386.c (ix86_insn_callee_abi): New function.
4308         (ix86_initialize_callee_abi): Ditto.
4309         (ix86_expand_avx_vzeroupper): Ditto.
4310         (ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper
4311         ABI.
4312         (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi.
4313         (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper
4314         directly.
4315         * config/i386/i386.h (struct GTY(()) machine_function): Delete
4316         has_explicit_vzeroupper.
4317         * config/i386/i386.md (enum unspec): New member
4318         UNSPEC_CALLEE_ABI.
4319         (ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New
4320         define_constants for insn callee abi index.
4321         * config/i386/predicates.md (vzeroupper_pattern): Adjust.
4322         * config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted.
4323         (avx_vzeroupper): Call ix86_expand_avx_vzeroupper.
4324         (*avx_vzeroupper): Rename to ..
4325         (avx_vzeroupper_callee_abi): .. this, and adjust pattern as
4326         call_insn which has a special vzeroupper ABI.
4327         (*avx_vzeroupper_1): Deleted.
4328
4329 2021-06-07  liuhongt  <hongtao.liu@intel.com>
4330
4331         PR target/82735
4332         * df-scan.c (df_get_call_refs): When call_insn is a fake call,
4333         it won't use stack pointer reg.
4334         * final.c (leaf_function_p): When call_insn is a fake call, it
4335         won't affect caller as a leaf function.
4336         * reg-stack.c (callee_clobbers_any_stack_reg): New.
4337         (subst_stack_regs): When call_insn doesn't clobber any stack
4338         reg, don't clear the arguments.
4339         * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is
4340         a insn.
4341         * shrink-wrap.c (requires_stack_frame_p): No need for stack
4342         frame for a fake call.
4343         * rtl.h (FAKE_CALL_P): New macro.
4344
4345 2021-06-06  Eric Botcazou  <ebotcazou@adacore.com>
4346
4347         * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename
4348         to...
4349         (sparc_order_regs_for_local_alloc): ...this.
4350         (sparc_leaf_reg_remap): Declare.
4351         * config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust.
4352         (LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap.
4353         * config/sparc/sparc.c (leaf_reg_remap): Delete.
4354         (order_regs_for_local_alloc): Rename to...
4355         (sparc_order_regs_for_local_alloc): ...this.
4356         (sparc_leaf_reg_remap): New function.
4357         (sparc_conditional_register_usage): Do not modify leaf_reg_remap.
4358
4359 2021-06-06  David Edelsohn  <dje.gcc@gmail.com>
4360
4361         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common):
4362         Use assemble_name to output BSS section name.
4363
4364 2021-06-06  Uroš Bizjak  <ubizjak@gmail.com>
4365
4366         * config/i386/constraints.md (Bs):
4367         Remove boolean operators from match_test RTX.
4368         (Bw): Ditto.
4369         (L): Ditto.
4370         (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX.
4371         (Wz): Ditto.
4372
4373 2021-06-06  Martin Liska  <mliska@suse.cz>
4374
4375         * doc/extend.texi: Add missing @headitem.
4376         * doc/invoke.texi: Likewise.
4377         * doc/objc.texi: Likewise.
4378
4379 2021-06-06  Martin Liska  <mliska@suse.cz>
4380
4381         * genhooks.c (emit_findices): Remove unused function.
4382         (emit_documentation): Do not call emit_findices
4383         and do not search for @Fcode directives.
4384
4385 2021-06-06  Martin Liska  <mliska@suse.cz>
4386
4387         * doc/invoke.texi: Remove extra character.
4388
4389 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4390
4391         * config/sh/sh.md (doloop_end_split): Fix empty split condition.
4392
4393 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4394
4395         * config/sparc/sparc.md (*snedi<W:mode>_zero_vis3,
4396         *neg_snedi<W:mode>_zero_subxc, *plus_snedi<W:mode>_zero,
4397         *plus_plus_snedi<W:mode>_zero, *minus_snedi<W:mode>_zero,
4398         *minus_minus_snedi<W:mode>_zero): Fix empty split condition.
4399
4400 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4401
4402         * config/or1k/or1k.md (*movdi): Fix empty split condition.
4403
4404 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4405
4406         * config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty
4407         split condition.
4408
4409 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4410
4411         * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec,
4412         *zero_extendsidi2): Fix empty split condition.
4413
4414 2021-06-05  Jeff Law  <jeffreyalaw@gmail.com>
4415
4416         * config/h8300/addsub.md: Fix split condition in define_insn_and_split
4417         patterns.
4418         * config/h8300/bitfield.md: Likewise.
4419         * config/h8300/combiner.md: Likewise.
4420         * config/h8300/divmod.md: Likewise.
4421         * config/h8300/extensions.md: Likewise.
4422         * config/h8300/jumpcall.md: Likewise.
4423         * config/h8300/movepush.md: Likewise.
4424         * config/h8300/multiply.md: Likewise.
4425         * config/h8300/other.md: Likewise.
4426         * config/h8300/shiftrotate.md: Likewise.
4427         * config/h8300/logical.md: Likewise.  Fix split pattern to use
4428         code iterator that somehow slipped through.
4429
4430 2021-06-04  Tobias Burnus  <tobias@codesourcery.com>
4431
4432         PR middle-end/100905
4433         * tree-nested.c (convert_nonlocal_omp_clauses,
4434         convert_local_omp_clauses): Handle OMP_CLAUSE_BIND.
4435
4436 2021-06-04  Martin Sebor  <msebor@redhat.com>
4437
4438         PR middle-end/100732
4439         * gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls
4440         with either source or destination argument of invalid type.
4441         * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking
4442         calls with arguments of invalid type.
4443
4444 2021-06-04  Martin Sebor  <msebor@redhat.com>
4445
4446         * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected
4447         order.
4448         (attr_access::vla_bounds): Also handle VLA bounds.
4449
4450 2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>
4451
4452         * config/i386/predicates.md (GOT_memory_operand):
4453         Implement using match_code RTXes.
4454         (GOT32_symbol_operand): Ditto.
4455
4456 2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>
4457
4458         PR target/100637
4459         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
4460         Handle V2HI mode.
4461         (ix86_expand_vector_init_general): Ditto.
4462         Use SImode instead of word_mode for logic operations
4463         when GET_MODE_SIZE (mode) < UNITS_PER_WORD.
4464         (expand_vec_perm_even_odd_1): Assert that V2HI mode should be
4465         implemented by expand_vec_perm_1.
4466         (expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes
4467         should be implemented using standard shuffle patterns.
4468         (ix86_vectorize_vec_perm_const): Handle V2HImode.  Add V4HI and
4469         V2HI modes to modes, implementable with shuffle for one operand.
4470         * config/i386/mmx.md (*punpckwd): New insn_and_split pattern.
4471         (*pshufw_1): New insn pattern.
4472         (*vec_dupv2hi): Ditto.
4473         (vec_initv2hihi): New expander.
4474
4475 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
4476
4477         * config/arm/vfp.md (no_literal_pool_df_immediate,
4478         no_literal_pool_sf_immediate): Fix empty split condition.
4479
4480 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
4481
4482         * config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext,
4483         *tls_dynamic_gnu2_combine_32): Fix empty split condition.
4484         * config/i386/sse.md (*<sse2_avx2>_pmovmskb_lt,
4485         *<sse2_avx2>_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt,
4486         *<sse4_1_avx2>_pblendvb_lt): Likewise.
4487
4488 2021-06-04  Jakub Jelinek  <jakub@redhat.com>
4489
4490         PR target/100887
4491         * config/i386/i386-expand.c (ix86_expand_vector_init): Handle
4492         concatenation from half-sized modes with TImode elements.
4493
4494 2021-06-04  Claudiu Zissulescu  <claziss@synopsys.com>
4495
4496         * config/arc/arc.c (arc_override_options): Disable millicode
4497         thunks when RF16 is on.
4498
4499 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
4500
4501         * config/rs6000/rs6000.h (PROMOTE_MODE): Remove.
4502
4503 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
4504
4505         * config/rs6000/rs6000-call.c (rs6000_promote_function_mode):
4506         Replace PROMOTE_MODE marco with its content.
4507
4508 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
4509
4510         * config/cris/cris.md (*addi_reload): Fix empty split condition.
4511
4512 2021-06-03  Jim Wilson  <jimw@sifive.com>
4513
4514         * config.gcc (riscv*-*-*): If --with-riscv-attribute not used,
4515         turn it on for all riscv targets.
4516
4517 2021-06-03  Uroš Bizjak  <ubizjak@gmail.com>
4518
4519         PR target/100637
4520         * config/i386/i386-expand.c (ix86_expand_vector_set):
4521         Handle V2HI and V4QI modes.
4522         (ix86_expand_vector_extract): Ditto.
4523         * config/i386/mmx.md (*pinsrw): New insn pattern.
4524         (*pinsrb): Ditto.
4525         (*pextrw): Ditto.
4526         (*pextrw_zext): Ditto.
4527         (*pextrb): Ditto.
4528         (*pextrb_zext): Ditto.
4529         (vec_setv2hi): New expander.
4530         (vec_extractv2hihi): Ditto.
4531         (vec_setv4qi): Ditto.
4532         (vec_extractv4qiqi): Ditto.
4533         (vec_setv8qi): Enable only for TARGET_SSE4_1.
4534         (vec_extractv8qiqi): Ditto.
4535
4536 2021-06-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
4537
4538         * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input
4539         order to subf instruction.
4540         * config/rs6000/fusion.md: Regenerate.
4541
4542 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
4543
4544         * calls.c (get_size_range): Use range_of_expr instead of
4545         determine_value_range.
4546         * tree-affine.c (expr_to_aff_combination): Same.
4547         * tree-data-ref.c (split_constant_offset): Same.
4548         * tree-vrp.c (determine_value_range_1): Remove.
4549         (determine_value_range): Remove.
4550         * tree-vrp.h (determine_value_range): Remove.
4551
4552 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
4553
4554         * function-tests.c (test_ranges): Call gimple_range_tests.
4555         * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt
4556         to get_tree_range.
4557         * gimple-range.cc (fur_source::get_operand): Do not call
4558         get_tree_range or gimple_range_global.
4559         get_tree_range.
4560         (get_tree_range): Move to value-query.cc.
4561         Call get_arith_expr_range.
4562         (gimple_ranger::range_of_expr): Add argument to get_tree_range.
4563         Include gimple-range-tests.cc.
4564         * gimple-range.h (fold_range): Add argument.
4565         (get_tree_range): Remove.
4566         * selftest.h (gimple_range_tests): New.
4567         * value-query.cc (global_range_query::range_of_expr): Add
4568         stmt argument.
4569         (range_query::get_tree_range): Move from gimple-range.cc.
4570         * value-query.h (class range_query): Add get_tree_range and
4571         get_arith_expr_range.  Make fur_source a friend.
4572         * vr-values.c (vr_values::range_of_expr): Pass stmt to
4573         get_tree_range.
4574         * gimple-range-tests.cc: New file.
4575
4576 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
4577
4578         * gimple-range.cc (gimple_ranger::export_global_ranges): Call
4579           update_global_range.
4580         * value-query.cc (update_global_range): New.
4581         * value-query.h (update_global_range): New.
4582
4583 2021-06-03  David Malcolm  <dmalcolm@redhat.com>
4584
4585         * diagnostic-show-locus.c (diagnostic_show_locus): Don't reject
4586         printing the same location twice if there are fix-it hints,
4587         multiple locations, or a label.
4588
4589 2021-06-03  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4590
4591         * tree-vect-loop.c (vect_transform_loop): Use main loop's various'
4592         thresholds to narrow the upper bound on epilogue iterations.
4593
4594 2021-06-03  Christophe Lyon  <christophe.lyon@linaro.org>
4595
4596         * config/arm/mve.md (mve_vabsq_f<mode>): Use 'abs' instead of unspec.
4597         (mve_vabsq_s<mode>): Likewise.
4598         * config/arm/neon.md (abs<mode>2): Rename to neon_abs<mode>2.
4599         * config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete.
4600         * config/arm/vec-common.md (neg<mode>2): Rename to
4601         <absneg_str><mode>2.
4602
4603 2021-06-03  Claudiu Zissulescu  <claziss@synopsys.com>
4604
4605         * common/config/arc/arc-common.c (arc_option_optimization_table):
4606         Remove malign-call.
4607         * config/arc/arc.c (arc_unalign_branch_p): Remove unused function.
4608         * config/arc/arc.h (TARGET_MIXED_CODE): Remove macro.
4609         (INDEX_REG_CLASS): Only refer to GENERAL_REGS.
4610         * config/arc/arc.md (abssi2_mixed): Remove pattern.
4611         * config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete.
4612         (malign-call): Likewise.
4613         (mmixed-code): Likewise.
4614         * doc/invoke.texi (ARC): Update doc.
4615
4616 2021-06-03  Martin Liska  <mliska@suse.cz>
4617
4618         * common.opt: Use proper Enum values.
4619         * opts.c (COVERAGE_SANITIZER_OPT): Remove.
4620         (parse_sanitizer_options): Handle only sanitizer_opts.
4621         (common_handle_option): Just assign value.
4622
4623 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
4624
4625         PR ipa/99122
4626         * tree-inline.c (inline_forbidden_p): Remove test on return type.
4627
4628 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
4629
4630         * dwarf2out.c (loc_list_from_tree_1) <FUNCTION_DECL>: Also generate
4631         DW_OP_GNU_variable_value referencing an existing DIE at file scope.
4632         (type_byte_size): Inline into...
4633         (add_byte_size_attribute): ...this and call add_scalar_info.
4634
4635 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
4636
4637         * dwarf2out.c (mem_loc_descriptor) <UDIV>: Fix typo.
4638         (typed_binop_from_tree): New function.
4639         (loc_list_from_tree_1) <EXACT_DIV_EXPR>: For an unsigned type,
4640         turn a divide by a power of 2 into a shift.
4641         <CEIL_DIV_EXPR>: For an unsigned type, use a signed divide if the
4642         size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a
4643         typed divide by calling typed_binop_from_tree.
4644
4645 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
4646
4647         * dwarf2out.c (scompare_loc_descriptor): Fix head comment.
4648         (is_handled_procedure_type): Likewise.
4649         (struct loc_descr_context): Add strict_signedness field.
4650         (resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type,
4651         DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret.
4652         (resolve_args_picking): Minor tweak.
4653         (function_to_dwarf_procedure): Initialize strict_signedness field.
4654         (type_byte_size): Likewise.
4655         (field_byte_offset): Likewise.
4656         (gen_descr_array_type_die): Likewise.
4657         (gen_variant_part): Likewise.
4658         (loc_list_from_tree_1) <CALL_EXPR>: Tidy up and set strict_signedness
4659         to true when a context is present before evaluating the arguments.
4660         <COND_EXPR>: Do not generate a useless comparison with zero.
4661         When dereferencing an address, if strict_signedness is true and the
4662         type is small and signed, use DW_OP_deref_type to do the dereference
4663         and then DW_OP_convert to convert back to the generic type.
4664
4665 2021-06-03  Jakub Jelinek  <jakub@redhat.com>
4666
4667         PR c++/100859
4668         * tree-inline.c (copy_tree_body_r): Handle iterators on
4669         OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND.
4670
4671 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
4672
4673         * config/arc/arc.md (*bbit_di): Remove.
4674
4675 2021-06-02  Christoph Muellner  <cmuellner@gcc.gnu.org>
4676
4677         PR rtl-optimization/100264
4678         * ree.c (get_sub_rtx): Ignore SET expressions without register
4679         destinations and remove assertion, as it is not valid anymore
4680         with this new behaviour.
4681         (merge_def_and_ext): Eliminate destination check for register
4682         as such SET expressions can't occur anymore.
4683         (combine_reaching_defs): Likewise.
4684
4685 2021-06-02  Jakub Jelinek  <jakub@redhat.com>
4686
4687         PR target/100841
4688         * config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid
4689         -Wtype-limits warnings.
4690         (DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition
4691         in operands to avoid -Wsign-compare warnings.
4692
4693 2021-06-02  Pat Haugen  <pthaugen@linux.ibm.com>
4694
4695         * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use
4696         gen_frame_store.
4697
4698 2021-06-02  Vineet Gupta  <vgupta@synopsys.com>
4699
4700         * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux.
4701
4702 2021-06-02  Ilya Leoshkevich  <iii@linux.ibm.com>
4703
4704         * config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single
4705         constraint.
4706         * config/s390/subst.md(cconly_subst): Use a single constraint
4707         in (match_scratch).
4708
4709 2021-06-02  Martin Liska  <mliska@suse.cz>
4710
4711         * ipa-icf.h: Use auto_vec for memory_access_types.
4712
4713 2021-06-02  Jeff Law  <jeffreyalaw@gmail.com>
4714
4715         * config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused
4716         argument from prototype.
4717         (output_logical_op): Add rtx_code argument.
4718         (compute_logical_op_length): Likewise.
4719         * config/h8300/h8300.c (h8300_and_costs): Pass additional argument
4720         to compute_a_shift_length.
4721         (output_logical_op); New argument with the rtx code rather than
4722         extracting it from an operand.  Handle QImode too.
4723         (compute_logical_op_length): Similary.
4724         (compute_a_shift_length): Drop unused argument.
4725         * config/h8300/h8300.md (logicals): New code iterator.
4726         * config/h8300/logical.md (<code><mode>3 expander): Combine
4727         the "and" expander with the "ior"/"xor" expander.
4728         (bclr<mode>msx): Combine the QI/HI mode patterns.
4729         (<logical><mode>3 insns): Use code iterator rather than match_operator.
4730         Handle QImode as well.   Update call to output_logical_op and
4731         compute_logical_op_length to pass in rtx_code
4732         Fix split condition on all define_insn_and_split patterns.
4733         (one_cmpl<mode>2<cczn>): Use <cczn> to support both clobbering
4734         the flags and setting ZN via existing define_subst.
4735         * config/h8300/shiftrotate.md: Drop unused argument from
4736         calls to compute_a_shift_length.
4737         Signed-off-by: Jeff Law <jeffreyalaw@gmail.com>
4738
4739 2021-06-01  Andrew Pinski  <apinski@marvell.com>
4740
4741         PR tree-optimization/25290
4742         * tree-ssa-phiopt.c (match_simplify_replacement):
4743         New function.
4744         (tree_ssa_phiopt_worker): Use match_simplify_replacement.
4745         (two_value_replacement): Change the comment about
4746         conditional_replacement.
4747         (conditional_replacement): Delete.
4748
4749 2021-06-01  Andrew Pinski  <apinski@marvell.com>
4750
4751         PR tree-optimization/95481
4752         * tree-tailcall.c (find_tail_calls): Handle empty typed
4753         return decls.
4754
4755 2021-06-01  Andrew Pinski  <apinski@marvell.com>
4756
4757         * gimplify.c (zero_sized_field_decl): Delete
4758         (zero_sized_type): Delete
4759         (gimplify_init_ctor_eval): Use is_empty_type instead
4760         of zero_sized_field_decl.
4761         (gimplify_modify_expr): Use is_empty_type instead of
4762         zero_sized_type.
4763
4764 2021-06-01  Jason Merrill  <jason@redhat.com>
4765
4766         PR c++/91859
4767         * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment.
4768
4769 2021-06-01  Jason Merrill  <jason@redhat.com>
4770
4771         PR c++/94492
4772         * diagnostic.h (warning_enabled_at): Declare.
4773         * diagnostic.c (diagnostic_enabled): Factor out from...
4774         (diagnostic_report_diagnostic): ...here.
4775         (warning_enabled_at): New.
4776
4777 2021-06-01  Aldy Hernandez  <aldyh@redhat.com>
4778
4779         * gimple-ssa-evrp.c: Enable exporting of global ranges.
4780
4781 2021-06-01  Martin Liska  <mliska@suse.cz>
4782
4783         PR other/100826
4784         * doc/invoke.texi: Mention that -fgcse-after-reload
4785         is enabled with -O3.
4786
4787 2021-06-01  liuhongt  <hongtao.liu@intel.com>
4788
4789         PR tree-optimization/98365
4790         * tree-if-conv.c (strip_nop_cond_scalar_reduction): New function.
4791         (is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction.
4792         (convert_scalar_cond_reduction): Ditto.
4793         (predicate_scalar_phi): Ditto.
4794
4795 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
4796
4797         PR tree-optimization/100781
4798         * gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new
4799         value calculation by default.
4800         (ranger_cache::enable_new_values): New.
4801         (ranger_cache::disable_new_values): New.
4802         (ranger_cache::push_poor_value): Check if new values are allowed.
4803         * gimple-range-cache.h (class ranger_cache): New member/methods.
4804         * gimple-range.cc (gimple_ranger::range_of_expr): Check for debug
4805         statement, and disable/renable new value calculation.
4806
4807 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
4808
4809         * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete.
4810         (ranger_cache::range_of_def): New.
4811         (ranger_cache::entry_range): New.
4812         (ranger_cache::exit_range): New.
4813         (ranger_cache::range_of_expr): Adjust.
4814         (ranger_cache::range_on_edge): Adjust.
4815         (ranger_cache::propagate_cache): Call exit_range directly.
4816         * gimple-range-cache.h (class ranger_cache): Adjust.
4817
4818 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
4819
4820         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for
4821         gori_compute being a member rather than base class.
4822         dervied call to member call.
4823         (ranger_cache::dump): No longer dump gori_map.
4824         (ranger_cache::dump_bb): New.
4825         (ranger_cache::get_non_stale_global_range): Adjust for gori_compute
4826         being a member rather than base class.
4827         (ranger_cache::set_global_range): Ditto.
4828         (ranger_cache::ssa_range_in_bb): Ditto.
4829         (ranger_cache::range_of_expr): New.
4830         (ranger_cache::range_on_edge): New.
4831         (ranger_cache::block_range): Adjust for gori_computes.  Debug changes.
4832         (ranger_cache::propagate_cache):  Adjust debugging output.
4833         (ranger_cache::fill_block_cache): Adjust for gori_computes.  Debug
4834         output changes.
4835         * gimple-range-cache.h (class ranger_cache): Make gori_compute a
4836         member, and inherit from range_query instead.
4837         (ranger_cache::dump_bb): New. split from dump.
4838         * gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete.
4839         (gori_compute::expr_range_at_stmt): Delete.
4840         (gori_compute::compute_name_range_op): Delete.
4841         (gori_compute::compute_operand_range_switch): Add fur_source.
4842         (gori_compute::compute_operand_range): Add fur_source param, inline
4843         old compute_name_range_op and optimize_logical_operands.
4844         (struct tf_range): Delete.
4845         (gori_compute::logical_combine): Adjust
4846         (gori_compute::optimize_logical_operands): Delete.
4847         (gori_compute::compute_logical_operands_in_chain): Delete.
4848         (gori_compute::compute_logical_operands): Adjust.
4849         (gori_compute::compute_operand1_range): Adjust to fur_source.
4850         (gori_compute::compute_operand2_range): Ditto.
4851         (gori_compute::compute_operand1_and_operand2_range): Ditto.
4852         (gori_compute::outgoing_edge_range_p): Add range_query parameter,
4853         and adjust to fur_source.
4854         * gimple-range-gori.h (class gori_compute): Simplify and adjust to
4855         range_query and fur_source.
4856         * gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge
4857         from the ranger_cache..
4858         (gimple_ranger::fold_range_internal): Adjust to base class change of
4859         ranger_cache.
4860         (gimple_ranger::dump_bb): Adjust dump.
4861         * gimple-range.h (gimple_ranger):export gori computes object.
4862
4863 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
4864
4865         PR tree-optimization/100774
4866         * gimple-range-cache.cc (ranger_cache::get_non_stale_global_range):
4867         Constant values are also not stale.
4868         (ranger_cache::set_global_range): Range invariant values should also
4869         have the correct timestamp.
4870
4871 2021-05-31  Martin Liska  <mliska@suse.cz>
4872
4873         * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
4874         Unpack FUNCTION_DECL_DECL_TYPE.
4875         * tree-streamer-out.c (pack_ts_function_decl_value_fields):
4876         Stream FUNCTION_DECL_DECL_TYPE instead of
4877         DECL_IS_OPERATOR_NEW_P.
4878         * tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE
4879         macro.
4880         (DECL_IS_OPERATOR_NEW_P): Likewise.
4881         (DECL_IS_OPERATOR_DELETE_P): Likewise.
4882         (DECL_LAMBDA_FUNCTION_P): Likewise.
4883
4884 2021-05-31  Richard Biener  <rguenther@suse.de>
4885
4886         PR c++/88601
4887         * internal-fn.c (expand_SHUFFLEVECTOR): Define.
4888         * internal-fn.def (SHUFFLEVECTOR): New.
4889         * internal-fn.h (expand_SHUFFLEVECTOR): Declare.
4890         * doc/extend.texi: Document __builtin_shufflevector.
4891
4892 2021-05-31  Peter Bergner  <bergner@linux.ibm.com>
4893
4894         PR target/99842
4895         * config/rs6000/predicates.md(mma_assemble_input_operand): Allow
4896         indexed form addresses.
4897
4898 2021-05-29  Jeff Law  <jlaw@tachyum.com>
4899
4900         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused
4901         parameter.  Call callers fixed.
4902         (push): Likewise.
4903         (output_plussi): Add FALLTHRU markers.
4904         (h8300_shift_needs_scratch_p): Add gcc_unreachable marker.
4905
4906 2021-05-29  Jakub Jelinek  <jakub@redhat.com>
4907
4908         PR middle-end/99928
4909         * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd
4910         combined with parallel, make sure to add shared clause to
4911         parallel for explicit linear clause.
4912
4913 2021-05-29  Aldy Hernandez  <aldyh@redhat.com>
4914
4915         PR tree-optimization/100787
4916         * gimple-ssa-evrp.c: Disable exporting of global ranges.
4917
4918 2021-05-28  Jason Merrill  <jason@redhat.com>
4919
4920         * tree-iterator.h (struct tree_stmt_iterator): Add operator++,
4921         operator--, operator*, operator==, and operator!=.
4922         (class tsi_range): New.
4923
4924 2021-05-28  Richard Biener  <rguenther@suse.de>
4925
4926         PR tree-optimization/100778
4927         * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly
4928         trapping ops in different BBs.
4929
4930 2021-05-28  Richard Biener  <rguenther@suse.de>
4931
4932         PR ipa/100791
4933         * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack
4934         copy fntype from original call.
4935
4936 2021-05-28  Martin Liska  <mliska@suse.cz>
4937
4938         PR gcov-profile/100751
4939         * doc/gcov.texi: Revert partially a hunk that was wrong.
4940
4941 2021-05-28  Cooper Qu  <cooper.qu@linux.alibaba.com>
4942
4943         * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi):
4944         Defined.
4945         (HAVE_sync_compare_and_swaphi): Likewise.
4946         (HAVE_sync_compare_and_swapsi): Likewise.
4947
4948 2021-05-28  Jakub Jelinek  <jakub@redhat.com>
4949
4950         PR middle-end/99928
4951         * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define.
4952
4953 2021-05-28  Tobias Burnus  <tobias@codesourcery.com>
4954
4955         * gimplify.c (gimplify_omp_affinity): New.
4956         (gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards.
4957         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY.
4958         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY.
4959         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause.
4960         (walk_tree_1): Handle OMP_CLAUSE_AFFINITY.
4961
4962 2021-05-28  Joern Rennecke  <joern.rennecke@riscy-ip.com>
4963             Richard Biener   <rguenther@suse.de>
4964
4965         * match.pd <popcount & / + pattern matching>:
4966         When generating popcount directly fails, try doing it in two halves.
4967
4968 2021-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4969
4970         * Makefile.in (generated_files): Add gimple-match.c and
4971         generic-match.c
4972
4973 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4974
4975         * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP.
4976
4977 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4978
4979         * gensupport.c (alter_constraints): Add MATCH_SCRATCH case.
4980
4981 2021-05-28  Kewen Lin  <linkw@linux.ibm.com>
4982
4983         PR tree-optimization/99398
4984         * tree-ssa-forwprop.c (simplify_permutation): Optimize some cases
4985         where the fed operands are CTOR/CST and propagated through
4986         VIEW_CONVERT_EXPR.  Call vec_perm_indices::new_shrunk_vector.
4987         * vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New
4988         function.
4989         * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New
4990         declare.
4991
4992 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
4993
4994         * config/i386/mmx.md (addv2sf3): Do not call
4995         ix86_fixup_binary_operands_no_copy.
4996         (subv2sf3): Ditto.
4997         (mulv2sf3): Ditto.
4998         (<smaxmin:code>v2sf3): Ditto.
4999         (<plusminus:insn><MMXMODEI:mode>3): Ditto.
5000         (<plusminus:insn><VI_32:mode>3): Remove expander.
5001         (<plusminus:insn><VI_32:mode>3): Rename from
5002         "*<plusminus:insn><VI_32:mode>3".
5003         (mulv4hi): Do not call ix86_fixup_binary_operands_no_copy.
5004         (mulv2hi3): Remove expander.
5005         (mulv2hi3): Rename from *mulv2hi3.
5006         (<s>mulv2hi3_highpart): Remove expander.
5007         (<s>mulv2hi3_highpart): Rename from *<s>mulv2hi3_highpart.
5008         (<smaxmin:code><MMXMODE14:mode>3): Rename from
5009         "*mmx_<smaxmin:code><MMXMODE14:mode>3".
5010         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Remove expander.
5011         (SMAXMIN_MMXMODEI): Remove mode iterator.
5012         (<smaxmin:code>v4hi3): New expander.
5013         (<smaxmin:code>v4qi3): Rename from *<smaxmin:code>v4qi3.
5014         (<smaxmin:code>v2hi3): Rename from *<smaxmin:code>v2hi3.
5015         (<smaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
5016         (SMAXMIN_VI_32): Remove mode iterator.
5017         (<umaxmin:code><MMXMODE24:mode>3): Rename from
5018         "*mmx_<umaxmin:code><MMXMODE24:mode>3".
5019         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Remove expander.
5020         (UMAXMIN_MMXMODEI): Remove mode iterator.
5021         (<umaxmin:code>v8qi3): New expander.
5022         (<umaxmin:code>v4qi3): Rename from *<umaxmin:code>v4qi3.
5023         (<umaxmin:code>v2hi3): Rename from *<umaxmin:code>v2hi3.
5024         (<umaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
5025         (UMAXMIN_VI_32): Remove mode iterator.
5026         (<any_shift:insn>v2hi3): Remove expander.
5027         (<any_shift:insn>v2hi3): Rename from *<any_shift:insn>v2hi3.
5028         (<any_logic:code><MMXMODEI:mode>3): Do not call
5029         ix86_fixup_binary_operands_no_copy.
5030         (<any_logic:code><VI_32:mode>3): Remove expander.
5031         (<any_logic:code><VI_32:mode>3): Rename from
5032         "*<any_logic:code><VI_32:mode>3".
5033         (uavg<mode>3_ceil): Do not call ix86_fixup_binary_operands_no_copy.
5034         * config/i386/sse.md (div<VF2:mode>3): Do not call
5035         ix86_fixup_binary_operands_no_copy.
5036         (div<VF1:mode>3): Ditto.
5037         (<maxmin:code><VI8_AVX2_AVX512F:mode>3): Ditto.
5038         (smulhrsv4hi3): Ditto.
5039         (smulhrsv2hi3): Ditto.
5040
5041 2021-05-27  Martin Sebor  <msebor@redhat.com>
5042
5043         * ggc.h (gt_ggc_mx): Add overloads for all integers.
5044         (gt_pch_nx):  Same.
5045         * hash-map.h (class hash_map): Add pch_nx_helper overloads for all
5046         integers.
5047         (hash_map::operator==): New function.
5048
5049 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
5050
5051         PR target/100637
5052         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
5053         For TARGET_XOP bypass SSE comparisons for all supported vector modes.
5054         * config/i386/mmx.md (*xop_maskcmp<MMXMODEI:mode>3): New insn pattern.
5055         (*xop_maskcmp<VI_32:mode>3): Ditto.
5056         (*xop_maskcmp_uns<MMXMODEI:mode>3): Ditto.
5057         (*xop_maskcmp_uns<VI_32:mode>3): Ditto.
5058
5059 2021-05-27  Richard Earnshaw  <rearnsha@arm.com>
5060
5061         PR target/100767
5062         * config/arm/arm.c (arm_configure_build_target): Remove parameter
5063         opts_set, directly check opts parameters for being non-null.
5064         (arm_option_restore): Update call to arm_configure_build_target.
5065         (arm_option_override): Likewise.
5066         (arm_can_inline_p): Likewise.
5067         (arm_valid_target_attribute_tree): Likewise.
5068         * config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
5069         * config/arm/arm-protos.h (arm_configure_build_target): Adjust
5070         prototype.
5071
5072 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
5073
5074         * vr-values.c (simplify_conversion_using_ranges): Use
5075         get_range_query instead of get_global_range_query.
5076
5077 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
5078
5079         * gimple-range.cc (get_range_global): Move to value-query.cc.
5080         (gimple_range_global): Same.
5081         (get_global_range_query): Same.
5082         (global_range_query::range_of_expr): Same.
5083         * gimple-range.h (class global_range_query): Move to
5084         value-query.h.
5085         (gimple_range_global): Same.
5086         * tree-ssanames.c (get_range_info): Move to value-query.cc.
5087         (get_ptr_nonnull): Same.
5088         * tree-ssanames.h (get_range_info): Remove.
5089         (get_ptr_nonnull): Remove.
5090         * value-query.cc (get_ssa_name_range_info): Move from
5091         tree-ssanames.c.
5092         (get_ssa_name_ptr_info_nonnull): Same.
5093         (get_range_global): Move from gimple-range.cc.
5094         (gimple_range_global): Same.
5095         (get_global_range_query): Same.
5096         (global_range_query::range_of_expr): Same.
5097         * value-query.h (class global_range_query): Move from
5098         gimple-range.h.
5099         (gimple_range_global): Same.
5100
5101 2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>
5102
5103         PR target/100637
5104         * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern.
5105         (uavgv2hi3_ceil): Ditto.
5106
5107 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5108
5109         PR c/100653
5110         * doc/extend.texi (scalar_storage_order): Rephrase slightly.
5111
5112 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
5113
5114         * tree-ssanames.c (get_range_info): Merge both copies of
5115         get_range_info into one that works with irange.
5116         * tree-ssanames.h (get_range_info): Remove version that works on
5117         wide_ints.
5118
5119 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
5120
5121         * builtins.c (check_nul_terminated_array): Convert to get_range_query.
5122         (expand_builtin_strnlen): Same.
5123         (determine_block_size): Same.
5124         * fold-const.c (expr_not_equal_to): Same.
5125         * gimple-fold.c (size_must_be_zero_p): Same.
5126         * gimple-match-head.c: Include gimple-range.h.
5127         * gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query.
5128         * gimple-ssa-warn-restrict.c
5129         (builtin_memref::extend_offset_range): Same.
5130         * graphite-sese-to-poly.c (add_param_constraints): Same.
5131         * internal-fn.c (get_min_precision): Same.
5132         * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same.
5133         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
5134         * match.pd: Same.
5135         * tree-data-ref.c (split_constant_offset): Same.
5136         (dr_step_indicator): Same.
5137         * tree-dfa.c (get_ref_base_and_extent): Same.
5138         * tree-scalar-evolution.c (iv_can_overflow_p): Same.
5139         * tree-ssa-loop-niter.c (refine_value_range_using_guard): Same.
5140         (determine_value_range): Same.
5141         (record_nonwrapping_iv): Same.
5142         (infer_loop_bounds_from_signedness): Same.
5143         (scev_var_range_cant_overflow): Same.
5144         * tree-ssa-phiopt.c (two_value_replacement): Same.
5145         * tree-ssa-pre.c (insert_into_preds_of_block): Same.
5146         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same.
5147         * tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same.
5148         (get_range): Same.
5149         (dump_strlen_info): Same.
5150         (set_strlen_range): Same.
5151         (maybe_diag_stxncpy_trunc): Same.
5152         (get_len_or_size): Same.
5153         (handle_integral_assign): Same.
5154         * tree-ssa-structalias.c (find_what_p_points_to): Same.
5155         * tree-ssa-uninit.c (find_var_cmp_const): Same.
5156         * tree-switch-conversion.c (bit_test_cluster::emit): Same.
5157         * tree-vect-patterns.c (vect_get_range_info): Same.
5158         (vect_recog_divmod_pattern): Same.
5159         * tree-vrp.c (intersect_range_with_nonzero_bits): Same.
5160         (register_edge_assert_for_2): Same.
5161         (determine_value_range_1): Same.
5162         * tree.c (get_range_pos_neg): Same.
5163         * vr-values.c (vr_values::get_lattice_entry): Same.
5164         (vr_values::update_value_range): Same.
5165         (simplify_conversion_using_ranges): Same.
5166
5167 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
5168
5169         * gimple-ssa-warn-alloca.c (alloca_call_type): Use
5170           get_range_query instead of query argument.
5171         (pass_walloca::execute): Enable and disable global ranger.
5172
5173 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
5174
5175         * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call
5176         enable_ranger.
5177         (rvrp_folder::~rvrp_folder): Call disable_ranger.
5178         (hybrid_folder::hybrid_folder): Call enable_ranger.
5179         (hybrid_folder::~hybrid_folder): Call disable_ranger.
5180
5181 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
5182
5183         * function.c (allocate_struct_function): Set cfun->x_range_query.
5184         * function.h (struct function): Declare x_range_query.
5185         (get_range_query): New.
5186         (get_global_range_query): New.
5187         * gimple-range-cache.cc (ssa_global_cache::ssa_global_cache):
5188         Remove call to safe_grow_cleared.
5189         * gimple-range.cc (get_range_global): New.
5190         (gimple_range_global): Move from gimple-range.h.
5191         (get_global_range_query): New.
5192         (global_range_query::range_of_expr): New.
5193         (enable_ranger): New.
5194         (disable_ranger): New.
5195         * gimple-range.h (gimple_range_global): Move to gimple-range.cc.
5196         (class global_range_query): New.
5197         (enable_ranger): New.
5198         (disable_ranger): New.
5199         * gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename
5200         dump_all_value_ranges to dump.
5201         * tree-vrp.c (vrp_prop::finalize): Same.
5202         * value-query.cc (range_query::dump): New.
5203         * value-query.h (range_query::dump): New.
5204         * vr-values.c (vr_values::dump_all_value_ranges): Rename to...
5205         (vr_values::dump): ...this.
5206         * vr-values.h (class vr_values): Rename dump_all_value_ranges to
5207         dump and make virtual.
5208
5209 2021-05-26  Uroš Bizjak  <ubizjak@gmail.com>
5210
5211         * config/i386/i386.c (ix86_autovectorize_vector_modes):
5212         Add V4QImode and V16QImode for TARGET_SSE2.
5213         * doc/sourcebuild.texi (Vector-specific attributes):
5214         Add vect64 and vect32 description.
5215
5216 2021-05-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5217
5218         * gimple-range-gori.cc (range_def_chain::register_dependency):
5219         Resize m_def_chain when needed.
5220
5221 2021-05-26  Christophe Lyon  <christophe.lyon@linaro.org>
5222
5223         * config/arm/mve.md (mve_vaddvq_<supf><mode>): Prefix with '@'.
5224         * config/arm/neon.md (reduc_plus_scal_<mode>): Move to ..
5225         * config/arm/vec-common.md: .. here. Add support for MVE.
5226
5227 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
5228
5229         * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove
5230         register keywords.
5231         * config/microblaze/microblaze.c (microblaze_legitimize_address,
5232         call_internal1,
5233         microblaze_option_override, print_operand): Likewise.
5234         * config/microblaze/microblaze.md (call_internal_plt,
5235         call_value_intern_plt, call_value_intern): Likewise.
5236         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise.
5237         * config/iq2000/iq2000.md (call_internal1, call_value_internal1,
5238         call_value_multiple_internal1): Likewise.
5239         * config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise.
5240
5241 2021-05-26  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5242
5243         * config/arc/arc.c (arc_address_cost, arc_print_operand_address,
5244         arc_ccfsm_advance, symbolic_reference_mentioned_p,
5245         arc_raw_symbolic_reference_mentioned_p): Remove register
5246         keyword.
5247
5248 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
5249
5250         PR libgomp/100573
5251         * omp-low.c: Include omp-offload.h.
5252         (create_omp_child_function): If current_function_decl has
5253         "omp declare target" attribute and is_gimple_omp_offloaded,
5254         remove that attribute from the copy of attribute list and
5255         add "omp target entrypoint" attribute instead.
5256         (lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.*
5257         variables for offloading if in omp_maybe_offloaded_ctx.
5258         * omp-offload.c (pass_omp_target_link::execute): Nullify second
5259         argument to GOMP_target_data_ext in offloaded code.
5260
5261 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5262
5263         * config/csky/csky.c (csky_can_change_mode_class): Delete.
5264         For csky, HF/SF mode use the low bits of VREGS.
5265
5266 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5267
5268         * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a
5269         DECL which is a reference for OMP.
5270
5271 2021-05-26  Martin Liska  <mliska@suse.cz>
5272
5273         PR gcov-profile/100751
5274         * doc/gcov.texi: Document that __gcov_dump can be called just
5275         once and that __gcov_reset resets run-time counters.
5276
5277 2021-05-26  Martin Liska  <mliska@suse.cz>
5278
5279         * doc/install.texi: Port relevant part from install-old.texi
5280         and re-generate list of CPUs and systems.
5281
5282 2021-05-26  Martin Liska  <mliska@suse.cz>
5283
5284         * Makefile.in: Remove it.
5285         * doc/include/fdl.texi: Update next/previous chapters.
5286         * doc/install.texi: Likewise.
5287         * doc/install-old.texi: Removed.
5288
5289 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5290
5291         * config/csky/csky.c (ck810_legitimate_index_p): Support
5292         "base + index" with DF mode.
5293         * config/csky/constraints.md ("Y"): New constraint for memory operands
5294         without index register.
5295         * config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m"
5296         when mov between memory and general registers, and lower their priority.
5297         * config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise.
5298
5299 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5300
5301         * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete.
5302
5303 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5304
5305         * config/csky/csky.md (untyped_call): Emit clobber for return
5306         registers to mark them used.
5307
5308 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5309
5310         * config/csky/csky.md (cskyv2_sextend_ldbs): New.
5311
5312 2021-05-26  Andrew Pinski  <apinski@marvell.com>
5313
5314         * match.pd (x < 0 ? ~y : y): New patterns.
5315
5316 2021-05-26  Andrew Pinski  <apinski@marvell.com>
5317
5318         * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0,
5319         A?POW2:0 and A?0:POW2.
5320
5321 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5322
5323         * gimple-range-gori.cc (class logical_stmt_cache): Delete
5324         (logical_stmt_cache::logical_stmt_cache ): Delete.
5325         (logical_stmt_cache::~logical_stmt_cache): Delete.
5326         (logical_stmt_cache::cache_entry::dump): Delete.
5327         (logical_stmt_cache::get_range): Delete.
5328         (logical_stmt_cache::cached_name ): Delete.
5329         (logical_stmt_cache::same_cached_name): Delete.
5330         (logical_stmt_cache::cacheable_p): Delete.
5331         (logical_stmt_cache::slot_diagnostics ): Delete.
5332         (logical_stmt_cache::dump): Delete.
5333         (gori_compute_cache::gori_compute_cache): Delete.
5334         (gori_compute_cache::~gori_compute_cache): Delete.
5335         (gori_compute_cache::compute_operand_range): Delete.
5336         (gori_compute_cache::cache_stmt): Delete.
5337         * gimple-range-gori.h (gori_compute::compute_operand_range): Remove
5338         virtual.
5339         (class gori_compute_cache): Delete.
5340
5341 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5342
5343         * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori
5344         intead of m_cache.
5345         (fold_using_range::range_of_address): Adjust.
5346         (fold_using_range::range_of_phi): Adjust.
5347         * gimple-range.h (class fur_source): Adjust.
5348         (fur_source::fur_source): Adjust.
5349
5350 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5351
5352         * gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename
5353         from expr_range_in_bb and adjust.
5354         (gori_compute::compute_name_range_op): Adjust.
5355         (gori_compute::optimize_logical_operands): Adjust.
5356         (gori_compute::compute_logical_operands_in_chain): Adjust.
5357         (gori_compute::compute_operand1_range): Adjust.
5358         (gori_compute::compute_operand2_range): Adjust.
5359         (ori_compute_cache::cache_stmt): Adjust.
5360         * gimple-range-gori.h (gori_compute): Rename prototype.
5361
5362 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5363
5364         * gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be
5365         checked only after range_of_stmt, not range_on_entry.
5366         (gimple_ranger::range_on_entry): Check for non-null in any
5367         predecessor block, if it is not already non-null.
5368         (gimple_ranger::range_on_exit): DOnt check for non-null after
5369         range on entry call.
5370         (gimple_ranger::dump_bb): New.  Split from dump.
5371         (gimple_ranger::dump): Adjust.
5372         * gimple-range.h (class gimple_ranger): Adjust.
5373
5374 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5375
5376         * gimple-range-cache.cc (struct range_timestamp): Delete.
5377         (class temporal_cache): Adjust.
5378         (temporal_cache::get_timestamp): Delete.
5379         (temporal_cache::set_dependency): Delete.
5380         (temporal_cache::temporal_value): Adjust.
5381         (temporal_cache::current_p): Take dependencies as params.
5382         (temporal_cache::set_timestamp): Adjust.
5383         (temporal_cache::set_always_current): Adjust.
5384         (ranger_cache::get_non_stale_global_range): Adjust.
5385         (ranger_cache::register_dependency): Delete.
5386         * gimple-range-cache.h (class range_cache): Adjust.
5387
5388 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5389
5390         * gimple-range-gori.cc (range_def_chain::range_def_chain): init
5391         bitmap obstack.
5392         (range_def_chain::~range_def_chain): Dispose of obstack rather than
5393         each individual bitmap.
5394         (range_def_chain::set_import): New.
5395         (range_def_chain::get_imports): New.
5396         (range_def_chain::chain_import_p): New.
5397         (range_def_chain::register_dependency): Rename from build_def_chain
5398         and set imports.
5399         (range_def_chain::def_chain_in_bitmap_p): New.
5400         (range_def_chain::add_def_chain_to_bitmap): New.
5401         (range_def_chain::has_def_chain): Just check first depenedence.
5402         (range_def_chain::get_def_chain): Process imports, use generic
5403         register_dependency routine.
5404         (range_def_chain::dump): New.
5405         (gori_map::gori_map): Allocate import list.
5406         (gori_map::~gori_map): Release imports.
5407         (gori_map::exports): Check for past allocated block size.
5408         (gori_map::imports): New.
5409         (gori_map::def_chain_in_export_p): Delete.
5410         (gori_map::is_import_p): New.
5411         (gori_map::maybe_add_gori): Handle imports.
5412         (gori_map::dump): Adjust output, add imports.
5413         (gori_compute::has_edge_range_p): Remove def_chain_in_export call.
5414         (gori_export_iterator::gori_export_iterator): New.
5415         (gori_export_iterator::next): New.
5416         (gori_export_iterator::get_name): New.
5417         * gimple-range-gori.h (range_def_chain): Add imports and direct
5418         dependecies via struct rdc.
5419         (range_def_chain::depend1): New.
5420         (range_def_chain::depend2): New.
5421         (class gori_map): Adjust.
5422         (FOR_EACH_GORI_IMPORT_NAME): New.
5423         (FOR_EACH_GORI_EXPORT_NAME): New.
5424         (class gori_export_iterator): New.
5425
5426 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5427
5428         * gimple-range-cache.cc (ranger_cache::ranger_cache):  Move initial
5429         export cache filling to here.
5430         * gimple-range-gori.cc (gori_compute::gori_compute) : From Here.
5431
5432 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5433
5434         * gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h.
5435         (gori_map): Move to gimple-range-gori.h.
5436         (gori_compute::gori_compute): Adjust.
5437         (gori_compute::~gori_compute): Delete.
5438         (gori_compute::compute_operand_range_switch): Adjust.
5439         (gori_compute::compute_operand_range): Adjust.
5440         (gori_compute::compute_logical_operands): Adjust.
5441         (gori_compute::has_edge_range_p ): Adjust.
5442         (gori_compute::set_range_invariant): Delete.
5443         (gori_compute::dump): Adjust.
5444         (gori_compute::outgoing_edge_range_p): Adjust.
5445         * gimple-range-gori.h (class range_def_chain): Relocate here.
5446         (class gori_map): Relocate here.
5447         (class gori_compute): Inherit from gori_map, and adjust.
5448
5449 2021-05-25  Aldy Hernandez  <aldyh@redhat.com>
5450
5451         * value-range.cc (range_tests_legacy): Use
5452         build_nonstandard_integer_type instead of int and short.
5453
5454 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5455
5456         * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL
5457         when really creating an initialization statement for it.
5458
5459 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5460
5461         * tree-inline.c (setup_one_parameter): Fix thinko in new condition.
5462
5463 2021-05-25  Kito Cheng  <kito.cheng@sifive.com>
5464
5465         * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax.
5466
5467 2021-05-25  Martin Liska  <mliska@suse.cz>
5468
5469         PR tree-optimization/92860
5470         PR target/99592
5471         * optc-save-gen.awk: Remove exceptions.
5472
5473 2021-05-25  Martin Liska  <mliska@suse.cz>
5474
5475         * asan.h (sanitize_coverage_p): New function.
5476         * doc/extend.texi: Document it.
5477         * fold-const.c (fold_range_test): Use sanitize_flags_p
5478         instead of flag_sanitize_coverage.
5479         (fold_truth_andor): Likewise.
5480         * sancov.c: Likewise.
5481         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
5482         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle
5483         -fsanitize-coverage when inlining.
5484
5485 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
5486
5487         * config/csky/csky-modes.def : Fix copyright.
5488
5489 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
5490
5491         * config/csky/csky-modes.def : Amend copyright.
5492         * config/csky/csky_insn_fpuv2.md : Likewise.
5493         * config/csky/csky_insn_fpuv3.md : Likewise.
5494
5495 2021-05-25  Richard Biener  <rguenther@suse.de>
5496
5497         PR middle-end/100727
5498         * calls.c (initialize_argument_information): Explicitely test
5499         for WITH_SIZE_EXPR.
5500         * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR.
5501
5502 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
5503
5504         * config/csky/csky.h (FRAME_POINTER_REGNUM): Use
5505         HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of
5506         the signle definition. The signle definition may not work well
5507         at simplify_subreg_regno().
5508         (HARD_FRAME_POINTER_REGNUM): New.
5509         (ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM.
5510         * config/csky/csky.c (get_csky_live_regs, csky_can_eliminate,
5511         csky_initial_elimination_offset, csky_expand_prologue,
5512         csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM.
5513
5514 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
5515
5516         * config/csky/csky.c (csky_option_override):
5517         Init csky_arch_isa_features[] in advance, so TARGET_DSP
5518         and TARGET_DIV can be set well.
5519
5520 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
5521
5522         * config/csky/constraints.md ("l", "h"): Delete.
5523         * config/csky/csky.h (reg_class, REG_CLASS_NAMES,
5524         REG_CLASS_CONTENTS):  Delete LO_REGS and HI_REGS.
5525         * config/csky/csky.c (regno_reg_classm,
5526         csky_secondary_reload, csky_register_move_cost):
5527         Use HILO_REGS instead of LO_REGS and HI_REGS.
5528
5529 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
5530
5531         * config/csky/constraints.md ("W"): New constriant for mem operand
5532         with base reg, index register.
5533         ("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to
5534         "csky_valid_mem_constraint_operand" to deal with both "Q" and "W"
5535         constraint.
5536         ("Dv"): New constraint for const double value that can be used at
5537         fmovi instruction.
5538         * config/csky/csky-modes.def (HFmode): New mode.
5539         * config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename
5540         to "csky_valid_mem_constraint_operand" and support new constraint
5541         "W".
5542         (csky_get_movedouble_length): New.
5543         (fpuv3_output_move): New.
5544         (fpuv3_const_double): New.
5545         * config/csky/csky.c (csky_option_override): New arch CK860 with fpv3.
5546         (decompose_csky_address): Refine.
5547         (csky_print_operand): New "CONST_DOUBLE" operand.
5548         (csky_output_move): Support fpv3 instructions.
5549         (csky_get_movedouble_length): New.
5550         (fpuv3_output_move): New.
5551         (fpuv3_const_double): New.
5552         (csky_emit_compare): Cover float comparsion.
5553         (csky_emit_compare_float): Refine.
5554         (csky_vaild_fpuv2_mem_operand): Rename to
5555         "csky_valid_mem_constraint_operand" and support new constraint "W".
5556         (ck860_rtx_costs): New.
5557         (csky_rtx_costs): Add the cost calculation of CK860.
5558         (regno_reg_class): New vregs for fpuv3.
5559         (csky_dbx_regno): Likewise.
5560         (csky_cpu_cpp_builtins): New builtin macro for fpuv3.
5561         (csky_conditional_register_usage): Suporrot fpuv3.
5562         (csky_dwarf_register_span): Suporrot fpuv3.
5563         (csky_init_builtins, csky_mangle_type): Support "__fp16" type.
5564         (ck810_legitimate_index_p): Support fp16.
5565         * config/csky/csky.h (TARGET_TLS): ADD CK860.
5566         (CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3.
5567         (TARGET_SINGLE_FPU): Support fpuv3.
5568         (TARGET_SUPPORT_FPV3): New.
5569         (FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers.
5570         (FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES,
5571          REG_CLASS_CONTENTS): Support fpuv3.
5572         * config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine.
5573         (csky_movsf_fpv2): Likewise.
5574         (ck801_movsf): Likewise.
5575         (csky_movsf): Likewise.
5576         (movdf): Likewise.
5577         (csky_movdf_fpv2): Likewise.
5578         (ck801_movdf): Likewise.
5579         (csky_movdf): Likewise.
5580         (movsicc): Refine. Use "comparison_operatior" instead of
5581         "ordered_comparison_operatior".
5582         (addsicc): Likewise.
5583         (CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant.
5584         (call_value_internal_vh): New.
5585         * config/csky/csky_cores.def (CK860): New arch and cpu.
5586         (fpv3_hf): New.
5587         (fpv3_hsf): New.
5588         (fpv3_sdf): New.
5589         (fpv3): New.
5590         * config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns
5591         into emit-patterns and match-patterns, remain the emit-patterns here,
5592         and move the match-patterns to csky_insn_fpuv2.md or
5593         csky_insn_fpuv3.md.
5594         * config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions.
5595         * config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3
5596         isntructions.
5597         * config/csky/csky_isa.def (fcr): New.
5598         (fpv3_hi): New.
5599         (fpv3_hf): New.
5600         (fpv3_sf): New.
5601         (fpv3_df): New.
5602         (CK860): New definition for ck860.
5603         * config/csky/csky_tables.opt (ck860): New processors ck860,
5604         ck860f. And new arch ck860.
5605         (fpv3_hf): New.
5606         (fpv3_hsf): New.
5607         (fpv3_hdf): New.
5608         (fpv3): New.
5609         * config/csky/predicates.md (csky_float_comparsion_operator): Delete
5610         "geu", "gtu", "leu", "ltu", which will never appear at float comparison.
5611         * config/csky/t-csky-elf: Support 860.
5612         * config/csky/t-csky-linux: Likewise.
5613         * doc/md.texi: Add "Q" and "W" constraints for C-SKY.
5614
5615 2021-05-24  Aaron Sawdey  <acsawdey@linux.ibm.com>
5616
5617         * config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to
5618         add generation of logical-add and add-logical fusion pairs.
5619         * config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask
5620         and powerpc mask.
5621         * config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on
5622         logical-add and add-logical fusion by default.
5623         * config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and
5624         -mpower10-fusion-add-logical options.
5625         * config/rs6000/fusion.md: Regenerate file.
5626
5627 2021-05-24  Aldy Hernandez  <aldyh@redhat.com>
5628
5629         * value-range.cc (irange::legacy_equal_p): Check type when
5630         comparing VR_VARYING types.
5631         (range_tests_legacy): Test comparing VARYING ranges of different
5632         sizes.
5633
5634 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
5635
5636         * config/aarch64/aarch64.c (neoversen1_tunings):
5637         Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
5638
5639 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
5640
5641         * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for
5642         extern weak symbols.  Limit symbol offsets for non-GOT symbols with
5643         PIC/PIE.
5644
5645 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
5646
5647         * config/arm/neon.md (vec_load_lanesxi<mode>)
5648         (vec_store_lanexoi<mode>): Move ...
5649         * config/arm/vec-common.md: here.
5650
5651 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
5652
5653         * config/arm/neon.md (vec_load_lanesoi<mode>)
5654         (vec_store_lanesoi<mode>): Move ...
5655         * config/arm/vec-common.md: here.
5656
5657 2021-05-24  liuhongt  <hongtao.liu@intel.com>
5658
5659         PR target/100660
5660         * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing
5661         stmt with GIMPLE_NOP when lhs doesn't exist.
5662
5663 2021-05-23  Uroš Bizjak  <ubizjak@gmail.com>
5664
5665         PR target/100722
5666         * config/i386/mmx.md (*push<VI_32:mode>2_rex64):
5667         New instruction pattern.
5668         (*push<VI_32:mode>2): Ditto.
5669         (push splitter for SSE registers): New splitter.
5670
5671 2021-05-23  Andrew Pinski  <apinski@marvell.com>
5672
5673         * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types.
5674
5675 2021-05-22  Aaron Sawdey  <acsawdey@linux.ibm.com>
5676
5677         * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types.
5678         * config/rs6000/fusion.md: Regenerate file.
5679
5680 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
5681
5682         * config/rs6000/genfusion.pl (gen_addadd): New function.
5683         * config/rs6000/fusion.md: Regenerate file.
5684         * config/rs6000/rs6000-cpus.def: Add
5685         OPTION_MASK_P10_FUSION_2ADD to masks.
5686         * config/rs6000/rs6000.c (rs6000_option_override_internal):
5687         Handle default value of OPTION_MASK_P10_FUSION_2ADD.
5688         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2add.
5689
5690 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
5691
5692         PR middle-end/99928
5693         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define.
5694         * gimplify.c (enum gimplify_omp_var_data): Fix up
5695         GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT.
5696         (omp_lastprivate_for_combined_outer_constructs): If combined target
5697         has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to
5698         GOVD_MAP | GOVD_SEEN.
5699         (gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for
5700         firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT.
5701         (gimplify_adjust_omp_clauses): For firstprivate clauses with
5702         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and
5703         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and
5704         let it be replaced by implicit map clause.
5705
5706 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
5707
5708         PR middle-end/99928
5709         * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New
5710         function.
5711         (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it.
5712         (gimplify_omp_for): Likewise.
5713
5714 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5715
5716         PR middle-end/90115
5717         * omp-low.c (oacc_privatization_candidate_p): Reject 'static',
5718         'external' in blocks.
5719
5720 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5721
5722         PR middle-end/90115
5723         * flag-types.h (enum openacc_privatization): New.
5724         * params.opt (-param=openacc-privatization): New.
5725         * doc/invoke.texi (openacc-privatization): Document it.
5726         * omp-general.h (get_openacc_privatization_dump_flags): New
5727         function.
5728         * omp-low.c (oacc_privatization_candidate_p): Add diagnostics.
5729         * omp-offload.c (execute_oacc_device_lower)
5730         <IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics.
5731         * target.def (goacc.adjust_private_decl): Add 'location_t'
5732         parameter.
5733         * doc/tm.texi: Regenerate.
5734         * config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust.
5735         * config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise.
5736         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl):
5737         Likewise.  Preserve it for...
5738         (nvptx_goacc_expand_var_decl): ... use here.
5739
5740 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5741
5742         * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__'
5743         DejaGnu selector.
5744
5745 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5746
5747         PR middle-end/90115
5748         * omp-low.c (oacc_privatization_candidate_p): New function.
5749         (oacc_privatization_scan_clause_chain)
5750         (oacc_privatization_scan_decl_chain): Use it.  Also
5751         'gcc_checking_assert' that we're not seeing duplicates.
5752
5753 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5754
5755         PR middle-end/90115
5756         * omp-offload.c (execute_oacc_device_lower): Skip processing if no
5757         work to be done.
5758
5759 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5760
5761         PR middle-end/90115
5762         * omp-offload.c (execute_oacc_device_lower): Explain.
5763
5764 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5765
5766         PR middle-end/90115
5767         * omp-offload.c (execute_oacc_device_lower)
5768         <IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1'
5769         case, too.
5770         * internal-fn.c (expand_UNIQUE): Don't expect
5771         'IFN_UNIQUE_OACC_PRIVATE'.
5772
5773 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5774
5775         PR middle-end/90115
5776         * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses.
5777
5778 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5779
5780         PR middle-end/90115
5781         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl)
5782         (nvptx_goacc_expand_var_decl): Tighten.
5783
5784 2021-05-21  Julian Brown  <julian@codesourcery.com>
5785             Chung-Lin Tang  <cltang@codesourcery.com>
5786             Thomas Schwinge  <thomas@codesourcery.com>
5787
5788         PR middle-end/90115
5789         * doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL)
5790         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks.
5791         * doc/tm.texi: Regenerate.
5792         * expr.c (expand_expr_real_1): Expand decls using the
5793         expand_var_decl OpenACC hook if defined.
5794         * internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE.
5795         * internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE.
5796         * omp-low.c (omp_context): Add oacc_privatization_candidates
5797         field.
5798         (lower_oacc_reductions): Add PRIVATE_MARKER parameter.  Insert
5799         before fork.
5800         (lower_oacc_head_tail): Add PRIVATE_MARKER parameter.  Modify
5801         private marker's gimple call arguments, and pass it to
5802         lower_oacc_reductions.
5803         (oacc_privatization_scan_clause_chain)
5804         (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
5805         New functions.
5806         (lower_omp_for, lower_omp_target, lower_omp_1): Use these.
5807         * omp-offload.c (convert.h): Include.
5808         (oacc_loop_xform_head_tail): Treat private-variable markers like
5809         fork/join when transforming head/tail sequences.
5810         (struct var_decl_rewrite_info): Add struct.
5811         (oacc_rewrite_var_decl, is_sync_builtin_call): New functions.
5812         (execute_oacc_device_lower): Support rewriting gang-private
5813         variables using target hook, and fix up addr_expr and var_decl
5814         nodes afterwards.
5815         * target.def (adjust_private_decl, expand_var_decl): New hooks.
5816         * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl):
5817         Rename to...
5818         (gcn_goacc_adjust_private_decl): ...this.
5819         * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl):
5820         Rename to...
5821         (gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter.
5822         * config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename
5823         definition using gcn_goacc_adjust_gangprivate_decl...
5824         (TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using
5825         gcn_goacc_adjust_private_decl.
5826         * config/nvptx/nvptx.c (tree-pretty-print.h): Include.
5827         (gang_private_shared_size): New global variable.
5828         (gang_private_shared_align): Likewise.
5829         (gang_private_shared_sym): Likewise.
5830         (gang_private_shared_hmap): Likewise.
5831         (nvptx_option_override): Initialize these.
5832         (nvptx_file_end): Output gang_private_shared_sym.
5833         (nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl):
5834         New functions.
5835         (nvptx_set_current_function): Clear gang_private_shared_hmap.
5836         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook.
5837         (TARGET_GOACC_EXPAND_VAR_DECL): Likewise.
5838
5839 2021-05-21  H.J. Lu  <hjl.tools@gmail.com>
5840
5841         * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed.
5842
5843 2021-05-21  Richard Biener  <rguenther@suse.de>
5844             H.J. Lu  <hjl.tools@gmail.com>
5845
5846         PR middle-end/90773
5847         * expr.c (expand_constructor): Elide expand_constructor if
5848         move by pieces is preferred.
5849
5850 2021-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5851
5852         * config/aarch64/aarch64-builtins.c (aarch64_call_properties):
5853         Take a flag and mode value as arguments.
5854         (aarch64_modifies_global_state_p): Likewise.
5855         (aarch64_reads_global_state_p): Likewise.
5856         (aarch64_could_trap_p): Likewise.
5857         (aarch64_get_attributes): Likewise.
5858         (aarch64_init_simd_builtins): Adjust callsite of above.
5859         (aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get
5860         function attributes to apply to builtins.
5861         (aarch64_init_crc32_builtins): Likewise.
5862         (aarch64_init_builtin_rsqrt): Likewise.
5863
5864 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
5865
5866         * config/rs6000/rs6000.md (define_attr "type"): Add types for fusion.
5867         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types.
5868         (gen_2logical): Use new fusion types.
5869         * config/rs6000/fusion.md: Regenerate.
5870
5871 2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>
5872
5873         PR target/100637
5874         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
5875         Handle V4QI and V2HI modes.
5876         (ix86_expand_sse_movcc): Ditto.
5877         * config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3):
5878         New instruction pattern.
5879         (*eq<VI_32:mode>3): Ditto.
5880         (*gt<VI_32:mode>3): Ditto.
5881         (*xop_pcmov_<VI_32:mode>): Ditto.
5882         (mmx_pblendvb32): Ditto.
5883         (mmx_pblendvb64): Rename from mmx_pblendvb.
5884         (vec_cmp<VI_32:mode><VI_32:mode>): New expander.
5885         (vec_cmpu<VI_32:mode><VI_32:mode>): Ditto.
5886         (vcond<VI_32:mode><VI_32:mode>): Ditto.
5887         (vcondu<VI_32:mode><VI_32:mode>): Ditto.
5888         (vcond_mask_<VI_32:mode><VI_32:mode>): Ditto.
5889
5890 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
5891
5892         PR tree-optimization/94589
5893         * tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and
5894         rhs2, treat x <= 4 equivalently to x < 5 etc.  In cmp1 and cmp2 (if
5895         not the same as cmp3) treat <= the same as < and >= the same as >.
5896         Don't require that cond2_phi_edge is true edge, instead take
5897         false/true edges into account based on cmp1/cmp2 comparison kinds.
5898
5899 2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>
5900
5901         PR target/100637
5902         * config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator.
5903         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Macroize expander
5904         from <smaxmin:code>v4hi3> and <smaxmin:code><MMXMODE14:mode>3
5905         using SMAXMIN_MMXMODEI mode iterator.
5906         (*<smaxmin:code>v4qi3): New insn pattern.
5907         (*<smaxmin:code>v2hi3): Ditto.
5908         (SMAXMIN_VI_32): New mode iterator.
5909         (<smaxmin:code><SMAXMIN_VI_32>mode3): New expander.
5910         (UMAXMIN_MMXMODEI): New mode iterator.
5911         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Macroize expander
5912         from <umaxmin:code>v8qi3> and <umaxmin:code><MMXMODE24:mode>3
5913         using UMAXMIN_MMXMODEI mode iterator.
5914         (*<umaxmin:code>v4qi3): New insn pattern.
5915         (*<umaxmin:code>v2hi3): Ditto.
5916         (UMAXMIN_VI_32): New mode iterator.
5917         (<umaxmin:code><UMAXMIN_VI_32>mode3): New expander.
5918         (abs<VI_32:mode>2): New insn pattern.
5919         (ssse3_abs<MMXMODEI:mode>2, abs<MMXMODEI:mode>2): Move from ...
5920         * config/i386/sse.md: ... here.
5921
5922 2021-05-20  Clement Chigot  <clement.chigot@atos.net>
5923             David Edelsohn  <dje.gcc@gmail.com>
5924
5925         * collect2.c (scan_prog_file): Issue non-fatal warning for
5926         non-COFF files.
5927
5928 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
5929
5930         * doc/invoke.texi (-Wno-c++11-extensions)
5931         (-Wno-c++14-extensions, -Wno-c++17-extensions)
5932         (-Wno-c++20-extensions, -Wno-c++23-extensions): Document
5933         new options.
5934
5935 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
5936
5937         * config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p.
5938         * config/darwin.c (darwin_override_options): Likewise.
5939         * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
5940         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
5941         (DWARF2_FRAME_REG_OUT): Likewise.
5942         * config/mips/mips.c (mips_output_filename): Likewise.
5943         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name):
5944         Likewise.
5945         (rs6000_dbx_register_number): Likewise.
5946         * dbxout.c: Include flags.h.
5947         * dwarf2cfi.c (cfi_label_required_p): Likewise.
5948         (dwarf2out_do_frame): Likewise.
5949         * except.c: Include flags.h.
5950         * final.c (dwarf2_debug_info_emitted_p): Likewise.
5951         (final_scan_insn_1): Likewise.
5952         * flags.h (dwarf_debuginfo_p): New function declaration.
5953         * opts.c (dwarf_debuginfo_p): New function definition.
5954         * targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p.
5955         * toplev.c (process_options): Likewise.
5956
5957 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
5958
5959         * common.opt: Change type to support bitmasks.
5960         * flag-types.h (enum debug_info_type): Rename enumerator constants.
5961         (NO_DEBUG): New bitmask.
5962         (DBX_DEBUG): Likewise.
5963         (DWARF2_DEBUG): Likewise.
5964         (XCOFF_DEBUG): Likewise.
5965         (VMS_DEBUG): Likewise.
5966         (VMS_AND_DWARF2_DEBUG): Likewise.
5967         * flags.h (debug_set_to_format): New function declaration.
5968         (debug_set_count): Likewise.
5969         (debug_set_names): Likewise.
5970         * opts.c (debug_type_masks): Array of bitmasks for debug formats.
5971         (debug_set_to_format): New function definition.
5972         (debug_set_count): Likewise.
5973         (debug_set_names): Likewise.
5974         (set_debug_level): Update access to debug_type_names.
5975         * toplev.c: Likewise.
5976
5977 2021-05-20  Martin Sebor  <msebor@redhat.com>
5978
5979         PR middle-end/100684
5980         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda.
5981
5982 2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>
5983
5984         PR target/100701
5985         * config/i386/i386.md (isa): Remove x64_bmi.
5986         (enabled): Remove x64_bmi.
5987         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
5988         Remove general register alternative.
5989         (*andnot<VI_32:mode>3): Ditto.
5990         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
5991         (*<any_logic:code><VI_32:mode>3): Ditto.
5992
5993 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
5994
5995         * config/arm/arm.c: Include head files tree-vectorizer.h and
5996         cfgloop.h.
5997
5998 2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>
5999
6000         PR target/100637
6001         * config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes.
6002         (*<plusminus:insn><VI_32:mode>3): Use Yw instad of <Yv_Yw> constrint.
6003         (<s>mulv4hi3_highpart): New expander.
6004         (*<s>mulv2hi3_highpart): New insn pattern.
6005         (<s>mulv2hi3_higpart): New expander.
6006         (*<any_shift:insn>v2hi3): New insn pattern.
6007         (<any_shift:insn>v2hi3): New expander.
6008         * config/i386/sse.md (smulhrsv2hi3): New expander.
6009         (*smulhrsv2hi3): New insn pattern.
6010
6011 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
6012
6013         * doc/invoke.texi (vect-inner-loop-cost-factor): Document new
6014         parameter.
6015         * params.opt (vect-inner-loop-cost-factor): New.
6016         * targhooks.c (default_add_stmt_cost): Replace hardcoded factor
6017         50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file
6018         tree-vectorizer.h and its required ones.
6019         * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace
6020         hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR.
6021         * config/arm/arm.c (arm_add_stmt_cost): Likewise.
6022         * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
6023         * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
6024         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
6025         Likewise.
6026         (_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor.
6027         * tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor.
6028         (LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro.
6029
6030 2021-05-20  Christophe Lyon  <christophe.lyon@linaro.org>
6031             Torbjörn Svensson  <torbjorn.svensson@st.com>
6032
6033         PR c/42579
6034         * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__.
6035
6036 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
6037
6038         PR middle-end/99928
6039         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LINEAR>: For
6040         explicit linear clause when combined with target, make it map(tofrom:)
6041         instead of no clause or firstprivate.
6042
6043 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
6044
6045         PR tree-optimization/94589
6046         * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence
6047         of integral conversions.
6048
6049 2021-05-19  Andrew MacLeod  <amacleod@redhat.com>
6050
6051         * gimple-range.cc (fur_source::get_operand): New.
6052         (gimple_range_fold): Delete.
6053         (fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt.
6054         (fold_using_range::range_of_range_op): Move from gimple_ranger.
6055         (fold_using_range::range_of_address): Ditto.
6056         (fold_using_range::range_of_phi): Ditto.
6057         (fold_using_range::range_of_call): Ditto.
6058         (fold_using_range::range_of_builtin_ubsan_call): Move from
6059         range_of_builtin_ubsan_call.
6060         (fold_using_range::range_of_builtin_call): Move from
6061         range_of_builtin_call.
6062         (gimple_ranger::range_of_builtin_call): Delete.
6063         (fold_using_range::range_of_cond_expr): Move from gimple_ranger.
6064         (gimple_ranger::fold_range_internal): New.
6065         (gimple_ranger::range_of_stmt): Use new fold_using_range API.
6066         (fold_using_range::range_of_ssa_name_with_loop_info): Move from
6067         gimple_ranger.  Improve ranges of SSA_NAMES when possible.
6068         * gimple-range.h (gimple_ranger): Remove various range_of routines.
6069         (class fur_source): New.
6070         (class fold_using_range): New.
6071         (fur_source::fur_source): New.
6072         (fold_range): New.
6073         * vr-values.c (vr_values::extract_range_basic): Use fold_using_range
6074         instead of range_of_builtin_call.
6075
6076 2021-05-19  Jonathan Wakely  <jwakely@redhat.com>
6077
6078         * doc/cpp.texi (Common Predefined Macros): Update documentation
6079         for the __GXX_EXPERIMENTAL_CXX0X__ macro.
6080
6081 2021-05-19  Alex Coplan  <alex.coplan@arm.com>
6082
6083         PR target/100333
6084         * config/arm/arm.md (nonsecure_call_internal): Always ensure
6085         callee's address is in a register.
6086
6087 2021-05-19  Geng Qi  <gengqi@linux.alibaba.com>
6088
6089         * common/config/riscv/riscv-common.c
6090         (riscv_subset_list::parsing_subset_version): Properly parse the letter
6091         'p' in '-march'.
6092         (riscv_subset_list::parse_std_ext,
6093          riscv_subset_list::parse_multiletter_ext): To handle errors generated
6094         in riscv_subset_list::parsing_subset_version.
6095
6096 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
6097
6098         * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q"
6099         type attribute in patterns generating XTN(2).
6100
6101 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
6102
6103         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_<mode>):
6104         Remove as duplicate of...
6105         (aarch64_xtn<mode>): This.
6106         (aarch64_xtn2<mode>_le): Move position in file.
6107         (aarch64_xtn2<mode>_be): Move position in file.
6108         (aarch64_xtn2<mode>): Move position in file.
6109         (vec_pack_trunc_<mode>): Define as an expander.
6110
6111 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
6112
6113         * config/aarch64/aarch64-simd-builtins.def: Split builtin
6114         generation for aarch64_<sur>q<r>shr<u>n_n<mode> pattern into
6115         separate scalar and vector generators.
6116         * config/aarch64/aarch64-simd.md
6117         (aarch64_<sur>q<r>shr<u>n_n<mode>): Define as an expander and
6118         split into...
6119         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): This and...
6120         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): This.
6121         * config/aarch64/iterators.md: Define SD_HSDI iterator.
6122
6123 2021-05-19  Jonathn Wright  <jonathan.wright@arm.com>
6124
6125         * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead
6126         of UNSPEC_SQXTUN2.
6127         * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2.
6128
6129 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
6130
6131         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n2_n<mode>):
6132         Implement as an expand emitting a big/little endian
6133         instruction pattern.
6134         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Define.
6135         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Define.
6136
6137 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
6138
6139         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>):
6140         Implement as an expand emitting a big/little endian
6141         instruction pattern.
6142         (aarch64_<sur><addsub>hn2<mode>_insn_le): Define.
6143         (aarch64_<sur><addsub>hn2<mode>_insn_be): Define.
6144         * config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and
6145         UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator.
6146
6147 2021-05-19  Richard Biener  <rguenther@suse.de>
6148
6149         PR middle-end/100672
6150         * fold-const.c (fold_negate_expr_1): Use element_precision.
6151         (negate_expr_p): Likewise.
6152
6153 2021-05-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6154
6155         * config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator.
6156         (pred_load): New int attribute.
6157         * config/aarch64/aarch64-sve.md
6158         (aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Use
6159         SVE_PRED_LOAD enum iterator and corresponding pred_load attribute.
6160         * config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to
6161         code_for_aarch64_load.
6162
6163 2021-05-19  Richard Biener  <rguenther@suse.de>
6164
6165         * cfgexpand.c (discover_nonconstant_array_refs_r): Make
6166         sure TARGET_MEM_REF bases are expanded as memory.
6167         * tree-ssa-operands.c (operands_scanner::get_tmr_operands):
6168         Do not mark TARGET_MEM_REF bases addressable.
6169         * tree-ssa.c (non_rewritable_mem_ref_base): Handle
6170         TARGET_MEM_REF bases as never rewritable.
6171         * gimple-walk.c (walk_stmt_load_store_addr_ops): Do not
6172         walk TARGET_MEM_REF bases as address-takens.
6173         * tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF.
6174
6175 2021-05-19  Richard Biener  <rguenther@suse.de>
6176
6177         * builtins.c (get_object_alignment_1): Strip outer
6178         WITH_SIZE_EXPR.
6179         * tree-dfa.c (get_ref_base_and_extent): Handle outer
6180         WITH_SIZE_EXPR for size processing and process the
6181         containing ref.
6182         * tree-ssa-alias.c (ao_ref_base_alias_set): Strip
6183         outer WITH_SIZE_EXPR.
6184         (ao_ref_base_alias_ptr_type): Likewise.
6185         (refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref
6186         and handle that accordingly, stripping it for the
6187         core alias workers.
6188         * tree.c (get_base_address): Handle WITH_SIZE_EXPR by
6189         looking through it instead of returning NULL.
6190
6191 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
6192
6193         PR middle-end/100576
6194         * builtins.c (check_read_access): Convert bound to size_type_node if
6195         non-NULL.
6196
6197 2021-05-19  Richard Biener  <rguenther@suse.de>
6198
6199         * tree-cfg.c (verify_types_in_gimple_min_lval): Inline...
6200         (verify_types_in_gimple_reference): ... here.  Sanitize.
6201         (verify_gimple_call): Verify references in LHS and arguments.
6202         (verify_gimple_assign_single): Reject WITH_SIZE_EXPR.
6203
6204 2021-05-19  Uroš Bizjak  <ubizjak@gmail.com>
6205
6206         * config/i386/i386.h (VALID_INT_MODE_P):
6207         Add V8QI, V4HI and V2SI modes for TARGET_64BIT.
6208         * config/i386/i386.md (isa): Add x64_bmi.
6209         (enabled): Handle x64_bmi.
6210         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
6211         Add alternative using 64bit general registers.
6212         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
6213
6214 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
6215
6216         PR middle-end/99928
6217         * tree.h (OMP_MASTER_COMBINED): Define.
6218         * gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate
6219         handling for outer combined/composite constructs to a loop.
6220         Handle lastprivate on combined target.
6221         (gimplify_expr): Formatting fix.
6222
6223 2021-05-19  Xionghu Luo  <luoxhu@linux.ibm.com>
6224
6225         * passes.def: Add sink_code pass before store_merging.
6226         * tree-ssa-sink.c (pass_sink_code:clone): New.
6227
6228 2021-05-18  Bill Schmidt  <wschmidt@linux.ibm.com>
6229
6230         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to
6231         rs6000_special_adjust_field_align_p.
6232         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
6233         * config/rs6000/rs6000-call.c (rs6000_function_arg_boundary):
6234         Remove ABI warning.
6235         (rs6000_function_arg): Likewise.
6236         * config/rs6000/rs6000-protos.h
6237         (rs6000_special_adjust_field_align_p): Remove prototype.
6238         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
6239         Remove.
6240         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to
6241         rs6000_special_adjust_field_align_p.
6242
6243 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
6244
6245         PR target/100637
6246         * config/i386/i386.h (VALID_SSE2_REG_MODE):
6247         Add V4QI and V2HI modes.
6248         (VALID_INT_MODE_P): Ditto.
6249         * config/i386/mmx.md (VI_32): New mode iterator.
6250         (mmxvecsize): Handle V4QI and V2HI.
6251         (Yv_Yw): Ditto.
6252         (mov<VI_32:mode>): New expander.
6253         (*mov<mode>_internal): New insn pattern.
6254         (movmisalign<VI_32:mode>): New expander.
6255         (neg<VI_32:mode>): New expander.
6256         (<plusminus:insn><VI_32:mode>3): New expander.
6257         (*<plusminus:insn><VI_32:mode>3): New insn pattern.
6258         (mulv2hi3): New expander.
6259         (*mulv2hi3): New insn pattern.
6260         (one_cmpl<VI_32:mode>2): New expander.
6261         (*andnot<VI_32:mode>3): New insn pattern.
6262         (<any_logic:code><VI_32:mode>3): New expander.
6263         (*<any_logic:code><VI_32:mode>3): New insn pattern.
6264
6265 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
6266
6267         * config/i386/sse.md (<any_extend:insn>v4qiv4di2):
6268         Fix a mode mismatch with operand 1.
6269
6270 2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>
6271
6272         PR target/100626
6273         * config/i386/i386-expand.c (split_double_mode): Return
6274         temporary register when simplify_gen_subreg fails with
6275         the high half od the paradoxical subreg.
6276
6277 2021-05-18  Richard Biener  <rguenther@suse.de>
6278
6279         * cfgexpand.c (expand_one_var): Pass in forced_stack_var
6280         and honor it when expanding.
6281         (expand_used_vars_for_block): Pass through forced_stack_var.
6282         (expand_used_vars): Likewise.
6283         (discover_nonconstant_array_refs_r): Set bits in
6284         forced_stack_vars instead of marking vars TREE_ADDRESSABLE.
6285         (avoid_type_punning_on_regs): Likewise.
6286         (discover_nonconstant_array_refs): Likewise.
6287         (pass_expand::execute): Create and pass down forced_stack_var
6288         bitmap.  For parameters and returns temporarily set
6289         TREE_ADDRESSABLE when expand_function_start.
6290
6291 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
6292
6293         * doc/sourcebuild.texi: Document 'dg-note'.
6294
6295 2021-05-18  Tobias Burnus  <tobias@codesourcery.com>
6296
6297         PR other/100598
6298         * configure: Regenerate.
6299         * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@).
6300
6301 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
6302
6303         * gimple.h (is_gimple_omp_oacc): Tighten.
6304         * omp-low.c (check_omp_nesting_restrictions): Adjust.
6305
6306 2021-05-18  Richard Biener  <rguenther@suse.de>
6307
6308         * tree-ssa-operands.c (mark_address_taken): Simplify.
6309
6310 2021-05-18  Martin Liska  <mliska@suse.cz>
6311
6312         * config/gcn/mkoffload.c (STR): Redefine.
6313         * config/i386/intelmic-mkoffload.c (STR): Likewise.
6314         * config/nvptx/mkoffload.c (STR): Likewise.
6315
6316 2021-05-18  Martin Liska  <mliska@suse.cz>
6317
6318         * common/config/aarch64/aarch64-common.c (aarch64_parse_extension):
6319         Use startswith function instead of strncmp.
6320         * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
6321         * common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise.
6322         * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise.
6323         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise.
6324         * config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise.
6325         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
6326         * config/arm/arm.c (arm_file_start): Likewise.
6327         (arm_valid_target_attribute_rec): Likewise.
6328         (thumb1_md_asm_adjust): Likewise.
6329         * config/arm/driver-arm.c (host_detect_local_cpu): Likewise.
6330         * config/avr/avr.c (STR_PREFIX_P): Likewise.
6331         (avr_set_current_function): Likewise.
6332         (avr_handle_addr_attribute): Likewise.
6333         (avr_asm_output_aligned_decl_common): Likewise.
6334         (avr_asm_named_section): Likewise.
6335         (avr_section_type_flags): Likewise.
6336         (avr_asm_select_section): Likewise.
6337         * config/c6x/c6x.c (c6x_in_small_data_p): Likewise.
6338         (c6x_section_type_flags): Likewise.
6339         * config/darwin-c.c (darwin_cfstring_ref_p): Likewise.
6340         (darwin_objc_declare_unresolved_class_reference): Likewise.
6341         (darwin_objc_declare_class_definition): Likewise.
6342         * config/darwin.c (indirect_data): Likewise.
6343         (darwin_encode_section_info): Likewise.
6344         (darwin_objc2_section): Likewise.
6345         (darwin_objc1_section): Likewise.
6346         (machopic_select_section): Likewise.
6347         (darwin_globalize_label): Likewise.
6348         (darwin_label_is_anonymous_local_objc_name): Likewise.
6349         (darwin_asm_named_section): Likewise.
6350         (darwin_asm_output_dwarf_offset): Likewise.
6351         * config/frv/frv.c (frv_string_begins_with): Likewise.
6352         (frv_in_small_data_p): Likewise.
6353         * config/gcn/mkoffload.c (STR): Likewise.
6354         (main): Likewise.
6355         * config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise.
6356         * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
6357         * config/i386/i386.c (x86_64_elf_section_type_flags): Likewise.
6358         (ix86_md_asm_adjust): Likewise.
6359         * config/i386/intelmic-mkoffload.c (STR): Likewise.
6360         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
6361         (i386_pe_file_end): Likewise.
6362         * config/ia64/ia64.c (ia64_in_small_data_p): Likewise.
6363         (ia64_section_type_flags): Likewise.
6364         * config/mips/driver-native.c (host_detect_local_cpu): Likewise.
6365         * config/mips/mips.c (mips_handle_interrupt_attr): Likewise.
6366         (mips16_stub_function_p): Likewise.
6367         (mips_function_rodata_section): Likewise.
6368         * config/msp430/msp430.c (msp430_mcu_name): Likewise.
6369         (msp430_function_section): Likewise.
6370         (msp430_section_type_flags): Likewise.
6371         (msp430_expand_helper): Likewise.
6372         * config/nios2/nios2.c (nios2_small_section_name_p): Likewise.
6373         (nios2_valid_target_attribute_rec): Likewise.
6374         * config/nvptx/mkoffload.c (process): Likewise.
6375         (STR): Likewise.
6376         * config/pa/som.h: Likewise.
6377         * config/pdp11/pdp11.c (pdp11_output_ident): Likewise.
6378         * config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise.
6379         * config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise.
6380         (rs6000_inner_target_options): Likewise.
6381         * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise.
6382         * config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise.
6383         * config/vax/vax.c (vax_output_int_move): Likewise.
6384         * config/vms/vms-ld.c (startswith): Likewise.
6385         (process_args): Likewise.
6386         (main): Likewise.
6387         * config/vms/vms.c: Likewise.
6388
6389 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
6390
6391         PR rtl-optimization/100590
6392         * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if
6393         they are NONJUMP_INSN_P.
6394
6395 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
6396
6397         PR c++/100580
6398         * function.c (push_dummy_function): Set DECL_ARTIFICIAL and
6399         DECL_ASSEMBLER_NAME on the fn_decl.
6400
6401 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
6402
6403         PR tree-optimization/94589
6404         * tree-ssa-phiopt.c (spaceship_replacement): Pattern match
6405         phi result used in (res & ~1) == 0 comparison as res >= 0 as
6406         res == 2 would be UB with -ffinite-math-only.
6407
6408 2021-05-18  Martin Liska  <mliska@suse.cz>
6409
6410         * Makefile.in: genversion.o should depend on DATESTAMP.
6411
6412 2021-05-18  Claudiu Zissulescu  <claziss@synopsys.com>
6413
6414         * config/arc/simdext.md (negv2si2): Remove round bracket.
6415
6416 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
6417
6418         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
6419         _Bool as macro expanding to _Bool.
6420
6421 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
6422
6423         PR c++/100281
6424         * tree.c (build_reference_type_for_mode)
6425         (build_pointer_type_for_mode): Pick pointer mode if MODE argument
6426         is VOIDmode.
6427         (build_reference_type, build_pointer_type): Invoke
6428         build_*_type_for_mode with VOIDmode.
6429
6430 2021-05-17  Andrew MacLeod  <amacleod@redhat.com>
6431
6432         PR tree-optimization/100512
6433         * gimple-range-cache.cc (ranger_cache::set_global_range): Mark const
6434         and non-zero pointer ranges as invariant.
6435         * gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer
6436         processing from here.
6437
6438 2021-05-17  Tom de Vries  <tdevries@suse.de>
6439
6440         PR target/100497
6441         * config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare
6442         * config/nvptx/nvptx.c (nvptx_output_barrier)
6443         (nvptx_output_atomic_insn): New function.
6444         (nvptx_print_operand): Add support for 'B'.
6445         * config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic
6446         insns.
6447
6448 2021-05-17  Aldy Hernandez  <aldyh@redhat.com>
6449
6450         PR tree-optimization/100349
6451         * vr-values.c (bounds_of_var_in_loop): Bail if scev returns
6452           NULL.
6453
6454 2021-05-17  Tamar Christina  <tamar.christina@arm.com>
6455
6456         * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New.
6457         (host_detect_local_cpu): Use it.
6458
6459 2021-05-17  Martin Liska  <mliska@suse.cz>
6460
6461         * doc/invoke.texi: Add 2 missing dots.
6462
6463 2021-05-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
6464
6465         PR bootstrap/100552
6466         * configure.ac: Replace pattern substitution with call to sed.
6467         * configure: Regenerate.
6468
6469 2021-05-17  Richard Biener  <rguenther@suse.de>
6470
6471         PR middle-end/100582
6472         * tree.c (array_at_struct_end_p): Get to the base of the
6473         reference before looking for the underlying decl.
6474
6475 2021-05-17  Joern Rennecke  <joern.rennecke@embecosm.com>
6476
6477         * genoutput.c (validate_insn_alternatives) Make "wrong number of
6478         alternatives" message more specific, and remove assumption on where
6479         the problem is.
6480
6481 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
6482
6483         * config/arm/iterators.md (V16): New iterator.
6484         (VH_cvtto): New iterator.
6485         (v_cmp_result): Added V4HF and V8HF support.
6486         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>): Use VDQWH.
6487         (vcond<mode><mode>): Likewise.
6488         (vcond_mask_<mode><v_cmp_result>): Likewise.
6489         (vcond<VH_cvtto><mode>): New expander.
6490
6491 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
6492
6493         * config/arm/arm-protos.h (arm_expand_vector_compare): Update
6494         prototype.
6495         * config/arm/arm.c (arm_expand_vector_compare): Add support for
6496         MVE.
6497         (arm_expand_vcond): Likewise.
6498         * config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S,
6499         VCMPEQQ_N_S, VCMPNEQ_N_S.
6500         (VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove.
6501         * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Add '@' prefix.
6502         (@mve_vcmp<mve_cmp_op>q_f<mode>): Likewise.
6503         (@mve_vcmp<mve_cmp_op>q_n_f<mode>): Likewise.
6504         (@mve_vpselq_<supf><mode>): Likewise.
6505         (@mve_vpselq_f<mode>"): Likewise.
6506         * config/arm/neon.md (vec_cmp<mode><v_cmp_result): Enable for MVE
6507         and move to vec-common.md.
6508         (vec_cmpu<mode><mode>): Likewise.
6509         (vcond<mode><mode>): Likewise.
6510         (vcond<V_cvtto><mode>): Likewise.
6511         (vcondu<mode><v_cmp_result>): Likewise.
6512         (vcond_mask_<mode><v_cmp_result>): Likewise.
6513         * config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S)
6514         (VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U)
6515         (VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S)
6516         (VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U)
6517         (VCMPHIQ_N_U, VCMPHIQ_U): Remove.
6518         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result): Moved
6519         from neon.md.
6520         (vec_cmpu<mode><mode>): Likewise.
6521         (vcond<mode><mode>): Likewise.
6522         (vcond<V_cvtto><mode>): Likewise.
6523         (vcondu<mode><v_cmp_result>): Likewise.
6524         (vcond_mask_<mode><v_cmp_result>): Likewise. Added unsafe math
6525         condition.
6526
6527 2021-05-17  liuhongt  <hongtao.liu@intel.com>
6528
6529         PR target/100549
6530         * config/i386/i386.c (ix86_gimple_fold_builtin): Use
6531         gsi_insert_seq_before instead.
6532
6533 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
6534
6535         * doc/sourcebuild.texi (arm_qbit_ok): Rename into...
6536         (arm_sat_ok): ...this.
6537
6538 2021-05-17  Martin Liska  <mliska@suse.cz>
6539
6540         * lto-wrapper.c (merge_flto_options): Factor out a new function.
6541         (merge_and_complain): Use it.
6542         (run_gcc): Merge also linker command line -flto=foo argument
6543         with IL files.
6544
6545 2021-05-16  Christophe Lyon  <christophe.lyon@linaro.org>
6546
6547         * config/arm/arm.h (CPP_SPEC): Remove error message about
6548         -mlittle-endian/-mbig-endian conflict.
6549
6550 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
6551
6552         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
6553         __ROP_PROTECT__ if -mrop-protect is selected.
6554
6555 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
6556
6557         * config/rs6000/rs6000-internal.h (rs6000_stack): Add
6558         rop_hash_save_offset and rop_hash_size.
6559         * config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute
6560         rop_hash_size and rop_hash_save_offset.
6561         (debug_stack_info): Dump rop_hash_save_offset and rop_hash_size.
6562         (rs6000_emit_prologue): Emit hashst[p] in prologue.
6563         (rs6000_emit_epilogue): Emit hashchk[p] in epilogue.
6564         * config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and
6565         UNSPEC_HASHCHK.
6566         (hashst): New define_insn.
6567         (hashchk): Likewise.
6568
6569 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
6570
6571         * config/rs6000/rs6000.c (rs6000_option_override_internal):
6572         Disable shrink wrap when inserting ROP-protect instructions.
6573         * config/rs6000/rs6000.opt (mrop-protect): New option.
6574         (mprivileged): Likewise.
6575         * doc/invoke.texi: Document mrop-protect and mprivileged.
6576
6577 2021-05-15  Hans-Peter Nilsson  <hp@axis.com>
6578
6579         * reorg.c (fill_slots_from_thread): Reinstate code typoed out in
6580         "Remove CC0".
6581
6582 2021-05-15  Martin Jambor  <mjambor@suse.cz>
6583
6584         Revert:
6585         2021-05-13  Martin Jambor  <mjambor@suse.cz>
6586
6587         PR tree-optimization/100453
6588         * tree-sra.c (sra_modify_assign): All const base accesses do not
6589         need refreshing, not just those from decl_pool.
6590         (sra_modify_assign): Do not refresh into a const base decl.
6591
6592 2021-05-15  Jakub Jelinek  <jakub@redhat.com>
6593
6594         PR rtl-optimization/100342
6595         * regcprop.c (copy_value): When copying a source reg in a wider
6596         mode than it has recorded for the value, adjust recorded destination
6597         mode too or punt if !REG_CAN_CHANGE_MODE_P.
6598
6599 2021-05-14  Jason Merrill  <jason@redhat.com>
6600
6601         * intl.h: Add comments.
6602
6603 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6604
6605         * config/aarch64/aarch64-simd.md
6606         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Split into...
6607         (aarch64_sqdmlsl2_lane<mode>_internal): ... This...
6608         (aarch64_sqdmlal2_lane<mode>_internal): ... And this.
6609         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Split into ...
6610         (aarch64_sqdmlsl2_laneq<mode>_internal): ... This...
6611         (aarch64_sqdmlal2_laneq<mode>_internal): ... And this.
6612         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Split into...
6613         (aarch64_sqdmlsl2_n<mode>_internal): ... This...
6614         (aarch64_sqdmlal2_n<mode>_internal): ... And this.
6615
6616 2021-05-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6617
6618         PR target/66791
6619         * config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's
6620         boolean logic equivalent.
6621         (vtst_s16): Likewise.
6622         (vtst_s32): Likewise.
6623         (vtst_u8): Likewise.
6624         (vtst_u16): Likewise.
6625         (vtst_u32): Likewise.
6626         (vtst_p8): Likewise.
6627         (vtst_p16): Likewise.
6628         (vtstq_s8): Likewise.
6629         (vtstq_s16): Likewise.
6630         (vtstq_s32): Likewise.
6631         (vtstq_u8): Likewise.
6632         (vtstq_u16): Likewise.
6633         (vtstq_u32): Likewise.
6634         (vtstq_p8): Likewise.
6635         (vtstq_p16): Likewise.
6636         * config/arm/arm_neon_builtins.def: Remove entry for vtst.
6637         * config/arm/neon.md (neon_vtst<mode>): Remove pattern.
6638
6639 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6640
6641         * config/aarch64/aarch64-simd.md (aarch64_sqdmlal2<mode>): Merge into...
6642         (aarch64_sqdml<SBINQOPS:as>l2<mode>): ... This.
6643         (aarch64_sqdmlsl2<mode>): Delete.
6644         (aarch64_sqdmlal2_lane<mode>): Merge this...
6645         (aarch64_sqdmlsl2_lane<mode>): ... And this...
6646         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>): ... Into this.
6647         (aarch64_sqdmlal2_laneq<mode>): Merge this...
6648         (aarch64_sqdmlsl2_laneq<mode>): ... And this...
6649         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>): ... Into this.
6650         (aarch64_sqdmlal2_n<mode>): Merge this...
6651         (aarch64_sqdmlsl2_n<mode>): ... And this...
6652         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>): ... Into this.
6653
6654 2021-05-13  Martin Sebor  <msebor@redhat.com>
6655
6656         PR middle-end/100574
6657         * builtins.c (access_ref::get_ref): Improve detection of PHIs with
6658         all null arguments.
6659
6660 2021-05-13  Martin Sebor  <msebor@redhat.com>
6661
6662         PR tree-optimization/93100
6663         PR middle-end/98583
6664         * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that
6665         don't modify referenced objects.
6666
6667 2021-05-13  Martin Jambor  <mjambor@suse.cz>
6668
6669         PR tree-optimization/100453
6670         * tree-sra.c (sra_modify_assign): All const base accesses do not
6671         need refreshing, not just those from decl_pool.
6672         (sra_modify_assign): Do not refresh into a const base decl.
6673
6674 2021-05-13  Martin Liska  <mliska@suse.cz>
6675
6676         * tree-ssa-dom.c: Remove m_simplifier.
6677
6678 2021-05-13  Richard Earnshaw  <rearnsha@arm.com>
6679
6680         PR target/100563
6681         * config/arm/arm.c (arm_canonicalize_comparison): Correctly
6682         canonicalize DImode inequality comparisons against the
6683         maximum integral value.
6684
6685 2021-05-13  Jakub Jelinek  <jakub@redhat.com>
6686
6687         PR tree-optimization/98856
6688         * config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument.
6689         Expect V2DI and V4DI arithmetic right shifts to be emulated.
6690         (ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost
6691         caller.
6692         * config/i386/i386-expand.c (expand_vec_perm_2perm_interleave,
6693         expand_vec_perm_2perm_pblendv): New functions.
6694         (ix86_expand_vec_perm_const_1): Use them.
6695         * config/i386/sse.md (ashr<mode>3<mask_name>): Rename to ...
6696         (<mask_codefor>ashr<mode>3<mask_name>): ... this.
6697         (ashr<mode>3): New define_expand with VI248_AVX512BW iterator.
6698         (ashrv4di3): New define_expand.
6699         (ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP
6700         and !TARGET_AVX512VL expansion.
6701
6702 2021-05-13  Uroš Bizjak  <ubizjak@gmail.com>
6703
6704         PR target/100581
6705         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode
6706         sizes < 16 to a register when constructing vpcmov pattern.
6707         * config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode.
6708
6709 2021-05-13  Martin Liska  <mliska@suse.cz>
6710
6711         * gcov-io.c (gcov_write_block): Remove.
6712         (gcov_write_words): Likewise.
6713         (gcov_read_words): Re-implement using gcov_read_bytes.
6714         (gcov_allocate): Remove.
6715         (GCOV_BLOCK_SIZE): Likewise.
6716         (struct gcov_var): Remove most of the fields.
6717         (gcov_position): Implement with ftell.
6718         (gcov_rewrite): Remove setting of start and offset fields.
6719         (from_file): Re-format.
6720         (gcov_open): Remove setbuf call. It should not be needed.
6721         (gcov_close): Remove internal buffer handling.
6722         (gcov_magic): Use __builtin_bswap32.
6723         (gcov_write_counter): Use directly gcov_write_unsigned.
6724         (gcov_write_string): Use direct fwrite and do not round
6725         to 4 bytes.
6726         (gcov_seek): Use directly fseek.
6727         (gcov_write_tag): Use gcov_write_unsigned directly.
6728         (gcov_write_length): Likewise.
6729         (gcov_write_tag_length): Likewise.
6730         (gcov_read_bytes): Use directly fread.
6731         (gcov_read_unsigned): Use gcov_read_words.
6732         (gcov_read_counter): Likewise.
6733         (gcov_read_string): Use gcov_read_bytes.
6734         * gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect
6735         that size is not in bytes, but words (4B).
6736         (GCOV_TAG_FUNCTION_LENGTH): Likewise.
6737         (GCOV_TAG_ARCS_LENGTH): Likewise.
6738         (GCOV_TAG_ARCS_NUM): Likewise.
6739         (GCOV_TAG_COUNTER_LENGTH): Likewise.
6740         (GCOV_TAG_COUNTER_NUM): Likewise.
6741         (GCOV_TAG_SUMMARY_LENGTH): Likewise.
6742
6743 2021-05-13  liuhongt  <hongtao.liu@intel.com>
6744
6745         PR target/94680
6746         * config/i386/sse.md (ssedoublevecmode): Add attribute for
6747         V64QI/V32HI/V16SI/V4DI.
6748         (ssehalfvecmode): Add attribute for V2DI/V2DF.
6749         (*vec_concatv4si_0): Extend to VI124_128.
6750         (*vec_concat<mode>_0): New pre-reload splitter.
6751         * config/i386/predicates.md (movq_parallel): New predicate.
6752
6753 2021-05-13  Alexandre Oliva  <oliva@adacore.com>
6754
6755         * targhooks.c (default_zero_call_used_regs): Retry using
6756         successfully-zeroed registers as sources.
6757
6758 2021-05-12  Tobias Burnus  <tobias@codesourcery.com>
6759
6760         * omp-low.c (finish_taskreg_scan): Use the proper detach decl.
6761
6762 2021-05-12  Aldy Hernandez  <aldyh@redhat.com>
6763
6764         PR c/100521
6765         * gimple-range.cc (range_of_builtin_call): Skip out on
6766           processing __builtin_clz when varying.
6767
6768 2021-05-12  Tom de Vries  <tdevries@suse.de>
6769
6770         PR target/96005
6771         * config/nvptx/nvptx-opts.h (enum ptx_version): New enum.
6772         * config/nvptx/nvptx.c (nvptx_file_start): Print .version according
6773         to ptx_version_option.
6774         * config/nvptx/nvptx.h (TARGET_PTX_6_3): Define.
6775         * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
6776         (define_insn "nvptx_vote_ballot"): Use sync variant for
6777         TARGET_PTX_6_3.
6778         * config/nvptx/nvptx.opt (ptx_version): Add enum.
6779         (mptx): Add option.
6780         * doc/invoke.texi (Nvidia PTX Options): Add mptx item.
6781
6782 2021-05-12  Richard Biener  <rguenther@suse.de>
6783
6784         PR tree-optimization/100566
6785         * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
6786         allow_back for all edge queries.
6787
6788 2021-05-12  liuhongt  <hongtao.liu@intel.com>
6789
6790         PR target/99908
6791         * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add
6792         splitters for pblendvb of NOT mask register.
6793
6794 2021-05-12  Richard Biener  <rguenther@suse.de>
6795
6796         PR tree-optimization/100519
6797         * tree-ssa-reassoc.c (can_associate_p): Split into...
6798         (can_associate_op_p): ... this
6799         (can_associate_type_p): ... and this.
6800         (is_reassociable_op): Call can_associate_op_p.
6801         (break_up_subtract_bb): Call the appropriate predicates.
6802         (reassociate_bb): Likewise.
6803
6804 2021-05-12  Martin Liska  <mliska@suse.cz>
6805
6806         * lto-wrapper.c (merge_and_complain): Merge -flto=arg options.
6807         (run_gcc): Use -flto argument detection for merged
6808         fdecoded_options.
6809
6810 2021-05-12  Martin Liska  <mliska@suse.cz>
6811
6812         * lto-wrapper.c (print_lto_docs_link): New function.
6813         (run_gcc): Print warning about missing job server detection
6814         after we know NR of partitions. Do the same for -flto{,=1}.
6815         * opts.c (get_option_html_page): Support -flto option.
6816
6817 2021-05-12  Martin Liska  <mliska@suse.cz>
6818
6819         * lto-wrapper.c (get_options_from_collect_gcc_options): Change
6820         return type.
6821         (append_option): Remove.
6822         (find_option): Rework to use the vector type.
6823         (remove_option): Remove.
6824         (merge_and_complain): Use vectors for cl_decoded_option data
6825         type arguments.
6826         (append_compiler_options): Likewise.
6827         (append_diag_options): Likewise.
6828         (append_linker_options): Likewise.
6829         (append_offload_options): Likewise.
6830         (compile_offload_image): Likewise.
6831         (compile_images_for_offload_targets): Likewise.
6832         (find_and_merge_options): Likewise.
6833         (run_gcc): Likewise.
6834
6835 2021-05-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6836
6837         PR debug/100515
6838         * dwarf2out.c (dwarf2out_finish): Set
6839         have_multiple_function_sections with multi-range text_section.
6840
6841 2021-05-12  Martin Liska  <mliska@suse.cz>
6842
6843         PR bootstrap/100560
6844         * Makefile.in: Remove version.h from linker command line.
6845
6846 2021-05-12  Richard Biener  <rguenther@suse.de>
6847
6848         PR middle-end/100547
6849         * rtl.h (rtvec_alloc): Make argument size_t.
6850         * rtl.c (rtvec_alloc): Verify the count is less than INT_MAX.
6851
6852 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
6853
6854         PR middle-end/100508
6855         * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector
6856         type, don't reuse DECL_RTL if it has different mode, instead force
6857         creation of a new DEBUG_EXPR.
6858
6859 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
6860             Marc Glisse  <marc.glisse@inria.fr>
6861
6862         PR tree-optimization/94589
6863         * match.pd ((X & Y) == X -> (X & ~Y) == 0,
6864         (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications.
6865
6866 2021-05-12  Uroš Bizjak  <ubizjak@gmail.com>
6867
6868         PR target/98218
6869         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode.
6870         * config/i386/mmx.md (MMXMODE124): New mode iterator.
6871         (V2FI): Ditto.
6872         (mmxintvecmode): New mode attribute.
6873         (mmxintvecmodelower): Ditto.
6874         (*mmx_maskcmpv2sf3_comm): New insn pattern.
6875         (*mmx_maskcmpv2sf3): Ditto.
6876         (vec_cmpv2sfv2si): New expander.
6877         (vcond<V2FI:mode>v2si): Ditto.
6878         (mmx_vlendvps): New insn pattern.
6879         (vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode.
6880         (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
6881         (vcond_mask_<mode><mmxintvecmodelower>): Ditto.
6882
6883 2021-05-11  Martin Sebor  <msebor@redhat.com>
6884
6885         PR middle-end/21433
6886         * expr.c (expand_expr_real_1): Replace unreachable code with an assert.
6887
6888 2021-05-11  Richard Biener  <rguenther@suse.de>
6889
6890         * gimple-fold.c (gimple_fold_call): Do not call
6891         maybe_fold_reference on call arguments or the static chain.
6892         (fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM
6893         inputs.
6894
6895 2021-05-11  Martin Liska  <mliska@suse.cz>
6896
6897         * builtins.def (DEF_HSAIL_BUILTIN): Remove.
6898         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
6899         (DEF_HSAIL_SAT_BUILTIN): Likewise.
6900         (DEF_HSAIL_INTR_BUILTIN): Likewise.
6901         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
6902         * doc/frontends.texi: Remove BRIG.
6903         * doc/install.texi: Likewise.
6904         * doc/invoke.texi: Likewise.
6905         * doc/standards.texi: Likewise.
6906         * brig-builtins.def: Removed.
6907         * brig/ChangeLog: Removed.
6908         * brig/Make-lang.in: Removed.
6909         * brig/brig-builtins.h: Removed.
6910         * brig/brig-c.h: Removed.
6911         * brig/brig-lang.c: Removed.
6912         * brig/brigfrontend/brig-arg-block-handler.cc: Removed.
6913         * brig/brigfrontend/brig-atomic-inst-handler.cc: Removed.
6914         * brig/brigfrontend/brig-basic-inst-handler.cc: Removed.
6915         * brig/brigfrontend/brig-branch-inst-handler.cc: Removed.
6916         * brig/brigfrontend/brig-cmp-inst-handler.cc: Removed.
6917         * brig/brigfrontend/brig-code-entry-handler.cc: Removed.
6918         * brig/brigfrontend/brig-code-entry-handler.h: Removed.
6919         * brig/brigfrontend/brig-comment-handler.cc: Removed.
6920         * brig/brigfrontend/brig-control-handler.cc: Removed.
6921         * brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed.
6922         * brig/brigfrontend/brig-cvt-inst-handler.cc: Removed.
6923         * brig/brigfrontend/brig-fbarrier-handler.cc: Removed.
6924         * brig/brigfrontend/brig-function-handler.cc: Removed.
6925         * brig/brigfrontend/brig-function.cc: Removed.
6926         * brig/brigfrontend/brig-function.h: Removed.
6927         * brig/brigfrontend/brig-inst-mod-handler.cc: Removed.
6928         * brig/brigfrontend/brig-label-handler.cc: Removed.
6929         * brig/brigfrontend/brig-lane-inst-handler.cc: Removed.
6930         * brig/brigfrontend/brig-machine.c: Removed.
6931         * brig/brigfrontend/brig-machine.h: Removed.
6932         * brig/brigfrontend/brig-mem-inst-handler.cc: Removed.
6933         * brig/brigfrontend/brig-module-handler.cc: Removed.
6934         * brig/brigfrontend/brig-queue-inst-handler.cc: Removed.
6935         * brig/brigfrontend/brig-seg-inst-handler.cc: Removed.
6936         * brig/brigfrontend/brig-signal-inst-handler.cc: Removed.
6937         * brig/brigfrontend/brig-to-generic.cc: Removed.
6938         * brig/brigfrontend/brig-to-generic.h: Removed.
6939         * brig/brigfrontend/brig-util.cc: Removed.
6940         * brig/brigfrontend/brig-util.h: Removed.
6941         * brig/brigfrontend/brig-variable-handler.cc: Removed.
6942         * brig/brigfrontend/hsa-brig-format.h: Removed.
6943         * brig/brigfrontend/phsa.h: Removed.
6944         * brig/brigspec.c: Removed.
6945         * brig/config-lang.in: Removed.
6946         * brig/gccbrig.texi: Removed.
6947         * brig/lang-specs.h: Removed.
6948         * brig/lang.opt: Removed.
6949
6950 2021-05-11  Richard Biener  <rguenther@suse.de>
6951
6952         PR ipa/100513
6953         * ipa-param-manipulation.c
6954         (ipa_param_body_adjustments::modify_call_stmt): Avoid
6955         altering SSA_NAME_DEF_STMT by adjusting the calls LHS
6956         via gimple_call_lhs_ptr.
6957
6958 2021-05-11  Alex Coplan  <alex.coplan@arm.com>
6959
6960         PR target/99725
6961         * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear):
6962         Avoid emitting CFA adjusts on the sp if we have the fp.
6963
6964 2021-05-11  Richard Sandiford  <richard.sandiford@arm.com>
6965
6966         * config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete.
6967         (VMULD): New iterator.
6968         (VCOND): Handle V4HF and V8HF.
6969         (VCONQ): Fix entry for V2SF.
6970         * config/aarch64/aarch64-simd.md (mul_lane<mode>3): Use VMULD
6971         instead of VMUL.  Use a 64-bit vector mode for the indexed operand.
6972         (*aarch64_mul3_elt_<vswap_width_name><mode>): Merge with...
6973         (mul_laneq<mode>3): ...this define_insn.  Use VMUL instead of VDQSF.
6974         Use a 128-bit vector mode for the indexed operand.  Use stype for
6975         the scheduling type.
6976
6977 2021-05-11  Richard Biener  <rguenther@suse.de>
6978
6979         * gimple-fold.c (maybe_fold_reference): Only return
6980         is_gimple_min_invariant values.
6981
6982 2021-05-11  Richard Biener  <rguenther@suse.de>
6983
6984         PR middle-end/100509
6985         * gimple-fold.c (fold_gimple_assign): Only call
6986         get_symbol_constant_value on register type symbols.
6987
6988 2021-05-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
6989             Joe Ramsay   <joe.ramsay@arm.com>
6990
6991         PR target/100419
6992         * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments.
6993         (__arm_vcmpneq): Remove duplicate definition.
6994         (__arm_vstrwq_scatter_offset_p): Likewise.
6995         (__arm_vmaxq_x): Likewise.
6996         (__arm_vmlsdavaq): Likewise.
6997         (__arm_vmlsdavaxq): Likewise.
6998         (__arm_vmlsdavq_p): Likewise.
6999         (__arm_vmlsdavxq_p): Likewise.
7000         (__arm_vrmlaldavhaq): Likewise.
7001         (__arm_vstrbq_p): Likewise.
7002         (__arm_vstrbq_scatter_offset): Likewise.
7003         (__arm_vstrbq_scatter_offset_p): Likewise.
7004         (__arm_vstrdq_scatter_offset): Likewise.
7005         (__arm_vstrdq_scatter_offset_p): Likewise.
7006         (__arm_vstrdq_scatter_shifted_offset): Likewise.
7007         (__arm_vstrdq_scatter_shifted_offset_p): Likewise.
7008
7009 2021-05-11  Jakub Jelinek  <jakub@redhat.com>
7010
7011         PR middle-end/100471
7012         * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data
7013         is 0, bypass the reduction loop including
7014         GOMP_taskgroup_reduction_unregister call.
7015
7016 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
7017
7018         * config/rs6000/rs6000.c (struct rs6000_cost_data): New member
7019         costing_for_scalar.
7020         (rs6000_density_test): Early return if costing_for_scalar is true.
7021         (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data.
7022
7023 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
7024
7025         * doc/tm.texi: Regenerated.
7026         * target.def (init_cost): Add new parameter costing_for_scalar.
7027         * targhooks.c (default_init_cost): Adjust for new parameter.
7028         * targhooks.h (default_init_cost): Likewise.
7029         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise.
7030         (vect_compute_single_scalar_iteration_cost): Likewise.
7031         (vect_analyze_loop_2): Likewise.
7032         * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise.
7033         (vect_bb_vectorization_profitable_p): Likewise.
7034         * tree-vectorizer.h (init_cost): Likewise.
7035         * config/aarch64/aarch64.c (aarch64_init_cost): Likewise.
7036         * config/i386/i386.c (ix86_init_cost): Likewise.
7037         * config/rs6000/rs6000.c (rs6000_init_cost): Likewise.
7038
7039 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
7040
7041         * config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to
7042         vect_nonmem and moved into...
7043         (struct rs6000_cost_data): ...here.
7044         (rs6000_init_cost): Use vect_nonmem of cost_data instead.
7045         (rs6000_add_stmt_cost): Likewise.
7046         (rs6000_finish_cost): Likewise.
7047
7048 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
7049
7050         * range-op.cc (get_bool_state): Adjust head comment.
7051         (operator_not_equal::op1_range): Fix comment.
7052         (operator_bitwise_xor::op1_range): Remove call to gcc_unreachable.
7053
7054 2021-05-10  Martin Sebor  <msebor@redhat.com>
7055
7056         PR middle-end/100425
7057         PR middle-end/100510
7058         * gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename...
7059         (pass_walloca::xlimit_certain_p): ...to this.
7060         (pass_walloca::gate): Execute for any kind of handled warning.
7061         (pass_walloca::execute): Avoid issuing "maybe" and "unbounded"
7062         warnings when xlimit_certain_p is set.
7063
7064 2021-05-10  Pat Haugen  <pthaugen@linux.ibm.com>
7065
7066         * config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class):
7067         Return ALTIVEC_REGS if that is best_class.
7068         (rs6000_compute_pressure_classes): Add ALTIVEC_REGS.
7069
7070 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7071
7072         * config/arm/arm.h (CPP_SPEC): Remove error message about
7073         -mfloat-abi.
7074
7075 2021-05-10  Martin Jambor  <mjambor@suse.cz>
7076
7077         * ipa-prop.h (IPA_NODE_REF): Removed.
7078         (IPA_NODE_REF_GET_CREATE): Likewise.
7079         (IPA_EDGE_REF): Likewise.
7080         (IPA_EDGE_REF_GET_CREATE): Likewise.
7081         (IS_VALID_JUMP_FUNC_INDEX): Likewise.
7082         * ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct
7083         use of ipa_node_params_sum.
7084         (ipcp_versionable_function_p): Likewise.
7085         (push_node_to_stack): Likewise.
7086         (pop_node_from_stack): Likewise.
7087         (set_single_call_flag): Replaced two IPA_NODE_REF with one single
7088         direct use of ipa_node_params_sum.
7089         (initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of
7090         ipa_node_params_sum.
7091         (ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of
7092         ipa_edge_args_sum.
7093         (ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct
7094         use of ipa_node_params_sum.
7095         (self_recursively_generated_p): Likewise.
7096         (propagate_scalar_across_jump_function): Likewise.
7097         (propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a
7098         direct use of ipa_edge_args_sum, moved the lookup after the early
7099         exit.  Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum.
7100         (propagate_bits_across_jump_function): Replaced IPA_NODE_REF with
7101         direct uses of ipa_node_params_sum.
7102         (propagate_vr_across_jump_function): Likewise.
7103         (propagate_aggregate_lattice): Likewise.
7104         (propagate_aggs_across_jump_function): Likewise.
7105         (propagate_constants_across_call): Likewise, also replaced
7106         IPA_EDGE_REF with a direct use of ipa_edge_args_sum.
7107         (good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use
7108         of ipa_node_params_sum.
7109         (estimate_local_effects): Likewise.
7110         (add_all_node_vals_to_toposort): Likewise.
7111         (propagate_constants_topo): Likewise.
7112         (ipcp_propagate_stage): Likewise.
7113         (ipcp_discover_new_direct_edges): Likewise.
7114         (calls_same_node_or_its_all_contexts_clone_p): Likewise.
7115         (cgraph_edge_brings_value_p): Likewise (in both overloaded functions).
7116         (get_info_about_necessary_edges): Likewise.
7117         (want_remove_some_param_p): Likewise.
7118         (create_specialized_node): Likewise.
7119         (self_recursive_pass_through_p): Likewise.
7120         (self_recursive_agg_pass_through_p): Likewise.
7121         (find_more_scalar_values_for_callers_subset): Likewise and also
7122         replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one
7123         case replacing two of those with a single query.
7124         (find_more_contexts_for_caller_subset): Likewise for the
7125         ipa_polymorphic_call_context overload.
7126         (intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct
7127         use of ipa_edge_args_sum.  Replaced IPA_NODE_REF with direct uses of
7128         ipa_node_params_sum.
7129         (find_aggregate_values_for_callers_subset): Likewise, also reusing
7130         results of ipa_edge_args_sum->get.
7131         (cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with
7132         direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a
7133         direct use of ipa_edge_args_sum.
7134         (cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node
7135         summary query after the early exit and reused the result later.
7136         (decide_about_value): Replaced IPA_NODE_REF with a direct use of
7137         ipa_node_params_sum.
7138         (decide_whether_version_node): Likewise.  Removed re-querying for
7139         summaries after cloning.
7140         (spread_undeadness): Replaced IPA_NODE_REF with a direct use of
7141         ipa_node_params_sum.
7142         (has_undead_caller_from_outside_scc_p): Likewise, reusing results of
7143         some queries.
7144         (identify_dead_nodes): Likewise.
7145         (ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of
7146         ipa_node_params_sum.
7147         (ipcp_store_vr_results): Likewise.
7148         * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
7149         (ipa_fn_summary_t::duplicate): Likewise.
7150         (analyze_function_body): Likewise.
7151         (estimate_calls_size_and_time): Likewise.
7152         (ipa_cached_call_context::duplicate_from): Likewise.
7153         (ipa_call_context::equal_to): Likewise.
7154         (remap_edge_params): Likewise.
7155         (ipa_merge_fn_summary_after_inlining): Likewise.
7156         (inline_read_section): Likewise.
7157         * ipa-icf.c (sem_function::param_used_p): Likewise.
7158         * ipa-modref.c (compute_parm_map): Likewise.
7159         (compute_parm_map): Replaced IPA_EDGE_REF with a direct use of
7160         ipa_edge_args_sum.
7161         (get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of
7162         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
7163         ipa_edge_args_sum.
7164         * ipa-profile.c (check_argument_count): Likewise.
7165         * ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE
7166         with a direct use of ipa_node_params_sum.
7167         (ipa_initialize_node_params): Likewise.
7168         (ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a
7169         direct use of ipa_edge_args_sum and reused the query result.
7170         (ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a
7171         direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a
7172         direct use of ipa_edge_args_sum.
7173         (ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of
7174         ipa_node_params_sum and reused the result of the query.
7175         (ipa_analyze_node): Likewise.
7176         (ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use
7177         of ipa_node_params_sum.
7178         (update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with
7179         direct uses of ipa_edge_args_sum.
7180         (update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with
7181         direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a
7182         direct use of ipa_edge_args_sum.  Removed superficial re-querying the
7183         top edge summary.
7184         (propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of
7185         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
7186         ipa_edge_args_sum.
7187         (ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a
7188         direct use of ipa_edge_args_sum.
7189         (ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct
7190         use of ipa_node_params_sum.
7191         (ipa_print_node_params): Likewise.
7192         (ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with
7193         direct uses of ipa_edge_args_sum.
7194         (ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of
7195         ipa_edge_args_sum.
7196         (ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of
7197         ipa_node_params_sum.
7198         (ipa_prop_write_jump_functions): Likewise.  Move variable node to the
7199         scopes where it is used.
7200
7201 2021-05-10  Uroš Bizjak  <ubizjak@gmail.com>
7202
7203         * config/i386/i386-expand.c (ix86_expand_sse_movcc)
7204         <case E_V2SImode>: Force op_true to register.
7205
7206 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7207
7208         * config/arm/iterators.md (MVE_FP_COMPARISONS): New.
7209         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_f<mode>)
7210         (mve_vcmp<mve_cmp_op>q_n_f<mode>): New, merge all vcmp_*f*
7211         patterns.
7212         (mve_vcmpeqq_f<mode>, mve_vcmpeqq_n_f<mode>, mve_vcmpgeq_f<mode>)
7213         (mve_vcmpgeq_n_f<mode>, mve_vcmpgtq_f<mode>)
7214         (mve_vcmpgtq_n_f<mode>, mve_vcmpleq_f<mode>)
7215         (mve_vcmpleq_n_f<mode>, mve_vcmpltq_f<mode>)
7216         (mve_vcmpltq_n_f<mode>, mve_vcmpneq_f<mode>)
7217         (mve_vcmpneq_n_f<mode>): Remove.
7218         * config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F)
7219         (VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F)
7220         (VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove.
7221
7222 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7223
7224         * config/arm/iterators.md (MVE_COMPARISONS): New.
7225         (mve_cmp_op): New.
7226         (mve_cmp_type): New.
7227         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all
7228         mve_vcmp patterns.
7229         (mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>)
7230         (mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>)
7231         (mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>)
7232         (mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>)
7233         (mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
7234         (mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
7235         (mve_vcmpneq_n_<mode>): Remove.
7236
7237 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7238
7239         * config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix.
7240         * config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix.
7241         * config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern
7242         names.
7243
7244 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7245
7246         * config/arm/arm_mve_builtins.def (vcmpneq_u): Remove.
7247         (vcmpneq_n_u): Likewise.
7248         (vcmpeqq_u,): Likewise.
7249         (vcmpeqq_n_u): Likewise.
7250         * config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U,
7251         VCMPEQQ_N_U and VCMPNEQ_N_U.
7252         * config/arm/mve.md (mve_vcmpneq): Remove <supf> iteration.
7253         (mve_vcmpeqq_n): Likewise.
7254         (mve_vcmpeqq): Likewise.
7255         (mve_vcmpneq_n): Likewise.
7256
7257 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7258
7259         * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call
7260         the 's' version of the builtin.
7261
7262 2021-05-10  Richard Biener  <rguenther@suse.de>
7263
7264         PR tree-optimization/100492
7265         * tree-loop-distribution.c (find_seed_stmts_for_distribution):
7266         Find nothing when the loop contains an irreducible region.
7267
7268 2021-05-10  Richard Biener  <rguenther@suse.de>
7269
7270         PR middle-end/100464
7271         PR c++/100468
7272         * gimple-fold.c (canonicalize_constructor_val): Do not set
7273         TREE_ADDRESSABLE.
7274
7275 2021-05-10  Richard Biener  <rguenther@suse.de>
7276
7277         PR tree-optimization/100434
7278         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
7279         call LHS.
7280         (dse_optimize_stmt): Handle call LHS by dropping the
7281         LHS or the whole call if it doesn't have other
7282         side-effects.
7283         (pass_dse::execute): Adjust.
7284
7285 2021-05-10  Martin Liska  <mliska@suse.cz>
7286
7287         * Makefile.in: Add missing genversion rule.
7288
7289 2021-05-10  Alex Coplan  <alex.coplan@arm.com>
7290
7291         PR target/99960
7292         * config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use
7293         vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores.
7294
7295 2021-05-10  Martin Liska  <mliska@suse.cz>
7296
7297         * builtins.c (is_builtin_name): Use startswith
7298         function instead of strncmp.
7299         * collect2.c (main): Likewise.
7300         (has_lto_section): Likewise.
7301         (scan_libraries): Likewise.
7302         * coverage.c (coverage_checksum_string): Likewise.
7303         (coverage_init): Likewise.
7304         * dwarf2out.c (is_cxx): Likewise.
7305         (gen_compile_unit_die): Likewise.
7306         * gcc-ar.c (main): Likewise.
7307         * gcc.c (init_spec): Likewise.
7308         (read_specs): Likewise.
7309         (execute): Likewise.
7310         (check_live_switch): Likewise.
7311         * genattrtab.c (write_attr_case): Likewise.
7312         (IS_ATTR_GROUP): Likewise.
7313         * gencfn-macros.c (main): Likewise.
7314         * gengtype.c (type_for_name): Likewise.
7315         (gen_rtx_next): Likewise.
7316         (get_file_langdir): Likewise.
7317         (write_local): Likewise.
7318         * genmatch.c (get_operator): Likewise.
7319         (get_operand_type): Likewise.
7320         (expr::gen_transform): Likewise.
7321         * genoutput.c (validate_optab_operands): Likewise.
7322         * incpath.c (add_sysroot_to_chain): Likewise.
7323         * langhooks.c (lang_GNU_C): Likewise.
7324         (lang_GNU_CXX): Likewise.
7325         (lang_GNU_Fortran): Likewise.
7326         (lang_GNU_OBJC): Likewise.
7327         * lto-wrapper.c (run_gcc): Likewise.
7328         * omp-general.c (omp_max_simt_vf): Likewise.
7329         * omp-low.c (omp_runtime_api_call): Likewise.
7330         * opts-common.c (parse_options_from_collect_gcc_options): Likewise.
7331         * read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise.
7332         * real.c (real_from_string): Likewise.
7333         * selftest.c (assert_str_startswith): Likewise.
7334         * timevar.c (timer::validate_phases): Likewise.
7335         * tree.c (get_file_function_name): Likewise.
7336         * ubsan.c (ubsan_use_new_style_p): Likewise.
7337         * varasm.c (default_function_rodata_section): Likewise.
7338         (incorporeal_function_p): Likewise.
7339         (default_section_type_flags): Likewise.
7340         * system.h (startswith): Define startswith.
7341
7342 2021-05-10  Martin Liska  <mliska@suse.cz>
7343
7344         * bitmap.h (class auto_bitmap): Remove
7345         __cplusplus >= 201103.
7346         * config/aarch64/aarch64.c: Likewise.
7347         * gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info):
7348         Likewise.
7349         * sbitmap.h: Likewise.
7350
7351 2021-05-10  Martin Liska  <mliska@suse.cz>
7352
7353         * Makefile.in: Rename gcov-iov to genversion and depend
7354         on version.h (instead of gcov-iov.h).
7355         * gcov-io.h: Include version.h instread of gcov-iov.h.
7356         * gengtype-state.c (read_state_version): Likewise.
7357         * gcov-iov.c: Moved to...
7358         * genversion.c: ...here.
7359         * lto-streamer.h (LTO_major_version): Define it with
7360         GCC_major_version.
7361         * version.c: Removed.
7362         * version.h: Removed.
7363
7364 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7365
7366         * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define.
7367         * config/arc/simdext.md (VCT): Add predicates for iterator
7368         elements.
7369         (EMUVEC): Define.
7370         (voptab): Likewise.
7371         (vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate.
7372         (<voptab>v2si3): New patterns.
7373         (neg): Likewise.
7374         (reduc_plus_scal_v4hi): Likewise.
7375         (reduc_plus_scal_v2si): Likewise.
7376         (vec_duplicatev2si): Likewise.
7377         (vec_duplicatev4hi): Likewise.
7378
7379 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7380
7381         * config/arc/simdext.md: Format and cleanup file.
7382
7383 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7384
7385         * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access
7386         only when munaligned-access option is on.
7387         (movmisalign<mode>): Likewise.
7388
7389 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7390
7391         * common/config/arc/arc-common.c (arc_handle_option): Remove dot
7392         from string.
7393         * config/arc/arc.c (arc_reorg): Remove underscore from string.
7394
7395 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7396
7397         * config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
7398         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
7399         * config/arc/arc.md (clrsbsi2): Cleanup pattern.
7400         (norm_f): Likewise.
7401         (ffs): Likewise.
7402         (ffs_f): Likewise.
7403         (clzsi2): Use fls instruction when available.
7404         (arc_clzsi2): Likewise.
7405
7406 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7407
7408         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27.
7409
7410 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7411
7412         * doc/extend.texi (__builtin_arc_sr): Swap arguments.
7413
7414 2021-05-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7415
7416         PR middle-end/100467
7417         * toplev.c (compile_file): Call insn_locations_init before
7418         targetm.asm_out.code_end.
7419
7420 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
7421
7422         Revert:
7423         2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
7424
7425         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
7426
7427 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
7428             Andrew Stubbs  <amd@codesourcery.com>
7429
7430         PR target/100418
7431         * builtins.c (try_store_by_multiple_pieces): Use force_operand for
7432         emit_move_insn operands.
7433
7434 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
7435
7436         * cfgexpand.c (expand_gimple_basic_block): Do not inherit a current
7437         location for the outgoing edges of an empty block.
7438         * dwarf2out.c (add_subscript_info): Retrieve the bounds and index
7439         type by means of the get_array_descr_info langhook, if it is set and
7440         returns true.  Remove obsolete code dealing with unnamed subtypes.
7441
7442 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7443
7444         * gimple-range-cache.cc (ssa_block_ranges): Virtualize.
7445         (sbr_vector): Renamed from ssa_block_cache.
7446         (sbr_vector::sbr_vector): Allocate from obstack abd initialize.
7447         (ssa_block_ranges::~ssa_block_ranges): Remove.
7448         (sbr_vector::set_bb_range): Use varying and undefined cached values.
7449         (ssa_block_ranges::set_bb_varying): Remove.
7450         (sbr_vector::get_bb_range): Adjust assert.
7451         (sbr_vector::bb_range_p): Adjust assert.
7452         (~block_range_cache): No freeing loop required.
7453         (block_range_cache::get_block_ranges): Remove.
7454         (block_range_cache::set_bb_range): Inline get_block_ranges.
7455         (block_range_cache::set_bb_varying): Remove.
7456         * gimple-range-cache.h (set_bb_varying): Remove prototype.
7457         * value-range.h (irange_allocator::get_memory): New.
7458
7459 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7460
7461         * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search
7462         dominator tree is available and requested.
7463         (ranger_cache::ssa_range_in_bb): Don't search dom tree here.
7464         (ranger_cache::fill_block_cache): Don't search dom tree here either.
7465         * gimple-range-cache.h (non_null_deref_p): Add dom_search param.
7466
7467 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7468
7469         * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with
7470         only PHI nodes better.
7471
7472 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7473
7474         * gimple-range-edge.h (gimple_outgoing_range): Rename from
7475         outgoing_range.
7476         (gcond_edge_range): Export prototype.
7477         * gimple-range-edge.cc (gcond_edge_range): New.
7478         (gimple_outgoing_range::edge_range_p): Use gcond_edge_range.
7479         * gimple-range-gori.h (gori_compute): Use gimple_outgoing_range.
7480
7481 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7482
7483         * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute
7484         default range into a temp and allocate only what is needed.
7485
7486 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7487
7488         * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED.
7489
7490 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7491
7492         * gimple-range.h (gimple_range_global): Pick up parameter initial
7493         values, and use-before defined locals are UNDEFINED.
7494
7495 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
7496
7497         * doc/extend.texi (scalar_storage_order): Mention effect on pointer
7498         and vector fields.
7499         * tree.h (reverse_storage_order_for_component_p): Return false if
7500         the type is a pointer.
7501
7502 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
7503
7504         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
7505
7506 2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>
7507
7508         PR target/98218
7509         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
7510         Handle V8QI, V4HI and V2SI modes.
7511         * config/i386/mmx.md (mmx_pblendvb): New insn pattern.
7512         * config/i386/sse.md (unspec): Move UNSPEC_BLENDV ...
7513         * config/i386/i386.md (unspec): ... here.
7514
7515 2021-05-07  Tobias Burnus  <tobias@codesourcery.com>
7516             Tom de Vries  <tdevries@suse.de>
7517
7518         * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if
7519         a truth_value_p reduction variable is nonintegral.
7520
7521 2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>
7522
7523         PR target/100445
7524         * config/i386/i386-expand.c (ix86_use_mask_cmp_p):
7525         Return false for mode sizes < 16.
7526
7527 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
7528
7529         PR target/100445
7530         * config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn.
7531
7532 2021-05-06  Martin Jambor  <mjambor@suse.cz>
7533
7534         * ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even
7535         when there is no function summary.
7536         (ipa_sra_summarize_function): produce edge summaries even when
7537         bailing out early.
7538
7539 2021-05-06  Tom Tromey  <tom@tromey.com>
7540
7541         * godump.c (string_hash_eq): Remove.
7542         (go_finish): Use htab_eq_string.
7543
7544 2021-05-06  Tom Tromey  <tom@tromey.com>
7545
7546         * gengtype-state.c (read_state): Use htab_eq_string.
7547         (string_eq): Remove.
7548
7549 2021-05-06  Tom Tromey  <tom@tromey.com>
7550
7551         * gensupport.c (htab_eq_string): Remove.
7552
7553 2021-05-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7554
7555         PR ipa/97937
7556         * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer.
7557         * dwarf2out.h (dw_fde_node::ignored_debug): New data item.
7558         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy
7559         set_ignored_loc callbacks.
7560         * debug.c (do_nothing_debug_hooks): Likewise.
7561         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7562         * dwarf2out.c (text_section_used, cold_text_section_used): Remove.
7563         (in_text_section_p, last_text_label, last_cold_label,
7564         switch_text_ranges, switch_cold_ranges): New data items.
7565         (dwarf2out_note_section_used): Remove.
7566         (dwarf2out_begin_prologue): Set fde->ignored_debug and
7567         in_text_section_p.
7568         (mark_ignored_debug_section): New helper function.
7569         (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call
7570         mark_ignored_debug_section.
7571         (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc.
7572         (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc.
7573         (size_of_aranges): Adjust formula for multi-part text ranges size.
7574         (output_aranges): Output multi-part text ranges.
7575         (dwarf2out_set_ignored_loc): New callback function.
7576         (dwarf2out_finish): Output multi-part text ranges.
7577         (dwarf2out_c_finalize): Clear new data items.
7578         * final.c (final_start_function_1): Call set_ignored_loc callback.
7579         (final_scan_insn_1): Likewise.
7580         * ggc-page.c (gt_ggc_mx): New helper function.
7581         * stringpool.c (gt_pch_nx): Likewise.
7582
7583 2021-05-06  Richard Biener  <rguenther@suse.de>
7584
7585         * timevar.def (TV_TREE_INSERT_PHI_NODES): Remove.
7586         (TV_TREE_SSA_REWRITE_BLOCKS): Likewise.
7587         (TV_TREE_INTO_SSA): New.
7588         * tree-into-ssa.c (insert_phi_nodes): Do not account separately.
7589         (rewrite_blocks): Likewise.
7590         (pass_data_build_ssa): Account to TV_TREE_INTO_SSA.
7591
7592 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
7593
7594         * tree-ssa-phiopt.c (value_replacement, minmax_replacement,
7595         abs_replacement, xor_replacement,
7596         cond_removal_in_popcount_clz_ctz_pattern,
7597         replace_phi_edge_with_variable): Change type of phi argument from
7598         gimple * to gphi *.
7599
7600 2021-05-06  Richard Biener  <rguenther@suse.de>
7601
7602         * tree-ssa-loop-split.c (split_loop): Delay updating SSA form.
7603         Output an opt-info message.
7604         (do_split_loop_on_cond): Likewise.
7605         (tree_ssa_split_loops): Update SSA form here.
7606
7607 2021-05-06  Richard Biener  <rguenther@suse.de>
7608
7609         * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE
7610         return variable removal.
7611
7612 2021-05-06  Marius Hillenbrand  <mhillen@linux.ibm.com>
7613
7614         * config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros.
7615         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
7616         (s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate
7617         operand.
7618         * config/s390/s390.c (s390_const_operand_ok): Remove unused
7619         values.
7620
7621 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
7622
7623         PR tree-optimization/94589
7624         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
7625         spaceship_replacement.
7626         (cond_only_block_p, spaceship_replacement): New functions.
7627
7628 2021-05-06  Richard Biener  <rguenther@suse.de>
7629
7630         PR ipa/100373
7631         * tree-emutls.c (gen_emutls_addr): Pass in whether we're
7632         dealing with a debug use and only query existing addresses
7633         if so.
7634         (lower_emutls_1): Avoid splitting out addresses for debug
7635         stmts, reset the debug stmt when we fail to find existing
7636         lowered addresses.
7637         (lower_emutls_phi_arg): Set wi.stmt.
7638
7639 2021-05-06  Christoph Muellner  <cmuellner@gcc.gnu.org>
7640
7641         PR target/100266
7642         * config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper.
7643         * config/riscv/riscv.md (cbranch<mode>4): Generate helpers.
7644         (stack_protect_test): Use cbranch helper.
7645
7646 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7647
7648         PR target/100402
7649         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
7650         always return the establisher frame for __builtin_frame_address (0).
7651
7652 2021-05-05  Ivan Sorokin  <vanyacpp@gmail.com>
7653
7654         PR target/91400
7655         * config/i386/i386-builtins.c (ix86_cpu_model_type_node): New.
7656         (ix86_cpu_model_var): Likewise.
7657         (ix86_cpu_features2_type_node): Likewise.
7658         (ix86_cpu_features2_var): Likewise.
7659         (fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with
7660         their types.
7661
7662 2021-05-05  Martin Sebor  <msebor@redhat.com>
7663
7664         * passes.def (pass_warn_printf): Run after SSA.
7665
7666 2021-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7667
7668         * config/arm/neon.md (neon_vtst_combine<mode>): New pattern.
7669         * config/arm/predicates.md (minus_one_operand): New predicate.
7670
7671 2021-05-05  Jeff Law  <jlaw@tachyum.com>
7672
7673         * config/avr/avr.md: Remove references to CC_STATUS_INIT.
7674
7675 2021-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
7676
7677         PR rtl-optimization/100263
7678         * postreload.c (move2add_valid_value_p): Ensure register can
7679         change mode.
7680
7681 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7682
7683         PR rtl-optimization/100411
7684         * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue
7685         and beginning of function markers.
7686
7687 2021-05-05  Jeff Law  <jlaw@tachyum.com>
7688
7689         * config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove.
7690         * config/cr16/cr16.c (notice_update_cc): Remove.
7691         * config/cr16/cr16-protos.h (notice_update_cc): Remove.
7692
7693 2021-05-05  Uroš Bizjak  <ubizjak@gmail.com>
7694
7695         PR target/98218
7696         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
7697         Handle V8QI, V4HI and V2SI modes.
7698         * config/i386/i386.c (ix86_build_const_vector): Handle V2SImode.
7699         (ix86_build_signbit_mask): Ditto.
7700         * config/i386/mmx.md (MMXMODE14): New mode iterator.
7701         (<smaxmin:code><MMXMODE14:mode>3): New expander.
7702         (*mmx_<smaxmin:code><MMXMODE14:mode>3): New insn pattern.
7703         (<umaxmin:code><MMXMODE24:mode>3): New expander.
7704         (*mmx_<umaxmin:code><MMXMODE24:mode>3): New insn pattern.
7705         (vec_cmp<MMXMODEI:mode><MMXMODEI:mode>): New expander.
7706         (vec_cmpu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
7707         (vcond<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
7708         (vcondu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
7709         (vcond_mask_<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
7710
7711 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7712
7713         * dwarf2out.c (loc_list_from_tree_1) <DECL>: During early DWARF, do
7714         not expand the VALUE_EXPR of variables put in the non-local frame.
7715         * gimplify.c (gimplify_type_sizes) <RECORD_TYPE>: If the type is not
7716         to be ignored for debug info, ensure its variable offsets are not.
7717
7718 2021-05-05  Richard Biener  <rguenther@suse.de>
7719
7720         PR tree-optimization/79333
7721         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
7722         Fold stmt following SSA edges.
7723
7724 2021-05-05  Richard Biener  <rguenther@suse.de>
7725
7726         PR middle-end/100394
7727         * calls.c (expand_call): Preserve possibly throwing calls.
7728         * cfgexpand.c (expand_call_stmt): When a call can throw signal
7729         RTL expansion there are side-effects.
7730         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify,
7731         mark all possibly throwing stmts necessary unless we can elide
7732         dead EH.
7733         * tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless
7734         -fdelete-dead-exceptions.
7735         * tree.h (DECL_PURE_P): Add note about exceptions.
7736
7737 2021-05-05  Alexandre Oliva  <oliva@adacore.com>
7738
7739         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it
7740         unconditional.
7741
7742 2021-05-04  David Edelsohn  <dje.gcc@gmail.com>
7743
7744         * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
7745         get_fnname_from_decl for name of thunk.
7746         * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name
7747         and ASM_OUTPUT_LABEL.
7748         (rs6000_xcoff_declare_function_name): Use assemble_name and
7749         ASM_OUTPUT_LABEL.
7750         (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL.
7751         (rs6000_xcoff_encode_section_info): Don't add mapping class
7752         for aliases.  Always add [DS] mapping class to primary
7753         FUNCTION_DECL.
7754         (rs6000_asm_weaken_decl): Don't explicitly add [DS].
7755
7756 2021-05-04  Martin Sebor  <msebor@redhat.com>
7757
7758         PR middle-end/100307
7759         * builtins.c (compute_objsize_r): Clear base0 for pointers.
7760
7761 2021-05-04  Jeff Law  <jlaw@tachyum.com>
7762
7763         * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.
7764
7765 2021-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7766
7767         * caller-save.c: Remove CC0.
7768         * cfgcleanup.c: Remove CC0.
7769         * cfgrtl.c: Remove CC0.
7770         * combine.c: Remove CC0.
7771         * compare-elim.c: Remove CC0.
7772         * conditions.h: Remove CC0.
7773         * config/h8300/h8300.h: Remove CC0.
7774         * config/h8300/h8300-protos.h: Remove CC0.
7775         * config/h8300/peepholes.md: Remove CC0.
7776         * config/i386/x86-tune-sched.c: Remove CC0.
7777         * config/m68k/m68k.c: Remove CC0.
7778         * config/rl78/rl78.c: Remove CC0.
7779         * config/sparc/sparc.c: Remove CC0.
7780         * config/xtensa/xtensa.c: Remove CC0.
7781         (gen_conditional_move):  Use pc_rtx instead of cc0_rtx in a piece of
7782         RTL where that is used as a placeholder only.
7783         * cprop.c: Remove CC0.
7784         * cse.c: Remove CC0.
7785         * cselib.c: Remove CC0.
7786         * df-problems.c: Remove CC0.
7787         * df-scan.c: Remove CC0.
7788         * doc/md.texi: Remove CC0.  Adjust an example.
7789         * doc/rtl.texi: Remove CC0.  Adjust an example.
7790         * doc/tm.texi: Regenerate.
7791         * doc/tm.texi.in: Remove CC0.
7792         * emit-rtl.c: Remove CC0.
7793         * final.c: Remove CC0.
7794         * fwprop.c: Remove CC0.
7795         * gcse-common.c: Remove CC0.
7796         * gcse.c: Remove CC0.
7797         * genattrtab.c: Remove CC0.
7798         * genconfig.c: Remove CC0.
7799         * genemit.c: Remove CC0.
7800         * genextract.c: Remove CC0.
7801         * gengenrtl.c: Remove CC0.
7802         * genrecog.c: Remove CC0.
7803         * haifa-sched.c: Remove CC0.
7804         * ifcvt.c: Remove CC0.
7805         * ira-costs.c: Remove CC0.
7806         * ira.c: Remove CC0.
7807         * jump.c: Remove CC0.
7808         * loop-invariant.c: Remove CC0.
7809         * lra-constraints.c: Remove CC0.
7810         * lra-eliminations.c: Remove CC0.
7811         * optabs.c: Remove CC0.
7812         * postreload-gcse.c: Remove CC0.
7813         * postreload.c: Remove CC0.
7814         * print-rtl.c: Remove CC0.
7815         * read-rtl-function.c: Remove CC0.
7816         * reg-notes.def: Remove CC0.
7817         * reg-stack.c: Remove CC0.
7818         * reginfo.c: Remove CC0.
7819         * regrename.c: Remove CC0.
7820         * reload.c: Remove CC0.
7821         * reload1.c: Remove CC0.
7822         * reorg.c: Remove CC0.
7823         * resource.c: Remove CC0.
7824         * rtl.c: Remove CC0.
7825         * rtl.def: Remove CC0.
7826         * rtl.h: Remove CC0.
7827         * rtlanal.c: Remove CC0.
7828         * sched-deps.c: Remove CC0.
7829         * sched-rgn.c: Remove CC0.
7830         * shrink-wrap.c: Remove CC0.
7831         * simplify-rtx.c: Remove CC0.
7832         * system.h: Remove CC0.  Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT,
7833         CC_STATUS_MDEP, and CC_STATUS.
7834         * target.def: Remove CC0.
7835         * valtrack.c: Remove CC0.
7836         * var-tracking.c: Remove CC0.
7837
7838 2021-05-04  Richard Biener  <rguenther@suse.de>
7839
7840         PR tree-optimization/100414
7841         * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
7842         info here.
7843         (tree_ssa_phiopt_worker): But unconditionally here.
7844
7845 2021-05-04  Tobias Burnus  <tobias@codesourcery.com>
7846
7847         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
7848         && and || with floating-point and complex arguments.
7849
7850 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7851
7852         * tree-inline.c (insert_debug_decl_map): Delete.
7853         (copy_debug_stmt): Minor tweak.
7854         (setup_one_parameter): Do not use a variable if the value is either
7855         a read-only DECL or a non-addressable local variable in the caller.
7856         In this case, insert the debug-only variable in the map manually.
7857         (expand_call_inline): Do not generate a CLOBBER for these values.
7858         * tree-inline.h (debug_map): Minor tweak.
7859
7860 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7861
7862         * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy.
7863         * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up.
7864
7865 2021-05-04  Richard Biener  <rguenther@suse.de>
7866
7867         PR tree-optimization/100329
7868         * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
7869         asm goto defs.
7870         (insert_stmt_after): Assert we're not running into asm goto.
7871
7872 2021-05-04  Richard Biener  <rguenther@suse.de>
7873
7874         PR tree-optimization/100398
7875         * tree-ssa-dse.c (pass_dse::execute): Preserve control
7876         altering stmts.
7877
7878 2021-05-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7879
7880         * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype.
7881
7882 2021-05-04  Alexandre Oliva  <oliva@adacore.com>
7883
7884         * builtins.c (try_store_by_multiple_pieces): New.
7885         (expand_builtin_memset_args): Use it.  If target_char_cast
7886         fails, proceed as for non-constant val.  Pass len's ctz to...
7887         * expr.c (clear_storage_hints): ... this.  Try store by
7888         multiple pieces after setmem.
7889         (clear_storage): Adjust.
7890         * expr.h (clear_storage_hints): Likewise.
7891         (try_store_by_multiple_pieces): Declare.
7892         * passes.def: Replace the last copy_prop with ccp.
7893
7894 2021-05-03  Tom de Vries  <tdevries@suse.de>
7895
7896         PR target/100321
7897         * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined
7898         reduction.
7899
7900 2021-05-03  Richard Biener  <rguenther@suse.de>
7901
7902         * tree-ssa-dse.c (dse_classify_store): Track two PHI defs.
7903
7904 2021-05-03  Richard Biener  <rguenther@suse.de>
7905
7906         * tree-ssa-dse.c: Do not include domwalk.h but cfganal.h.
7907         (dse_dom_walker): Remove.
7908         (dse_dom_walker::dse_optimize_stmt): Rename...
7909         (dse_optimize_stmt): ... to this, pass in live_bytes sbitmap.
7910         (dse_dom_walker::before_dom_children): Inline ...
7911         (pass_dse::execute): ... here.  Perform a reverse program
7912         order walk.
7913
7914 2021-05-03  H.J. Lu  <hjl.tools@gmail.com>
7915
7916         PR bootstrap/99703
7917         * configure: Regenerated.
7918
7919 2021-05-03  Ilya Leoshkevich  <iii@linux.ibm.com>
7920
7921         PR target/100217
7922         * config/s390/s390.c (s390_hard_fp_reg_p): New function.
7923         (s390_md_asm_adjust): Handle hard registers.
7924
7925 2021-05-03  Jakub Jelinek  <jakub@redhat.com>
7926
7927         PR tree-optimization/100382
7928         * tree-ssa-dse.c: Include tree-eh.h.
7929         (dse_dom_walker::before_dom_children): Don't remove stmts if
7930         stmt_unremovable_because_of_non_call_eh_p is true.
7931
7932 2021-05-02  David Edelsohn  <dje.gcc@gmail.com>
7933
7934         * varasm.c (compute_reloc_for_var): Split out from...
7935         (get_variable_section): Use it.
7936         * output.h (compute_reloc_for_var): Declare.
7937         * config/rs6000/rs6000-protos.h
7938         (rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to
7939         unsigned int.
7940         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix):
7941         Don't append storage mapping class to symbol.
7942         (rs6000_xcoff_asm_named_section): Add BS and UL mapping classes.
7943         Don't convert TLS BSS to common.
7944         (rs6000_xcoff_unique_section): Don't fall back to select_secton.
7945         (rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is
7946         bss_initializer.
7947         (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage
7948         mapping class.
7949         (rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int.
7950         If align is 0 from TLS class, use the same rules as varasm.c
7951         If not common, switch to BSS section manually.
7952         If common, emit appropriate comm or lcomm directive.
7953         (rs6000_xcoff_encode_section_info): Add logic to append all
7954         storage mapping classes.
7955         (rs6000_asm_weaken_decl): Adjust for qualname symbols.
7956         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
7957         rs6000_xcoff_asm_output_aligned_decl_common.
7958         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
7959         rs6000_xcoff_asm_output_aligned_decl_common.
7960         (ASM_OUTPUT_TLS_COMMON): Use
7961         rs6000_xcoff_asm_output_aligned_decl_common.
7962
7963 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
7964
7965         PR target/100375
7966         * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0
7967         as first argument of pseudo_node_t constructors.
7968
7969 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
7970
7971         PR target/100336
7972         * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def.
7973
7974 2021-05-01  Aldy Hernandez  <aldyh@redhat.com>
7975
7976         * value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove.
7977         (gt_pch_nx (int_range<1> *&)): New.
7978         (gt_ggc_mx (int_range<1> *&)): New.
7979         * value-range.h (class irange): Add GTY support for
7980         the base class.
7981
7982 2021-05-01  Geng Qi  <gengqi@linux.alibaba.com>
7983
7984         * doc/options.texi (Negative): Change either or to both and.
7985
7986 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
7987
7988         * config/aarch64/aarch64-simd-builtins.def: Add
7989         float_ml[as][q]_laneq builtin generator macros.
7990         * config/aarch64/aarch64-simd.md (mul_laneq<mode>3): Define.
7991         (aarch64_float_mla_laneq<mode>): Define.
7992         (aarch64_float_mls_laneq<mode>): Define.
7993         * config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin
7994         instead of GCC vector extensions.
7995         (vmlaq_laneq_f32): Likewise.
7996         (vmls_laneq_f32): Likewise.
7997         (vmlsq_laneq_f32): Likewise.
7998
7999 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
8000
8001         * config/aarch64/aarch64-simd-builtins.def: Add
8002         float_ml[as]_lane builtin generator macros.
8003         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt<mode>):
8004         Rename to...
8005         (mul_lane<mode>3): This, and re-order arguments.
8006         (aarch64_float_mla_lane<mode>): Define.
8007         (aarch64_float_mls_lane<mode>): Define.
8008         * config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin
8009         instead of GCC vector extensions.
8010         (vmlaq_lane_f32): Likewise.
8011         (vmls_lane_f32): Likewise.
8012         (vmlsq_lane_f32): Likewise.
8013
8014 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
8015
8016         * config/aarch64/aarch64-simd-builtins.def: Add float_ml[as]
8017         builtin generator macros.
8018         * config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>):
8019         Define.
8020         (aarch64_float_mls<mode>): Define.
8021         * config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin
8022         instead of relying on GCC vector extensions.
8023         (vmla_f64): Likewise.
8024         (vmlaq_f32): Likewise.
8025         (vmlaq_f64): Likewise.
8026         (vmls_f32): Likewise.
8027         (vmls_f64): Likewise.
8028         (vmlsq_f32): Likewise.
8029         (vmlsq_f64): Likewise.
8030         * config/aarch64/iterators.md: Define VDQF_DF mode iterator.
8031
8032 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
8033
8034         * config/aarch64/aarch64-simd-builtins.def: Add
8035         float_ml[as]_n_builtin generator macros.
8036         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup<mode>):
8037         Rename to...
8038         (mul_n<mode>3): This, and re-order arguments.
8039         (aarch64_float_mla_n<mode>): Define.
8040         (aarch64_float_mls_n<mode>): Define.
8041         * config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin
8042         instead of inline asm.
8043         (vmlaq_n_f32): Likewise.
8044         (vmls_n_f32): Likewise.
8045         (vmlsq_n_f32): Likewise.
8046
8047 2021-04-30  Jonathan Wright  <joanthan.wright@arm.com>
8048
8049         * config/aarch64/aarch64-simd-builtins.def: Add pmull[2]
8050         builtin generator macros.
8051         * config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define.
8052         (aarch64_pmull_hiv16qi_insn): Define.
8053         (aarch64_pmull_hiv16qi): Define.
8054         * config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin
8055         instead of inline asm.
8056         (vmull_p8): Likewise.
8057
8058 2021-04-30  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
8059
8060         * config/avr/avr.md: Adjust peepholes to match and
8061         generate parallels with clobber of REG_CC.
8062         (mov<mode>_insn): Rename to mov<mode>_insn_split.
8063         (*mov<mode>_insn): Rename to mov<mode>_insn.
8064
8065 2021-04-30  David Edelsohn  <dje.gcc@gmail.com>
8066
8067         * varasm.c (use_blocks_for_decl_p): Don't use section anchors
8068         for VAR_DECLs if -fdata-sections enabled.
8069
8070 2021-04-30  Michael Meissner  <meissner@linux.ibm.com>
8071
8072         PR bootstrap/100327
8073         * config/rs6000/rs6000.c
8074         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
8075         (rs6000_libgcc_floating_mode_supported_p): New target hook.
8076
8077 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
8078
8079         * tree-ssa-threadbackward.c (class thread_jumps): Split out code
8080         from here...
8081         (class back_threader_registry): ...to here...
8082         (class back_threader_profitability): ...and here...
8083         (thread_jumps::thread_through_all_blocks): Remove argument.
8084         (back_threader_registry::back_threader_registry): New.
8085         (back_threader_registry::~back_threader_registry): New.
8086         (back_threader_registry::thread_through_all_blocks): New.
8087         (thread_jumps::profitable_jump_thread_path): Move from here...
8088         (back_threader_profitability::profitable_path_p): ...to here.
8089         (thread_jumps::find_taken_edge): New.
8090         (thread_jumps::convert_and_register_current_path): Move...
8091         (back_threader_registry::register_path): ...to here.
8092         (thread_jumps::register_jump_thread_path_if_profitable): Move...
8093         (thread_jumps::maybe_register_path): ...to here.
8094         (thread_jumps::handle_phi): Call find_taken_edge and
8095         maybe_register_path.
8096         (thread_jumps::handle_assignment): Same.
8097         (thread_jumps::fsm_find_control_statement_thread_paths): Remove
8098         tree argument to handle_phi and handle_assignment.
8099         (thread_jumps::find_jump_threads_backwards): Set m_name.  Remove
8100         set of m_speed_p and m_max_threaded_paths.
8101         (pass_thread_jumps::execute): Remove second argument from
8102         find_jump_threads_backwards.
8103         (pass_early_thread_jumps::execute): Same.
8104
8105 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
8106
8107         * tree-ssa-dom.c (class dom_jump_threader_simplifier): New.
8108         (class dom_opt_dom_walker): Initialize some class variables.
8109         (pass_dominator::execute): Pass evrp_range_analyzer and
8110         dom_jump_threader_simplifier to dom_opt_dom_walker.
8111         Adjust for some functions moving into classes.
8112         (simplify_stmt_for_jump_threading): Adjust and move to...
8113         (jump_threader_simplifier::simplify): ...here.
8114         (dom_opt_dom_walker::before_dom_children): Adjust for
8115         m_evrp_range_analyzer.
8116         (dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack.
8117         (test_for_singularity): Place in dom_opt_dom_walker class.
8118         (dom_opt_dom_walker::optimize_stmt): The argument
8119         evrp_range_analyzer is now a class field.
8120         * tree-ssa-threadbackward.c (class thread_jumps): Add m_registry.
8121         (thread_jumps::thread_through_all_blocks): New.
8122         (thread_jumps::convert_and_register_current_path): Use m_registry.
8123         (pass_thread_jumps::execute): Adjust for thread_through_all_blocks
8124         being in the threader class.
8125         (pass_early_thread_jumps::execute): Same.
8126         * tree-ssa-threadedge.c (threadedge_initialize_values): Move...
8127         (jump_threader::jump_threader): ...here.
8128         (threadedge_finalize_values): Move...
8129         (jump_threader::~jump_threader): ...here.
8130         (jump_threader::remove_jump_threads_including): New.
8131         (jump_threader::thread_through_all_blocks): New.
8132         (record_temporary_equivalences_from_phis): Move...
8133         (jump_threader::record_temporary_equivalences_from_phis): ...here.
8134         (record_temporary_equivalences_from_stmts_at_dest): Move...
8135         (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
8136         Here...
8137         (simplify_control_stmt_condition_1): Move to jump_threader class.
8138         (simplify_control_stmt_condition): Move...
8139         (jump_threader::simplify_control_stmt_condition): ...here.
8140         (thread_around_empty_blocks): Move...
8141         (jump_threader::thread_around_empty_blocks): ...here.
8142         (thread_through_normal_block): Move...
8143         (jump_threader::thread_through_normal_block): ...here.
8144         (thread_across_edge): Move...
8145         (jump_threader::thread_across_edge): ...here.
8146         (thread_outgoing_edges): Move...
8147         (jump_threader::thread_outgoing_edges): ...here.
8148         * tree-ssa-threadedge.h: Move externally facing functings...
8149         (class jump_threader): ...here...
8150         (class jump_threader_simplifier): ...and here.
8151         * tree-ssa-threadupdate.c (struct redirection_data): Remove comment.
8152         (jump_thread_path_allocator::jump_thread_path_allocator): New.
8153         (jump_thread_path_allocator::~jump_thread_path_allocator): New.
8154         (jump_thread_path_allocator::allocate_thread_edge): New.
8155         (jump_thread_path_allocator::allocate_thread_path): New.
8156         (jump_thread_path_registry::jump_thread_path_registry): New.
8157         (jump_thread_path_registry::~jump_thread_path_registry): New.
8158         (jump_thread_path_registry::allocate_thread_edge): New.
8159         (jump_thread_path_registry::allocate_thread_path): New.
8160         (dump_jump_thread_path): Make extern.
8161         (debug (const vec<jump_thread_edge *> &path)): New.
8162         (struct removed_edges): Move to tree-ssa-threadupdate.h.
8163         (struct thread_stats_d): Remove.
8164         (remove_ctrl_stmt_and_useless_edges): Make static.
8165         (lookup_redirection_data): Move...
8166         (jump_thread_path_registry::lookup_redirection_data): ...here.
8167         (ssa_redirect_edges): Make static.
8168         (thread_block_1): Move...
8169         (jump_thread_path_registry::thread_block_1): ...here.
8170         (thread_block): Move...
8171         (jump_thread_path_registry::thread_block): ...here.
8172         (thread_through_loop_header):  Move...
8173         (jump_thread_path_registry::thread_through_loop_header): ...here.
8174         (mark_threaded_blocks): Move...
8175         (jump_thread_path_registry::mark_threaded_blocks): ...here.
8176         (debug_path): Move...
8177         (jump_thread_path_registry::debug_path): ...here.
8178         (debug_all_paths): Move...
8179         (jump_thread_path_registry::dump): ..here.
8180         (rewire_first_differing_edge): Move...
8181         (jump_thread_path_registry::rewire_first_differing_edge): ...here.
8182         (adjust_paths_after_duplication): Move...
8183         (jump_thread_path_registry::adjust_paths_after_duplication): ...here.
8184         (duplicate_thread_path): Move...
8185         (jump_thread_path_registry::duplicate_thread_path): ..here.
8186         (remove_jump_threads_including): Move...
8187         (jump_thread_path_registry::remove_jump_threads_including): ...here.
8188         (thread_through_all_blocks): Move to...
8189         (jump_thread_path_registry::thread_through_all_blocks): ...here.
8190         (delete_jump_thread_path): Remove.
8191         (register_jump_thread): Move...
8192         (jump_thread_path_registry::register_jump_thread): ...here.
8193         * tree-ssa-threadupdate.h: Move externally facing functions...
8194         (class jump_thread_path_allocator): ...here...
8195         (class jump_thread_path_registry): ...and here.
8196         (thread_through_all_blocks): Remove.
8197         (struct removed_edges): New.
8198         (register_jump_thread): Remove.
8199         (remove_jump_threads_including): Remove.
8200         (delete_jump_thread_path): Remove.
8201         (remove_ctrl_stmt_and_useless_edges): Remove.
8202         (free_dom_edge_info): New prototype.
8203         * tree-vrp.c: Remove x_vr_values hack.
8204         (class vrp_jump_threader_simplifier): New.
8205         (vrp_jump_threader_simplifier::simplify): New.
8206         (vrp_jump_threader::vrp_jump_threader): Adjust method signature.
8207         Remove m_dummy_cond.
8208         Instantiate m_simplifier and m_threader.
8209         (vrp_jump_threader::thread_through_all_blocks): New.
8210         (vrp_jump_threader::simplify_stmt): Remove.
8211         (vrp_jump_threader::after_dom_children): Do not set m_dummy_cond.
8212         Remove x_vr_values hack.
8213         (execute_vrp): Adjust for thread_through_all_blocks being in a
8214         class.
8215
8216 2021-04-30  Christophe Lyon  <christophe.lyon@linaro.org>
8217
8218         * genflags.c (gen_insn): Print failed expansion string.
8219
8220 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
8221
8222         * expr.c (alignment_for_piecewise_move): Call mode_for_size
8223         without limit to MAX_FIXED_MODE_SIZE.
8224
8225 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
8226
8227         PR middle-end/90773
8228         * builtins.c (builtin_memset_gen_str): Don't use return from
8229         simplify_gen_subreg.
8230
8231 2021-04-30  Uroš Bizjak  <ubizjak@gmail.com>
8232
8233         PR target/98060
8234         * config/i386/i386.md (*add<mode>3_carry_0r): New insn pattern.
8235         (*addsi3_carry_zext_0r): Ditto.
8236         (*sub<mode>3_carry_0): Ditto.
8237         (*subsi3_carry_zext_0r): Ditto.
8238         * config/i386/predicates.md (ix86_carry_flag_unset_operator):
8239         New predicate.
8240         * config/i386/i386.c (ix86_rtx_costs) <case PLUS, case MINUS>:
8241         Also consider ix86_carry_flag_unset_operator to calculate
8242         the cost of adc/sbb insn.
8243
8244 2021-04-30  Roman Zhuykov  <zhroma@ispras.ru>
8245
8246         PR rtl-optimization/100225
8247         PR rtl-optimization/84878
8248         * modulo-sched.c (sms_schedule): Use note_stores to skip loops
8249         where we have an instruction which touches (writes) any hard
8250         register from df->regular_block_artificial_uses set.
8251         Allow not-single-set instruction only right before basic block
8252         tail.
8253
8254 2021-04-30  Geng Qi  <gengqi@linux.alibaba.com>
8255
8256         * config/riscv/riscv.opt (march=,mabi=): Negative itself.
8257
8258 2021-04-30  LevyHsu  <admin@levyhsu.com>
8259
8260         * config/riscv/riscv.c (riscv_min_arithmetic_precision): New.
8261         * config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New.
8262         * config/riscv/riscv.md (addv<mode>4, uaddv<mode>4): New.
8263         (subv<mode>4, usubv<mode>4, mulv<mode>4, umulv<mode>4): New.
8264
8265 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
8266
8267         * config.gcc: Merged x86 and x86_64 cpu_type-setting cases.
8268
8269 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
8270
8271         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to...
8272         (ASM_OUTPUT_MAX_SKIP_ALIGN): ... this.  Enclose in do/while(0).
8273         * config/i386/i386.c: Adjust.
8274         * config/i386/i386.md: Adjust.
8275         * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop.
8276         * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8277         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8278         * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8279         * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8280         * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8281         * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8282         * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8283         * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8284         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8285         (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
8286
8287 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
8288
8289         * config/i386/i386-expand.c (ix86_expand_int_compare):
8290         Swap operands of GTU and LEU comparison to emit carry flag comparison.
8291         * config/i386/i386.md (*add<mode>3_carry_0): Change insn
8292         predicate to allow more combine opportunities with memory operands.
8293         (*sub<mode>3_carry_0): Ditto.
8294
8295 2021-04-29  Richard Sandiford  <richard.sandiford@arm.com>
8296
8297         PR rtl-optimization/100303
8298         * rtl-ssa/accesses.cc (function_info::make_use_available): Take a
8299         boolean that indicates whether the use will only be used in
8300         debug instructions.  Treat it in the same way that existing
8301         cross-EBB debug references would be handled if so.
8302         (function_info::make_uses_available): Likewise.
8303         * rtl-ssa/functions.h (function_info::make_uses_available): Update
8304         prototype accordingly.
8305         (function_info::make_uses_available): Likewise.
8306         * fwprop.c (try_fwprop_subst): Update call accordingly.
8307
8308 2021-04-29  Jeff Law  <jlaw@tachyum.com>
8309
8310         * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside
8311         of RTX_CODE guard.
8312
8313 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
8314             Richard Biener  <rguenther@suse.de>
8315
8316         PR target/100312
8317         * config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD)
8318         (IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256)
8319         (IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD)
8320         (IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256)
8321         (IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS
8322         to PURE_ARGS category.
8323         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
8324         Handle PURE_ARGS category.
8325         * config/i386/i386-expand.c (ix86_expand_builtin): Ditto.
8326
8327 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
8328
8329         * configure.ac: Check for the presence of sys/locking.h header and
8330         for whether _LK_LOCK is supported by _locking.
8331         * configure: Regenerate.
8332         * config.in: Likewise.
8333         * gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK.
8334         * gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING.
8335         * system.h: Include <sys/locking.h> if HAVE_SYS_LOCKING_H.
8336
8337 2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
8338
8339         * config/i386/predicates.md (fcmov_comparison_operator):
8340         Do not check for trivial FP comparison operator.
8341         <case GEU, case LTU>: Allow CCGZmode.
8342         <case GTU, case LEU>: Do not allow CCCmode.
8343         (ix86_comparison_operator) <case GTU, case LEU>: Allow only CCmode.
8344         (ix86_carry_flag_operator): Match only LTU and UNLT code.
8345         Do not check for trivial FP comparison operator.  Allow CCGZmode.
8346
8347 2021-04-29  Tom de Vries  <tdevries@suse.de>
8348
8349         * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of
8350         fd->loop.step by either step or orig_step.
8351
8352 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
8353
8354         * config/sparc/sparc.c (gen_load_pcrel_sym): Delete.
8355         (load_got_register): Do the PIC dance here.
8356         (sparc_legitimize_tls_address): Simplify.
8357         (sparc_emit_probe_stack_range): Likewise.
8358         (sparc32_initialize_trampoline): Likewise.
8359         (sparc64_initialize_trampoline): Likewise.
8360         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Add @ marker.
8361         (probe_stack_range<P:mode>): Likewise.
8362         (flush<P:mode>): Likewise.
8363         (tgd_hi22<P:mode>): Likewise.
8364         (tgd_lo10<P:mode>): Likewise.
8365         (tgd_add<P:mode>): Likewise.
8366         (tgd_call<P:mode>): Likewise.
8367         (tldm_hi22<P:mode>): Likewise.
8368         (tldm_lo10<P:mode>): Likewise.
8369         (tldm_add<P:mode>): Likewise.
8370         (tldm_call<P:mode>): Likewise.
8371         (tldo_hix22<P:mode>): Likewise.
8372         (tldo_lox10<P:mode>): Likewise.
8373         (tldo_add<P:mode>): Likewise.
8374         (tie_hi22<P:mode>): Likewise.
8375         (tie_lo10<P:mode>): Likewise.
8376         (tie_add<P:mode>): Likewise.
8377         (tle_hix22<P:mode>): Likewise.
8378         (tle_lox10<P:mode>): Likewise.
8379         (stack_protect_setsi): Rename to...
8380         (stack_protect_set32): ...this.
8381         (stack_protect_setdi): Rename to...
8382         (stack_protect_set64): ...this.
8383         (stack_protect_set): Adjust calls to above.
8384         (stack_protect_testsi): Rename to...
8385         (stack_protect_test32): ...this.
8386         (stack_protect_testdi): Rename to...
8387         (stack_protect_test64): ...this.
8388         (stack_protect_test): Adjust calls to above.
8389
8390 2021-04-29  H.J. Lu  <hjl.tools@gmail.com>
8391
8392         PR middle-end/90773
8393         * builtins.c (builtin_memcpy_read_str): Add a dummy argument.
8394         (builtin_strncpy_read_str): Likewise.
8395         (builtin_memset_read_str): Add an argument for the previous RTL
8396         information and generate the new RTL from the previous RTL info.
8397         (builtin_memset_gen_str): Likewise.
8398         * builtins.h (builtin_strncpy_read_str): Update the prototype.
8399         (builtin_memset_read_str): Likewise.
8400         * expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p()
8401         returns true, round up size and alignment to the widest integer
8402         mode for maximum size.
8403         (pieces_addr::adjust): Add a pointer to by_pieces_prev argument
8404         and pass it to m_constfn.
8405         (op_by_pieces_d): Add m_push and m_overlap_op_by_pieces.
8406         (op_by_pieces_d::op_by_pieces_d): Add a bool argument to
8407         initialize m_push.  Initialize m_overlap_op_by_pieces with
8408         targetm.overlap_op_by_pieces_p ().
8409         (op_by_pieces_d::run): Pass the previous RTL information to
8410         pieces_addr::adjust and generate overlapping operations if
8411         m_overlap_op_by_pieces is true.
8412         (PUSHG_P): New.
8413         (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d
8414         change.
8415         (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d
8416         change.
8417         (can_store_by_pieces): Use by_pieces_constfn on constfun.
8418         (store_by_pieces): Use by_pieces_constfn on constfun.  Updated
8419         for op_by_pieces_d change.
8420         (clear_by_pieces_1): Add a dummy argument.
8421         (clear_by_pieces): Updated for op_by_pieces_d change.
8422         (compare_by_pieces_d::compare_by_pieces_d): Likewise.
8423         (string_cst_read_str): Add a dummy argument.
8424         * expr.h (by_pieces_constfn): Add a dummy argument.
8425         (by_pieces_prev): New.
8426         * target.def (overlap_op_by_pieces_p): New target hook.
8427         * config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New.
8428         * doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P.
8429         * doc/tm.texi: Regenerated.
8430
8431 2021-04-29  Richard Biener  <rguenther@suse.de>
8432
8433         PR tree-optimization/100253
8434         * tree-vect-stmts.c (vectorizable_load): Do not assume
8435         element alignment when DR_MISALIGNMENT is -1.
8436         (vectorizable_store): Likewise.
8437
8438 2021-04-29  Jakub Jelinek  <jakub@redhat.com>
8439
8440         PR target/100302
8441         * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
8442         absu_hwi instead of abs_hwi.
8443
8444 2021-04-29  Richard Biener  <rguenther@suse.de>
8445
8446         PR middle-end/38474
8447         * tree-ssa-structalias.c (add_graph_edge): Avoid direct
8448         forwarding when indirect forwarding through ESCAPED
8449         alread happens.
8450
8451 2021-04-29  Tom de Vries  <tdevries@suse.de>
8452
8453         PR target/100232
8454         * internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC)
8455         (expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED)
8456         (expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY)
8457         (expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to.
8458
8459 2021-04-29  Richard Biener  <rguenther@suse.de>
8460
8461         PR tree-optimization/99912
8462         * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New.
8463         (dse_dom_walker::todo): Likewise.
8464         (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the
8465         caller.
8466         (dse_dom_walker::before_dom_children): Remove trivially
8467         dead SSA defs and schedule CFG cleanup if we removed all
8468         PHIs in a block.
8469         (pass_dse::execute): Get TODO as computed by the DOM walker
8470         and return it.  Wipe dominator info earlier.
8471
8472 2021-04-29  Richard Biener  <rguenther@suse.de>
8473
8474         PR ipa/100308
8475         * ipa-prop.c (ipcp_modif_dom_walker::before_dom_children):
8476         Track blocks to cleanup EH in new m_need_eh_cleanup.
8477         (ipcp_modif_dom_walker::cleanup_eh): New.
8478         (ipcp_transform_function): Release dominator info before
8479         doing EH cleanup.
8480
8481 2021-04-29  Martin Sebor  <msebor@redhat.com>
8482
8483         PR middle-end/100250
8484         * attribs.c (attr_access::array_as_string): Avoid dereferencing
8485         a pointer when it's null.
8486
8487 2021-04-29  Martin Sebor  <msebor@redhat.com>
8488
8489         * Makefile.in (OBJS): Add ipa-free-lang-data.o.
8490         * ipa-free-lang-data.cc: New file.
8491         * tree.c: Move pass free_lang_data to file above.
8492          (build_array_type_1): Declare extern.
8493         * tree.h (build_array_type_1): Declare.
8494
8495 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8496
8497         * config/aarch64/aarch64-simd-builtins.def: Modify comment to
8498         make consistent with updated RTL pattern.
8499         * config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>):
8500         Implement using ss_truncate and us_truncate rather than
8501         unspecs.
8502         * config/aarch64/iterators.md: Remove redundant unspecs and
8503         iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively.
8504
8505 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8506
8507         * config/aarch64/arm_acle.h (__attribute__): Make intrinsic
8508         attributes consistent with those defined in arm_neon.h.
8509
8510 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8511
8512         * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic
8513         attributes consistent with those defined in arm_neon.h.
8514
8515 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8516
8517         * config/aarch64/aarch64-simd-builtins.def: Add
8518         float_trunc_rodd builtin generator macros.
8519         * config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df):
8520         Define.
8521         (aarch64_float_trunc_rodd_lo_v2sf): Define.
8522         (aarch64_float_trunc_rodd_hi_v4sf_le): Define.
8523         (aarch64_float_trunc_rodd_hi_v4sf_be): Define.
8524         (aarch64_float_trunc_rodd_hi_v4sf): Define.
8525         * config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin
8526         instead of inline asm.
8527         (vcvtx_high_f32_f64): Likewise.
8528         (vcvtxd_f32_f64): Likewise.
8529         * config/aarch64/iterators.md: Add FCVTXN unspec.
8530
8531 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8532
8533         * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin
8534         generator macros.
8535         * config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>):
8536         Define.
8537         * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin
8538         instead of inline asm.
8539         (vqtbx1_u8): Likewise.
8540         (vqtbx1_p8): Likewise.
8541         (vqtbx1q_s8): Likewise.
8542         (vqtbx1q_u8): Likewise.
8543         (vqtbx1q_p8): Likewise.
8544         (vtbx2_s8): Likewise.
8545         (vtbx2_u8): Likewise.
8546         (vtbx2_p8): Likewise.
8547
8548 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8549
8550         * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin
8551         generator macros.
8552         * config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin
8553         instead of inline asm.
8554         (vqtbl1_s8): Likewise.
8555         (vqtbl1_u8): Likewise.
8556         (vqtbl1q_p8): Likewise.
8557         (vqtbl1q_s8): Likewise.
8558         (vqtbl1q_u8): Likewise.
8559         (vtbl1_s8): Likewise.
8560         (vtbl1_u8): Likewise.
8561         (vtbl1_p8): Likewise.
8562         (vtbl2_s8): Likewise.
8563         (vtbl2_u8): Likewise.
8564         (vtbl2_p8): Likewise.
8565
8566 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8567
8568         * config/aarch64/aarch64-simd-builtins.def: Add polynomial
8569         ssri_n buitin generator macro.
8570         * config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin
8571         instead of inline asm.
8572         (vsri_n_p16): Likewise.
8573         (vsri_n_p64): Likewise.
8574         (vsriq_n_p8): Likewise.
8575         (vsriq_n_p16): Likewise.
8576         (vsriq_n_p64): Likewise.
8577
8578 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8579
8580         * config/aarch64/aarch64-simd-builtins.def: Use VALLP mode
8581         iterator for polynomial ssli_n builtin generator macro.
8582         * config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin
8583         instead of inline asm.
8584         (vsli_n_p16): Likewise.
8585         (vsliq_n_p8): Likewise.
8586         (vsliq_n_p16): Likewise.
8587         * config/aarch64/iterators.md: Define VALLP mode iterator.
8588
8589 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8590
8591         * config/aarch64/aarch64-simd-builtins.def: Use VDQV_L
8592         iterator to generate [su]adalp RTL builtins.
8593         * config/aarch64/aarch64-simd.md: Use VDQV_L iterator in
8594         [su]adalp RTL pattern.
8595         * config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin
8596         instead of inline asm.
8597         (vpadal_u32): Likewise.
8598
8599 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8600
8601         * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp
8602         builtin generator macros.
8603         * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>):
8604         Define.
8605         * config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin
8606         instead of inline asm.
8607         (vpaddl_s16): Likewise.
8608         (vpaddl_s32): Likewise.
8609         (vpaddl_u8): Likewise.
8610         (vpaddl_u16): Likewise.
8611         (vpaddl_u32): Likewise.
8612         (vpaddlq_s8): Likewise.
8613         (vpaddlq_s16): Likewise.
8614         (vpaddlq_s32): Likewise.
8615         (vpaddlq_u8): Likewise.
8616         (vpaddlq_u16): Likewise.
8617         (vpaddlq_u32): Liwewise.
8618         * config/aarch64/iterators.md: Define [SU]ADDLP unspecs with
8619         appropriate attributes.
8620
8621 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8622
8623         * config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator
8624         for aarch64_addp<mode> builtin macro generator.
8625         * config/aarch64/aarch64-simd.md: Use VDQ_I iterator in
8626         aarch64_addp<mode> RTL pattern.
8627         * config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin
8628         instead of inline asm.
8629         (vpaddq_s16): Likewise.
8630         (vpaddq_s32): Likewise.
8631         (vpaddq_s64): Likewise.
8632         (vpaddq_u8): Likewise.
8633         (vpaddq_u16): Likewise.
8634         (vpaddq_u32): Likewise.
8635         (vpaddq_u64): Likewise.
8636
8637 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8638
8639         * config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n
8640         builtin generator macros.
8641         * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_n<mode>):
8642         Define.
8643         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin
8644         instead of inline asm.
8645         (vqdmulh_n_s32): Likewise.
8646         (vqdmulhq_n_s16): Likewise.
8647         (vqdmulhq_n_s32): Likewise.
8648         (vqrdmulh_n_s16): Likewise.
8649         (vqrdmulh_n_s32): Likewise.
8650         (vqrdmulhq_n_s16): Likewise.
8651         (vqrdmulhq_n_s32): Likewise.
8652
8653 2021-04-28  Tobias Burnus  <tobias@codesourcery.com>
8654
8655         * doc/install.texi (--enable-offload-defaulted): Document.
8656
8657 2021-04-28  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
8658
8659         * config/avr/avr-dimode.md: Turn existing patterns into
8660         define_insn_and_split style patterns where the splitter
8661         adds a clobber of the condition code register.  Drop "cc"
8662         attribute.  Add new patterns to match output of
8663         the splitters.
8664         * config/avr/avr-fixed.md: Likewise.
8665         * config/avr/avr.c (cc_reg_rtx): New.
8666         (avr_parallel_insn_from_insns): Adjust insn count
8667         for removal of set of cc0.
8668         (avr_is_casesi_sequence): Likewise.
8669         (avr_casei_sequence_check_operands): Likewise.
8670         (avr_optimize_casesi): Likewise. Also insert
8671         new insns after jump_insn.
8672         (avr_pass_casesi::avr_rest_of_handle_casesi): Adjust
8673         for removal of set of cc0.
8674         (avr_init_expanders): Initialize cc_reg_rtx.
8675         (avr_regno_reg_class): Handle REG_CC.
8676         (cond_string): Remove usage of CC_OVERFLOW_UNUSABLE.
8677         (avr_notice_update_cc): Remove function.
8678         (ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE.
8679         (compare_condition): Adjust for PARALLEL with
8680         REG_CC clobber.
8681         (out_shift_with_cnt): Likewise.
8682         (ashlhi3_out): Likewise.
8683         (ashrhi3_out): Likewise.
8684         (lshrhi3_out): Likewise.
8685         (avr_class_max_nregs): Return single reg for REG_CC.
8686         (avr_compare_pattern): Check for REG_CC instead
8687         of cc0_rtx.
8688         (avr_reorg_remove_redundant_compare): Likewise.
8689         (avr_reorg):Adjust for PARALLEL with REG_CC clobber.
8690         (avr_hard_regno_nregs): Return single reg for REG_CC.
8691         (avr_hard_regno_mode_ok): Allow only CCmode for REG_CC.
8692         (avr_md_asm_adjust): Clobber REG_CC.
8693         (TARGET_HARD_REGNO_NREGS): Define.
8694         (TARGET_CLASS_MAX_NREGS): Define.
8695         (TARGET_MD_ASM_ADJUST): Define.
8696         * config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust
8697         for REG_CC.
8698         (enum reg_class): Add CC_REG class.
8699         (NOTICE_UPDATE_CC): Remove.
8700         (CC_OVERFLOW_UNUSABLE): Remove.
8701         (CC_NO_CARRY): Remove.
8702         * config/avr/avr.md: Turn existing patterns into
8703         define_insn_and_split style patterns where the splitter
8704         adds a clobber of the condition code register.  Drop "cc"
8705         attribute.  Add new patterns to match output of
8706         the splitters.
8707         (sez): Remove unused pattern.
8708
8709 2021-04-28  Richard Earnshaw  <rearnsha@arm.com>
8710
8711         PR target/100311
8712         * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be
8713         used in HImode.
8714
8715 2021-04-28  Richard Sandiford  <richard.sandiford@arm.com>
8716
8717         PR target/100305
8718         * config/aarch64/constraints.md (Utq): Require the address to
8719         be valid for both the element mode and for V2DImode.
8720
8721 2021-04-28  Jakub Jelinek  <jakub@redhat.com>
8722             Tobias Burnus  <tobias@codesourcery.com>
8723
8724         * configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted.
8725         * gcc.c (process_command): New variable.
8726         (driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED,
8727         set it if -foffload is defaulted.
8728         * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
8729         (compile_offload_image): If OFFLOAD_DEFAULTED and
8730         OFFLOAD_TARGET_DEFAULT is in the environment, don't fail
8731         if corresponding mkoffload can't be found.
8732         (compile_images_for_offload_targets): Likewise.  Free and clear
8733         offload_names if no valid offload is found.
8734         * config.in: Regenerate.
8735         * configure: Regenerate.
8736
8737 2021-04-28  Richard Biener  <rguenther@suse.de>
8738
8739         PR tree-optimization/100292
8740         * tree-vect-generic.c (expand_vector_condition): Do not fold
8741         the comparisons.
8742
8743 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
8744
8745         * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New.
8746         * config/rs6000/aix64.opt (m64): New.
8747         (m32): New.
8748
8749 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
8750
8751         * config/vax/vax.c (print_operand_address, vax_address_cost_1)
8752         (index_term_p): Handle ASHIFT too.
8753
8754 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
8755
8756         * config/vax/builtins.md (jbb<ccss>i<mode>): Remove operand #3.
8757         (sync_lock_test_and_set<mode>): Adjust accordingly.
8758         (sync_lock_release<mode>): Likewise.
8759
8760 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
8761
8762         * config/vax/vax-protos.h (adjacent_operands_p): Remove
8763         prototype.
8764         * config/vax/vax.c (adjacent_operands_p): Remove.
8765
8766 2021-04-27  Maciej W. Rozycki  <macro@linux-mips.org>
8767
8768         * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall
8769         through to the non-conditional execution case if getting the
8770         condition for conditional execution has failed.
8771
8772 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
8773
8774         PR middle-end/100284
8775         * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test.
8776         * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather
8777         than asserting on it.
8778
8779 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
8780
8781         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect
8782         with TARGET_AIX_OS.
8783
8784 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
8785
8786         PR target/94177
8787         * calls.c (precompute_register_parameters): Additionally test
8788         targetm.precompute_tls_p to pre-compute argument.
8789         * config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define.
8790         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New.
8791         * target.def (precompute_tls_p): New.
8792         * doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation.
8793         * doc/tm.texi: Regenerated.
8794
8795 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8796
8797         PR target/100200
8798         * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL
8799         back to HOST_WIDE_INT.
8800
8801 2021-04-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8802
8803         PR target/100106
8804         * simplify-rtx.c (simplify_context::simplify_subreg): Check the
8805         memory alignment for the outer mode.
8806
8807 2021-04-27  H.J. Lu  <hjl.tools@gmail.com>
8808
8809         PR middle-end/90773
8810         * expr.c (op_by_pieces_d::get_usable_mode): New member function.
8811         (op_by_pieces_d::run): Cange a while loop to a do-while loop.
8812
8813 2021-04-27  Alex Coplan  <alex.coplan@arm.com>
8814
8815         PR target/99977
8816         * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen
8817         with negative immediates: ensure we expand cbranchsi4_scratch
8818         correctly and ensure we satisfy its constraints.
8819         * config/arm/sync.md
8820         (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't
8821         attempt to tie two output operands together with constraints;
8822         collapse two alternatives.
8823         (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise.
8824         * config/arm/thumb1.md (cbranchsi4_neg_late): New.
8825
8826 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8827
8828         PR target/100200
8829         * config/aarch64/predicates.md (aarch64_sub_immediate,
8830         aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL.
8831         * config/aarch64/aarch64.md (casesi, rotl<mode>3): Likewise.
8832         * config/aarch64/aarch64.c (aarch64_print_operand,
8833         aarch64_split_atomic_op, aarch64_expand_subvti): Likewise.
8834
8835 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8836
8837         PR tree-optimization/100239
8838         * tree-vect-generic.c (lower_vec_perm): Don't accept constant
8839         permutations with all indices from the first zero element as vec_shl.
8840
8841 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8842
8843         PR rtl-optimization/100254
8844         * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
8845         last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.
8846
8847 2021-04-27  Richard Biener  <rguenther@suse.de>
8848
8849         PR tree-optimization/99912
8850         * passes.def: Add comment about new TODO_remove_unused_locals.
8851         * tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals
8852         at start.
8853
8854 2021-04-27  Richard Biener  <rguenther@suse.de>
8855
8856         PR tree-optimization/99912
8857         * passes.def (pass_all_optimizations): Add pass_dse before
8858         the first pass_dce, move the first pass_dse before the
8859         pass_dce following pass_pre.
8860
8861 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8862
8863         PR tree-optimization/95527
8864         * generic-match-head.c: Include tm.h.
8865         * gimple-match-head.c: Include tm.h.
8866         * match.pd (CLZ == INTEGER_CST): Don't use
8867         #ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO
8868         if clz == CFN_CLZ.  Add missing val declaration.
8869         (CTZ cmp CST): New simplifications.
8870
8871 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8872
8873         PR tree-optimization/96696
8874         * expr.c (expand_expr_divmod): New function.
8875         (expand_expr_real_2) <case TRUNC_DIV_EXPR>: Use it for truncations and
8876         divisions.  Formatting fixes.
8877         <case MULT_EXPR>: Optimize x / y * y as x - x % y if the latter is
8878         cheaper.
8879
8880 2021-04-27  Martin Jambor  <mjambor@suse.cz>
8881
8882         PR ipa/99951
8883         * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
8884         If removing a call statement LHS SSA name, release it.
8885
8886 2021-04-27  Richard Earnshaw  <rearnsha@arm.com>
8887
8888         PR target/100236
8889         * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM
8890         is valid before including it in the mask.
8891
8892 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
8893
8894         PR target/100270
8895         * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle
8896         SVE attributes.
8897
8898 2021-04-27  Richard Biener  <rguenther@suse.de>
8899
8900         PR tree-optimization/100051
8901         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add
8902         disambiguator based on access size vs. decl size.
8903
8904 2021-04-27  Richard Biener  <rguenther@suse.de>
8905
8906         PR tree-optimization/100278
8907         * tree-ssa-pre.c (compute_avail): Give up when we cannot
8908         adjust TBAA beacuse of mismatching bases.
8909
8910 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8911
8912         PR target/99405
8913         * config/i386/i386.md (*<insn><mode>3_mask, *<insn><mode>3_mask_1):
8914         For any_rotate define_insn_split and following splitters, use
8915         SWI iterator instead of SWI48.
8916
8917 2021-04-27  Richard Biener  <rguenther@suse.de>
8918
8919         PR tree-optimization/99776
8920         * match.pd (bit_field_ref (ctor)): Relax element extract
8921         type compatibility checks.
8922
8923 2021-04-27  Cui,Lili  <lili.cui@intel.com>
8924
8925         * common/config/i386/i386-common.c (processor_names):
8926         Sync processor_names with processor_type.
8927         * config/i386/i386-options.c (processor_cost_table):
8928         Sync processor_cost_table with processor_type.
8929
8930 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8931
8932         * value-range.cc (irange::irange_set_1bit_anti_range): Add assert.
8933         (irange::set): Call irange_set_1bit_anti_range for handling all
8934         1-bit ranges.  Fall through on ~[MIN,MAX].
8935
8936 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8937
8938         * value-range.cc (irange::legacy_num_pairs): Remove.
8939         (irange::invert): Change gcc_assert to gcc_checking_assert.
8940         * value-range.h (irange::num_pairs): Adjust for a cached
8941         num_pairs().  Also, rename all gcc_assert's to
8942         gcc_checking_assert's.
8943
8944 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8945
8946         * value-range.cc (irange::operator=): Set m_kind.
8947         (irange::copy_to_legacy): Handle varying and undefined sources
8948         as a legacy copy since they can be easily copied.
8949         (irange::irange_set): Set m_kind.
8950         (irange::irange_set_anti_range): Same.
8951         (irange::set): Rename normalize_min_max to normalize_kind.
8952         (irange::verify_range): Adjust for multi-ranges having the
8953         m_kind field set.
8954         (irange::irange_union): Set m_kind.
8955         (irange::irange_intersect): Same.
8956         (irange::invert): Same.
8957         * value-range.h (irange::kind): Always return m_kind.
8958         (irange::varying_p): Rename to...
8959         (irange::varying_comptaible_p): ...this.
8960         (irange::undefined_p): Only look at m_kind.
8961         (irange::irange): Always set VR_UNDEFINED if applicable.
8962         (irange::set_undefined): Always set VR_UNDEFINED.
8963         (irange::set_varying): Always set m_kind to VR_VARYING.
8964         (irange::normalize_min_max): Rename to...
8965         (irange::normalize_kind): ...this.
8966
8967 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8968
8969         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
8970         Adjust for constant_p including varying_p.
8971         * tree-vrp.c (vrp_prop::finalize): Same.
8972         (determine_value_range): Same.
8973         * vr-values.c (vr_values::range_of_expr): Same.
8974         * value-range.cc (irange::symbolic_p): Do not check varying_p.
8975         (irange::constant_p): Same.
8976
8977 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8978
8979         * value-range.cc (irange::legacy_lower_bound): Replace
8980           !undefined_p check with num_ranges > 0.
8981         (irange::legacy_upper_bound): Same.
8982         * value-range.h (irange::type): Same.
8983         (irange::lower_bound): Same.
8984         (irange::upper_bound): Same.
8985
8986 2021-04-26  Richard Biener  <rguenther@suse.de>
8987
8988         PR tree-optimization/99956
8989         * gimple-loop-interchange.cc (compute_access_stride):
8990         Try instantiating the access in a shallower loop nest
8991         if instantiating failed.
8992         (compute_access_strides): Pass adjustable loop_nest
8993         to compute_access_stride.
8994
8995 2021-04-26  Christophe Lyon  <christophe.lyon@linaro.org>
8996
8997         * doc/sourcebuild.texi (arm_cmse_hw): Document.
8998
8999 2021-04-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9000
9001         * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF.
9002
9003 2021-04-26  Thomas Schwinge  <thomas@codesourcery.com>
9004             Nathan Sidwell  <nathan@codesourcery.com>
9005             Tom de Vries  <vries@codesourcery.com>
9006             Julian Brown  <julian@codesourcery.com>
9007             Kwok Cheung Yeung  <kcy@codesourcery.com>
9008
9009         * omp-offload.c (oacc_validate_dims): Implement
9010         '-Wopenacc-parallelism'.
9011         * doc/invoke.texi (-Wopenacc-parallelism): Document.
9012
9013 2021-04-26  Richard Biener  <rguenther@suse.de>
9014
9015         * tree-cfg.h (gimplify_build1): Remove.
9016         (gimplify_build2): Likewise.
9017         (gimplify_build3): Likewise.
9018         * tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c.
9019         (gimplify_build2): Likewise.
9020         (gimplify_build3): Likewise.
9021         * tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c.
9022         Modernize.
9023         (gimplify_build2): Likewise.
9024         (gimplify_build3): Likewise.
9025         (tree_vec_extract): Use resimplify with following SSA edges.
9026         (expand_vector_parallel): Avoid passing NULL size/bitpos
9027         to tree_vec_extract.
9028         * expr.c (store_constructor): Deal with zero-element CTORs.
9029         * match.pd (bit_field_ref <vector CTOR>): Make sure to
9030         produce vector constants when possible.
9031
9032 2021-04-26  Richard Biener  <rguenther@suse.de>
9033
9034         * tree-complex.c: Include gimple-fold.h.
9035         (expand_complex_addition): Use gimple_build.
9036         (expand_complex_multiplication_components): Likewise.
9037         (expand_complex_multiplication): Likewise.
9038         (expand_complex_div_straight): Likewise.
9039         (expand_complex_div_wide): Likewise.
9040         (expand_complex_division): Likewise.
9041         (expand_complex_conjugate): Likewise.
9042         (expand_complex_comparison): Likewise.
9043
9044 2021-04-26  Richard Biener  <rguenther@suse.de>
9045
9046         * tree-ssa-phiopt.c (two_value_replacement): Remove use
9047         of legacy gimplify_buildN API.
9048
9049 2021-04-26  Richard Biener  <rguenther@suse.de>
9050
9051         PR tree-optimization/99473
9052         * tree-ssa-phiopt.c (cond_store_replacement): Handle all
9053         stores.
9054
9055 2021-04-26  Richard Biener  <rguenther@suse.de>
9056
9057         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin):
9058         Use replace_call_with_value.
9059
9060 2021-04-26  Richard Biener  <rguenther@suse.de>
9061
9062         * tree-ssa-propagate.h (valid_gimple_rhs_p): Remove.
9063         (update_gimple_call): Likewise.
9064         (update_call_from_tree): Likewise.
9065         * tree-ssa-propagate.c (valid_gimple_rhs_p): Remove.
9066         (valid_gimple_call_p): Likewise.
9067         (move_ssa_defining_stmt_for_defs): Likewise.
9068         (finish_update_gimple_call): Likewise.
9069         (update_gimple_call): Likewise.
9070         (update_call_from_tree): Likewise.
9071         (propagate_tree_value_into_stmt): Use replace_call_with_value.
9072         * gimple-fold.h (update_gimple_call): Declare.
9073         * gimple-fold.c (valid_gimple_rhs_p): Move here from
9074         tree-ssa-propagate.c.
9075         (update_gimple_call): Likewise.
9076         (valid_gimple_call_p): Likewise.
9077         (finish_update_gimple_call): Likewise, and simplify.
9078         (gimplify_and_update_call_from_tree): Implement
9079         update_call_from_tree functionality, avoid excessive
9080         push/pop_gimplify_context.
9081         (gimple_fold_builtin): Use only gimplify_and_update_call_from_tree.
9082         (gimple_fold_call): Likewise.
9083         * gimple-ssa-sprintf.c (try_substitute_return_value): Likewise.
9084         * tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise.
9085         (pass_fold_builtins::execute): Likewise.
9086         (optimize_stack_restore): Use replace_call_with_value.
9087         * tree-cfg.c (fold_loop_internal_call): Likewise.
9088         * tree-ssa-dce.c (maybe_optimize_arith_overflow): Use
9089         only gimplify_and_update_call_from_tree.
9090         * tree-ssa-strlen.c (handle_builtin_strlen): Likewise.
9091         (handle_builtin_strchr): Likewise.
9092         * tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h.
9093
9094 2021-04-26  Jakub Jelinek  <jakub@redhat.com>
9095
9096         PR debug/100255
9097         * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
9098         vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
9099         register keywords.
9100
9101 2021-04-25  liuhongt  <hongtao.liu@intel.com>
9102
9103         PR target/98911
9104         * config/i386/i386-builtin.def (BDESC): Change the icode of
9105         the following builtins to CODE_FOR_nothing.
9106         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold
9107         IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128,
9108         IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ,
9109         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
9110         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
9111         IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128,
9112         IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ,
9113         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
9114         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256.
9115         * config/i386/sse.md (avx2_eq<mode>3): Deleted.
9116         (sse2_eq<mode>3): Ditto.
9117         (sse4_1_eqv2di3): Ditto.
9118         (sse2_gt<mode>3): Rename to ..
9119         (*sse2_gt<mode>3): .. this.
9120
9121 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
9122
9123         Revert:
9124         2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
9125
9126         PR target/100152
9127         * config/darwin.c (darwin_binds_local_p): Assume that any
9128         public symbol might be interposed for PIC code. Update function
9129         header comment to reflect current Darwin capability.
9130
9131 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
9132
9133         PR target/100152
9134         * config/darwin.c (darwin_binds_local_p): Assume that any
9135         public symbol might be interposed for PIC code. Update function
9136         header comment to reflect current Darwin capability.
9137
9138 2021-04-24  Richard Sandiford  <richard.sandiford@arm.com>
9139
9140         * doc/sourcebuild.texi: Document no-opts and any-opts target
9141         selectors.
9142
9143 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
9144
9145         * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm.
9146
9147 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
9148
9149         * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.
9150
9151 2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
9152
9153         PR target/100041
9154         * config/i386/i386-options.c (ix86_option_override_internal):
9155         Error out when -m96bit-long-double is used with 64bit targets.
9156         * config/i386/i386.md (*pushxf_rounded): Remove pattern.
9157
9158 2021-04-23  Martin Liska  <mliska@suse.cz>
9159
9160         * lto-wrapper.c: Remove FIXME about usage of
9161         hardware_concurrency. The function is not on par with
9162         what we have now.
9163
9164 2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>
9165
9166         PR target/100182
9167         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
9168         Copy operand 3 to operand 4.  Use sse_reg_operand
9169         as operand 3 predicate.
9170         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
9171         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
9172         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
9173         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
9174         Copy operand 1 to operand 0.
9175         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
9176         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
9177         (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.
9178
9179 2021-04-23  Alex Coplan  <alex.coplan@arm.com>
9180
9181         PR rtl-optimization/100230
9182         * early-remat.c (early_remat::sort_candidates): Use delete[]
9183         instead of delete for array allocated with new[].
9184
9185 2021-04-23  Richard Biener  <rguenther@suse.de>
9186
9187         * genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing.
9188         (capture_info::capture_info): Likewise.
9189         (capture_info::walk_match): Likewise.
9190         (expr::gen_transform): Likewise.
9191         (dt_simplify::gen_1): Likewise.
9192         * gimple-match-head.c (maybe_resimplify_conditional_op):
9193         Remove VEC_COND_EXPR special-casing.
9194         (gimple_simplify): Likewise.
9195         * gimple.c (gimple_could_trap_p_1): Adjust.
9196         * tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR
9197         to participate in PRE.
9198
9199 2021-04-23  Richard Biener  <rguenther@suse.de>
9200
9201         * cfganal.c (connect_infinite_loops_to_exit): First call
9202         add_noreturn_fake_exit_edges.
9203         * ipa-sra.c (process_scan_results): Do not call the now redundant
9204         add_noreturn_fake_exit_edges.
9205         * predict.c (tree_estimate_probability): Likewise.
9206         (rebuild_frequencies): Likewise.
9207         * store-motion.c (one_store_motion_pass): Likewise.
9208
9209 2021-04-23  Richard Biener  <rguenther@suse.de>
9210
9211         PR tree-optimization/100222
9212         * predict.c (pass_profile::execute): Remove redundant call to
9213         mark_irreducible_loops.
9214         (report_predictor_hitrates): Likewise.
9215
9216 2021-04-23  Richard Biener  <rguenther@suse.de>
9217
9218         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
9219         valid_gimple_rhs_p by instead gimplifying to one.
9220
9221 2021-04-23  Richard Biener  <rguenther@suse.de>
9222
9223         PR tree-optimization/99971
9224         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
9225         Always use TBAA for loads.
9226
9227 2021-04-23  liuhongt  <hongtao.liu@intel.com>
9228
9229         PR target/100093
9230         * config/i386/i386-options.c (ix86_option_override_internal):
9231         Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags
9232         when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled
9233         by target attribute.
9234
9235 2021-04-23  David Edelsohn  <dje.gcc@gmail.com>
9236
9237         * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to
9238         DWARF2_DEBUG.
9239         * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same.
9240
9241 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
9242
9243         * config.gcc (powerpc-ibm-aix6.*): Remove.
9244         * config/rs6000/aix61.h: Delete.
9245
9246 2021-04-22  Martin Liska  <mliska@suse.cz>
9247
9248         PR testsuite/100159
9249         PR testsuite/100192
9250         * builtins.c (expand_builtin): Fix typos and missing comments.
9251         * dwarf2out.c (gen_subprogram_die): Likewise.
9252         (gen_struct_or_union_type_die): Likewise.
9253
9254 2021-04-22  Uroš Bizjak  <ubizjak@gmail.com>
9255
9256         PR target/100119
9257         * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse):
9258         Remove the sign with FE_DOWNWARD, where x - x = -0.0.
9259
9260 2021-04-21  Iain Sandoe  <iain@sandoe.co.uk>
9261
9262         * config/i386/darwin.h (TARGET_64BIT): Remove definition
9263         based on TARGET_ISA_64BIT.
9264         (TARGET_64BIT_P): Remove definition based on
9265         TARGET_ISA_64BIT_P().
9266
9267 2021-04-21  Martin Liska  <mliska@suse.cz>
9268
9269         Revert:
9270         2021-04-21  Martin Liska  <mliska@suse.cz>
9271
9272         * lto-wrapper.c (cpuset_popcount): Remove.
9273         (init_num_threads): Remove and use hardware_concurrency.
9274
9275 2021-04-21  Martin Liska  <mliska@suse.cz>
9276
9277         PR jit/98615
9278         * main.c (main): Call toplev::finalize in CHECKING_P mode.
9279         * ipa-modref.c (ipa_modref_c_finalize): summaries are NULL
9280         when incremental LTO linking happens.
9281
9282 2021-04-21  Martin Liska  <mliska@suse.cz>
9283
9284         * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the
9285         makeserver cannot be detected, then use -flto=N fallback.
9286
9287 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
9288
9289         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling,
9290         default to yes for aarch64-linux-gnu.
9291         * configure: Regenerate.
9292
9293 2021-04-21  Martin Liska  <mliska@suse.cz>
9294
9295         * lto-wrapper.c (cpuset_popcount): Remove.
9296         (init_num_threads): Remove and use hardware_concurrency.
9297
9298 2021-04-21  Martin Liska  <mliska@suse.cz>
9299
9300         * config/i386/i386.c: Remove superfluous || TARGET_MACHO
9301         which remains to be '(... || 0)' and clang complains about it.
9302         * dwarf2out.c (AT_vms_delta): Declare conditionally.
9303         (add_AT_vms_delta): Likewise.
9304         * tree.c (fld_simplified_type): Use rather more common pattern
9305         for disabling of something (#if 0).
9306         (get_tree_code_name): Likewise.
9307         (verify_type_variant): Likewise.
9308
9309 2021-04-21  Martin Liska  <mliska@suse.cz>
9310
9311         * config/i386/i386-expand.c (decide_alignment): Use newly named
9312         macro TARGET_CPU_P.
9313         * config/i386/i386.c (ix86_decompose_address): Likewise.
9314         (ix86_address_cost): Likewise.
9315         (ix86_lea_outperforms): Likewise.
9316         (ix86_avoid_lea_for_addr): Likewise.
9317         (ix86_add_stmt_cost): Likewise.
9318         * config/i386/i386.h (TARGET_*): Remove.
9319         (TARGET_CPU_P): New macro.
9320         * config/i386/i386.md: Use newly named macro TARGET_CPU_P.
9321         * config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise.
9322         (swap_top_of_ready_list): Likewise.
9323         (ix86_atom_sched_reorder): Likewise.
9324         * config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise.
9325         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise.
9326
9327 2021-04-21  Martin Liska  <mliska@suse.cz>
9328
9329         * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P):
9330         Define.
9331         (SET_TARGET_NO_SAHF): Likewise.
9332         (TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise.
9333         (SET_TARGET_PREFETCH_SSE): Likewise.
9334         (TARGET_EXPLICIT_NO_TUNE_P): Likewise.
9335         (SET_TARGET_NO_TUNE): Likewise.
9336         (TARGET_EXPLICIT_NO_80387_P): Likewise.
9337         (SET_TARGET_NO_80387): Likewise.
9338         (DEF_PTA): New.
9339         * config/i386/i386.h (TARGET_*): Remove.
9340         * opth-gen.awk: Generate new used macros.
9341
9342 2021-04-21  Martin Liska  <mliska@suse.cz>
9343
9344         * config/i386/i386.h (PTA_*): Remove.
9345         (enum pta_flag): New.
9346         (DEF_PTA): Generate PTA_* values from i386-isa.def.
9347         * config/i386/i386-isa.def: New file.
9348
9349 2021-04-21  Alex Coplan  <alex.coplan@arm.com>
9350
9351         PR target/99988
9352         * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New.
9353         (rest_of_insert_bti): Avoid inserting duplicate bti j insns for
9354         jump table targets.
9355
9356 2021-04-21  H.J. Lu  <hjl.tools@gmail.com>
9357
9358         * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and
9359         x86_64-*-* targets.
9360         * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET):
9361         New.
9362         (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise.
9363         (ix86_handle_option): Handle -mmwait.
9364         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
9365         Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on
9366         __builtin_ia32_monitor and __builtin_ia32_mwait.
9367         * config/i386/i386-options.c (isa2_opts): Add -mmwait.
9368         (ix86_valid_target_attribute_inner_p): Likewise.
9369         (ix86_option_override_internal): Enable mwait/monitor
9370         instructions for -msse3.
9371         * config/i386/i386.h (TARGET_MWAIT): New.
9372         (TARGET_MWAIT_P): Likewise.
9373         * config/i386/i386.opt: Add -mmwait.
9374         * config/i386/mwaitintrin.h: New file.
9375         * config/i386/pmmintrin.h: Include <mwaitintrin.h>.
9376         * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with
9377         TARGET_MWAIT.
9378         (@sse3_monitor_<mode>): Likewise.
9379         * config/i386/x86gprintrin.h: Include <mwaitintrin.h>.
9380         * doc/extend.texi: Document mwait target attribute.
9381         * doc/invoke.texi: Document -mmwait.
9382
9383 2021-04-21  Martin Liska  <mliska@suse.cz>
9384
9385         * config/i386/i386-options.c (DEF_ENUM): Remove it.
9386         * config/i386/i386-opts.h (DEF_ENUM): Likewise.
9387         * config/i386/stringop.def (DEF_ENUM): Likewise.
9388
9389 2021-04-21  Martin Liska  <mliska@suse.cz>
9390
9391         * tree-cfg.c (gimple_verify_flow_info): Use qD instead
9392         of print_generic_expr.
9393
9394 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
9395
9396         PR rtl-optimization/100148
9397         * cprop.c (constprop_register): Use next_nondebug_insn instead of
9398         NEXT_INSN.
9399
9400 2021-04-21  Martin Liska  <mliska@suse.cz>
9401
9402         PR ipa/98815
9403         * cgraphunit.c (cgraph_node::analyze): Remove duplicate
9404         free_dominance_info calls.
9405
9406 2021-04-21  Richard Biener  <rguenther@suse.de>
9407
9408         * gimple-fold.c (maybe_fold_reference): Remove is_lhs
9409         parameter (and assume it to be false).
9410         (fold_gimple_assign): Adjust, remove all callers of
9411         maybe_fold_reference calling it with is_lhs true.
9412         (gimple_fold_call): Likewise.
9413         (fold_stmt_1): Likewise.
9414
9415 2021-04-21  Richard Biener  <rguenther@suse.de>
9416
9417         * fold-const.c (pedantic_non_lvalue_loc): Remove.
9418         (fold_binary_loc): Adjust.
9419         (fold_ternary_loc): Likewise.
9420
9421 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
9422
9423         PR middle-end/100130
9424         * varasm.c (get_block_for_decl): Make sure that any use of the
9425         retain attribute matches the section's retain flag.
9426         (switch_to_section): Check for retain mismatches even when
9427         changing sections, but do not warn if the given decl is the
9428         section's named.decl.
9429         (output_object_block): Pass the first decl in the block (if any)
9430         to switch_to_section.
9431
9432 2021-04-20  H.J. Lu  <hjl.tools@gmail.com>
9433
9434         * config/i386/i386-c.c (ix86_target_macros_internal): Define
9435         __CRC32__ for -mcrc32.
9436         * config/i386/i386-options.c (ix86_option_override_internal):
9437         Enable crc32 instruction for -msse4.2.
9438         * config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2
9439         check.
9440         (sse4_2_crc32di): Likewise.
9441         * config/i386/ia32intrin.h: Use crc32 target option for CRC32
9442         intrinsics.
9443
9444 2021-04-20  Segher Boessenkool  <segher@kernel.crashing.org>
9445
9446         PR target/100108
9447         * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
9448         OPTION_MASK_ISEL.
9449
9450 2021-04-20  Martin Liska  <mliska@suse.cz>
9451
9452         * doc/invoke.texi: Fix typo.
9453         * params.opt: Likewise.
9454
9455 2021-04-20  Martin Liska  <mliska@suse.cz>
9456
9457         * doc/invoke.texi: Document new param.
9458
9459 2021-04-19  Andrew MacLeod  <amacleod@redhat.com>
9460
9461         PR tree-optimization/100081
9462         * gimple-range-cache.h (ranger_cache): Inherit from gori_compute
9463         rather than gori_compute_cache.
9464         * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file.
9465         (range_def_chain::m_logical_depth): New member.
9466         (range_def_chain::range_def_chain): Initialize m_logical_depth.
9467         (range_def_chain::get_def_chain): Don't build defchains through more
9468         than LOGICAL_LIMIT logical expressions.
9469         * params.opt (param_ranger_logical_depth): New.
9470
9471 2021-04-19  Richard Earnshaw  <rearnsha@arm.com>
9472
9473         PR target/100067
9474         * config/arm/arm.c (arm_configure_build_target): Do not strip
9475         extended FPU/SIMD feature bits from the target ISA when -mfpu
9476         is specified (partial revert of r11-8168).
9477
9478 2021-04-19  Thomas Schwinge  <thomas@codesourcery.com>
9479
9480         * params.opt (-param=openacc-kernels=): Add.
9481         * omp-oacc-kernels-decompose.cc
9482         (pass_omp_oacc_kernels_decompose::gate): Use it.
9483         * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move...
9484         (--param): ... here, 'openacc-kernels'.
9485
9486 2021-04-19  Martin Liska  <mliska@suse.cz>
9487
9488         PR c/100143
9489         * gengtype.c (finish_root_table): Align function arguments
9490         in between declaration and definition.
9491
9492 2021-04-19  Eric Botcazou  <ebotcazou@adacore.com>
9493
9494         * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
9495         frames larger than the SEH maximum frame size.
9496
9497 2021-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
9498
9499         PR rtl-optimization/99927
9500         * combine.c (distribute_notes) [REG_UNUSED]: If the register already
9501         is dead, just drop it.
9502
9503 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
9504
9505         PR d/99914
9506         * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
9507         * doc/tm.texi: Regenerate.
9508         * doc/tm.texi.in (D language and ABI): Add @hook for
9509         TARGET_D_TEMPLATES_ALWAYS_COMDAT.
9510
9511 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
9512
9513         * config/darwin-d.c (darwin_d_handle_target_object_format): New
9514         function.
9515         (darwin_d_register_target_info): New function.
9516         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9517         * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New
9518         function.
9519         (dragonfly_d_register_target_info): New function.
9520         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9521         * config/freebsd-d.c (freebsd_d_handle_target_object_format): New
9522         function.
9523         (freebsd_d_register_target_info): New function.
9524         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9525         * config/glibc-d.c (glibc_d_handle_target_object_format): New
9526         function.
9527         (glibc_d_register_target_info): New function.
9528         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9529         * config/i386/i386-d.c (ix86_d_handle_target_object_format): New
9530         function.
9531         (ix86_d_register_target_info): Add ix86_d_handle_target_object_format
9532         as handler for objectFormat key.
9533         * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New
9534         function.
9535         (winnt_d_register_target_info): New function.
9536         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9537         * config/netbsd-d.c (netbsd_d_handle_target_object_format): New
9538         function.
9539         (netbsd_d_register_target_info): New function.
9540         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9541         * config/openbsd-d.c (openbsd_d_handle_target_object_format): New
9542         function.
9543         (openbsd_d_register_target_info): New function.
9544         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9545         * config/pa/pa-d.c (pa_d_handle_target_object_format): New function.
9546         (pa_d_register_target_info): Add pa_d_handle_target_object_format as
9547         handler for objectFormat key.
9548         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New
9549         function.
9550         (rs6000_d_register_target_info): Add
9551         rs6000_d_handle_target_object_format as handler for objectFormat key.
9552         * config/sol2-d.c (solaris_d_handle_target_object_format): New
9553         function.
9554         (solaris_d_register_target_info): New function.
9555         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9556
9557 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
9558
9559         PR target/91710
9560         * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
9561         abi_break argument from bool * to unsigned *, store there the pre-GCC 9
9562         alignment.
9563         (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers.
9564         (aarch64_function_arg_regno_p): Likewise.  Only emit -Wpsabi note if
9565         the old and new alignment after applying MIN/MAX to it is different.
9566
9567 2021-04-16  Tamar Christina  <tamar.christina@arm.com>
9568
9569         PR target/100048
9570         * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
9571         * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
9572         TRN optab.
9573         * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
9574
9575 2021-04-16  Bill Schmidt  <wschmidt@linux.ibm.com>
9576
9577         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
9578         this section and its subsections.
9579
9580 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
9581
9582         PR target/100075
9583         * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New
9584         define_insn patterns.
9585
9586 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
9587
9588         PR rtl-optimization/98689
9589         * reg-notes.def (UNTYPED_CALL): New note.
9590         * combine.c (distribute_notes): Handle it.
9591         * emit-rtl.c (try_split): Likewise.
9592         * rtlanal.c (rtx_properties::try_to_add_insn): Likewise.  Assume
9593         that calls with the note implicitly set all return value registers.
9594         * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL
9595         to untyped_calls.
9596
9597 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
9598
9599         PR rtl-optimization/99596
9600         * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global
9601         register accesses for const calls.  Assume that pure functions
9602         can only read from global registers.  Ignore cases in which
9603         the stack pointer has been marked global.
9604
9605 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
9606
9607         PR target/99767
9608         * tree-vect-loop.c (vect_transform_loop): Don't remove just
9609         dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
9610         them by their last argument.
9611
9612 2021-04-15  Martin Liska  <mliska@suse.cz>
9613
9614         * doc/invoke.texi: Other params don't use it, remove it.
9615
9616 2021-04-15  Richard Biener  <rguenther@suse.de>
9617
9618         * gimple-builder.h: Add deprecation note.
9619
9620 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
9621
9622         PR c++/98852
9623         * attribs.h (restrict_type_identity_attributes_to): Declare.
9624         * attribs.c (restrict_type_identity_attributes_to): New function.
9625
9626 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
9627
9628         PR c/98852
9629         * attribs.h (affects_type_identity_attributes): Declare.
9630         * attribs.c (remove_attributes_matching): New function.
9631         (affects_type_identity_attributes): Likewise.
9632
9633 2021-04-15  Jakub Jelinek  <jakub@redhat.com>
9634
9635         PR target/100056
9636         * config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3):
9637         Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with
9638         ZERO_EXTEND, SIGN_EXTEND or AND.
9639
9640 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
9641
9642         PR rtl-optimization/99929
9643         * rtl.h (same_vector_encodings_p): New function.
9644         * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
9645         * cselib.c (rtx_equal_for_cselib_1): Likewise.
9646         * jump.c (rtx_renumbered_equal_p): Likewise.
9647         * lra-constraints.c (operands_match_p): Likewise.
9648         * reload.c (operands_match_p): Likewise.
9649         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.
9650
9651 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
9652
9653         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print
9654         more information about variable-length CONST_VECTORs.
9655
9656 2021-04-14  Vladimir N. Makarov  <vmakarov@redhat.com>
9657
9658         PR rtl-optimization/100066
9659         * lra-constraints.c (split_reg): Check paradoxical_subreg_p for
9660         ordered modes when choosing splitting mode for hard reg.
9661
9662 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
9663
9664         PR target/99246
9665         * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
9666         New function.
9667         (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
9668
9669 2021-04-14  Andreas Krebbel  <krebbel@linux.ibm.com>
9670
9671         * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros
9672         for mask operand types.
9673         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
9674         (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate
9675         operand.
9676         (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the
9677         immediate operand.
9678         * config/s390/s390.c (s390_const_operand_ok): Check the new
9679         operand types and generate a list of valid values.
9680
9681 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
9682
9683         * doc/tm.texi: Regenerate.
9684         * doc/tm.texi.in (D language and ABI): Add @hook for
9685         TARGET_D_REGISTER_OS_TARGET_INFO.
9686
9687 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
9688
9689         * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New
9690         function.
9691         (aarch64_d_register_target_info): New function.
9692         * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info):
9693         Declare.
9694         * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO):
9695         Define.
9696         * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function.
9697         (arm_d_register_target_info): New function.
9698         * config/arm/arm-protos.h (arm_d_register_target_info): Declare.
9699         * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9700         * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function.
9701         (ix86_d_register_target_info): New function.
9702         * config/i386/i386-protos.h (ix86_d_register_target_info): Declare.
9703         * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9704         * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function.
9705         (mips_d_register_target_info): New function.
9706         * config/mips/mips-protos.h (mips_d_register_target_info): Declare.
9707         * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9708         * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function.
9709         (pa_d_register_target_info): New function.
9710         * config/pa/pa-protos.h (pa_d_register_target_info): Declare.
9711         * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9712         * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New
9713         function.
9714         (riscv_d_register_target_info): New function.
9715         * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare.
9716         * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9717         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New
9718         function.
9719         (rs6000_d_register_target_info): New function.
9720         * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info):
9721         Declare.
9722         * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9723         * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function.
9724         (s390_d_register_target_info): New function.
9725         * config/s390/s390-protos.h (s390_d_register_target_info): Declare.
9726         * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9727         * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New
9728         function.
9729         (sparc_d_register_target_info): New function.
9730         * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare.
9731         * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9732         * doc/tm.texi: Regenerate.
9733         * doc/tm.texi.in (D language and ABI): Add @hook for
9734         TARGET_D_REGISTER_CPU_TARGET_INFO.
9735
9736 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
9737
9738         * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function.
9739         * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare.
9740         * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define.
9741         * doc/tm.texi: Regenerate.
9742         * doc/tm.texi.in (D language and ABI): Add @hook for
9743         TARGET_D_HAS_STDCALL_CONVENTION.
9744
9745 2021-04-14  Richard Biener  <rguenther@suse.de>
9746
9747         * tree-cfg.c (verify_gimple_assign_ternary): Verify that
9748         VEC_COND_EXPRs have a gimple_val condition.
9749         * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR
9750         can no longer have a GENERIC condition.
9751
9752 2021-04-14  Richard Earnshaw  <rearnsha@arm.com>
9753
9754         PR target/100067
9755         * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits
9756         from the isa_delta when -mfpu has been used.
9757         (arm_options_perform_arch_sanity_checks): It's the architecture that
9758         lacks an FPU not the processor.
9759
9760 2021-04-13  Richard Biener  <rguenther@suse.de>
9761
9762         PR tree-optimization/100053
9763         * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
9764         not use optimistic dominance queries for backedges to validate
9765         predicated values.
9766         (dominated_by_p_w_unex): Add parameter to ignore executable
9767         state on backedges.
9768         (rpo_elim::eliminate_avail): Adjust.
9769
9770 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
9771
9772         PR target/100028
9773         * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr,
9774         *aarch64_bfxilsi_extrdi): New define_insn patterns.
9775
9776 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
9777
9778         PR target/99648
9779         * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P
9780         outermode, return NULL if the result doesn't encode back to the
9781         original byte sequence.
9782         (simplify_gen_subreg): Don't create SUBREGs from constants to
9783         MODE_COMPOSITE_P outermode.
9784
9785 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
9786
9787         PR rtl-optimization/99905
9788         * combine.c (expand_compound_operation): If pos + len > modewidth,
9789         perform the right shift by pos in inner_mode and then convert to mode,
9790         instead of trying to simplify a shift of rtx with inner_mode by pos
9791         as if it was a shift in mode.
9792
9793 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
9794
9795         PR debug/99830
9796         * combine.c (simplify_and_const_int_1): Don't optimize varop
9797         away if it has side-effects.
9798
9799 2021-04-12  Martin Liska  <mliska@suse.cz>
9800
9801         * doc/extend.texi: Escape @smallexample content.
9802
9803 2021-04-12  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
9804
9805         * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add
9806           alternative in order to load a DFP zero.
9807
9808 2021-04-12  Martin Liska  <mliska@suse.cz>
9809
9810         * doc/extend.texi: Be more precise in documentation
9811         of symver attribute.
9812
9813 2021-04-12  Martin Liska  <mliska@suse.cz>
9814
9815         PR sanitizer/99877
9816         * gimplify.c (gimplify_expr): Right now, we unpoison all
9817         variables before a goto <dest>. We should not do it if we are
9818         in a omp context.
9819
9820 2021-04-12  Cui,Lili  <lili.cui@intel.com>
9821
9822         * common/config/i386/cpuinfo.h (get_intel_cpu): Handle
9823         rocketlake.
9824         * common/config/i386/i386-common.c (processor_names): Add
9825         rocketlake.
9826         (processor_alias_table): Add rocketlake.
9827         * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add
9828         INTEL_COREI7_ROCKETLAKE.
9829         * config.gcc: Add -march=rocketlake.
9830         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
9831         rocketlake.
9832         * config/i386/i386-options.c (m_ROCKETLAKE)  : Define.
9833         (processor_cost_table): Add rocketlake cost.
9834         * config/i386/i386.h (ix86_size_cost) : Define
9835         TARGET_ROCKETLAKE.
9836         (processor_type) : Add PROCESSOR_ROCKETLAKE.
9837         (PTA_ROCKETLAKE): Ditto.
9838         * doc/extend.texi: Add rocketlake.
9839         * doc/invoke.texi: Add rocketlake.
9840
9841 2021-04-12  Cui,Lili  <lili.cui@intel.com>
9842
9843         * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list.
9844         * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE.
9845         * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model.
9846         * doc/invoke.texi: Change alderlake ISA list.
9847
9848 2021-04-11  Hafiz Abid Qadeer  <abidh@codesourcery.com>
9849
9850         PR middle-end/98088
9851         * omp-expand.c (expand_oacc_collapse_init): Update condition in
9852         a gcc_assert.
9853
9854 2021-04-10  H.J. Lu  <hjl.tools@gmail.com>
9855
9856         PR target/99744
9857         * config/i386/serializeintrin.h (_serialize): Defined as macro.
9858
9859 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
9860
9861         PR lto/99849
9862         * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
9863         just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
9864
9865 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
9866
9867         PR middle-end/99989
9868         * gimple-ssa-warn-alloca.c
9869         (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to
9870         0 with integer precision unconditionally.
9871
9872 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
9873
9874         PR rtl-optimization/98601
9875         * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
9876         not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
9877         unaligned_mems handle VOIDmode like BLKmode.
9878
9879 2021-04-10  Jan Hubicka  <hubicka@ucw.cz>
9880
9881         PR lto/99857
9882         * tree.c (free_lang_data_in_decl): Do not release body of
9883         declare_variant_alt.
9884
9885 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
9886
9887         * config/aarch64/aarch64.c (aarch64_option_restore): If the
9888         architecture was specified explicitly and the tuning wasn't,
9889         tune for the architecture rather than the configured default CPU.
9890
9891 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
9892
9893         * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
9894         as the temporary register.
9895
9896 2021-04-09  Martin Liska  <mliska@suse.cz>
9897
9898         * doc/extend.texi: Move non-target attributes on the top level.
9899
9900 2021-04-09  Martin Liska  <mliska@suse.cz>
9901
9902         * doc/invoke.texi: Document minimum and maximum value of the
9903         argument for both supported compression algorithms.
9904
9905 2021-04-08  David Edelsohn  <dje.gcc@gmail.com>
9906
9907         * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select
9908         TLS BSS before TLS data.
9909         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm.
9910
9911 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
9912
9913         * doc/sourcebuild.texi (stdint_types_mbig_endian): Document.
9914
9915 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
9916
9917         * match.pd: Extend vec_cond folds to handle shifts.
9918
9919 2021-04-08  Maciej W. Rozycki  <macro@orcam.me.uk>
9920
9921         * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's
9922         peephole.
9923
9924 2021-04-08  Alex Coplan  <alex.coplan@arm.com>
9925
9926         PR target/99647
9927         * config/arm/iterators.md (MVE_vecs): New.
9928         (V_elem): Also handle V2DF.
9929         * config/arm/mve.md (*mve_mov<mode>): Rename to ...
9930         (*mve_vdup<mode>): ... this. Remove second alternative since
9931         vec_duplicate of const_int is not canonical RTL, and we don't
9932         want to match symbol_refs.
9933         (*mve_vec_duplicate<mode>): Delete (pattern is redundant).
9934
9935 2021-04-08  Xionghu Luo  <luoxhu@linux.ibm.com>
9936
9937         * fold-const.c (fold_single_bit_test): Fix typo.
9938         * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single
9939         instead.
9940
9941 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
9942
9943         PR tree-optimization/97513
9944         * tree-vect-slp.c (vect_add_slp_permutation): New function,
9945         split out from...
9946         (vectorizable_slp_permutation): ...here.  Detect cases in which
9947         all VEC_PERM_EXPRs are guaranteed to have the same stepped
9948         permute vector and only generate one permute vector for that case.
9949         Extend that case to handle variable-length vectors.
9950
9951 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
9952
9953         PR tree-optimization/99873
9954         * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function.
9955         (vect_build_slp_instance): Don't split store groups that could
9956         use IFN_STORE_LANES.
9957
9958 2021-04-07  Jakub Jelinek  <jakub@redhat.com>
9959
9960         PR target/99872
9961         * varasm.c (output_constant_pool_contents): Don't strip name encoding
9962         from XSTR (desc->sym, 0) or from label before passing those to
9963         ASM_OUTPUT_DEF.
9964
9965 2021-04-07  Richard Biener  <rguenther@suse.de>
9966
9967         PR tree-optimization/99954
9968         * tree-loop-distribution.c: Include tree-affine.h.
9969         (generate_memcpy_builtin): Try using tree-affine to prove
9970         non-overlap.
9971         (loop_distribution::classify_builtin_ldst): Always classify
9972         as PKIND_MEMMOVE.
9973
9974 2021-04-07  Richard Biener  <rguenther@suse.de>
9975
9976         PR tree-optimization/99947
9977         * tree-vect-loop.c (vectorizable_induction): Pre-allocate
9978         steps vector to avoid pushing elements from the reallocated
9979         vector.
9980
9981 2021-04-07  Richard Biener  <rguenther@suse.de>
9982
9983         * tree-ssa-sccvn.h (print_vn_reference_ops): Declare.
9984         * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand
9985         printing...
9986         * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new
9987         function.
9988         (debug_vn_reference_ops): New.
9989
9990 2021-04-07  Bin Cheng  <bin.cheng@linux.alibaba.com>
9991
9992         PR tree-optimization/98736
9993         * tree-loop-distribution.c
9994         * (loop_distribution::bb_top_order_init):
9995         Compute RPO with programing order preserved by calling function
9996         rev_post_order_and_mark_dfs_back_seme.
9997
9998 2021-04-06  Vladimir N. Makarov  <vmakarov@redhat.com>
9999
10000         PR target/99781
10001         * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
10002         * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
10003         functions.
10004         (process_bb_lives): Don't update biggest mode of hard reg for
10005         implicit in multi-register group.  Use the new functions for
10006         updating dead_set and unused_set by register notes.
10007
10008 2021-04-06  Xianmiao Qu  <xianmiao_qu@c-sky.com>
10009
10010         * config/csky/csky_pipeline_ck802.md : Use insn reservation name
10011         instead of *.
10012
10013 2021-04-06  H.J. Lu  <hjl.tools@gmail.com>
10014
10015         * config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
10016         (skylake_memset): Likewise.
10017         (skylake_cost): Change CLEAR_RATIO to 17.
10018         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
10019         Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
10020         m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.
10021
10022 2021-04-06  Richard Biener  <rguenther@suse.de>
10023
10024         PR tree-optimization/99880
10025         * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
10026         set vectorized defs of relevant PHIs.
10027
10028 2021-04-06  Richard Biener  <rguenther@suse.de>
10029
10030         PR tree-optimization/99924
10031         * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
10032         nodes w/o scalar stmts as visited.
10033
10034 2021-04-06  Alex Coplan  <alex.coplan@arm.com>
10035
10036         PR target/99748
10037         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
10038         PCS for [su]fix_optab.
10039
10040 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
10041
10042         * config/darwin.c (machopic_legitimize_pic_address): Check
10043         that the current pic register is one of the hard reg set
10044         before setting liveness.
10045
10046 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
10047
10048         * config/darwin.c (machopic_legitimize_pic_address): Fix
10049         whitespace, remove unused code.
10050
10051 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
10052
10053         PR tree-optimization/99882
10054         * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
10055         pointer type.
10056
10057 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
10058
10059         PR rtl-optimization/99863
10060         * dse.c (replace_read): Drop regs_live argument.  Instead of
10061         regs_live, use store_insn->fixed_regs_live if non-NULL,
10062         otherwise punt if insns sequence clobbers or sets any hard
10063         registers.
10064
10065 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
10066
10067         PR testsuite/98125
10068         * targhooks.h (default_print_patchable_function_entry_1): Declare.
10069         * targhooks.c (default_print_patchable_function_entry_1): New function,
10070         copied from default_print_patchable_function_entry with an added flags
10071         argument.
10072         (default_print_patchable_function_entry): Rewritten into a small
10073         wrapper around default_print_patchable_function_entry_1.
10074         * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
10075         Redefine.
10076         (rs6000_print_patchable_function_entry): New function.
10077
10078 2021-04-02  Eric Botcazou  <ebotcazou@adacore.com>
10079
10080         * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
10081
10082 2021-04-01  Jason Merrill  <jason@redhat.com>
10083
10084         PR c++/98481
10085         * common.opt: Document v15 and v16.
10086
10087 2021-04-01  Richard Biener  <rguenther@suse.de>
10088
10089         PR tree-optimization/99863
10090         * gimplify.c (gimplify_init_constructor): Recompute vector
10091         constructor flags.
10092
10093 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
10094
10095         * doc/extend.texi (symver attribute): Fix up syntax errors
10096         in the examples.
10097
10098 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
10099
10100         PR tree-optimization/96573
10101         * gimple-ssa-store-merging.c (init_symbolic_number): Handle
10102         also pointer types.
10103
10104 2021-04-01  Richard Biener  <rguenther@suse.de>
10105
10106         PR tree-optimization/99856
10107         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
10108         precision to vector element precision.
10109
10110 2021-04-01  Martin Jambor  <mjambor@suse.cz>
10111
10112         PR tree-optimization/97009
10113         * tree-sra.c (access_or_its_child_written): New function.
10114         (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
10115         test.
10116
10117 2021-03-31  Jan Hubicka  <hubicka@ucw.cz>
10118
10119         PR ipa/98265
10120         * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
10121
10122 2021-03-31  Pat Haugen  <pthaugen@linux.ibm.com>
10123
10124         PR target/99133
10125         * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
10126         xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
10127         xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
10128         * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
10129         mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
10130         mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
10131         Likewise.
10132         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
10133         * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
10134         (define_attr "prefixed"): Update initializer.
10135
10136 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
10137
10138         PR debug/99490
10139         * dwarf2out.c (debug_ranges_dwo_section): New variable.
10140         (DW_RANGES_IDX_SKELETON): Define.
10141         (struct dw_ranges): Add begin_entry and end_entry members.
10142         (DEBUG_DWO_RNGLISTS_SECTION): Define.
10143         (add_ranges_num): Adjust r initializer for addition of *_entry
10144         members.
10145         (add_ranges_by_labels): For -gsplit-dwarf and force_direct,
10146         set idx to DW_RANGES_IDX_SKELETON.
10147         (use_distinct_base_address_for_range): New function.
10148         (index_rnglists): Don't set r->idx if it is equal to
10149         DW_RANGES_IDX_SKELETON.  Initialize r->begin_entry and
10150         r->end_entry for -gsplit-dwarf if those will be needed by
10151         output_rnglists.
10152         (output_rnglists): Add DWO argument.  If true, switch to
10153         debug_ranges_dwo_section rather than debug_ranges_section.
10154         Adjust l1/l2 label indexes.  Only output the offset table when
10155         dwo is true and don't include in there the skeleton range
10156         entry if present.  For -gsplit-dwarf, skip ranges that belong
10157         to the other rnglists section.  Change return type from void
10158         to bool and return true if there are any range entries for
10159         the other section.  For dwarf_split_debug_info use
10160         DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
10161         entries instead of DW_RLE_start_end, DW_RLE_start_length and
10162         DW_RLE_base_address.  Use use_distinct_base_address_for_range.
10163         (init_sections_and_labels): Initialize debug_ranges_dwo_section
10164         if -gsplit-dwarf and DWARF >= 5.  Adjust ranges_section_label
10165         and range_base_label indexes.
10166         (dwarf2out_finish): Call index_rnglists earlier before finalizing
10167         .debug_addr.  Never emit DW_AT_rnglists_base attribute.  For
10168         -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
10169         with different dwo arguments.
10170         (dwarf2out_c_finalize): Clear debug_ranges_dwo_section.
10171
10172 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
10173
10174         PR tree-optimization/98268
10175         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
10176         recompute_tree_invariant_for_addr_expr after successfully
10177         folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
10178
10179 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
10180
10181         PR tree-optimization/99726
10182         * tree-data-ref.c (create_intersect_range_checks_index): Bail
10183         out if there is more than one access function SCEV for the loop
10184         being versioned.
10185
10186 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
10187
10188         PR rtl-optimization/97141
10189         PR rtl-optimization/98726
10190         * emit-rtl.c (valid_for_const_vector_p): Return true for
10191         CONST_POLY_INT_P.
10192         * rtx-vector-builder.h (rtx_vector_builder::step): Return a
10193         poly_wide_int instead of a wide_int.
10194         (rtx_vector_builder::apply_set): Take a poly_wide_int instead
10195         of a wide_int.
10196         * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
10197         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
10198         false for CONST_VECTORs that cannot be forced to memory.
10199         * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
10200         is too complex to force to memory, build it up from individual
10201         elements instead.
10202
10203 2021-03-31  Jan Hubicka  <jh@suse.cz>
10204
10205         PR lto/99447
10206         * cgraph.c (cgraph_node::release_body): Fix overactive check.
10207
10208 2021-03-31  Christophe Lyon  <christophe.lyon@linaro.org>
10209
10210         PR target/99786
10211         * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
10212         for V4HI and V2SI.
10213
10214 2021-03-31  H.J. Lu  <hjl.tools@gmail.com>
10215
10216         * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
10217         For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
10218         to SImode.
10219         (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
10220         "rep movsb/stosb" only for known sizes.
10221         * config/i386/i386-options.c (processor_cost_table): Use Ice
10222         Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
10223         Rapids and Alder Lake.
10224         * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
10225         * config/i386/x86-tune-costs.h (icelake_memcpy): New.
10226         (icelake_memset): Likewise.
10227         (icelake_cost): Likewise.
10228         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
10229         New.
10230
10231 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
10232
10233         PR target/98119
10234         * config/aarch64/aarch64.c
10235         (aarch64_vectorize_preferred_vector_alignment): Query the size
10236         of the provided SVE vector; do not assume that all SVE vectors
10237         have the same size.
10238
10239 2021-03-31  Jan Hubicka  <jh@suse.cz>
10240
10241         PR lto/99447
10242         * cgraph.c (cgraph_node::release_body): Remove all callers and
10243         references.
10244         * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
10245         * cgraphunit.c (cgraph_node::expand): And here.
10246
10247 2021-03-31  Martin Liska  <mliska@suse.cz>
10248
10249         * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
10250         and one negated condition.
10251
10252 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
10253             Richard Sandiford  <richard.sandiford@arm.com>
10254
10255         PR target/99813
10256         * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
10257         constraints on operands[2] and similarly 0 and rk constraints
10258         on operands[1] corresponding to that.
10259
10260 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
10261
10262         PR bootstrap/98860
10263         * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
10264         linker doesn't support DWARF sections new in DWARF5.
10265         * config/i386/i386-options.c (ix86_option_override_internal): Default
10266         to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
10267         targets.
10268         * config.in: Regenerated.
10269         * configure: Regenerated.
10270
10271 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10272
10273         PR target/99820
10274         * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
10275         available issue_info before using it.
10276
10277 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10278
10279         PR target/99822
10280         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
10281         in operand 1.
10282
10283 2021-03-30  Xionghu Luo  <luoxhu@linux.ibm.com>
10284
10285         PR target/99718
10286         * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
10287         (altivec_lvsl_reg_<mode>): ... this.
10288         (altivec_lvsr_reg): Change to ...
10289         (altivec_lvsr_reg_<mode>): ... this.
10290         * config/rs6000/predicates.md (vec_set_index_operand): New.
10291         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10292         Enable 32bit variable vec_insert for all TARGET_VSX.
10293         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
10294         Enable 32bit variable vec_insert for p9 and above.
10295         (rs6000_expand_vector_set_var_p8): Rename to ...
10296         (rs6000_expand_vector_set_var_p7): ... this.
10297         (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
10298         position.
10299         * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
10300         * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
10301         gen_altivec_lvsr_reg_di.
10302
10303 2021-03-30  H.J. Lu  <hjl.tools@gmail.com>
10304
10305         PR target/99744
10306         * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
10307         (__rdtscp): Likewise.
10308
10309 2021-03-30  Tamar Christina  <tamar.christina@arm.com>
10310
10311         PR tree-optimization/99825
10312         * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
10313         Reject non-mult 2 lanes.
10314
10315 2021-03-30  Richard Earnshaw  <rearnsha@arm.com>
10316
10317         PR target/99773
10318         * config/arm/arm.c (arm_file_start): Fix emission of
10319         Tag_ABI_VFP_args attribute.
10320
10321 2021-03-30  Richard Biener  <rguenther@suse.de>
10322
10323         PR tree-optimization/99824
10324         * stor-layout.c (set_min_and_max_values_for_integral_type):
10325         Assert the precision is within the bounds of
10326         WIDE_INT_MAX_PRECISION.
10327         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
10328         the outermost component ref only to lower the access size
10329         and initialize that from the access type.
10330
10331 2021-03-30  Richard Sandiford  <richard.sandiford@arm.com>
10332
10333         PR target/98136
10334         * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
10335         CONST_INTs to aarch64_expand_mov_immediate when called after RA.
10336
10337 2021-03-30  Mihailo Stojanovic  <mihailo.stojanovic@typhoon-hil.com>
10338
10339         * config/aarch64/aarch64.md
10340         (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
10341         attribute to disambiguate between SIMD and FP variants of the
10342         instruction.
10343
10344 2021-03-29  Jan Hubicka  <hubicka@ucw.cz>
10345
10346         * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
10347         (analyze_ssa_name_flags): Fix typo in comment.
10348
10349 2021-03-29  Alex Coplan  <alex.coplan@arm.com>
10350
10351         PR target/99216
10352         * config/aarch64/aarch64-sve-builtins.cc
10353         (function_builder::add_function): Add placeholder_p argument, use
10354         placeholder decls if this is set.
10355         (function_builder::add_unique_function): Instead of conditionally adding
10356         direct overloads, unconditionally add either a direct overload or a
10357         placeholder.
10358         (function_builder::add_overloaded_function): Set placeholder_p if we're
10359         using C++ overloads. Use the obstack for string storage instead
10360         of relying on the tree nodes.
10361         (function_builder::add_overloaded_functions): Don't return early for
10362         m_direct_overloads: we need to add placeholders.
10363         * config/aarch64/aarch64-sve-builtins.h
10364         (function_builder::add_function): Add placeholder_p argument.
10365
10366 2021-03-29  Richard Biener  <rguenther@suse.de>
10367
10368         PR tree-optimization/99807
10369         * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
10370         assert below VEC_PERM handling.
10371
10372 2021-03-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10373
10374         PR target/99037
10375         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
10376         aarch64_simd_or_scalar_imm_zero to match zeroes.  Remove pattern
10377         matching const_int 0.
10378         (move_lo_quad_internal_be_<mode>): Likewise.
10379         (move_lo_quad_<mode>): Update for the above.
10380         * config/aarch64/iterators.md (VQ_2E): Delete.
10381
10382 2021-03-29  Jakub Jelinek  <jakub@redhat.com>
10383
10384         PR tree-optimization/99777
10385         * fold-const.c (extract_muldiv_1): For conversions, punt on casts from
10386         types other than scalar integral types.
10387
10388 2021-03-28  David Edelsohn  <dje.gcc@gmail.com>
10389
10390         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
10391         XCOFF TLS reloc decorations.
10392
10393 2021-03-28  Gerald Pfeifer  <gerald@pfeifer.com>
10394
10395         * doc/analyzer.texi (Analyzer Internals): Update link to
10396         "A Memory Model for Static Analysis of C Programs".
10397
10398 2021-03-26  David Edelsohn  <dje.gcc@gmail.com>
10399
10400         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
10401         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
10402         Declare.
10403         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
10404         (rs6000_special_round_type_align): Recursively check innermost first
10405         field.
10406
10407 2021-03-26  Jakub Jelinek  <jakub@redhat.com>
10408
10409         PR debug/99334
10410         * dwarf2out.h (struct dw_fde_node): Add rule18 member.
10411         * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
10412         assignment with drap_reg active, queue reg save for hfp with offset 0
10413         and flush queued reg saves.  When handling a push with rule18,
10414         defer queueing reg save for hfp and just assert the offset is 0.
10415         (scan_trace): Assert that fde->rule18 is false.
10416
10417 2021-03-26  Vladimir Makarov  <vmakarov@redhat.com>
10418
10419         PR target/99766
10420         * ira-costs.c (record_reg_classes): Put case with
10421         CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
10422         * ira.c (ira_setup_alts): Ditto.
10423         * lra-constraints.c (process_alt_operands): Ditto.
10424         * recog.c (asm_operand_ok): Ditto.
10425         * reload.c (find_reloads): Ditto.
10426
10427 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10428
10429         * config/aarch64/aarch64-protos.h
10430         (cpu_addrcost_table::post_modify_ld3_st3): New member variable.
10431         (cpu_addrcost_table::post_modify_ld4_st4): Likewise.
10432         * config/aarch64/aarch64.c (generic_addrcost_table): Update
10433         accordingly, using the same costs as for post_modify.
10434         (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
10435         (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
10436         (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
10437         (a64fx_addrcost_table): Likewise.
10438         (neoversev1_addrcost_table): New.
10439         (neoversev1_tunings): Use neoversev1_addrcost_table.
10440         (aarch64_address_cost): Use the new post_modify costs for CImode
10441         and XImode.
10442
10443 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10444
10445         * config/aarch64/aarch64.opt
10446         (-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
10447         * doc/invoke.texi: Document it.
10448         * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
10449         (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
10450         (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
10451         (aarch64_vec_issue_info): New structures.
10452         (cpu_vector_cost): Write comments above the variables rather
10453         than to the side.
10454         (cpu_vector_cost::issue_info): New member variable.
10455         * config/aarch64/aarch64.c: Include gimple-pretty-print.h
10456         and tree-ssa-loop-niter.h.
10457         (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
10458         (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
10459         (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
10460         (thunderx3t110_vector_cost): Initialize issue_info to null.
10461         (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
10462         (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
10463         (neoversev1_vector_cost): Use them.
10464         (aarch64_vec_op_count, aarch64_sve_op_count): New structures.
10465         (aarch64_vector_costs::saw_sve_only_op): New member variable.
10466         (aarch64_vector_costs::num_vector_iterations): Likewise.
10467         (aarch64_vector_costs::scalar_ops): Likewise.
10468         (aarch64_vector_costs::advsimd_ops): Likewise.
10469         (aarch64_vector_costs::sve_ops): Likewise.
10470         (aarch64_vector_costs::seen_loads): Likewise.
10471         (aarch64_simd_vec_costs_for_flags): New function.
10472         (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
10473         Count the number of predicate operations required by SVE WHILE
10474         instructions.
10475         (aarch64_comparison_type, aarch64_multiply_add_p): New functions.
10476         (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
10477         (aarch64_count_ops): Likewise.
10478         (aarch64_add_stmt_cost): Record whether see an SVE operation
10479         that cannot currently be implementing using Advanced SIMD.
10480         Record issue information about the scalar, Advanced SIMD
10481         and (where relevant) SVE versions of a loop.
10482         (aarch64_vec_op_count::dump): New function.
10483         (aarch64_sve_op_count::dump): Likewise.
10484         (aarch64_estimate_min_cycles_per_iter): Likewise.
10485         (aarch64_adjust_body_cost): If issue information is available,
10486         try to compare the issue rates of the various loop implementations
10487         and increase or decrease the vector body cost accordingly.
10488
10489 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10490
10491         * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
10492         Assume a zero cost for induction phis.
10493
10494 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10495
10496         * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
10497         function.
10498         (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
10499         vector comparisons.
10500
10501 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10502
10503         * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
10504         New function.
10505         (aarch64_add_stmt_cost): Call it.
10506
10507 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10508
10509         * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
10510         New tuning parameter.
10511         * config/aarch64/aarch64.c (neoversev1_tunings): Use it.
10512         (aarch64_estimated_sve_vq): New function.
10513         (aarch64_vector_costs::analyzed_vinfo): New member variable.
10514         (aarch64_vector_costs::is_loop): Likewise.
10515         (aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
10516         (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
10517         (aarch64_record_potential_advsimd_unrolling): New function.
10518         (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
10519         (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
10520         aarch64_analyze_bb_vinfo on the first use of a costs structure.
10521         Detect whether we're vectorizing a loop for SVE that might be
10522         completely unrolled if it used Advanced SIMD instead.
10523         (aarch64_adjust_body_cost_for_latency): New function.
10524         (aarch64_finish_cost): Call it.
10525
10526 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10527
10528         * config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
10529         (aarch64_init_cost): New function.
10530         (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
10531         the default unsigned[3].
10532         (aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
10533         (TARGET_VECTORIZE_INIT_COST): Override.
10534         (TARGET_VECTORIZE_FINISH_COST): Likewise.
10535         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
10536
10537 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10538
10539         * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
10540         (neoversev1_sve_vector_cost): New cost structures.
10541         (neoversev1_vector_cost): Likewise.
10542         (neoversev1_tunings): Use them.  Enable use_new_vector_costs.
10543
10544 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10545
10546         * config/aarch64/aarch64-protos.h
10547         (sve_vec_cost::scatter_store_elt_cost): New member variable.
10548         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
10549         accordingly, taking the cost from the cost of a scalar_store.
10550         (a64fx_sve_vector_cost): Likewise.
10551         (aarch64_detect_vector_stmt_subtype): Detect scatter stores.
10552
10553 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10554
10555         * config/aarch64/aarch64-protos.h
10556         (simd_vec_cost::store_elt_extra_cost): New member variable.
10557         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
10558         accordingly, using the vec_to_scalar cost for the new field.
10559         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
10560         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
10561         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
10562         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
10563         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
10564         (thunderx3t110_advsimd_vector_cost): Likewise.
10565         (aarch64_detect_vector_stmt_subtype): Detect single-element stores.
10566
10567 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10568
10569         * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
10570         (simd_vec_cost::ld3_st3_permute_cost): New member variables.
10571         (simd_vec_cost::ld4_st4_permute_cost): Likewise.
10572         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
10573         accordingly, using zero for the new costs.
10574         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
10575         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
10576         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
10577         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
10578         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
10579         (thunderx3t110_advsimd_vector_cost): Likewise.
10580         (aarch64_ld234_st234_vectors): New function.
10581         (aarch64_adjust_stmt_cost): Likewise.
10582         (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
10583         the new vector costs.
10584
10585 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10586
10587         * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
10588         derived class of simd_vec_cost.  Add information about CLAST[AB]
10589         and FADDA instructions.
10590         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
10591         accordingly, using the vec_to_scalar costs for the new fields.
10592         (a64fx_sve_vector_cost): Likewise.
10593         (aarch64_reduc_type): New function.
10594         (aarch64_sve_in_loop_reduction_latency): Likewise.
10595         (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
10596         Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
10597         that occur in the loop body.
10598         (aarch64_add_stmt_cost): Update call accordingly.
10599
10600 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10601
10602         * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
10603         New tuning flag.
10604         * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
10605         above the fields rather than to the right.
10606         (simd_vec_cost::reduc_i8_cost): New member variable.
10607         (simd_vec_cost::reduc_i16_cost): Likewise.
10608         (simd_vec_cost::reduc_i32_cost): Likewise.
10609         (simd_vec_cost::reduc_i64_cost): Likewise.
10610         (simd_vec_cost::reduc_f16_cost): Likewise.
10611         (simd_vec_cost::reduc_f32_cost): Likewise.
10612         (simd_vec_cost::reduc_f64_cost): Likewise.
10613         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
10614         accordingly, using the vec_to_scalar_cost for the new fields.
10615         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
10616         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
10617         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
10618         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
10619         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
10620         (thunderx3t110_advsimd_vector_cost): Likewise.
10621         (aarch64_use_new_vector_costs_p): New function.
10622         (aarch64_simd_vec_costs): New function, split out from...
10623         (aarch64_builtin_vectorization_cost): ...here.
10624         (aarch64_is_reduction): New function.
10625         (aarch64_detect_vector_stmt_subtype): Likewise.
10626         (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
10627         using the new vector costs.
10628
10629 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10630
10631         PR ipa/99466
10632         * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
10633         TLS declarations as public.
10634
10635 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10636
10637         * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
10638         * config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
10639         * config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
10640         * config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
10641         * config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
10642         * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
10643         * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
10644         * config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
10645         * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.
10646
10647 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10648
10649         PR d/91595
10650         * config.gcc (*-*-cygwin*): Add winnt-d.o
10651         (*-*-mingw*): Likewise.
10652         * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
10653         * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
10654         * config/i386/t-cygming: Add winnt-d.o.
10655         * config/i386/winnt-d.c: New file.
10656
10657 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10658
10659         * config/freebsd-d.c: Include memmodel.h.
10660
10661 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10662
10663         PR d/99691
10664         * config.gcc (*-*-openbsd*): Add openbsd-d.o.
10665         * config/t-openbsd: Add openbsd-d.o.
10666         * config/openbsd-d.c: New file.
10667
10668 2021-03-25  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
10669
10670         PR tree-optimization/96974
10671         * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
10672         with graceful exit.
10673
10674 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
10675
10676         Revert:
10677         2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
10678
10679         PR target/98209
10680         PR target/99744
10681         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
10682         always_inline in system headers.
10683
10684 2021-03-25  Kewen Lin  <linkw@linux.ibm.com>
10685
10686         * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
10687
10688 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
10689
10690         PR c++/99565
10691         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
10692         * fold-const.c (operand_compare::operand_equal_p): Don't compare
10693         field offsets if OEP_ADDRESS_OF_SAME_FIELD.
10694
10695 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
10696
10697         PR target/98209
10698         PR target/99744
10699         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
10700         always_inline in system headers.
10701
10702 2021-03-25  Richard Biener  <rguenther@suse.de>
10703
10704         PR tree-optimization/99746
10705         * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
10706         the scalar stmt as patterned.  Instead set up required things
10707         manually.
10708
10709 2021-03-25  Xionghu Luo  <luoxhu@linux.ibm.com>
10710
10711         * config/rs6000/rs6000.c (power8_costs): Change l2 cache
10712         from 256 to 512.
10713
10714 2021-03-24  Martin Liska  <mliska@suse.cz>
10715
10716         PR target/99753
10717         * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
10718         error.
10719         * config/i386/i386-options.c (ix86_option_override_internal):
10720         Add run-time assert.
10721
10722 2021-03-24  Martin Jambor  <mjambor@suse.cz>
10723
10724         PR ipa/99122
10725         * ipa-cp.c (initialize_node_lattices): Mark as bottom all
10726         parameters with unknown type.
10727         (ipacp_value_safe_for_type): New function.
10728         (propagate_vals_across_arith_jfunc): Verify that the constant type
10729         can be used for a type of the formal parameter.
10730         (propagate_vals_across_ancestor): Likewise.
10731         (propagate_scalar_across_jump_function): Likewise.  Pass the type
10732         also to propagate_vals_across_ancestor.
10733
10734 2021-03-24  Christophe Lyon  <christophe.lyon@linaro.org>
10735
10736         PR target/99727
10737         * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
10738         constraint.
10739         (movmisalign<mode>_mve_load): Likewise.
10740
10741 2021-03-24  Jakub Jelinek  <jakub@redhat.com>
10742
10743         PR target/99724
10744         * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
10745         movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
10746
10747 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
10748
10749         * doc/sourcebuild.texi (sysconf): New effective target.
10750
10751 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
10752
10753         * config/i386/predicates.md (reg_or_const_vec_operand): New.
10754         * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
10755         the now *-prefixed insn_and_split, turn the splitter const vec
10756         into an input for the insn, making it an ignored immediate for
10757         non-split cases, and loaded into the scratch register
10758         otherwise.
10759
10760 2021-03-23  Vladimir N. Makarov  <vmakarov@redhat.com>
10761
10762         PR target/99581
10763         * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
10764         Use define_relaxed_memory_constraint for them.
10765
10766 2021-03-23  Iain Sandoe  <iain@sandoe.co.uk>
10767
10768         PR target/99733
10769         * config/host-darwin.c (darwin_gt_pch_use_address): Add a
10770         colon to the diagnostic message.
10771
10772 2021-03-23  Ilya Leoshkevich  <iii@linux.ibm.com>
10773
10774         * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
10775         set_info's uses.
10776         (try_fwprop_subst_note): Use set_info instead of insn_info.
10777         (try_fwprop_subst_pattern): Likewise.
10778         (try_fwprop_subst_notes): Likewise.
10779         (try_fwprop_subst): Likewise.
10780         (forward_propagate_subreg): Likewise.
10781         (forward_propagate_and_simplify): Likewise.
10782         (forward_propagate_into): Likewise.
10783         * rtl-ssa/accesses.h (set_info::single_nondebug_use) New
10784         method.
10785         (set_info::single_nondebug_insn_use): Likewise.
10786         (set_info::single_phi_use): Likewise.
10787         * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
10788         method.
10789         (set_info::single_nondebug_insn_use): Likewise.
10790         (set_info::single_phi_use): Likewise.
10791
10792 2021-03-23  Christophe Lyon  <christophe.lyon@linaro.org>
10793
10794         * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
10795
10796 2021-03-23  Jakub Jelinek  <jakub@redhat.com>
10797
10798         PR target/99540
10799         * config/aarch64/aarch64.c (aarch64_add_offset): Tell
10800         expand_mult to perform an unsigned rather than a signed
10801         multiplication.
10802
10803 2021-03-23  H.J. Lu  <hjl.tools@gmail.com>
10804
10805         PR target/99704
10806         * config/i386/cpuid.h (__cpuid): Add __volatile__.
10807         (__cpuid_count): Likewise.
10808
10809 2021-03-23  Richard Biener  <rguenther@suse.de>
10810
10811         PR tree-optimization/99721
10812         * tree-vect-slp.c (vect_slp_analyze_node_operations):
10813         Make sure we can schedule the node.
10814
10815 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10816
10817         * config/riscv/riscv.c (riscv_subword): Take endianness into
10818         account when calculating the byte offset.
10819
10820 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10821
10822         * config/riscv/predicates.md (subreg_lowpart_operator): New predicate
10823         * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
10824         (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
10825         (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
10826         (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
10827         new predicate "subreg_lowpart_operator"
10828
10829 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10830
10831         * config/riscv/riscv.c (riscv_swap_instruction): New function
10832         to byteswap an SImode rtx containing an instruction.
10833         (riscv_trampoline_init): Byteswap the generated instructions
10834         when needed.
10835
10836 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10837
10838         * common/config/riscv/riscv-common.c
10839         (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
10840         * config.gcc (riscv32be-*, riscv64be-*): Set
10841         TARGET_BIG_ENDIAN_DEFAULT to 1.
10842         * config/riscv/elf.h (LINK_SPEC): Change -melf* value
10843         depending on default endianness.
10844         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
10845         * config/riscv/linux.h (LINK_SPEC): Likewise.
10846         * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
10847         default endianness.
10848         * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.
10849
10850 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10851
10852         * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
10853         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
10854         * config/riscv/linux.h (LINK_SPEC): Likewise.
10855         * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
10856         -mlittle-endian.
10857         (BYTES_BIG_ENDIAN): Handle big endian.
10858         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
10859         * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
10860         options.
10861         * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
10862
10863 2021-03-23  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
10864
10865         * regcprop.c (find_oldest_value_reg): Ask target whether
10866           different mode is fine for replacement register.
10867
10868 2021-03-23  Aldy Hernandez  <aldyh@redhat.com>
10869
10870         PR tree-optimization/99296
10871         * value-range.cc (irange::irange_set_1bit_anti_range): New.
10872         (irange::irange_set_anti_range): Call irange_set_1bit_anti_range
10873         * value-range.h (irange::irange_set_1bit_anti_range): New.
10874
10875 2021-03-22  Vladimir N. Makarov  <vmakarov@redhat.com>
10876
10877         PR target/99581
10878         * config/aarch64/constraints.md (UtQ): Use
10879         define_relaxed_memory_constraint for it.
10880         * doc/md.texi (define_relaxed_memory_constraint): Describe it.
10881         * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
10882         * genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
10883         (have_relaxed_memory_constraints): New static var.
10884         (relaxed_memory_start, relaxed_memory_end): Ditto.
10885         (add_constraint): Add arg is_relaxed_memory.  Check name for
10886         relaxed memory.  Set up is_relaxed_memory in constraint_data and
10887         have_relaxed_memory_constraints.  Adjust calls.
10888         (choose_enum_order): Process relaxed memory.
10889         (write_tm_preds_h): Ditto.
10890         (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
10891         * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
10892         * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
10893         * ira-lives.c (single_reg_class): Use
10894         insn_extra_relaxed_memory_constraint.
10895         * ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
10896         * lra-constraints.c (valid_address_p): Use
10897         insn_extra_relaxed_memory_constraint instead of other memory
10898         constraints.
10899         (process_alt_operands): Process CT_RELAXED_MEMORY.
10900         (curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
10901         * recog.c (asm_operand_ok, preprocess_constraints): Process
10902         CT_RELAXED_MEMORY.
10903         * reload.c (find_reloads): Ditto.
10904         * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
10905         * stmt.c (parse_input_constraint): Use
10906         insn_extra_relaxed_memory_constraint.
10907
10908 2021-03-22  Segher Boessenkool  <segher@kernel.crashing.org>
10909
10910         PR target/97926
10911         * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
10912         there are no NaNs.
10913
10914 2021-03-22  Alex Coplan  <alex.coplan@arm.com>
10915
10916         PR target/97252
10917         * config/arm/arm-protos.h (neon_make_constant): Add generate
10918         argument to guard emitting insns, default to true.
10919         * config/arm/arm.c (arm_legitimate_constant_p_1): Reject
10920         CONST_VECTORs which neon_make_constant can't handle.
10921         (neon_vdup_constant): Add generate argument, avoid emitting
10922         insns if it's not set.
10923         (neon_make_constant): Plumb new generate argument through.
10924         * config/arm/constraints.md (Ui): New. Use it...
10925         * config/arm/mve.md (*mve_mov<mode>): ... here.
10926         * config/arm/vec-common.md (movv8hf): Use neon_make_constant to
10927         synthesize constants.
10928
10929 2021-03-22  Richard Biener  <rguenther@suse.de>
10930
10931         * debug.h: Add deprecation warning.
10932
10933 2021-03-22  Richard Biener  <rguenther@suse.de>
10934
10935         PR tree-optimization/99694
10936         * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
10937         PHI result.
10938
10939 2021-03-22  Kito Cheng  <kito.cheng@sifive.com>
10940
10941         PR target/99702
10942         * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
10943         after type checking.
10944
10945 2021-03-22  Jakub Jelinek  <jakub@redhat.com>
10946
10947         PR debug/99562
10948         PR debug/66728
10949         * dwarf2out.c (get_full_len): Use get_precision rather than
10950         min_precision.
10951         (add_const_value_attribute): Make sure add_AT_wide argument has
10952         precision prec rather than some very wide one.
10953
10954 2021-03-22  Kewen Lin  <linkw@linux.ibm.com>
10955
10956         * config/rs6000/rs6000.md (*rotldi3_insert_sf,
10957         *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
10958         floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
10959         floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
10960         *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
10961         fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
10962         *round32<mode>2_fprs, *roundu32<mode>2_fprs,
10963         *fix_trunc<mode>si2_internal): Fix empty split condition.
10964         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
10965         vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
10966         *vsx_reduc_<VEC_reduc_name>_v2df_scalar,
10967         *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
10968
10969 2021-03-22  Xionghu Luo  <luoxhu@linux.ibm.com>
10970
10971         PR target/98914
10972         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
10973         Convert idx to DImode.
10974         (rs6000_expand_vector_set_var_p8): Likewise.
10975
10976 2021-03-21  Jakub Jelinek  <jakub@redhat.com>
10977
10978         PR debug/99388
10979         * dwarf2out.c (insert_float): Change return type from void to
10980         unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
10981         (mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
10982         Adjust callers.
10983
10984 2021-03-20  H.J. Lu  <hjl.tools@gmail.com>
10985
10986         PR target/99679
10987         * config/i386/i386.c (construct_container): Check cfun != NULL
10988         before accessing silent_p.
10989
10990 2021-03-20  Ahamed Husni  <ahamedhusni73@gmail.com>
10991
10992         * asan.c: Fix typos in comments.
10993
10994 2021-03-20  Vladimir N. Makarov  <vmakarov@redhat.com>
10995
10996         PR rtl-optimization/99680
10997         * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
10998         (process_address_1): Check empty constraint before using
10999         CONSTRAINT_LEN.
11000
11001 2021-03-19  Pat Haugen  <pthaugen@linux.ibm.com>
11002
11003         * config/rs6000/rs6000.c (power10_cost): New.
11004         (rs6000_option_override_internal): Set Power10 costs.
11005         (rs6000_issue_rate): Set Power10 issue rate.
11006         * config/rs6000/power10.md: Rewrite for Power10.
11007
11008 2021-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
11009
11010         PR target/99663
11011         * lra-constraints.c (process_address_1): Don't use unknown
11012         constraint for address constraint.
11013
11014 2021-03-19  Iain Sandoe  <iain@sandoe.co.uk>
11015
11016         PR target/99661
11017         * config.gcc (powerpc-*-darwin8): Delete the reference to
11018         the now removed darwin8.h.
11019
11020 2021-03-19  Olivier Hainque  <hainque@adacore.com>
11021
11022         PR target/99660
11023         * config/vxworksae.h (VX_CPU_PREFIX): Define.
11024
11025 2021-03-19  John David Anglin  <danglin@gcc.gnu.org>
11026
11027         * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
11028
11029 2021-03-19  Tamar Christina  <tamar.christina@arm.com>
11030
11031         PR tree-optimization/99656
11032         * tree-vect-slp-patterns.c (linear_loads_p,
11033         complex_add_pattern::matches, is_eq_or_top,
11034         vect_validate_multiplication, complex_mul_pattern::matches,
11035         complex_fms_pattern::matches): Remove complex_perm_kinds_t.
11036         * tree-vectorizer.h: (complex_load_perm_t): Removed.
11037         (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
11038         complex_load_perm_t.
11039
11040 2021-03-19  H.J. Lu  <hjl.tools@gmail.com>
11041
11042         PR target/99652
11043         * config/i386/i386-options.c (ix86_init_machine_status): Set
11044         silent_p to true.
11045         * config/i386/i386.c (init_cumulative_args): Set silent_p to
11046         false.
11047         (construct_container): Return early for return and argument
11048         errors if silent_p is true.
11049         * config/i386/i386.h (machine_function): Add silent_p.
11050
11051 2021-03-19  Jakub Jelinek  <jakub@redhat.com>
11052
11053         PR target/99593
11054         * config/arm/constraints.md (Ds): New constraint.
11055         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
11056         constraint instead of w,Dm.
11057
11058 2021-03-19  Andrew Stubbs  <ams@codesourcery.com>
11059
11060         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
11061         in error message.
11062
11063 2021-03-19  Eric Botcazou  <ebotcazou@adacore.com>
11064
11065         PR middle-end/99641
11066         * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
11067         array type, do the computation of the current position in sizetype.
11068
11069 2021-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>
11070
11071         PR target/99422
11072         * lra-constraints.c (process_address_1): Use lookup_constraint
11073         only for a single constraint.
11074
11075 2021-03-18  Martin Sebor  <msebor@redhat.com>
11076
11077         PR middle-end/99502
11078         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
11079         (inbounds_memaccess_p): ...to this.  Check the ending offset of
11080         the accessed member.
11081
11082 2021-03-18  Andrew Stubbs  <ams@codesourcery.com>
11083
11084         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
11085           %> quote markers to error messages.
11086         (gcn_goacc_validate_dims): Likewise.
11087         (gcn_conditional_register_usage): Remove exclaimation mark from error
11088         message.
11089         (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
11090
11091 2021-03-18  Jan Hubicka  <hubicka@ucw.cz>
11092
11093         * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
11094         integer divides1.
11095
11096 2021-03-18  Sinan Lin  <sinan@isrc.iscas.ac.cn>
11097             Kito Cheng  <kito.cheng@sifive.com>
11098
11099         * config/riscv/riscv.c (riscv_block_move_straight): Change type
11100         to unsigned HOST_WIDE_INT for parameter and local variable with
11101         HOST_WIDE_INT type.
11102         (riscv_adjust_block_mem): Ditto.
11103         (riscv_block_move_loop): Ditto.
11104         (riscv_expand_block_move): Ditto.
11105
11106 2021-03-18  Nick Clifton  <nickc@redhat.com>
11107
11108         * config/v850/v850.c (construct_restore_jr): Increase static
11109          buffer size.
11110         (construct_save_jarl): Likewise.
11111         * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
11112
11113 2021-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11114
11115         * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
11116         (aarch64_override_options_internal): Use it.
11117         (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
11118         tune_flags.
11119
11120 2021-03-17  Sandra Loosemore  <sandra@codesourcery.com>
11121
11122         * config/nios2/nios2.c (nios2_custom_check_insns): Clean up
11123         error message format issues.
11124         (nios2_option_override): Likewise.
11125         (nios2_expand_fpu_builtin): Likewise.
11126         (nios2_init_custom_builtins): Adjust to avoid bogus strncpy
11127         truncation warning.
11128         (nios2_expand_custom_builtin): More error message format fixes.
11129         (nios2_expand_rdwrctl_builtin): Likewise.
11130         (nios2_expand_rdprs_builtin): Likewise.
11131         (nios2_expand_eni_builtin): Likewise.
11132         (nios2_expand_builtin): Likewise.
11133         (nios2_register_custom_code): Likewise.
11134         (nios2_valid_target_attribute_rec): Likewise.
11135         (nios2_add_insn_asm): Fix uninitialized variable warning.
11136
11137 2021-03-17  Jan Hubicka  <jh@suse.cz>
11138
11139         * config/i386/x86-tune-costs.h (struct processor_costs): Update costs
11140         of gather to match reality.
11141         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.
11142
11143 2021-03-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11144
11145         * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
11146         to compare against CC_REG rather than NE.
11147
11148 2021-03-17  H.J. Lu  <hjl.tools@gmail.com>
11149
11150         PR target/99504
11151         * config/i386/i386.c (ix86_force_load_from_GOT_p): Support
11152         inline assembly statements.
11153         (ix86_print_operand): Update 'P' handling for -fno-plt.
11154
11155 2021-03-17  Tamar Christina  <tamar.christina@arm.com>
11156
11157         PR target/99542
11158         * config/aarch64/aarch64.c
11159         (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
11160
11161 2021-03-16  Segher Boessenkool  <segher@kernel.crashing.org>
11162
11163         PR target/98092
11164         * config/rs6000/predicates.md (branch_comparison_operator): Allow
11165         ordered and unordered for CCFPmode, if flag_finite_math_only.
11166
11167 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
11168
11169         PR target/99600
11170         * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
11171         rather than ASHIFT.
11172         * config/i386/i386.md (mult by 1248 into ashift): New splitter.
11173
11174 2021-03-16  Martin Liska  <mliska@suse.cz>
11175
11176         PR target/99592
11177         * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
11178         cl_optimization_compare function.
11179
11180 2021-03-16  Ilya Leoshkevich  <iii@linux.ibm.com>
11181
11182         * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
11183         as "v".
11184
11185 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
11186
11187         PR target/99563
11188         * config/i386/i386.h (struct machine_function): Add
11189         has_explicit_vzeroupper bitfield.
11190         * config/i386/i386-expand.c (ix86_expand_builtin): Set
11191         cfun->machine->has_explicit_vzeroupper when expanding
11192         IX86_BUILTIN_VZEROUPPER.
11193         * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
11194         Do the mode switching only when TARGET_VZEROUPPER, expensive
11195         optimizations turned on and not optimizing for size.
11196         (pass_insert_vzeroupper::gate): Enable even when
11197         cfun->machine->has_explicit_vzeroupper is set.
11198
11199 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
11200
11201         PR target/99542
11202         * config/aarch64/aarch64.c
11203         (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
11204         definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
11205         instead of DECL_ARGUMENTS.  Ignore types for uniform arguments.
11206
11207 2021-03-15  Richard Biener  <rguenther@suse.de>
11208
11209         PR tree-optimization/98834
11210         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
11211         subsetting by truncating the access size.
11212
11213 2021-03-15  Jan Hubicka  <hubicka@ucw.cz>
11214
11215         * config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
11216         * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
11217         of znver2_cost.
11218
11219 2021-03-15  Martin Liska  <mliska@suse.cz>
11220
11221         * spellcheck.c: Add missing comma in initialization.
11222
11223 2021-03-14  Uroš Bizjak  <ubizjak@gmail.com>
11224
11225         * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
11226         alternative 2 and alternative 1 with alternative 3 using
11227         YW register constraint.
11228         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
11229         using YW register constraint.
11230         (*vec_extractv16qi_zext): Ditto.
11231         (*vec_extractv4si): Merge alternatives 4 and 5
11232         using Yw register constraint.
11233         (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.
11234
11235 2021-03-13  Martin Sebor  <msebor@redhat.com>
11236
11237         PR tree-optimization/99489
11238         * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
11239         is not a call statement.
11240
11241 2021-03-13  Jakub Jelinek  <jakub@redhat.com>
11242
11243         PR tree-optimization/99544
11244         * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
11245         if for vector types multiplication can't be done in type's mode.
11246
11247 2021-03-12  Eric Botcazou  <ebotcazou@adacore.com>
11248
11249         PR target/99422
11250         * config/sparc/constraints.md (w): Rename to...
11251         (W): ... this and ditch previous implementation.
11252         * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
11253         (*movdf_insn_sp64): Likewise.
11254         (*mov<VM64:mode>_insn_sp64): Likewise.
11255         * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
11256         w with W.
11257         (atomic_compare_and_swap_leon3_1): Likewise.
11258         (*atomic_compare_and_swapdi_v8plus): Likewise.
11259         * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
11260         architecture and add missing address validity check during LRA.
11261
11262 2021-03-12  Tobias Burnus  <tobias@codesourcery.com>
11263
11264         PR fortran/98858
11265         * gimplify.c (omp_add_variable): Handle NULL_TREE as size
11266         occuring for assumed-size arrays in use_device_{ptr,addr}.
11267
11268 2021-03-12  Jakub Jelinek  <jakub@redhat.com>
11269
11270         PR target/99321
11271         * config/i386/constraints.md (YW): New internal constraint.
11272         * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
11273         (*<sse2_avx2>_<insn><mode>3<mask_name>,
11274         *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
11275         *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
11276         constraints.
11277         (<sse2_avx2>_psadbw): Use YW instead of v in constraints.
11278         (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
11279         avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
11280         into one, use Yw instead of former x,v.
11281         (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
11282         the last alternative.
11283         (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
11284         <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
11285         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
11286         <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
11287         into one, use <v_Yw> instead of former x,v.
11288         (avx2_interleave_highv32qi<mask_name>,
11289         vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
11290         constraints.  Add && <mask_avx512bw_condition> to condition.
11291         (avx2_interleave_lowv32qi<mask_name>,
11292         vec_interleave_lowv16qi<mask_name>,
11293         avx2_interleave_highv16hi<mask_name>,
11294         vec_interleave_highv8hi<mask_name>,
11295         avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
11296         avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
11297         avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
11298         avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
11299         *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
11300         Yw instead of v in constraints.
11301         * config/i386/mmx.md (Yv_Yw): New define_mode_attr.
11302         (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
11303         instead of Yv in constraints.
11304         (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
11305         *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
11306         *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
11307         mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
11308         *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
11309         constraints.
11310         (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
11311         *mmx_pextrb_zext): Use YW instead of Yv in constraints.
11312         (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
11313         (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
11314         two, one with just x, another isa avx512vl with v.
11315
11316 2021-03-12  Martin Liska  <mliska@suse.cz>
11317
11318         * doc/invoke.texi: Add missing param documentation.
11319
11320 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
11321
11322         PR analyzer/96374
11323         * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
11324         analyzer/trimmed-graph.o.
11325         * doc/analyzer.texi (Analyzer Paths): Rewrite description of
11326         feasibility checking to reflect new implementation.
11327         * doc/invoke.texi (-fdump-analyzer-feasibility): Document new
11328         option.
11329         * shortest-paths.h (shortest_paths::get_shortest_distance): New.
11330
11331 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
11332
11333         * digraph.cc (selftest::test_shortest_paths): Update
11334         shortest_paths init for new param.  Add test of
11335         SPS_TO_GIVEN_TARGET.
11336         * shortest-paths.h (enum shortest_path_sense): New.
11337         (shortest_paths::shortest_paths): Add "sense" param.
11338         Update for renamings.  Generalize to use "sense" param.
11339         (shortest_paths::get_shortest_path): Rename param.
11340         (shortest_paths::m_sense): New field.
11341         (shortest_paths::m_prev): Rename...
11342         (shortest_paths::m_best_edge): ...to this.
11343         (shortest_paths::get_shortest_path): Update for renamings.
11344         Conditionalize flipping of path on sense of traversal.
11345
11346 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
11347
11348         * digraph.cc (selftest::test_shortest_paths): Add test coverage
11349         for paths from B and C.
11350         * shortest-paths.h (shortest_paths::shortest_paths): Handle
11351         unreachable nodes, rather than asserting.
11352
11353 2021-03-11  David Edelsohn  <dje.gcc@gmail.com>
11354
11355         PR target/99094
11356         * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
11357         xcoff_tbss_section_name.
11358         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
11359         * xcoffout.c (xcoff_tbss_section_name): Delete.
11360         * xcoffout.h (xcoff_tbss_section_name): Delete.
11361
11362 2021-03-11  Richard Biener  <rguenther@suse.de>
11363
11364         PR tree-optimization/99523
11365         * tree-cfg.c (dump_function_to_file): Dump SSA names
11366         w/o identifier to the decls section as well, not only those
11367         without a VAR_DECL.
11368
11369 2021-03-11  Jakub Jelinek  <jakub@redhat.com>
11370
11371         PR ipa/99517
11372         * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
11373         function calls with lhs fail if the lhs don't have compatible types.
11374
11375 2021-03-11  Hans-Peter Nilsson  <hp@axis.com>
11376
11377         * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
11378         Change FRAME_POINTER_REGNUM to correspond to a new faked
11379         register faked_fp, part of GENNONACR_REGS like faked_ap.
11380         (CRIS_FAKED_REGS_CONTENTS): New helper macro.
11381         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
11382         (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
11383         (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
11384         * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
11385         register.
11386         (CRIS_REAL_FP_REGNUM): New constant.
11387         * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
11388         for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
11389         (cris_initial_elimination_offset): Handle elimination changes
11390         to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
11391         and add one from FRAME_POINTER_REGNUM to
11392         HARD_FRAME_POINTER_REGNUM.
11393         (cris_expand_prologue, cris_expand_epilogue): Emit code for
11394         hard_frame_pointer_rtx instead of frame_pointer_rtx.
11395
11396 2021-03-10  David Edelsohn  <dje.gcc@gmail.com>
11397
11398         PR target/99492
11399         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
11400         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
11401
11402 2021-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>
11403
11404         PR target/99422
11405         * lra-constraints.c (process_address_1): Don't check unknown
11406         constraint, use X for empty constraint.
11407
11408 2021-03-10  Alex Coplan  <alex.coplan@arm.com>
11409
11410         * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
11411         Fix typo in comment describing "is_ha" argument.
11412
11413 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
11414
11415         * doc/sourcebuild.texi: Document LRA target selector.
11416
11417 2021-03-10  David Malcolm  <dmalcolm@redhat.com>
11418
11419         * doc/ux.texi: Add subsection contrasting interactive versus
11420         batch usage of GCC.
11421
11422 2021-03-10  Joel Hutton  <joel.hutton@arm.com>
11423
11424         PR target/99102
11425         * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
11426         check condition.
11427         (vectorizable_load): Fix gather load mask check condition.
11428
11429 2021-03-10  Richard Biener  <rguenther@suse.de>
11430
11431         PR tree-optimization/99510
11432         * tree.c (check_aligned_type): Check that the candidate
11433         has TYPE_USER_ALIGN set instead of matching with the
11434         original type.
11435
11436 2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>
11437
11438         * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
11439         float and vector integer modes only if the mode is not larger.
11440
11441 2021-03-10  Hans-Peter Nilsson  <hp@axis.com>
11442
11443         * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
11444
11445 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
11446
11447         * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
11448         constraints > 9.
11449         * ira-lives.c (single_reg_class): Ditto.
11450
11451 2021-03-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11452
11453         * config.gcc (aarch64-*-rtems*): Include general rtems.h after
11454         the architecture-specific rtems.h.
11455         (aarch64-*-rtems*): Likewise.
11456         (arm*-*-rtems*): Likewise.
11457         (epiphany-*-rtems*): Likewise.
11458         (riscv*-*-rtems*): Likewise.
11459
11460 2021-03-09  Jakub Jelinek  <jakub@redhat.com>
11461
11462         PR tree-optimization/99305
11463         * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
11464         before integer_all_onesp instead of vice versa.
11465
11466 2021-03-09  Richard Earnshaw  <rearnsha@arm.com>
11467
11468         * common/config/arm/arm-common.c (arm_config_default): Change type
11469         of 'i' to unsigned.
11470
11471 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
11472
11473         PR target/99454
11474         * lra-constraints.c (process_address_1): Process constraint 'g'
11475         separately and digital constraints containing more one digit.
11476
11477 2021-03-09  Nick Clifton  <nickc@redhat.com>
11478
11479         * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
11480         (DWARF"_DEBUGGING_INFO): Define.
11481
11482 2021-03-09  Eric Botcazou  <ebotcazou@adacore.com>
11483
11484         PR c++/90448
11485         * calls.c (initialize_argument_information): When the argument
11486         is passed by reference, do not make a copy in a thunk only if
11487         the argument is already in memory.  Remove redundant test for
11488         the case of callee copy.
11489
11490 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
11491
11492         PR target/99454
11493         * lra-constraints.c (process_address_1): Process 0..9 constraints
11494         in process_address_1.
11495
11496 2021-03-09  Andreas Krebbel  <krebbel@linux.ibm.com>
11497
11498         * config/s390/s390.c (struct s390_processor processor_table):
11499         Binutils name string must not be empty.
11500
11501 2021-03-09  Claudiu Zissulescu  <claziss@synopsys.com>
11502
11503         * config/arc/arc.c (arc_attr_type): Remove function.
11504
11505 2021-03-09  Martin Liska  <mliska@suse.cz>
11506
11507         PR target/99464
11508         * config/i386/i386-options.c (ix86_option_override_internal):
11509         Set isa_flags for OPTS argument and not for the global
11510         global_options.
11511
11512 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
11513
11514         * config/rs6000/predicates.md (ds_form_mem_operand): Check
11515         in correct code.
11516
11517 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
11518
11519         PR target/99070
11520         * config/rs6000/predicates.md (ds_form_mem_operand) New
11521         predicate.
11522         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
11523         ds_form_mem_operand in ld/lwa patterns.
11524         * config/rs6000/fusion.md: Regenerate file.
11525
11526 2021-03-08  Martin Sebor  <msebor@redhat.com>
11527
11528         PR middle-end/98266
11529         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
11530         (array_bounds_checker::check_array_bounds): Call it.
11531
11532 2021-03-08  Martin Sebor  <msebor@redhat.com>
11533
11534         PR middle-end/97631
11535         * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
11536         (handle_builtin_stxncpy_strncat): Rename locals.  Determine
11537         destination size from allocation calls.  Issue a more appropriate
11538         kind of warning.
11539         (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
11540         (handle_builtin_memset): Same.
11541
11542 2021-03-08  Peter Bergner  <bergner@linux.ibm.com>
11543
11544         PR target/98959
11545         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
11546         to ensure we do not have an Altivec style address.
11547         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
11548         an Altivec style address.
11549         (*vsx_le_perm_store_<mode>): Likewise.
11550         (splitters after *vsx_le_perm_store_<mode>): Likewise.
11551         (vsx_load_<mode>): Disable special expander if passed an Altivec
11552         style address.
11553         (vsx_store_<mode>): Likewise.
11554
11555 2021-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11556
11557         PR target/99437
11558         * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
11559         (aarch64_simd_shift_imm_vec_hi): Likewise.
11560         (aarch64_simd_shift_imm_vec_si): Likewise.
11561         (aarch64_simd_shift_imm_vec_di): Likewise.
11562         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
11563         predicate from above.
11564         (aarch64_shrn<mode>_insn_be): Likewise.
11565         (aarch64_rshrn<mode>_insn_le): Likewise.
11566         (aarch64_rshrn<mode>_insn_be): Likewise.
11567         (aarch64_shrn2<mode>_insn_le): Likewise.
11568         (aarch64_shrn2<mode>_insn_be): Likewise.
11569         (aarch64_rshrn2<mode>_insn_le): Likewise.
11570         (aarch64_rshrn2<mode>_insn_be): Likewise.
11571
11572 2021-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
11573
11574         PR target/99422
11575         * lra-constraints.c (skip_contraint_modifiers): New function.
11576         (process_address_1): Use it before lookup_constraint call.
11577
11578 2021-03-08  Martin Liska  <mliska@suse.cz>
11579
11580         PR target/99463
11581         * config/i386/i386-options.c (ix86_option_override_internal):
11582         Enable UINTR and HRESET for -march that supports it.
11583
11584 2021-03-08  Ilya Leoshkevich  <iii@linux.ibm.com>
11585
11586         * config/s390/s390.c (f_constraint_p): New function.
11587         (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
11588         (TARGET_MD_ASM_ADJUST): Likewise.
11589
11590 2021-03-08  Tobias Burnus  <tobias@codesourcery.com>
11591
11592         PR fortran/97927
11593         * tree-nested.c (convert_local_reference_stmt): Avoid calling
11594         lookup_field_for_decl for Fortran module (= namespace context).
11595
11596 2021-03-08  Andreas Krebbel  <krebbel@linux.ibm.com>
11597
11598         * config/s390/s390.c (s390_expand_vec_compare): Implement <0
11599         comparison with arithmetic right shift.
11600         (s390_expand_vcond): No need for a force_reg anymore.
11601         s390_vec_compare will do it.
11602         * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
11603         immediate operands.
11604
11605 2021-03-07  Jakub Jelinek  <jakub@redhat.com>
11606
11607         PR target/99321
11608         * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
11609         but TARGET_AVX512BW or TARGET_AVX512VL is not set.  Adjust description
11610         and comment.
11611         * config/i386/sse.md (v_Yw): New define_mode_attr.
11612         (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
11613         *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
11614         in constraints.
11615         * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
11616         xYw in constraints.
11617
11618 2021-03-06  Julian Brown  <julian@codesourcery.com>
11619
11620         * tree-pretty-print.c (dump_generic_node): Emit non-generic
11621         address space info for aggregates.
11622
11623 2021-03-06  Hans-Peter Nilsson  <hp@axis.com>
11624
11625         * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
11626
11627 2021-03-05  Jakub Jelinek  <jakub@redhat.com>
11628
11629         PR middle-end/99322
11630         * tree-cfg.c (bb_to_omp_idx): New variable.
11631         (execute_build_cfg): Release the bb_to_omp_idx vector after
11632         cleanup_tree_cfg returns.
11633         (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
11634         for bb_to_omp_idx being a vec<int> instead of pointer to array
11635         of ints.
11636         (make_edges): Remove bb_to_omp_idx local variable, don't pass
11637         it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
11638         vec<int> instead of pointer to array of ints and don't free/release
11639         it at the end.
11640         (remove_bb): When removing a bb and placing forced label somewhere
11641         else, ensure it is put into the same OpenMP region during cfg
11642         pass if possible or to entry successor as fallback.  Unregister
11643         bb from bb_to_omp_idx.
11644
11645 2021-03-05  Vladimir N. Makarov  <vmakarov@redhat.com>
11646
11647         PR target/99378
11648         * lra-constraints.c (process_address_1): Skip decomposing address
11649         for asm insn operand with unknown constraint.
11650
11651 2021-03-05  Martin Jambor  <mjambor@suse.cz>
11652
11653         PR ipa/98078
11654         * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
11655         corresponding speculative edges if we are about to resolve
11656         sepculation.  Make edge direct (and so resolve speculations) before
11657         removing it from call_site_hash.
11658         (cgraph_edge::make_direct): Relax the initial assert to allow calling
11659         the function on speculative direct edges.
11660
11661 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
11662
11663         PR rtl-optimization/99376
11664         * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
11665         of low-order zero bits is too large, set the result to 0 directly.
11666
11667 2021-03-04  Jakub Jelinek  <jakub@redhat.com>
11668
11669         PR middle-end/93235
11670         * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
11671         SUBREG and a SUBREG to op_mode can't be created.
11672
11673 2021-03-04  Alex Coplan  <alex.coplan@arm.com>
11674
11675         PR target/99381
11676         * config/aarch64/aarch64-sve-builtins.cc
11677         (function_resolver::require_vector_type): Handle error_mark_node.
11678
11679 2021-03-04  Ilya Leoshkevich  <iii@linux.ibm.com>
11680
11681         * cfgexpand.c (expand_asm_loc): Pass new parameter.
11682         (expand_asm_stmt): Likewise.
11683         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
11684         parameter.
11685         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
11686         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
11687         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
11688         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
11689         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
11690         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
11691         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
11692         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
11693         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
11694         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
11695         * doc/tm.texi (md_asm_adjust): Likewise.
11696         * target.def (md_asm_adjust): Likewise.
11697
11698 2021-03-04  Richard Biener  <rguenther@suse.de>
11699
11700         PR middle-end/97855
11701         * tree-pretty-print.c: Poison pp_printf.
11702         (dump_decl_name): Avoid use of pp_printf.
11703         (dump_block_node): Likewise.
11704         (dump_generic_node): Likewise.
11705
11706 2021-03-04  Martin Sebor  <msebor@redhat.com>
11707
11708         PR middle-end/96963
11709         PR middle-end/94655
11710         * builtins.c (handle_array_ref): New helper.
11711         (handle_mem_ref): New helper.
11712         (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
11713         into new helper functions.  Correct a workaround for vectorized
11714         assignments.
11715
11716 2021-03-03  Pat Haugen  <pthaugen@linux.ibm.com>
11717
11718         * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
11719         floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
11720         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
11721         *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
11722         attribute for Power10.
11723         * config/rs6000/mma.md (*movoo): Likewise.
11724         * config/rs6000/rs6000.md (define_attr "size"): Add 256.
11725         (define_mode_attr bits): Add DD/TD modes.
11726         * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
11727         store_conditionalpti): Update size attribute for Power10.
11728
11729 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11730
11731         PR bootstrap/92002
11732         * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
11733         -Wuninitialized, -Wmaybe-uninitialized.
11734         (wide-int.o-warn): Likewise.
11735
11736 2021-03-03  Richard Earnshaw  <rearnsha@arm.com>
11737
11738         * common/config/arm/arm-common.c: Include configargs.h.
11739         (arm_config_default): New function.
11740         (arm_target_mode): Renamed from arm_target_thumb_only.  Handle
11741         processors that do not support Thumb.  Take into account the
11742         --with-mode configuration setting for selecting the default.
11743         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
11744         (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
11745
11746 2021-03-03  Martin Liska  <mliska@suse.cz>
11747
11748         PR gcov-profile/97461
11749         * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
11750
11751 2021-03-03  Eric Botcazou  <ebotcazou@adacore.com>
11752
11753         PR target/99234
11754         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
11755         point back the hard frame pointer to its default location when the
11756         frame is larger than SEH_MAX_FRAME_SIZE.
11757
11758 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
11759
11760         PR target/99321
11761         * config/i386/predicates.md (logic_operator): New define_predicate.
11762         * config/i386/i386.md (mov + mem using comm arith peephole2):
11763         Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
11764         and the inner mode is [QH]Imode.
11765
11766 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
11767
11768         PR debug/99090
11769         * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
11770         (new_loc_list): Clear end_entry.
11771         (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
11772         if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx.  Fix comment
11773         typo.
11774         (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
11775         initialize also end_entry.
11776
11777 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
11778
11779         PR target/99085
11780         * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
11781         partitions, if in non-layout mode after reorder_blocks also move
11782         affected blocks to ensure a single partition transition.
11783
11784 2021-03-03  Jason Merrill  <jason@redhat.com>
11785
11786         PR c++/96078
11787         * cgraphunit.c (process_function_and_variable_attributes): Don't
11788         warn about flatten on an alias if the target also has it.
11789         * cgraph.h (symtab_node::get_alias_target_tree): New.
11790
11791 2021-03-02  David Edelsohn  <dje.gcc@gmail.com>
11792
11793         * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
11794         period to symbol name.
11795         (tls_get_addr_internal<mode>): Same.
11796
11797 2021-03-02  David Malcolm  <dmalcolm@redhat.com>
11798
11799         PR c/99323
11800         * diagnostic-show-locus.c
11801         (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
11802         column 0.
11803
11804 2021-03-02  Martin Sebor  <msebor@redhat.com>
11805
11806         PR middle-end/99276
11807         * builtins.c (warn_for_access): Remove stray warning text.
11808
11809 2021-03-02  Martin Sebor  <msebor@redhat.com>
11810
11811         PR middle-end/99295
11812         * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
11813         property.
11814
11815 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
11816
11817         PR debug/99319
11818         * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
11819         -gdwarf-5 -gstrict-dwarf.  For -gsplit-dwarf -gdwarf-5 use
11820         DW_MACRO_*_strx instead of DW_MACRO_*_strp.  Handle
11821         DW_MACRO_define_strx and DW_MACRO_undef_strx.
11822         (save_macinfo_strings): Use DW_MACRO_*_str* even with
11823         -gdwarf-5 -gstrict-dwarf.  Handle DW_MACRO_define_strx and
11824         DW_MACRO_undef_strx.
11825
11826 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
11827
11828         * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
11829         builtin signature.
11830         (BT_FN_V8HI_V8HI_UINT): Likewise.
11831         (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
11832         * config/s390/s390-builtins.def (B_NNPA): New macro definition.
11833         (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
11834         New builtin definitions.
11835         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
11836         vector extension version.
11837         * config/s390/s390.c (s390_expand_builtin): Check if builtins are
11838         available with current -march level.
11839         * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
11840         (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
11841         (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
11842         * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
11843         (vec_extend_to_fp32_lo): Likewise.
11844         (vec_round_from_fp32): Likewise.
11845         (vec_convert_to_fp16): Likewise.
11846         (vec_convert_from_fp16): Likewise.
11847         * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
11848         (vclfnls_v8hi): Likewise.
11849         (vcrnfs_v8hi): Likewise.
11850         (vcfn_v8hi): Likewise.
11851         (vcnf_v8hi): Likewise.
11852
11853 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
11854
11855         * common/config/s390/s390-common.c (processor_flags_table): New entry.
11856         * config.gcc: Enable arch14 for --with-arch and --with-tune.
11857         * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
11858         arch14 for unknown CPU models.
11859         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
11860         * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
11861         (s390_get_sched_attrmask): Likewise.
11862         (s390_get_unit_mask): Likewise.
11863         * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
11864         (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
11865         (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
11866         (TARGET_NNPA_P): New macro definitions.
11867         * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
11868         * config/s390/s390.opt: Add PROCESSOR_ARCH14.
11869
11870 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
11871
11872         PR middle-end/95757
11873         * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
11874         condition.  Call register_edge_assert_for_1 for == 0, != 0, == 1 and
11875         != 1 comparisons if name is lhs of a comparison.
11876
11877 2021-03-01  Iain Sandoe  <iain@sandoe.co.uk>
11878
11879         PR target/44107
11880         PR target/48097
11881         * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
11882         * config/darwin.c (darwin_should_restore_cfa_state): New.
11883         * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
11884         * doc/tm.texi: Regenerated.
11885         * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
11886         * dwarf2cfi.c (connect_traces): If the target requests, restore
11887         the CFA expression after a DW_CFA_restore.
11888         * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
11889
11890 2021-03-01  Martin Liska  <mliska@suse.cz>
11891
11892         PR target/99313
11893         * optc-save-gen.awk: Add 4 more exceptions.
11894
11895 2021-03-01  Nathan Sidwell  <nathan@acm.org>
11896
11897         PR c++/99294
11898         * tree.h (TYPE_ALIGN_RAW): New accessor.
11899         (TYPE_ALIGN): Use it.
11900
11901 2021-03-01  Jan Hubicka  <jh@suse.cz>
11902
11903         PR ipa/98338
11904         * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
11905
11906 2021-03-01  Eric Botcazou  <ebotcazou@adacore.com>
11907
11908         PR target/99234
11909         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
11910         point the hard frame pointer to the SSE register save area instead
11911         of the general register save area.  Perform only minimal adjustment
11912         for small frames if it is initially not correctly aligned.
11913         (ix86_expand_prologue): Remove early saves for a SEH target.
11914         * config/i386/winnt.c (struct seh_frame_state): Document constraint.
11915
11916 2021-02-28  Jakub Jelinek  <jakub@redhat.com>
11917
11918         PR c/99304
11919         * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
11920         typo - referneced -> referenced.
11921         * tree.c (component_ref_size): Fix comment typo -
11922         refernce -> reference.
11923         * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
11924         traling -> trailing.
11925         (aliasing_component_refs_p): Fix comment typos -
11926         refernce -> reference and refernece -> reference and
11927         traling -> trailing.
11928         (nonoverlapping_refs_since_match_p): Fix comment typo -
11929         referneces -> references.
11930         * doc/invoke.texi (--param modref-max-bases): Fix a typo -
11931         referneces -> references.
11932
11933 2021-02-27  Iain Sandoe  <iain@sandoe.co.uk>
11934
11935         * config/host-darwin.c (darwin_gt_pch_use_address): Modify
11936         diagnostic message to avoid use of a contraction and format
11937         warning.
11938
11939 2021-02-27  Jakub Jelinek  <jakub@redhat.com>
11940
11941         PR other/99288
11942         * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
11943         HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
11944         * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
11945         HOST_WIDE_INT_PRINT_DEC in inform format string.  Fix comment
11946         typos.
11947
11948 2021-02-26  Richard Biener  <rguenther@suse.de>
11949
11950         PR middle-end/99281
11951         * expr.c (store_field): For calls with return-slot optimization
11952         and addressable return type expand the store directly.
11953
11954 2021-02-26  Richard Biener  <rguenther@suse.de>
11955
11956         PR c/99275
11957         * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
11958
11959 2021-02-26  Peter Bergner  <bergner@linux.ibm.com>
11960
11961         PR target/99279
11962         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
11963         with an "if" test.
11964
11965 2021-02-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
11966
11967         * config.gcc: Add rs6000-pcrel-opt.o.
11968         * config/rs6000/rs6000-pcrel-opt.c: New file.
11969         * config/rs6000/pcrel-opt.md: New file.
11970         * config/rs6000/predicates.md: Add d_form_memory predicate.
11971         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
11972         * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
11973         * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
11974         pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
11975         and make_pass_pcrel_opt().
11976         * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
11977         (rs6000_option_override_internal): Add pcrel-opt.
11978         (rs6000_delegitimize_address): Support pcrel-opt.
11979         (rs6000_opt_masks): Add pcrel-opt.
11980         (pcrel_opt_valid_mem_p): New function.
11981         (reg_to_non_prefixed): Make global.
11982         (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
11983         (output_pcrel_opt_reloc): New function.
11984         * config/rs6000/rs6000.md (loads_extern_addr): New attr.
11985         (pcrel_extern_addr): Set loads_extern_addr.
11986         Add include for pcrel-opt.md.
11987         * config/rs6000/rs6000.opt: Add -mpcrel-opt.
11988         * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
11989         pcrel-opt.md.
11990
11991 2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
11992
11993         PR target/98996
11994         * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
11995         If TARGET_64BIT and dest is SUBREG, we check the width, if it
11996         equal to SImode, we use SImode operation, just like what we are
11997         doing for REG one.
11998
11999 2021-02-26  Marek Polacek  <polacek@redhat.com>
12000
12001         * builtins.c (warn_for_access): Fix typos.
12002
12003 2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
12004
12005         * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
12006         mark in front of the immediate quantity.
12007         (<optab>_rolsi3_uxtw): Likewise.
12008
12009 2021-02-25  Richard Earnshaw  <rearnsha@arm.com>
12010
12011         PR target/99271
12012         * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
12013         (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
12014         (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
12015         address and disable when the FPCXT is not available.
12016         (nonsecure_call_value_reg_thumb2): Likewise.
12017
12018 2021-02-25  Nathan Sidwell  <nathan@acm.org>
12019
12020         PR c++/99166
12021         * doc/invoke.texi (flang-info-module-cmi): Renamed option.
12022
12023 2021-02-25  Tamar Christina  <tamar.christina@arm.com>
12024
12025         * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
12026
12027 2021-02-25  Richard Biener  <rguenther@suse.de>
12028
12029         PR tree-optimization/99253
12030         * tree-vect-loop.c (check_reduction_path): First compute
12031         code, then verify out-of-loop uses.
12032
12033 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
12034
12035         PR target/95798
12036         * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
12037
12038 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
12039
12040         PR tree-optimization/80635
12041         * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
12042         VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
12043         has mode precision.
12044
12045 2021-02-25  Richard Biener  <rguenther@suse.de>
12046
12047         * tree-vect-slp.c (optimize_load_redistribution_1): Delay
12048         load_map population.
12049         (vect_match_slp_patterns_2): Revert part of last change.
12050         (vect_analyze_slp): Do not interleave optimize_load_redistribution
12051         with pattern detection but do it afterwards.  Dump the
12052         whole SLP graph after pattern recognition and load
12053         redistribution optimization finished.
12054
12055 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
12056
12057         PR fortran/99226
12058         * omp-low.c (struct omp_context): Add teams_nested_p and
12059         nonteams_nested_p members.
12060         (scan_omp_target): Diagnose teams nested inside of target with other
12061         directives strictly nested inside of the same target.
12062         (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
12063         ctx->nonteams_nested_p as needed.
12064
12065 2021-02-24  Vladimir N. Makarov  <vmakarov@redhat.com>
12066
12067         PR inline-asm/99123
12068         * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
12069
12070 2021-02-24  Hans-Peter Nilsson  <hp@axis.com>
12071
12072         * config/cris/cris.c (cris_expand_prologue): Set
12073         current_function_static_stack_size, if flag_stack_usage_info.
12074
12075 2021-02-24  Pat Haugen  <pthaugen@linux.ibm.com>
12076
12077         * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
12078         (rs6000_final_prescan_insn): Adjust.
12079         (rs6000_asm_output_opcode): Likewise.
12080
12081 2021-02-24  Martin Sebor  <msebor@redhat.com>
12082
12083         PR middle-end/97172
12084         * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
12085         from function arguments.
12086
12087 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
12088
12089         PR tree-optimization/99220
12090         * tree-vect-slp.c (optimize_load_redistribution_1): Remove
12091         node from cache when it's about to be deleted.
12092
12093 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
12094
12095         PR tree-optimization/99225
12096         * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
12097         to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
12098         build_int_cst (..., 1).  Formatting fixes.
12099
12100 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
12101
12102         PR tree-optimization/99149
12103         * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
12104         buffer.
12105         (vect_slp_reset_pattern): Remove.
12106         (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
12107         (complex_mul_pattern::build, complex_fma_pattern::build,
12108         complex_fms_pattern::build): Fix ref counts.
12109         * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
12110         when node is being deleted.
12111         (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
12112         (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
12113         stores.
12114         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
12115
12116 2021-02-24  Matthias Klose  <doko@ubuntu.com>
12117
12118         Revert:
12119         2020-12-07  Matthias Klose  <doko@ubuntu.com>
12120
12121         * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
12122         and ENABLE_RTL_FLAG_CHECKING.
12123
12124 2021-02-24  Richard Biener  <rguenther@suse.de>
12125
12126         PR c/99224
12127         * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
12128
12129 2021-02-23  Peter Bergner  <bergner@linux.ibm.com>
12130
12131         * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
12132         (vsx_assemble_pair): ...to this.
12133         (*mma_assemble_pair): Rename from this...
12134         (*vsx_assemble_pair): ...to this.
12135         (mma_disassemble_pair): Rename from this...
12136         (vsx_disassemble_pair): ...to this.
12137         (*mma_disassemble_pair): Rename from this...
12138         (*vsx_disassemble_pair): ...to this.
12139         * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
12140         BU_COMPAT): New macros.
12141         (mma_assemble_pair): Rename from this...
12142         (vsx_assemble_pair): ...to this.
12143         (mma_disassemble_pair): Rename from this...
12144         (vsx_disassemble_pair): ...to this.
12145         (mma_assemble_pair): New compatibility built-in.
12146         (mma_disassemble_pair): Likewise.
12147         * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
12148         (RS6000_BUILTIN_COMPAT): Define.
12149         (bdesc_compat): New.
12150         (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
12151         (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
12152         and VSX_BUILTIN_ASSEMBLE_PAIR.
12153         (rs6000_init_builtins): Register compatibility built-ins.
12154         (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
12155         VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
12156         VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
12157         * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
12158         (__builtin_vsx_assemble_pair): ...to this.
12159         (__builtin_mma_disassemble_pair): Rename from this...
12160         (__builtin_vsx_disassemble_pair): ...to this.
12161
12162 2021-02-23  Martin Liska  <mliska@suse.cz>
12163
12164         PR sanitizer/99168
12165         * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
12166         with different alignment. That leads to an invalid red zone
12167         size allocated in runtime.
12168
12169 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
12170
12171         PR tree-optimization/99204
12172         * fold-const.c (fold_read_from_constant_string): Check that
12173         tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
12174
12175 2021-02-23  Segher Boessenkool  <segher@kernel.crashing.org>
12176             Kewen Lin  <linkw@gcc.gnu.org>
12177
12178         * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
12179         (rotl<mode>3_insert_3): ...this.
12180         (plus_ior_xor): New code_iterator.
12181         (define_split for GPR rl*imi): New splitter.
12182         * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
12183         for integer merging.
12184
12185 2021-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12186
12187         * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
12188         Define.
12189         * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
12190         into a register when the above is enabled.
12191         * config/aarch64/aarch64.c (neoversev1_tunings):
12192         AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
12193         (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
12194
12195 2021-02-22  Hans-Peter Nilsson  <hp@axis.com>
12196
12197         * config/cris/cris.c (cris_print_operand) <'T'>: Change
12198         valid operand from is now an addi mult-value to shift-value.
12199         * config/cris/cris.md (*addi): Change expression of scaled
12200         operand from mult to ashift.
12201         * config/cris/cris.md (*addi_reload): New insn_and_split.
12202
12203 2021-02-22  John David Anglin  <danglin@gcc.gnu.org>
12204
12205         PR target/85074
12206         * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
12207         hook_bool_const_tree_hwi_hwi_const_tree_true.
12208         (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
12209
12210 2021-02-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12211
12212         PR rtl-optimization/98791
12213         * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
12214         for unordered modes.
12215
12216 2021-02-22  Martin Liska  <mliska@suse.cz>
12217
12218         * tree-inline.c (inline_forbidden_p): Set
12219         inline_forbidden_reason.
12220
12221 2021-02-22  Richard Biener  <rguenther@suse.de>
12222
12223         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
12224         costed subgraph.
12225
12226 2021-02-22  Richard Biener  <rguenther@suse.de>
12227
12228         PR tree-optimization/99165
12229         * gimple-ssa-store-merging.c (pass_store_merging::process_store):
12230         Accumulate changed to ret.
12231
12232 2021-02-21  Uros Bizjak  <ubizjak@gmail.com>
12233
12234         Revert:
12235         2020-12-09  Uroš Bizjak  <ubizjak@gmail.com>
12236
12237         * config/i386/i386.h (REG_ALLOC_ORDER): Remove
12238
12239 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
12240
12241         PR target/99134
12242         * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
12243         pattern.
12244         (trunctf<DFP_ALL:mode>2): Likewise.
12245         (trunctdtf2_vr): Likewise.
12246         (trunctdtf2): Likewise.
12247         (extend<DFP_ALL:mode>tf2_vr): Likewise.
12248         (extend<DFP_ALL:mode>tf2): Likewise.
12249         (extendtftd2_vr): Likewise.
12250         (extendtftd2): Likewise.
12251
12252 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
12253
12254         * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
12255         add memory alternative.
12256         (tf_to_fprx2): New pattern.
12257
12258 2021-02-19  Martin Sebor  <msebor@redhat.com>
12259
12260         PR c/97172
12261         * attribs.c (init_attr_rdwr_indices): Guard vblist use.
12262         (attr_access::free_lang_data): Remove a spurious test.
12263
12264 2021-02-19  Nathan Sidwell  <nathan@acm.org>
12265
12266         * doc/invoke.texi (flang-info-module-read): Document.
12267
12268 2021-02-19  Martin Liska  <mliska@suse.cz>
12269
12270         PR translation/99167
12271         * params.opt: Fix typo.
12272
12273 2021-02-19  Richard Biener  <rguenther@suse.de>
12274
12275         PR middle-end/99122
12276         * tree-inline.c (inline_forbidden_p): Do not inline functions
12277         with VLA arguments or return value.
12278
12279 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
12280
12281         PR target/98998
12282         * config/arm/arm.md (*stack_protect_combined_set_insn,
12283         *stack_protect_combined_test_insn): If force_const_mem result
12284         is not valid general operand, force its address into the destination
12285         register first.
12286
12287 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
12288
12289         PR ipa/99034
12290         * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
12291         pad or non-local label, put FORCED_LABELs from bb b after that label
12292         rather than before it.
12293
12294 2021-02-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12295
12296         PR target/98657
12297         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
12298         expand_vector_broadcast' to emit the vec_duplicate operand.
12299
12300 2021-02-18  Vladimir N. Makarov  <vmakarov@redhat.com>
12301
12302         PR rtl-optimization/96264
12303         * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
12304         hard regs.
12305
12306 2021-02-18  H.J. Lu  <hjl.tools@gmail.com>
12307
12308         PR target/99113
12309         * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
12310         looking up the retain attribute.
12311         (resolve_unique_section): Likewise.
12312         (get_variable_section): Likewise.
12313         (switch_to_section): Likewise.  Warn when a symbol without the
12314         retain attribute and a symbol with the retain attribute are
12315         placed in the section with the same name, instead of the used
12316         attribute.
12317         * doc/extend.texi: Document the "retain" attribute.
12318
12319 2021-02-18  Nathan Sidwell  <nathan@acm.org>
12320
12321         PR c++/99023
12322         * doc/invoke.texi (flang-info-include-translate): Document header
12323         lookup behaviour.
12324
12325 2021-02-18  Richard Biener  <rguenther@suse.de>
12326
12327         PR middle-end/99122
12328         * ipa-fnsummary.c (analyze_function_body): Set
12329         CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
12330         * tree-inline.c (insert_init_debug_bind): Pass NULL for
12331         error_mark_node values.
12332         (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
12333         values.
12334         (setup_one_parameter): Delay force_value_to_type until when
12335         it's needed.
12336
12337 2021-02-18  Hans-Peter Nilsson  <hp@axis.com>
12338
12339         PR tree-optimization/99142
12340         * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
12341
12342 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
12343
12344         * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
12345         wide_int_bitmask::wide_int_bitmask (uint64_t),
12346         wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
12347         wide_int_bitmask::operator ~ () const,
12348         wide_int_bitmask::operator | (wide_int_bitmask) const,
12349         wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
12350         instead of inline.
12351         * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
12352         PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
12353         PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
12354         PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
12355         PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
12356         PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
12357         PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
12358         PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
12359         PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
12360         PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
12361         PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
12362         PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
12363         PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
12364         PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
12365         PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
12366         PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
12367         PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
12368         PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
12369         PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
12370         PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
12371         PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
12372         PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
12373         PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
12374         PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
12375
12376 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
12377
12378         PR middle-end/99109
12379         * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
12380         (build_printable_array_type): ... this.  Add nelts argument.  For
12381         overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead.  If
12382         nelts, call build_array_type_nelts.
12383         (array_bounds_checker::check_mem_ref): Use build_printable_array_type
12384         instead of build_zero_elt_array_type and build_array_type_nelts.
12385
12386 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
12387
12388         PR target/99104
12389         * config/i386/i386.c (distance_non_agu_define): Don't call
12390         extract_insn_cached here.
12391         (ix86_lea_outperforms): Save and restore recog_data around call
12392         to distance_non_agu_define and distance_agu_use.
12393         (ix86_ok_to_clobber_flags): Remove.
12394         (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
12395         (ix86_avoid_lea_for_addr): Likewise.  Adjust function comment.
12396         * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
12397         into define_insn.  Move the splitting to define_peephole2 and
12398         check there using peep2_regno_dead_p if FLAGS_REG is dead.
12399
12400 2021-02-17  Julian Brown  <julian@codesourcery.com>
12401
12402         * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
12403         for non-decls.
12404
12405 2021-02-17  Xi Ruoyao  <xry111@mengyan1223.wang>
12406
12407         PR target/98491
12408         * config/mips/mips.c (mips_symbol_insns): Do not use
12409         MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
12410
12411 2021-02-16  Vladimir N. Makarov  <vmakarov@redhat.com>
12412
12413         PR inline-asm/98096
12414         * stmt.c (resolve_operand_name_1): Take inout operands into account
12415         for access to labels by names.
12416         * doc/extend.texi: Describe counting operands for accessing labels.
12417
12418 2021-02-16  Richard Biener  <rguenther@suse.de>
12419
12420         PR tree-optimization/38474
12421         * tree-ssa-structalias.c (variable_info::address_taken): New.
12422         (new_var_info): Initialize address_taken.
12423         (process_constraint): Set address_taken.
12424         (solve_constraints): Use the new address_taken flag rather
12425         than is_reg_var for sorting variables.
12426         (dump_constraint): Dump the variable number if the name
12427         is just NULL.
12428
12429 2021-02-16  Jakub Jelinek  <jakub@redhat.com>
12430
12431         PR target/99100
12432         * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
12433         multiply by 4096 and for inbranch by 8192.
12434         * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
12435         return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
12436
12437 2021-02-15  Maya Rashish  <coypu@sdf.org>
12438
12439         * config/aarch64/aarch64.c (aarch64_init_builtins):
12440         Call SUBTARGET_INIT_BUILTINS.
12441
12442 2021-02-15  Peter Bergner  <bergner@linux.ibm.com>
12443
12444         PR rtl-optimization/98872
12445         * init-regs.c (initialize_uninitialized_regs): Skip initialization
12446         if CONST0_RTX is NULL.
12447
12448 2021-02-15  Richard Sandiford  <richard.sandiford@arm.com>
12449
12450         PR rtl-optimization/98863
12451         * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
12452         (function_info::build_info): Turn into a declaration, moving the
12453         definition to internals.h.
12454         (function_info::bb_walker): Declare.
12455         (function_info::create_reg_use): Likewise.
12456         (function_info::calculate_potential_phi_regs): Take a build_info
12457         parameter.
12458         (function_info::place_phis, function_info::create_ebbs): Declare.
12459         (function_info::calculate_ebb_live_in_for_debug): Likewise.
12460         (function_info::populate_backedge_phis): Delete.
12461         (function_info::start_block, function_info::end_block): Declare.
12462         (function_info::populate_phi_inputs): Delete.
12463         (function_info::m_potential_phi_regs): Move information to build_info.
12464         * rtl-ssa/internals.h: New file.
12465         (function_info::bb_phi_info): New class.
12466         (function_info::build_info): Moved from functions.h.
12467         Add a constructor and destructor.
12468         (function_info::build_info::ebb_use): Delete.
12469         (function_info::build_info::ebb_def): Likewise.
12470         (function_info::build_info::bb_live_out): Likewise.
12471         (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
12472         (function_info::build_info::potential_phi_regs): Likewise.
12473         (function_info::build_info::potential_phi_regs_for_debug): Likewise.
12474         (function_info::build_info::ebb_def_regs): Likewise.
12475         (function_info::build_info::bb_phis): Likewise.
12476         (function_info::build_info::bb_mem_live_out): Likewise.
12477         (function_info::build_info::bb_to_rpo): Likewise.
12478         (function_info::build_info::def_stack): Likewise.
12479         (function_info::build_info::old_def_stack_limit): Likewise.
12480         * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
12481         Remove the regno argument.  Push the previous definition onto the
12482         definition stack where necessary.
12483         * rtl-ssa/accesses.cc: Include internals.h.
12484         * rtl-ssa/changes.cc: Likewise.
12485         * rtl-ssa/blocks.cc: Likewise.
12486         (function_info::build_info::build_info): Define.
12487         (function_info::build_info::~build_info): Likewise.
12488         (function_info::bb_walker): New class.
12489         (function_info::bb_walker::bb_walker): Define.
12490         (function_info::add_live_out_use): Convert a logarithmic-complexity
12491         test into a linear one.  Allow the same definition to be passed
12492         multiple times.
12493         (function_info::calculate_potential_phi_regs): Moved from
12494         functions.cc.  Take a build_info parameter and store the
12495         information there instead.
12496         (function_info::place_phis): New function.
12497         (function_info::add_entry_block_defs): Update call to record_reg_def.
12498         (function_info::calculate_ebb_live_in_for_debug): New function.
12499         (function_info::add_phi_nodes): Use bb_phis to decide which
12500         registers need phi nodes and initialize ebb_def_regs accordingly.
12501         Do not add degenerate phis here.
12502         (function_info::add_artificial_accesses): Use create_reg_use.
12503         Assert that all definitions are listed in the DF LR sets.
12504         Update call to record_reg_def.
12505         (function_info::record_block_live_out): Record live-out register
12506         values in the phis of successor blocks.  Use the live-out set
12507         when processing the last block in an EBB, instead of always
12508         using the live-in sets of successor blocks.  AND the live sets
12509         with the set of registers that have been defined in the EBB,
12510         rather than with all potential phi registers.  Cope correctly
12511         with branches back to the start of the current EBB.
12512         (function_info::start_block): New function.
12513         (function_info::end_block): Likewise.
12514         (function_info::populate_phi_inputs): Likewise.
12515         (function_info::create_ebbs): Likewise.
12516         (function_info::process_all_blocks): Rewrite into a multi-phase
12517         process.
12518         * rtl-ssa/functions.cc: Include internals.h.
12519         (function_info::calculate_potential_phi_regs): Move to blocks.cc.
12520         (function_info::init_function_data): Remove caller.
12521         * rtl-ssa/insns.cc: Include internals.h
12522         (function_info::create_reg_use): New function.  Lazily any
12523         degenerate phis needed by the linear RPO view.
12524         (function_info::record_use): Use create_reg_use.  When processing
12525         debug uses, use potential_phi_regs and test it before checking
12526         whether the register is live on entry to the current EBB.  Lazily
12527         calculate ebb_live_in_for_debug.
12528         (function_info::record_call_clobbers): Update call to record_reg_def.
12529         (function_info::record_def): Likewise.
12530
12531 2021-02-15  Martin Liska  <mliska@suse.cz>
12532
12533         * toplev.c (init_asm_output): Free output of
12534         gen_command_line_string function.
12535         (process_options): Likewise.
12536
12537 2021-02-15  Martin Liska  <mliska@suse.cz>
12538
12539         * params.opt: Add 2 missing Param keywords.
12540
12541 2021-02-15  Eric Botcazou  <ebotcazou@adacore.com>
12542
12543         * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
12544
12545 2021-02-15  Jakub Jelinek  <jakub@redhat.com>
12546
12547         PR tree-optimization/99079
12548         * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
12549         useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check.  Instead
12550         require both type and TREE_TYPE (@1) to be integral types and either
12551         type having smaller or equal precision, or TREE_TYPE (@1) being
12552         unsigned type, or type being signed type.  If TREE_TYPE (@1)
12553         doesn't have wrapping overflow, perform the subtraction of one in
12554         unsigned type.
12555
12556 2021-02-14  Jan Hubicka  <hubicka@ucw.cz>
12557             Richard Biener  <rguether@suse.de>
12558
12559         PR ipa/97346
12560         * ipa-reference.c (ipa_init): Only conditinally initialize
12561         reference_vars_to_consider.
12562         (propagate): Conditionally deninitialize reference_vars_to_consider.
12563         (ipa_reference_write_optimization_summary): Sanity check that
12564         reference_vars_to_consider is not allocated.
12565
12566 2021-02-13  Levy Hsu  <admin@levyhsu.com>
12567
12568         PR target/97417
12569         * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
12570         extend parameter to get_si_mem_base_reg declaration.
12571         (get_si_mem_base_reg): Add extend parameter.  Set it.
12572         (analyze): Pass extend arg to get_si_mem_base_reg.
12573         (transform): Likewise.  Use it when rewriting mems.
12574         * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
12575         loads and emit sign/zero extending load followed by subreg move.
12576
12577 2021-02-13  Jim Wilson  <jimw@sifive.com>
12578
12579         PR target/97417
12580         * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
12581         exit when !reload_completed.  Only perform check for compressed reg
12582         if reload_completed.
12583         (riscv_rtx_costs): In MEM case, when optimizing for size and
12584         shorten memrefs, if not compressible, then increase cost.
12585
12586 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
12587
12588         PR rtl-optimization/98439
12589         * recog.c (pass_split_before_regstack::gate): Enable even when
12590         pass_split_before_sched2 is enabled if -fselective-scheduling2 is
12591         on.
12592
12593 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
12594
12595         PR target/96166
12596         * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
12597         swap of V2SImode elements in memory into DImode memory rotate by 32.
12598
12599 2021-02-12  Martin Sebor  <msebor@redhat.com>
12600
12601         * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
12602
12603 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
12604
12605         * rtl-ssa/accesses.cc (function_info::make_use_available): Use
12606         m_temp_obstack rather than m_obstack to allocate the temporary use.
12607
12608 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
12609
12610         * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
12611         as read-modify operations.
12612
12613 2021-02-12  Richard Biener  <rguenther@suse.de>
12614
12615         PR middle-end/38474
12616         * ipa-fnsummary.c (unmodified_parm_1): Only walk when
12617         fbi->aa_walk_budget is bigger than zero.  Update
12618         fbi->aa_walk_budget.
12619         (param_change_prob): Likewise.
12620         * ipa-prop.c (detect_type_change_from_memory_writes):
12621         Properly account walk_aliased_vdefs.
12622         (parm_preserved_before_stmt_p): Canonicalize updates.
12623         (parm_ref_data_preserved_p): Likewise.
12624         (parm_ref_data_pass_through_p): Likewise.
12625         (determine_known_aggregate_parts): Account own alias queries.
12626
12627 2021-02-12  Martin Liska  <mliska@suse.cz>
12628
12629         * opts-common.c (decode_cmdline_option): Release werror_arg.
12630         * opts.c (gen_producer_string): Release output of
12631         gen_command_line_string.
12632
12633 2021-02-12  Richard Biener  <rguenther@suse.de>
12634
12635         PR tree-optimization/38474
12636         * params.opt (-param=max-store-chains-to-track=): New param.
12637         (-param=max-stores-to-track=): Likewise.
12638         * doc/invoke.texi (max-store-chains-to-track): Document.
12639         (max-stores-to-track): Likewise.
12640         * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
12641         New.
12642         (pass_store_merging::m_n_stores): Likewise.
12643         (pass_store_merging::terminate_and_process_chain): Update
12644         m_n_stores and m_n_chains.
12645         (pass_store_merging::process_store): Likewise.   Terminate
12646         oldest chains if the number of stores or chains get too large.
12647         (imm_store_chain_info::terminate_and_process_chain): Dump
12648         chain length.
12649
12650 2021-02-11  Eric Botcazou  <ebotcazou@adacore.com>
12651
12652         * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
12653         the cold section, emit a nop before the directive if the previous
12654         active instruction can throw.
12655
12656 2021-02-11  Peter Bergner  <bergner@linux.ibm.com>
12657
12658         PR target/99041
12659         * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
12660         memory addresses that are legal for quad word accesses.
12661
12662 2021-02-11  Andrea Corallo  <andrea.corallo@arm.com>
12663
12664         PR target/98931
12665         * config/arm/thumb2.md (*doloop_end_internal): Generate
12666         alternative sequence to handle long range branches.
12667
12668 2021-02-11  Joel Hutton  <joel.hutton@arm.com>
12669
12670         PR tree-optimization/98772
12671         * optabs-tree.c (supportable_half_widening_operation): New function
12672         to check for supportable V8QI->V8HI widening patterns.
12673         * optabs-tree.h (supportable_half_widening_operation): New function.
12674         * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
12675         to create promotion stmts for V8QI->V8HI widening patterns.
12676         (vectorizable_conversion): Add case for V8QI->V8HI.
12677
12678 2021-02-11  Richard Biener  <rguenther@suse.de>
12679
12680         * sparseset.h (SPARSESET_ELT_BITS): Remove.
12681         (SPARSESET_ELT_TYPE): Use unsigned int.
12682         * fwprop.c: Do not include sparseset.h.
12683
12684 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
12685
12686         PR c++/99035
12687         * varasm.c (declare_weak): For -fsyntax-only, allow even
12688         TREE_ASM_WRITTEN function decls.
12689
12690 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
12691
12692         PR target/99025
12693         * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
12694         <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
12695         <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
12696         <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
12697         calling simplify_gen_subreg on it.
12698
12699 2021-02-10  Martin Liska  <mliska@suse.cz>
12700
12701         * config/nvptx/nvptx.c (nvptx_option_override): Use
12702         flag_patchable_function_entry instead of the removed
12703         function_entry_patch_area_size.
12704
12705 2021-02-10  Martin Liska  <mliska@suse.cz>
12706
12707         PR tree-optimization/99002
12708         PR tree-optimization/99026
12709         * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
12710         leak when adjacent cases are merged.
12711         * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
12712         release_clusters.
12713         (make_pass_lower_switch): Remove trailing whitespace.
12714         * tree-switch-conversion.h (release_clusters): New.
12715
12716 2021-02-10  Richard Biener  <rguenther@suse.de>
12717
12718         PR rtl-optimization/99054
12719         * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
12720         (fixup_partitions): Adjust.
12721         (rtl_verify_edges): Likewise.
12722
12723 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
12724
12725         PR middle-end/99007
12726         * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
12727         temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
12728         calls.
12729
12730 2021-02-10  Richard Biener  <rguenther@suse.de>
12731
12732         PR ipa/99029
12733         * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
12734         for callees.
12735
12736 2021-02-10  Richard Biener  <rguenther@suse.de>
12737
12738         PR tree-optimization/99024
12739         * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
12740         clear loop->aux if it is associated with the destroyed loop_vinfo.
12741
12742 2021-02-10  Martin Liska  <mliska@suse.cz>
12743
12744         PR tree-optimization/99002
12745         * gimple-if-to-switch.cc (find_conditions): Fix memory leak
12746         in the function.
12747
12748 2021-02-10  Martin Liska  <mliska@suse.cz>
12749
12750         PR ipa/99003
12751         * ipa-icf.c (sem_item::add_reference): Fix memory leak when
12752         a reference exists.
12753
12754 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
12755
12756         PR debug/98755
12757         * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
12758         at class scope for DWARF5+.
12759
12760 2021-02-09  Eric Botcazou  <ebotcazou@adacore.com>
12761
12762         PR rtl-optimization/96015
12763         * reorg.c (skip_consecutive_labels): Minor comment tweaks.
12764         (relax_delay_slots): When deleting a jump to the next active
12765         instruction over a barrier, first delete the barrier if the
12766         jump is the only way to reach the target label.
12767
12768 2021-02-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12769
12770         * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
12771         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
12772         vector multiplies and vect.alu for SSRA.
12773         * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
12774         vect.mul cost field.
12775         * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
12776         * config/arm/arm.c: Likewise.
12777
12778 2021-02-09  Richard Biener  <rguenther@suse.de>
12779
12780         PR tree-optimization/98863
12781         * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
12782         * tree-ssa-sccvn.c (last_pushed_avail): New global.
12783         (rpo_elim::eliminate_push_avail): Chain pushed avails.
12784         (unwind_state::avail_top): Add.
12785         (do_unwind): Rewrite unwinding of avail entries.
12786         (do_rpo_vn): Initialize last_pushed_avail and
12787         avail_top of the undo state.
12788
12789 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
12790
12791         PR middle-end/99004
12792         * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
12793         const char * to char * and free those pointers after use.
12794
12795 2021-02-09  Richard Biener  <rguenther@suse.de>
12796
12797         PR tree-optimization/99017
12798         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
12799         zero vector cost entries.
12800
12801 2021-02-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12802
12803         PR middle-end/98974
12804         * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
12805         parameter in vectorizable_condition.
12806
12807 2021-02-08  Richard Biener  <rguenther@suse.de>
12808
12809         PR lto/96591
12810         * tree.c (walk_tree_1): Walk VECTOR_CST elements.
12811
12812 2021-02-08  Martin Liska  <mliska@suse.cz>
12813
12814         PR lto/98971
12815         * cfgexpand.c (pass_expand::execute): Parse per-function option
12816         flag_patchable_function_entry and use it.
12817         * common.opt: Remove function_entry_patch_area_size and
12818         function_entry_patch_area_start global variables.
12819         * opts.c (parse_and_check_patch_area): New function.
12820         (common_handle_option): Use it.
12821         * opts.h (parse_and_check_patch_area): New function.
12822         * toplev.c (process_options): Parse and use
12823         function_entry_patch_area_size.
12824
12825 2021-02-08  Martin Sebor  <msebor@redhat.com>
12826
12827         * doc/extend.texi (attribute malloc): Correct typos.
12828
12829 2021-02-05  Nathan Sidwell  <nathan@acm.org>
12830
12831         PR driver/98943
12832         * gcc.c (driver::maybe_run_linker): Check for input file
12833         accessibility if not linking.
12834
12835 2021-02-05  Richard Biener  <rguenther@suse.de>
12836
12837         PR tree-optimization/98855
12838         * tree-vectorizer.h (add_stmt_cost): New overload.
12839         * tree-vect-slp.c (li_cost_vec_cmp): New.
12840         (vect_bb_slp_scalar_cost): Cost individual loop regions
12841         separately.  Account for the scalar instance root stmt.
12842
12843 2021-02-05  Tom de Vries  <tdevries@suse.de>
12844
12845         PR debug/98656
12846         * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
12847         argument.
12848         (bit_test_cluster::emit): Reuse location_t for newly created
12849         gswitch statement.
12850         (switch_decision_tree::try_switch_expansion): Preserve
12851         location_t.
12852         * tree-switch-conversion.h: Change function signatures.
12853
12854 2021-02-05  Jakub Jelinek  <jakub@redhat.com>
12855
12856         PR target/98957
12857         * config/i386/i386-options.c (m_NONE, m_ALL): Define.
12858         * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
12859         X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
12860         (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
12861
12862 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12863
12864         * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
12865         * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
12866         * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
12867         (vget_high_f16): Reimplement using new builtin.
12868         (vget_high_f32): Likewise.
12869         (vget_high_f64): Likewise.
12870         (vget_high_p8): Likewise.
12871         (vget_high_p16): Likewise.
12872         (vget_high_p64): Likewise.
12873         (vget_high_s8): Likewise.
12874         (vget_high_s16): Likewise.
12875         (vget_high_s32): Likewise.
12876         (vget_high_s64): Likewise.
12877         (vget_high_u8): Likewise.
12878         (vget_high_u16): Likewise.
12879         (vget_high_u32): Likewise.
12880         (vget_high_u64): Likewise.
12881
12882 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12883
12884         * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
12885         * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
12886         * config/aarch64/arm_neon.h (__GET_LOW): Delete.
12887         (vget_low_f16): Reimplement using new builtin.
12888         (vget_low_f32): Likewise.
12889         (vget_low_f64): Likewise.
12890         (vget_low_p8): Likewise.
12891         (vget_low_p16): Likewise.
12892         (vget_low_p64): Likewise.
12893         (vget_low_s8): Likewise.
12894         (vget_low_s16): Likewise.
12895         (vget_low_s32): Likewise.
12896         (vget_low_s64): Likewise.
12897         (vget_low_u8): Likewise.
12898         (vget_low_u16): Likewise.
12899         (vget_low_u32): Likewise.
12900         (vget_low_u64): Likewise.
12901
12902 2021-02-05  Kito Cheng  <kito.cheng@sifive.com>
12903
12904         * gcc.c (print_multilib_info): Check all required argument is provided
12905         by default arg.
12906
12907 2021-02-05  liuhongt  <hongtao.liu@intel.com>
12908
12909         PR target/98537
12910         * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
12911         generate integer mask comparison for 128/256-bits vector when
12912         op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
12913         delete redundant !maskcmp condition.
12914         (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
12915         here.
12916         (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
12917         condition directly to if (maskcmp), add extra check for
12918         cmpmode, it should be MODE_INT.
12919         (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
12920         parameters op_true/op_false.
12921         (ix86_use_mask_cmp_p): New.
12922
12923 2021-02-05  liuhongt  <hongtao.liu@intel.com>
12924
12925         PR target/98172
12926         * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
12927         Remove m_GENERIC from ~list.
12928         (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
12929
12930 2021-02-04  David Malcolm  <dmalcolm@redhat.com>
12931
12932         PR c/97932
12933         * diagnostic-show-locus.c (compatible_locations_p): Require
12934         locations in the same macro map to be either both from the
12935         macro definition, or both from the macro arguments.
12936
12937 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
12938
12939         * config/aarch64/aarch64-simd-builtins.def: Add
12940         [su]mull_hi_lane[q] builtin generator macros.
12941         * config/aarch64/aarch64-simd.md
12942         (aarch64_<su>mull_hi_lane<mode>_insn): Define.
12943         (aarch64_<su>mull_hi_lane<mode>): Define.
12944         (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
12945         (aarch64_<su>mull_hi_laneq<mode>): Define.
12946         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
12947         builtin instead of inline asm.
12948         (vmull_high_lane_s32): Likewise.
12949         (vmull_high_lane_u16): Likewise.
12950         (vmull_high_lane_u32): Likewise.
12951         (vmull_high_laneq_s16): Likewise.
12952         (vmull_high_laneq_s32): Likewise.
12953         (vmull_high_laneq_u16): Likewise.
12954         (vmull_high_laneq_u32): Liekwise.
12955
12956 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
12957
12958         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
12959         builtin generator macros.
12960         * config/aarch64/aarch64-simd.md
12961         (aarch64_<su>mull_hi_n<mode>_insn): Define.
12962         (aarch64_<su>mull_hi_n<mode>): Define.
12963         * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
12964         instead of inline asm.
12965         (vmull_high_n_s32): Likewise.
12966         (vmull_high_n_u16): Likewise.
12967         (vmull_high_n_u32): Likewise.
12968
12969 2021-02-04  Richard Biener  <rguenther@suse.de>
12970
12971         PR tree-optimization/98855
12972         * tree-vect-loop.c (vectorizable_phi): Do not cost
12973         single-argument PHIs.
12974         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
12975         * tree-vect-stmts.c (vectorizable_bswap): Also perform
12976         costing for SLP operation.
12977
12978 2021-02-04  Martin Liska  <mliska@suse.cz>
12979
12980         * doc/extend.texi: Mention -mprefer-vector-width in target
12981         attributes.
12982
12983 2021-02-03  Martin Sebor  <msebor@redhat.com>
12984
12985         PR tree-optimization/98937
12986         * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
12987         Flush pointer_query cache.
12988
12989 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
12990
12991         * config/rs6000/genfusion.pl (gen_2logical): Add missing
12992         fixes based on patch review.
12993         * config/rs6000/fusion.md: Regenerate file.
12994
12995 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
12996
12997         * config/rs6000/t-rs6000: Comment out auto generation of
12998         fusion.md for now.
12999
13000 2021-02-03  Andrew Stubbs  <ams@codesourcery.com>
13001
13002         * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
13003         * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
13004         (output_file_start): Add gfx908.
13005         * config/gcn/gcn.opt (gpu_type): Add gfx908.
13006         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
13007         (MULTILIB_DIRNAMES): Add gfx908.
13008         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
13009         (main): Recognize gfx908.
13010         * config/gcn/t-omp-device: Add gfx908.
13011
13012 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13013
13014         * config/aarch64/aarch64-simd-builtins.def: Add
13015         [su]mlsl_hi_lane[q] builtin macro generators.
13016         * config/aarch64/aarch64-simd.md
13017         (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
13018         (aarch64_<su>mlsl_hi_lane<mode>): Define.
13019         (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
13020         (aarch64_<su>mlsl_hi_laneq<mode>): Define.
13021         * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
13022         builtin instead of inline asm.
13023         (vmlsl_high_lane_s32): Likewise.
13024         (vmlsl_high_lane_u16): Likewise.
13025         (vmlsl_high_lane_u32): Likewise.
13026         (vmlsl_high_laneq_s16): Likewise.
13027         (vmlsl_high_laneq_s32): Likewise.
13028         (vmlsl_high_laneq_u16): Likewise.
13029         (vmlsl_high_laneq_u32): Likewise.
13030         (vmlal_high_laneq_u32): Likewise.
13031
13032 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13033
13034         * config/aarch64/aarch64-simd-builtins.def: Add
13035         [su]mlal_hi_lane[q] builtin generator macros.
13036         * config/aarch64/aarch64-simd.md
13037         (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
13038         (aarch64_<su>mlal_hi_lane<mode>): Define.
13039         (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
13040         (aarch64_<su>mlal_hi_laneq<mode>): Define.
13041         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
13042         builtin instead of inline asm.
13043         (vmlal_high_lane_s32): Likewise.
13044         (vmlal_high_lane_u16): Likewise.
13045         (vmlal_high_lane_u32): Likewise.
13046         (vmlal_high_laneq_s16): Likewise.
13047         (vmlal_high_laneq_s32): Likewise.
13048         (vmlal_high_laneq_u16): Likewise.
13049         (vmlal_high_laneq_u32): Likewise.
13050
13051 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13052
13053         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
13054         builtin generator macros.
13055         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
13056         Define.
13057         (aarch64_<su>mlsl_hi_n<mode>): Define.
13058         * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
13059         instead of inline asm.
13060         (vmlsl_high_n_s32): Likewise.
13061         (vmlsl_high_n_u16): Likewise.
13062         (vmlsl_high_n_u32): Likewise.
13063
13064 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13065
13066         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
13067         builtin generator macros.
13068         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
13069         Define.
13070         (aarch64_<su>mlal_hi_n<mode>): Define.
13071         * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
13072         instead of inline asm.
13073         (vmlal_high_n_s32): Likewise.
13074         (vmlal_high_n_u16): Likewise.
13075         (vmlal_high_n_u32): Likewise.
13076
13077 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13078
13079         * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
13080         generator macros.
13081         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
13082         Rename to...
13083         (aarch64_<su>mlal_hi<mode>_insn): This.
13084         (aarch64_<su>mlal_hi<mode>): Define.
13085         * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
13086         instead of inline asm.
13087         (vmlal_high_s16): Likewise.
13088         (vmlal_high_s32): Likewise.
13089         (vmlal_high_u8): Likewise.
13090         (vmlal_high_u16): Likewise.
13091         (vmlal_high_u32): Likewise.
13092
13093 2021-02-03  Ilya Leoshkevich  <iii@linux.ibm.com>
13094
13095         * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
13096         after calling alter_subreg() on a (mem).
13097
13098 2021-02-03  Martin Liska  <mliska@suse.cz>
13099
13100         PR lto/98912
13101         * lto-streamer-out.c (produce_lto_section): Fill up missing
13102         padding.
13103         * lto-streamer.h (struct lto_section): Add _padding field.
13104
13105 2021-02-03  Richard Biener  <rguenther@suse.de>
13106
13107         * lto-streamer.c (lto_get_section_name): Free temporary
13108         buffer.
13109         * tree-loop-distribution.c
13110         (loop_distribution::merge_dep_scc_partitions): Free edge data.
13111
13112 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
13113
13114         PR middle-end/97487
13115         * ifcvt.c (noce_can_force_operand): New function.
13116         (noce_emit_move_insn): Use it.
13117         (noce_try_sign_mask): Likewise.  Formatting fix.
13118
13119 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
13120
13121         PR middle-end/97971
13122         * lra-constraints.c (process_alt_operands): For inline asm, don't call
13123         fatal_insn, but instead return false.
13124
13125 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
13126
13127         PR tree-optimization/98287
13128         * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
13129         for V1DImode.
13130
13131 2021-02-03  Tamar Christina  <tamar.christina@arm.com>
13132
13133         PR tree-optimization/98928
13134         * tree-vect-loop.c (vect_analyze_loop_2): Change
13135         STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
13136         * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
13137         * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
13138         (class _stmt_vec_info): Add slp_vect_pattern_only_p.
13139
13140 2021-02-02  Richard Biener  <rguenther@suse.de>
13141
13142         * gimple-loop-interchange.cc (prepare_data_references):
13143         Release vectors.
13144         * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
13145         * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
13146         * tree-vect-stmts.c (vectorizable_condition): Do not
13147         allocate vectors.
13148         (vectorizable_comparison): Likewise.
13149
13150 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13151
13152         * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
13153         * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
13154         * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
13155         (vrsqrteq_u32): Likewise.
13156
13157 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13158
13159         * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
13160         * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
13161         (aarch64_sqxtun2<mode>_be): Likewise.
13162         (aarch64_sqxtun2<mode>): Likewise.
13163         * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
13164         (vqmovun_high_s32): Likewise.
13165         (vqmovun_high_s64): Likewise.
13166         * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
13167
13168 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13169
13170         * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
13171         AUTO_FP flags.
13172         (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
13173
13174 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13175
13176         * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
13177         fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
13178         fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
13179         ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
13180         fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
13181         fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
13182         fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
13183         fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
13184
13185 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13186
13187         * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
13188         * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
13189         ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
13190
13191 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13192
13193         * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
13194         uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
13195
13196 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13197
13198         * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
13199         vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
13200         vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
13201         ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
13202         udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
13203         ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
13204         ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
13205         ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
13206         NONE builtin flags.
13207
13208 2021-02-02  Jakub Jelinek  <jakub@redhat.com>
13209
13210         PR tree-optimization/98848
13211         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
13212         STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
13213
13214 2021-02-02  Kito Cheng  <kito.cheng@sifive.com>
13215
13216         PR target/98743
13217         * expr.c: Check mode before calling store_expr.
13218
13219 2021-02-02  Christophe Lyon  <christophe.lyon@linaro.org>
13220
13221         * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
13222         (VORNQ): Remove.
13223         * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
13224         instruction using expression ior.
13225         (mve_vornq_u<mode>): New expander.
13226         (mve_vornq_f<mode>): Use ior code instead of unspec.
13227         * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
13228
13229 2021-02-02  Alexandre Oliva  <oliva@adacore.com>
13230
13231         * tree-nested.c (convert_nonlocal_reference_op): Move
13232         current_function_decl restore after re-gimplification.
13233         (convert_local_reference_op): Likewise.
13234
13235 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13236
13237         * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
13238         Define builtins.
13239         * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
13240         Define.
13241         (aarch64_rshrn<mode>_insn_be): Likewise.
13242         (aarch64_rshrn<mode>): Likewise.
13243         (aarch64_rshrn2<mode>_insn_le): Likewise.
13244         (aarch64_rshrn2<mode>_insn_be): Likewise.
13245         (aarch64_rshrn2<mode>): Likewise.
13246         * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
13247         * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
13248         using builtin.
13249         (vrshrn_high_n_s32): Likewise.
13250         (vrshrn_high_n_s64): Likewise.
13251         (vrshrn_high_n_u16): Likewise.
13252         (vrshrn_high_n_u32): Likewise.
13253         (vrshrn_high_n_u64): Likewise.
13254         (vrshrn_n_s16): Likewise.
13255         (vrshrn_n_s32): Likewise.
13256         (vrshrn_n_s64): Likewise.
13257         (vrshrn_n_u16): Likewise.
13258         (vrshrn_n_u32): Likewise.
13259         (vrshrn_n_u64): Likewise.
13260
13261 2021-02-01  Sergei Trofimovich  <siarheit@google.com>
13262
13263         PR tree-optimization/98499
13264         * ipa-modref.c (analyze_ssa_name_flags): treat RVO
13265         conservatively and assume all possible side-effects.
13266
13267 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13268
13269         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
13270         vec_unpacku_hi_): Define builtins.
13271         * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
13272         builtin.
13273         (vmovl_high_s16): Likewise.
13274         (vmovl_high_s32): Likewise.
13275         (vmovl_high_u8): Likewise.
13276         (vmovl_high_u16): Likewise.
13277         (vmovl_high_u32): Likewise.
13278
13279 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13280
13281         * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
13282         Define builtins.
13283         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
13284         pattern.
13285         * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
13286         UNSPEC_UABDL.
13287         * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
13288         builtin.
13289         (vabdl_s16): Likewise.
13290         (vabdl_s32): Likewise.
13291         (vabdl_u8): Likewise.
13292         (vabdl_u16): Likewise.
13293         (vabdl_u32): Likewise.
13294         * config/aarch64/iterators.md (ABDL): New int iterator.
13295         (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
13296
13297 2021-02-01  Martin Sebor  <msebor@redhat.com>
13298
13299         * tree.h (BLOCK_VARS): Add comment.
13300         (BLOCK_SUBBLOCKS): Same.
13301         (BLOCK_SUPERCONTEXT): Same.
13302         (BLOCK_ABSTRACT_ORIGIN): Same.
13303         (inlined_function_outer_scope_p): Same.
13304
13305 2021-02-01  Martin Sebor  <msebor@redhat.com>
13306
13307         PR middle-end/97172
13308         * attribs.c (attr_access::free_lang_data): Define new function.
13309         * attribs.h (attr_access::free_lang_data): Declare new function.
13310
13311 2021-02-01  Richard Biener  <rguenther@suse.de>
13312
13313         * vec.h (auto_vec::auto_vec): Add memory stat parameters
13314         and pass them on.
13315         * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
13316
13317 2021-02-01  Tamar Christina  <tamar.christina@arm.com>
13318
13319         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
13320         aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
13321
13322 2021-02-01  Richard Biener  <rguenther@suse.de>
13323
13324         PR rtl-optimization/98863
13325         * config/i386/i386-features.c (convert_scalars_to_vector):
13326         Set DF_RD_PRUNE_DEAD_DEFS.
13327
13328 2021-01-31  Eric Botcazou  <ebotcazou@adacore.com>
13329
13330         * system.h (SIZE_MAX): Define if not already defined.
13331
13332 2021-01-30  Aaron Sawdey  <acsawdey@linux.ibm.com>
13333
13334         * config/rs6000/genfusion.pl (gen_2logical): New function to
13335         generate patterns for logical-logical fusion.
13336         * config/rs6000/fusion.md: Regenerated patterns.
13337         * config/rs6000/rs6000-cpus.def: Add
13338         OPTION_MASK_P10_FUSION_2LOGICAL.
13339         * config/rs6000/rs6000.c (rs6000_option_override_internal):
13340         Enable logical-logical fusion for p10.
13341         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
13342
13343 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
13344
13345         * config/rs6000/rs6000.opt: Add periods to new AIX options.
13346
13347 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
13348
13349         * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
13350         (mabi=vec-default): New.
13351         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
13352         __EXTABI__ for AIX Vector extended ABI.
13353         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
13354         extabi info.
13355         (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
13356         are non-volatile.
13357         * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
13358
13359 2021-01-30  Jakub Jelinek  <jakub@redhat.com>
13360
13361         * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
13362         DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
13363
13364 2021-01-29  Vladimir N. Makarov  <vmakarov@redhat.com>
13365
13366         PR target/97701
13367         * lra-constraints.c (in_class_p): Don't narrow class only for REG
13368         or MEM.
13369
13370 2021-01-29  Will Schmidt  <will_schmidt@vnet.ibm.com>
13371
13372         * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
13373         clauses for CODE_FOR_vsx_xvcvuxddp_scale and
13374         CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
13375
13376 2021-01-29  Andrew MacLeod  <amacleod@redhat.com>
13377
13378         PR tree-optimization/98866
13379         * gimple-range-gori.h (gori_compute:set_range_invariant): New.
13380         * gimple-range-gori.cc (gori_map::set_range_invariant): New.
13381         (gori_map::m_maybe_invariant): Rename from all_outgoing.
13382         (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
13383         (gori_map::is_export_p): Ditto.
13384         (gori_map::calculate_gori): Ditto.
13385         (gori_compute::set_range_invariant): New.
13386         * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
13387         invariant for pointers evaluating to [1, +INF].
13388
13389 2021-01-29  Richard Biener  <rguenther@suse.de>
13390
13391         PR rtl-optimization/98863
13392         * config/i386/i386-features.c (remove_partial_avx_dependency):
13393         Do not perform DF analysis.
13394         (pass_data_remove_partial_avx_dependency): Remove
13395         TODO_df_finish.
13396
13397 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
13398
13399         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
13400         builtin generator macros.
13401         * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
13402         Define.
13403         * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
13404         instead of inline asm.
13405         (vmull_n_s32): Likewise.
13406         (vmull_n_u16): Likewise.
13407         (vmull_n_u32): Likewise.
13408
13409 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13410
13411         * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
13412         Define builtins.
13413         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
13414         Rename to...
13415         (aarch64_<sur>abdl2<mode>): ... This.
13416         (<sur>sadv16qi): Adjust use of above.
13417         * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
13418         builtin.
13419         (vabdl_high_s16): Likewise.
13420         (vabdl_high_s32): Likewise.
13421         (vabdl_high_u8): Likewise.
13422         (vabdl_high_u16): Likewise.
13423         (vabdl_high_u32): Likewise.
13424
13425 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13426
13427         * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
13428         builtin.
13429         (uabal2): Likewise.
13430         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
13431         pattern.
13432         * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
13433         UNSPEC_UABAL2.
13434         * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
13435         builtin.
13436         (vabal_high_s16): Likewise.
13437         (vabal_high_s32): Likewise.
13438         (vabal_high_u8): Likewise.
13439         (vabal_high_u16): Likewise.
13440         (vabal_high_u32): Likewise.
13441         * config/aarch64/iterators.md (ABAL2): New mode iterator.
13442         (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
13443
13444 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13445
13446         * config/aarch64/aarch64-simd-builtins.def (sabal): Define
13447         builtin.
13448         (uabal): Likewise.
13449         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
13450         Rename to...
13451         (aarch64_<sur>abal<mode>): ... This
13452         (<sur>sadv16qi): Adust use of the above.
13453         * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
13454         builtin.
13455         (vabal_s16): Likewise.
13456         (vabal_s32): Likewise.
13457         (vabal_u8): Likewise.
13458         (vabal_u16): Likewise.
13459         (vabal_u32): Likewise.
13460
13461 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13462
13463         * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
13464         Define builtins.
13465         * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
13466         Define.
13467         * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
13468         builtin.
13469         (vaddlv_s16): Likewise.
13470         (vaddlv_u8): Likewise.
13471         (vaddlv_u16): Likewise.
13472         (vaddlvq_s8): Likewise.
13473         (vaddlvq_s16): Likewise.
13474         (vaddlvq_s32): Likewise.
13475         (vaddlvq_u8): Likewise.
13476         (vaddlvq_u16): Likewise.
13477         (vaddlvq_u32): Likewise.
13478         (vaddlv_s32): Likewise.
13479         (vaddlv_u32): Likewise.
13480         * config/aarch64/iterators.md (VDQV_L): New mode iterator.
13481         (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
13482         (Vwstype): New mode attribute.
13483         (Vwsuf): Likewise.
13484         (VWIDE_S): Likewise.
13485         (USADDLV): New int iterator.
13486         (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
13487
13488 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
13489
13490         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
13491         builtin generator macros.
13492         * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
13493         Define.
13494         * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
13495         instead of inline asm.
13496         (vmlsl_lane_s32): Likewise.
13497         (vmlsl_lane_u16): Likewise.
13498         (vmlsl_lane_u32): Likewise.
13499         (vmlsl_laneq_s16): Likewise.
13500         (vmlsl_laneq_s32): Likewise.
13501         (vmlsl_laneq_u16): Likewise.
13502         (vmlsl_laneq_u32): Likewise.
13503
13504 2021-01-29  Richard Biener  <rguenther@suse.de>
13505
13506         * doc/invoke.texi (--param max-gcse-memory): Document unit
13507         of size.
13508         * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
13509         * params.opt (--param max-gcse-memory): Adjust default and
13510         document unit of size.
13511
13512 2021-01-29  Richard Biener  <rguenther@suse.de>
13513
13514         PR rtl-optimization/98863
13515         * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
13516         HOST_WIDE_INT for the memory estimate.
13517
13518 2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
13519             Richard Biener  <rguenther@suse.de>
13520
13521         PR tree-optimization/97627
13522         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
13523         Do not analyze fake edges.
13524
13525 2021-01-29  Richard Biener  <rguenther@suse.de>
13526
13527         PR rtl-optimization/98144
13528         * df.h (df_mir_bb_info): Add con_visited member.
13529         * df-problems.c (df_mir_alloc): Initialize con_visited,
13530         do not fully populate IN and OUT.
13531         (df_mir_reset): Likewise.
13532         (df_mir_confluence_0): Set con_visited.
13533         (df_mir_confluence_n): Properly handle implicitely
13534         fully populated IN and OUT as designated by con_visited
13535         and update con_visited accordingly.
13536
13537 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
13538
13539         PR target/98849
13540         * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
13541         vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
13542         && !TARGET_REALLY_IWMMXT to conditions.
13543
13544 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
13545
13546         PR debug/98331
13547         * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
13548         a BARRIER.
13549
13550 2021-01-28  Marek Polacek  <polacek@redhat.com>
13551
13552         PR c++/94775
13553         * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
13554         the main variant, maybe reset it in its variants too.
13555         * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
13556         (check_aligned_type): Check if TYPE_USER_ALIGN match.
13557
13558 2021-01-28  Christophe Lyon  <christophe.lyon@linaro.org>
13559
13560         PR target/98730
13561         * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
13562         of constant zero for comparisons.
13563
13564 2021-01-28  Michael Meissner  <meissner@linux.ibm.com>
13565
13566         * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
13567         support for mapping built-in function names for long double
13568         built-in functions if long double is IEEE 128-bit.
13569
13570 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
13571
13572         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
13573         builtin generator macros.
13574         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
13575         Define.
13576         * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
13577         instead of inline asm.
13578         (vmlsl_n_s32): Likewise.
13579         (vmlsl_n_u16): Likewise.
13580         (vmlsl_n_u32): Likewise.
13581
13582 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
13583
13584         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
13585         builtin generator macros.
13586         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
13587         Define.
13588         * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
13589         instead of inline asm.
13590         (vmlal_n_s32): Likewise.
13591         (vmlal_n_u16): Likewise.
13592         (vmlal_n_u32): Likewise.
13593
13594 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13595
13596         * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
13597         builtin.
13598         * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
13599         Define.
13600         (aarch64_shrn2<mode>_insn_be): Likewise.
13601         (aarch64_shrn2<mode>): Likewise.
13602         * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
13603         using builtins.
13604         (vshrn_high_n_s32): Likewise.
13605         (vshrn_high_n_s64): Likewise.
13606         (vshrn_high_n_u16): Likewise.
13607         (vshrn_high_n_u32): Likewise.
13608         (vshrn_high_n_u64): Likewise.
13609
13610 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13611
13612         * config/aarch64/aarch64-simd-builtins.def (shrn): Define
13613         builtin.
13614         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
13615         Define.
13616         (aarch64_shrn<mode>_insn_be): Likewise.
13617         (aarch64_shrn<mode>): Likewise.
13618         * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
13619         builtins.
13620         (vshrn_n_s32): Likewise.
13621         (vshrn_n_s64): Likewise.
13622         (vshrn_n_u16): Likewise.
13623         (vshrn_n_u32): Likewise.
13624         (vshrn_n_u64): Likewise.
13625         * config/aarch64/iterators.md (vn_mode): New mode attribute.
13626
13627 2021-01-28  Richard Biener  <rguenther@suse.de>
13628
13629         PR rtl-optimization/80960
13630         * dse.c (check_mem_read_rtx): Call get_addr on the
13631         offsetted address.
13632
13633 2021-01-28  Xionghu Luo  <luoxhu@linux.ibm.com>
13634             David Edelsohn  <dje.gcc@gmail.com>
13635
13636         PR target/98799
13637         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13638         Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
13639         when -m32.
13640         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
13641         Delete.
13642         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
13643         wrapper call rs6000_expand_vector_set_var for cleanup.  Call
13644         rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
13645         directly.
13646         (rs6000_expand_vector_set_var): Delete.
13647         (rs6000_expand_vector_set_var_p9): Make static.
13648         (rs6000_expand_vector_set_var_p8): Make static.
13649
13650 2021-01-28  Xing GUO  <higuoxing@gmail.com>
13651
13652         * common/config/riscv/riscv-common.c
13653         (riscv_subset_list::parsing_subset_version): Fix -march option parsing
13654         when `p` extension exists.
13655
13656 2021-01-27  Vladimir N. Makarov  <vmakarov@redhat.com>
13657
13658         PR rtl-optimization/97684
13659         * ira.c (ira): Call ira_set_pseudo_classes before
13660         update_equiv_regs when it is necessary.
13661
13662 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
13663
13664         PR target/98853
13665         * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
13666         %w0, %w1 and %2 instead of %0, %1 and %2.
13667
13668 2021-01-27  Aaron Sawdey  <acsawdey@linux.ibm.com>
13669
13670         * config/rs6000/genfusion.pl: New script to generate
13671         define_insn_and_split patterns so combine can arrange fused
13672         instructions next to each other.
13673         * config/rs6000/fusion.md: New file, generated fused instruction
13674         patterns for combine.
13675         * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
13676         (non_update_memory_operand): New predicate.
13677         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
13678         OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
13679         POWERPC_MASKS.
13680         * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
13681         prototype.
13682         * config/rs6000/rs6000.c (rs6000_option_override_internal):
13683         Automatically set OPTION_MASK_P10_FUSION and
13684         OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
13685         (rs600_opt_masks): Allow -mpower10-fusion
13686         in function attributes.
13687         (address_is_non_pfx_d_or_x): New function.
13688         * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
13689         * config/rs6000/rs6000.md: Include fusion.md.
13690         * config/rs6000/rs6000.opt: Add -mpower10-fusion
13691         and -mpower10-fusion-ld-cmpi.
13692         * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
13693
13694 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
13695
13696         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
13697         builtin generator macros.
13698         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
13699         Rename to...
13700         (aarch64_<su>mlal<mode>): This.
13701         * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
13702         instead of inline asm.
13703         (vmlal_s16): Likewise.
13704         (vmlal_s32): Likewise.
13705         (vmlal_u8): Likewise.
13706         (vmlal_u16): Likewise.
13707         (vmlal_u32): Likewise.
13708
13709 2021-01-27  Richard Biener  <rguenther@suse.de>
13710
13711         PR tree-optimization/98854
13712         * tree-vect-slp.c (vect_build_slp_tree_2): Also build
13713         PHIs from scalars when the number of CTORs matches the
13714         number of children.
13715
13716 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
13717
13718         * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
13719         generator macro.
13720         * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
13721         Rename to...
13722         (aarch64_mls_n<mode>): This.
13723         * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
13724         instead of asm.
13725         (vmls_n_s32): Likewise.
13726         (vmls_n_u16): Likewise.
13727         (vmls_n_u32): Likewise.
13728         (vmlsq_n_s16): Likewise.
13729         (vmlsq_n_s32): Likewise.
13730         (vmlsq_n_u16): Likewise.
13731         (vmlsq_n_u32): Likewise.
13732
13733 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
13734
13735         * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
13736         generator macro.
13737         * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
13738         than asm.
13739         (vmls_s16): Likewise.
13740         (vmls_s32): Likewise.
13741         (vmls_u8): Likewise.
13742         (vmls_u16): Likewise.
13743         (vmls_u32): Likewise.
13744         (vmlsq_s8): Likewise.
13745         (vmlsq_s16): Likewise.
13746         (vmlsq_s32): Likewise.
13747         (vmlsq_u8): Likewise.
13748         (vmlsq_u16): Likewise.
13749         (vmlsq_u32): Likewise.
13750
13751 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
13752
13753         * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
13754         generator macro.
13755         * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
13756         Rename to...
13757         (aarch64_mla_n<mode>): This.
13758         * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
13759         instead of asm.
13760         (vmla_n_s32): Likewise.
13761         (vmla_n_u16): Likewise.
13762         (vmla_n_u32): Likewise.
13763         (vmlaq_n_s16): Likewise.
13764         (vmlaq_n_s32): Likewise.
13765         (vmlaq_n_u16): Likewise.
13766         (vmlaq_n_u32): Likewise.
13767
13768 2021-01-27  liuhongt  <hongtao.liu@intel.com>
13769
13770         PR target/98833
13771         * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
13772         (*sse2_eq<mode>3): Ditto.
13773
13774 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
13775
13776         * tree-pass.h (PROP_trees): Rename to ...
13777         (PROP_gimple): ... this.
13778         * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
13779         * passes.c (execute_function_dump, execute_function_todo,
13780         execute_one_ipa_transform_pass, execute_one_pass): Likewise.
13781         * varpool.c (ctor_for_folding): Likewise.
13782
13783 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
13784
13785         PR tree-optimization/97260
13786         * varpool.c: Include tree-pass.h.
13787         (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
13788         non-TREE_SIDE_EFFECTS automatic variables.
13789
13790 2021-01-26  Paul Fee  <paul.f.fee@gmail.com>
13791
13792         * doc/cpp.texi (__cplusplus): Document value for -std=c++23
13793         or -std=gnu++23.
13794         * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
13795         * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
13796         (gen_compile_unit_die): Recognise C++23.
13797
13798 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
13799
13800         PR bootstrap/98839
13801         * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
13802         in comparison.
13803
13804 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
13805
13806         PR target/98681
13807         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
13808         Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
13809         and INTVAL (mask).  Add && INTVAL (mask) > 0 condition.
13810
13811 2021-01-26  Richard Biener  <rguenther@suse.de>
13812
13813         * gimple-pretty-print.c (dump_binary_rhs): Handle
13814         VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
13815
13816 2021-01-26  Richard Biener  <rguenther@suse.de>
13817
13818         PR middle-end/98726
13819         * tree.h (vector_cst_int_elt): Remove.
13820         * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
13821         make static.
13822
13823 2021-01-26  Andrew Stubbs  <ams@codesourcery.com>
13824
13825         * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
13826         for V64DFmode min/max reductions.
13827
13828 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
13829
13830         * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
13831         as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
13832         two halves, one with x and the other with const0_rtx, ordered
13833         depending on endianity.
13834
13835 2021-01-26  Alexandre Oliva  <oliva@adacore.com>
13836
13837         * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
13838         temporaries not seen in binding block, and not about to be
13839         added as gimple variables.
13840
13841 2021-01-25  Martin Sebor  <msebor@redhat.com>
13842
13843         PR c++/98646
13844         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
13845
13846 2021-01-25  Martin Liska  <mliska@suse.cz>
13847
13848         * value-prof.c (get_nth_most_common_value): Use %s instead
13849         of %qs string.
13850
13851 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
13852
13853         PR debug/98811
13854         * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
13855         readelf -wi is able to read the emitted .debug_info back.
13856         * configure: Regenerated.
13857
13858 2021-01-25  Martin Liska  <mliska@suse.cz>
13859
13860         PR gcov-profile/98739
13861         * common.opt: Add missing sign symbol.
13862         * value-prof.c (get_nth_most_common_value): Restore handling
13863         of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
13864         PROFILE_REPRODUCIBILITY_MULTITHREADED.
13865
13866 2021-01-25  Richard Biener  <rguenther@suse.de>
13867
13868         PR middle-end/98807
13869         * tree.c (vector_element_bits): Always use precision of
13870         the element type for boolean vectors.
13871
13872 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13873
13874         * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
13875         (ENDFILE_SPEC): Evaluate qnolinkcmds.
13876
13877 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13878
13879         * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
13880         nostartfiles handling since this is already done by
13881         LINK_COMMAND_SPEC.  Evaluate qnolinkcmds.
13882         (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
13883         is already done by LINK_COMMAND_SPEC.
13884         (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
13885         this is already done by LINK_COMMAND_SPEC.  Remove qnolinkcmds
13886         evaluation.
13887
13888 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
13889
13890         PR testsuite/98771
13891         * fold-const-call.c (host_size_t_cst_p): Renamed to ...
13892         (size_t_cst_p): ... this.  Check and store unsigned HOST_WIDE_INT
13893         value rather than host size_t.
13894         (fold_const_call): Change type of s2 from size_t to
13895         unsigned HOST_WIDE_INT.  Use size_t_cst_p instead of
13896         host_size_t_cst_p.  For strncmp calls, pass MIN (s2, SIZE_MAX)
13897         instead of s2 as last argument.
13898
13899 2021-01-25  Tamar Christina  <tamar.christina@arm.com>
13900
13901         * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
13902         VCMLA_OP, VCMUL_OP): New.
13903         * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
13904         * config/arm/neon.md (cmul<conj_op><mode>3): New.
13905         * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
13906         UNSPEC_VCMUL_CONJ): New.
13907         * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
13908         cml<fcmac1><conj_op><mode>4): New.
13909
13910 2021-01-23  Jakub Jelinek  <jakub@redhat.com>
13911
13912         PR testsuite/97301
13913         * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
13914
13915 2021-01-22  Jonathan Wright  <jonathan.wright@arm.com>
13916
13917         * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
13918         generator macro.
13919         * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
13920         than asm.
13921         (vmla_s16): Likewise.
13922         (vmla_s32): Likewise.
13923         (vmla_u8): Likewise.
13924         (vmla_u16): Likewise.
13925         (vmla_u32): Likewise.
13926         (vmlaq_s8): Likewise.
13927         (vmlaq_s16): Likewise.
13928         (vmlaq_s32): Likewise.
13929         (vmlaq_u8): Likewise.
13930         (vmlaq_u16): Likewise.
13931         (vmlaq_u32): Likewise.
13932
13933 2021-01-22  David Malcolm  <dmalcolm@redhat.com>
13934
13935         * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
13936         directive.
13937
13938 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
13939
13940         PR debug/98796
13941         * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
13942         filenames to emit, still emit the required 0 index directory and
13943         filename entries that match DW_AT_comp_dir and DW_AT_name of the
13944         compilation unit.
13945
13946 2021-01-22  Marek Polacek  <polacek@redhat.com>
13947
13948         PR c++/98545
13949         * doc/invoke.texi: Update C++ ABI Version 15 description.
13950
13951 2021-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13952
13953         PR tree-optimization/98766
13954         * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
13955         comparing against type size with param_avoid_fma_max_bits.
13956
13957 2021-01-22  Richard Biener  <rguenther@suse.de>
13958
13959         PR middle-end/98793
13960         * tree.c (vector_element_bits): Key single-bit bool vector on
13961         integer mode rather than not vector mode.
13962
13963 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
13964
13965         PR target/98093
13966         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13967         Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
13968         platforms.
13969         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
13970         to call different path for P8 and P9.
13971         (rs6000_expand_vector_set_var_p9): New function.
13972         (rs6000_expand_vector_set_var_p8): New function.
13973
13974 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
13975
13976         PR target/79251
13977         PR target/98065
13978         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13979         Ajdust variable index vec_insert from address dereference to
13980         ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
13981         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
13982         New declaration.
13983         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
13984
13985 2021-01-22  Martin Liska  <mliska@suse.cz>
13986
13987         PR gcov-profile/98739
13988         * profile.c (compute_value_histograms): Drop time profile for
13989         -fprofile-reproducible=multithreaded.
13990
13991 2021-01-22  Nathan Sidwell  <nathan@acm.org>
13992
13993         * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
13994         existence here.
13995
13996 2021-01-22  Richard Biener  <rguenther@suse.de>
13997
13998         PR middle-end/98773
13999         * tree-data-ref.c (initalize_matrix_A): Revert previous
14000         change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
14001
14002 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
14003
14004         PR tree-optimization/90248
14005         * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
14006         X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
14007         simplifications.
14008         (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
14009         X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
14010
14011 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
14012
14013         PR tree-optimization/98255
14014         * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
14015         extend index - low_bound from sizetype's precision rather than index
14016         precision.
14017         (get_addr_base_and_unit_offset_1): Likewise.
14018         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
14019         * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
14020
14021 2021-01-22  Richard Biener  <rguenther@suse.de>
14022
14023         PR tree-optimization/98786
14024         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
14025         adding new uses of abnormals.  Verify we deal with a conditional
14026         conversion.
14027
14028 2021-01-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14029
14030         PR target/98636
14031         * optc-save-gen.awk: Add arm_fp16_format to checked_options.
14032
14033 2021-01-22  liuhongt  <hongtao.liu@intel.com>
14034
14035         PR target/96891
14036         PR target/98348
14037         * config/i386/sse.md (VI_128_256): New mode iterator.
14038         (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
14039          *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
14040          *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
14041         define_insn_and_split to lower avx512 vector comparison to avx
14042         version when dest is vector.
14043         (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
14044         define_insn_and_split for negating the comparison result.
14045         * config/i386/predicates.md (float_vector_all_ones_operand):
14046         New predicate.
14047         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
14048         general NOT operator without UNSPEC_MASKOP.
14049
14050 2021-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>
14051
14052         PR rtl-optimization/98777
14053         * lra-int.h (lra_pmode_pseudo): New extern.
14054         * lra.c (lra_pmode_pseudo): New global.
14055         (lra): Set it up.
14056         * lra-eliminations.c (eliminate_regs_in_insn): Use it.
14057
14058 2021-01-21  Ilya Leoshkevich  <iii@linux.ibm.com>
14059
14060         * fwprop.c (fwprop_propagation::classify_result): Allow
14061         (subreg (mem)) simplifications.
14062
14063 2021-01-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14064
14065         * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
14066         Split into...
14067         (aarch64_sqdmlal<mode>): ... This...
14068         (aarch64_sqdmlsl<mode>): ... And this.
14069         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
14070         (aarch64_sqdmlal_lane<mode>): ... This...
14071         (aarch64_sqdmlsl_lane<mode>): ... And this.
14072         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
14073         (aarch64_sqdmlsl_laneq<mode>): ... This...
14074         (aarch64_sqdmlal_laneq<mode>):  ... And this.
14075         (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
14076         (aarch64_sqdmlsl_n<mode>): ... This...
14077         (aarch64_sqdmlal_n<mode>): ... And this.
14078         (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
14079         (aarch64_sqdmlal2<mode>_internal): ... This...
14080         (aarch64_sqdmlsl2<mode>_internal): ... And this.
14081
14082 2021-01-21  Christophe Lyon  <christophe.lyon@linaro.org>
14083
14084         * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
14085
14086 2021-01-21  Andrea Corallo  <andrea.corallo@arm.com>
14087
14088         PR target/96372
14089         * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
14090
14091 2021-01-21  liuhongt  <hongtao.liu@intel.com>
14092
14093         PR rtl-optimization/98694
14094         * regcprop.c (copy_value): If SRC had been assigned a mode
14095         narrower than the copy, we can't link DEST into the chain even
14096         they have same hard_regno_nregs(i.e. HImode/SImode in i386
14097         backend).
14098
14099 2021-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14100
14101         * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
14102         Convert to define_insn_and_split.  Split into simple move when moving
14103         bottom element.
14104
14105 2021-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
14106
14107         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
14108         Adjust comment.  Simplify code.
14109
14110 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
14111
14112         PR debug/98765
14113         * dwarf2out.c (reset_indirect_string): Also reset indirect strings
14114         with DW_FORM_line_strp form.
14115         (prune_unused_types_update_strings): Don't add into debug_str_hash
14116         indirect strings with DW_FORM_line_strp form.
14117         (adjust_name_comp_dir): New function.
14118         (dwarf2out_finish): Call it on CU DIEs after resetting
14119         debug_line_str_hash.
14120
14121 2021-01-20  Vladimir N. Makarov  <vmakarov@redhat.com>
14122
14123         PR rtl-optimization/98722
14124         * lra-eliminations.c (eliminate_regs_in_insn): Check that target
14125         has no 3-op add insn to transform insns containing two pluses.
14126
14127 2021-01-20  Richard Biener  <rguenther@suse.de>
14128
14129         * hwint.h (add_hwi): New function.
14130         (mul_hwi): Likewise.
14131         * tree-data-ref.c (initialize_matrix_A): Properly translate
14132         tree constants and avoid HOST_WIDE_INT_MIN.
14133         (lambda_matrix_row_add): Avoid undefined integer overflow
14134         and return true on such overflow.
14135         (lambda_matrix_right_hermite): Handle overflow from
14136         lambda_matrix_row_add gracefully.  Simplify previous fix.
14137         (analyze_subscript_affine_affine): Likewise.
14138
14139 2021-01-20  Eugene Rozenfeld  <erozen@microsoft.com>
14140
14141         PR tree-optimization/96674
14142         * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
14143         x >= y && y != XXX_MIN --> x > y - 1
14144
14145 2021-01-20  Richard Sandiford  <richard.sandiford@arm.com>
14146
14147         PR tree-optimization/98535
14148         * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
14149         If the high and low permutes are the same, remove the high permutes
14150         from the working set and only continue with the low ones.
14151
14152 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
14153
14154         PR tree-optimization/98721
14155         * builtins.c (access_ref::inform_access): Don't assume
14156         SSA_NAME_IDENTIFIER must be non-NULL.  Print messages about
14157         object whenever allocfn is NULL, rather than only when DECL_P
14158         is true.  Use %qE instead of %qD for that.  Formatting fixes.
14159
14160 2021-01-20  Richard Biener  <rguenther@suse.de>
14161
14162         PR tree-optimization/98758
14163         * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
14164         (lambda_matrix_right_hermite): Avoid undefinedness with
14165         signed integer abs and multiplication.
14166         (analyze_subscript_affine_affine): Use lambda_int.
14167
14168 2021-01-20  David Malcolm  <dmalcolm@redhat.com>
14169
14170         PR debug/98751
14171         * dwarf2out.c (output_line_info): Rename static variable
14172         "generation", moving it out of the function to...
14173         (output_line_info_generation): New.
14174         (init_sections_and_labels): Likewise, renaming the variable to...
14175         (init_sections_and_labels_generation): New.
14176         (dwarf2out_c_finalize): Reset the new variables.
14177
14178 2021-01-19  Martin Sebor  <msebor@redhat.com>
14179
14180         PR middle-end/98664
14181         * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
14182         all functions, even if they're not declared artificial or inline.
14183         * tree.c (tree_inlined_location): Use macro expansion location
14184         only if scope traversal fails to expose one.
14185
14186 2021-01-19  Richard Sandiford  <richard.sandiford@arm.com>
14187
14188         PR rtl-optimization/92294
14189         * alias.c (compare_base_symbol_refs): Take an extra parameter
14190         and add the distance between two symbols to it.  Enshrine in
14191         comments that -1 means "either 0 or 1, but we can't tell
14192         which at compile time".
14193         (memrefs_conflict_p): Update call accordingly.
14194         (rtx_equal_for_memref_p): Likewise.  Take the distance between symbols
14195         into account.
14196
14197 2021-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14198
14199         * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
14200         sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
14201         uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
14202         sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
14203         sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
14204         sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
14205         sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
14206         sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
14207         sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
14208         uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
14209         sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
14210         sqmovun): Use NONE flags.
14211
14212 2021-01-19  Richard Biener  <rguenther@suse.de>
14213
14214         PR ipa/98330
14215         * ipa-modref.c (analyze_stmt): Only record a summary for a
14216         direct call.
14217
14218 2021-01-19  Richard Biener  <rguenther@suse.de>
14219
14220         PR middle-end/98638
14221         * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
14222
14223 2021-01-19  Daniel Hellstrom  <daniel@gaisler.com>
14224
14225         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
14226         built-in define __FIX_LEON3FT_TN0018.
14227
14228 2021-01-19  Richard Biener  <rguenther@suse.de>
14229
14230         PR ipa/97673
14231         * tree-inline.c (tree_function_versioning): Set input_location
14232         to UNKNOWN_LOCATION throughout the function.
14233
14234 2021-01-19  Tobias Burnus  <tobias@codesourcery.com>
14235
14236         PR fortran/98476
14237         * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
14238
14239 2021-01-19  Martin Jambor  <mjambor@suse.cz>
14240
14241         PR ipa/98690
14242         * ipa-sra.c (ssa_name_only_returned_p): New parameter fun.  Check
14243         whether non-call exceptions allow removal of a statement.
14244         (isra_analyze_call): Pass the appropriate function to
14245         ssa_name_only_returned_p.
14246
14247 2021-01-19  Geng Qi  <gengqi@linux.alibaba.com>
14248
14249         * config/riscv/arch-canonicalize (longext_sort): New function for
14250          sorting 'multi-letter'.
14251         * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
14252         'alts'. The 'arch' may not be the first of 'alts'.
14253         (_expand_combination): Add underline for the 'ext' without '*'.
14254         This is because, a single-letter extension can always be treated well
14255         with a '_' prefix, but it cannot be separated out if it is appended
14256         to a multi-letter.
14257
14258 2021-01-18  Vladimir N. Makarov  <vmakarov@redhat.com>
14259
14260         PR target/97847
14261         * ira.c (ira): Skip abnormal critical edge splitting.
14262
14263 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
14264
14265         PR tree-optimization/98727
14266         * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
14267         second .MUL_OVERFLOW operand for signed multiplication with overflow
14268         checking if the second operand of multiplication is not constant.
14269
14270 2021-01-18  David Edelsohn  <dje.gcc@gmail.com>
14271
14272         * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
14273         defaults to version 4.
14274
14275 2021-01-18  David Malcolm  <dmalcolm@redhat.com>
14276
14277         * attribs.h (fndecl_dealloc_argno): New decl.
14278         * builtins.c (call_dealloc_argno): Split out second half of
14279         function into...
14280         (fndecl_dealloc_argno): New.
14281         * doc/extend.texi (Common Function Attributes): Document the
14282         interaction between the analyzer and the malloc attribute.
14283         * doc/invoke.texi (Static Analyzer Options): Likewise.
14284
14285 2021-01-17  David Edelsohn  <dje.gcc@gmail.com>
14286
14287         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
14288         dwarf_version to 4.
14289         * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
14290
14291 2021-01-17  Martin Jambor  <mjambor@suse.cz>
14292
14293         PR ipa/98222
14294         * cgraph.c (clone_of_p): Check also former_clone_of as we climb
14295         the clone tree.
14296
14297 2021-01-17  Mark Wielaard  <mark@klomp.org>
14298
14299         * common.opt (gdwarf-): Init(5).
14300         * doc/invoke.texi (-gdwarf): Document default to 5.
14301
14302 2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
14303
14304         * builtin-types.def
14305         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
14306         to...
14307         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
14308         ...this.  Add extra argument.
14309         * gimplify.c (omp_default_clause): Ensure that event handle is
14310         firstprivate in a task region.
14311         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
14312         (gimplify_adjust_omp_clauses): Likewise.
14313         * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
14314         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
14315         * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
14316         if detach clause specified.  Add detach argument when generating
14317         call to GOMP_task.
14318         * omp-low.c (scan_sharing_clauses): Setup data environment for detach
14319         clause.
14320         (finish_taskreg_scan): Move field for variable containing the event
14321         handle to the front of the struct.
14322         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH.  Fix
14323         ordering.
14324         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
14325         OMP_CLAUSE_DETACH clause.
14326         (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
14327         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
14328         * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
14329         Fix ordering.
14330         (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH.  Fix
14331         ordering.
14332         (walk_tree_1): Handle OMP_CLAUSE_DETACH.
14333
14334 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14335
14336         * config/nios2/t-rtems: Reset all MULTILIB_* variables.  Shorten
14337         multilib directory names.  Use MULTILIB_REQUIRED instead of
14338         MULTILIB_EXCEPTIONS.  Add -mhw-mul -mhw-mulx -mhw-div
14339         -mcustom-fpu-cfg=fph2 multilib.
14340
14341 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14342
14343         * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
14344         (nios2_init_fpu_configs): Provide register values for new
14345         -mcustom-fpu-cfg=fph2 option variant.
14346         * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
14347         variant.
14348
14349 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14350
14351         * config/nios2/nios2.c (nios2_custom_check_insns): Remove
14352         custom instruction warnings.
14353
14354 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
14355
14356         PR tree-optimization/96669
14357         * match.pd ((CST << x) & 1 -> x == 0): New simplification.
14358
14359 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
14360
14361         PR tree-optimization/96271
14362         * passes.def: Pass false argument to first two pass_cd_dce
14363         instances and true to last instance.  Add comment that
14364         last instance rewrites no longer addressed locals.
14365         * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
14366         initialize it.
14367         (pass_cd_dce::set_pass_param): New method.
14368         (pass_cd_dce::execute): Return TODO_update_address_taken from
14369         last cd_dce instance.
14370
14371 2021-01-15  Carl Love  <cel@us.ibm.com>
14372
14373         * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
14374         New defines.
14375         * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
14376         * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
14377         DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
14378         DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
14379         MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
14380         Add builtin define.
14381         (MULH, DIVE, MOD):  Add new BU_P10_OVERLOAD_2 definitions.
14382         * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
14383         VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
14384         New overloaded definitions.
14385         (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
14386         P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
14387         P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
14388         P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
14389         P10V_BUILTIN_MULHU_V4SI]: Add case
14390         statement for builtins.
14391         * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
14392         * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
14393         (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
14394         (vsx_mul_v2di): Add if TARGET_POWER10 statement.
14395         (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
14396         (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
14397         mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
14398         Add define_insn, mode is VIlong.
14399         * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
14400         Add builtin descriptions.
14401
14402 2021-01-15  Eric Botcazou  <ebotcazou@adacore.com>
14403
14404         * final.c (final_start_function_1): Reset force_source_line.
14405
14406 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
14407
14408         PR tree-optimization/96669
14409         * match.pd (((1 << A) & 1) != 0 -> A == 0,
14410         ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
14411         possibly different power of two constants and to right shift too.
14412
14413 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
14414
14415         PR tree-optimization/96681
14416         * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
14417         ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
14418         ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
14419         ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
14420
14421 2021-01-15  Alexandre Oliva  <oliva@adacore.com>
14422
14423         * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
14424
14425 2021-01-15  Tamar Christina  <tamar.christina@arm.com>
14426
14427         * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
14428         cmul<conj_op><mode>3): New.
14429         * config/aarch64/iterators.md (UNSPEC_FCMUL,
14430         UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
14431         UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
14432         FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
14433         sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
14434         (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
14435         (rot_op): Renamed to conj_op.
14436         * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
14437         cmul<conj_op><mode>3): New.
14438         * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
14439         cmul<conj_op><mode>3): New.
14440
14441 2021-01-15  David Malcolm  <dmalcolm@redhat.com>
14442
14443         PR bootstrap/98696
14444         * diagnostic.c
14445         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
14446         Escape the tempfile name when constructing the expected output.
14447
14448 2021-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14449
14450         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
14451         Rename to...
14452         (aarch64_<su>mlsl_hi<mode>): ... This.
14453         (aarch64_<su>mlsl_hi<mode>): Define.
14454         (*aarch64_<su>mlsl<mode): Rename to...
14455         (aarch64_<su>mlsl<mode): ... This.
14456         * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
14457         smlsl_hi, umlsl_hi): Define builtins.
14458         * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
14459         vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
14460         vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
14461         vmlsl_u16, vmlsl_u32): Reimplement with builtins.
14462
14463 2021-01-15  Uroš Bizjak  <ubizjak@gmail.com>
14464
14465         * config/i386/i386-c.c (ix86_target_macros):
14466         Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
14467
14468 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
14469
14470         PR target/88836
14471         * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
14472         * Makefile.in (RTL_SSA_H): New variable.
14473         * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
14474         * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
14475         * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
14476         pass_combine.
14477         * config/aarch64/aarch64-cc-fusion.cc: New file.
14478
14479 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
14480
14481         * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
14482         calling cancel_changes for changes that no longer exist.
14483
14484 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
14485
14486         * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
14487         (function_info::reg_defs): ...this.
14488         * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
14489         (function_info::reg_defs): ...this.
14490
14491 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14492
14493         PR target/71233
14494         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
14495
14496 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14497
14498         Revert:
14499         2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14500
14501         PR target/71233
14502         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
14503
14504 2021-01-15  Richard Biener  <rguenther@suse.de>
14505
14506         PR tree-optimization/96376
14507         * tree-vect-stmts.c (get_load_store_type): Disregard alignment
14508         for VMAT_INVARIANT.
14509
14510 2021-01-15  Martin Liska  <mliska@suse.cz>
14511
14512         * doc/install.texi: Document that some tests need pytest module.
14513         * doc/sourcebuild.texi: Likewise.
14514
14515 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14516
14517         PR target/71233
14518         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
14519
14520 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14521
14522         * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
14523         (mve_vshrq_n_u<mode>_imm): Likewise.
14524         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
14525         * config/arm/vec-common.md: ... here.
14526
14527 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14528
14529         * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
14530         vec-commond.md.
14531         * config/arm/neon.md (vashl<mode>3): Delete.
14532         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
14533         (vasl<mode>3): New expander.
14534
14535 2021-01-15  Richard Biener  <rguenther@suse.de>
14536
14537         PR tree-optimization/98685
14538         * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
14539         of vector extern defs.
14540
14541 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
14542
14543         PR jit/98586
14544         * diagnostic.c (diagnostic_kind_text): Break out this array
14545         from...
14546         (diagnostic_build_prefix): ...here.
14547         (fancy_abort): Detect when diagnostic_initialize has not yet been
14548         called and fall back to a minimal implementation of printing the
14549         ICE, rather than segfaulting in internal_error.
14550
14551 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
14552
14553         * diagnostic.c (diagnostic_initialize): Eliminate
14554         parseable_fixits_p in favor of initializing extra_output_kind from
14555         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
14556         (convert_column_unit): New function, split out from...
14557         (diagnostic_converted_column): ...this.
14558         (print_parseable_fixits): Add "column_unit" and "tabstop" params.
14559         Use them to call convert_column_unit on the column values.
14560         (diagnostic_report_diagnostic): Eliminate conditional on
14561         parseable_fixits_p in favor of a switch statement on
14562         extra_output_kind, passing the appropriate values to the new
14563         params of print_parseable_fixits.
14564         (selftest::test_print_parseable_fixits_none): Update for new
14565         params of print_parseable_fixits.
14566         (selftest::test_print_parseable_fixits_insert): Likewise.
14567         (selftest::test_print_parseable_fixits_remove): Likewise.
14568         (selftest::test_print_parseable_fixits_replace): Likewise.
14569         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
14570         New.
14571         (selftest::diagnostic_c_tests): Call it.
14572         * diagnostic.h (enum diagnostics_extra_output_kind): New.
14573         (diagnostic_context::parseable_fixits_p): Delete field in favor
14574         of...
14575         (diagnostic_context::extra_output_kind): ...this new field.
14576         * doc/invoke.texi (Environment Variables): Add
14577         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
14578         * opts.c (common_handle_option): Update handling of
14579         OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
14580         fields.
14581
14582 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14583
14584         * tree-vect-slp-patterns.c (class complex_operations_pattern,
14585         complex_operations_pattern::matches,
14586         complex_operations_pattern::recognize,
14587         complex_operations_pattern::build): New.
14588         (slp_patterns): Use it.
14589
14590 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14591
14592         * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
14593         * optabs.def (cmls_optab, cmls_conj_optab): New.
14594         * doc/md.texi: Document them.
14595         * tree-vect-slp-patterns.c (class complex_fms_pattern,
14596         complex_fms_pattern::matches, complex_fms_pattern::recognize,
14597         complex_fms_pattern::build): New.
14598
14599 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14600
14601         * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
14602         * optabs.def (cmla_optab, cmla_conj_optab): New.
14603         * doc/md.texi: Document them.
14604         * tree-vect-slp-patterns.c (vect_match_call_p,
14605         class complex_fma_pattern, vect_slp_reset_pattern,
14606         complex_fma_pattern::matches, complex_fma_pattern::recognize,
14607         complex_fma_pattern::build): New.
14608
14609 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14610
14611         * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
14612         * optabs.def (cmul_optab, cmul_conj_optab): New.
14613         * doc/md.texi: Document them.
14614         * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
14615         vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
14616         vect_build_combine_node, class complex_mul_pattern,
14617         complex_mul_pattern::matches, complex_mul_pattern::recognize,
14618         complex_mul_pattern::build): New.
14619
14620 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14621
14622         * tree-vect-slp.c (optimize_load_redistribution_1): New.
14623         (optimize_load_redistribution, vect_is_slp_load_node): New.
14624         (vect_match_slp_patterns): Use it.
14625
14626 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14627
14628         * tree-vect-slp-patterns.c (complex_add_pattern::build):
14629         Elide nodes.
14630
14631 2021-01-14  Thomas Schwinge  <thomas@codesourcery.com>
14632
14633         * config/gcn/mkoffload.c (main): Create an offload image only in
14634         64-bit configurations.
14635
14636 2021-01-14  H.J. Lu  <hjl.tools@gmail.com>
14637
14638         PR target/98667
14639         * config/i386/i386-options.c (ix86_option_override_internal):
14640         Issue an error for -fcf-protection with CF_BRANCH when compiling
14641         for 32-bit non-TARGET_CMOV targets.
14642
14643 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
14644
14645         PR target/98671
14646         * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
14647         Remove declaration and initialization of shadow variable "ret".
14648         (ix86_option_override_internal): Remove delcaration of
14649         shadow variable "i".  Redeclare shadowed variable to unsigned.
14650         * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
14651         * config/i386/i386-builtins.c (get_builtin_code_for_version):
14652         Update for redeclaration.
14653         * config/i386/i386.h (pta_size): Ditto.
14654
14655 2021-01-14  Richard Biener  <rguenther@suse.de>
14656
14657         PR tree-optimization/98674
14658         * tree-data-ref.c (base_supports_access_fn_components_p): New.
14659         (initialize_data_dependence_relation): For two bases without
14660         possible access fns resort to type size equality when determining
14661         shape compatibility.
14662
14663 2021-01-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14664
14665         PR target/66791
14666         * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
14667         <=, >= operators in vcle and vcge intrinsics respectively.
14668         * config/arm/arm_neon_builtins.def: Remove entry for
14669         vcge and vcgeu.
14670
14671 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
14672
14673         PR target/98671
14674         * config/i386/i386-options.c (ix86_function_specific_save):
14675         Remove redundant assignment to opts->x_ix86_branch_cost.
14676         * config/i386/i386.c (ix86_prefetch_sse):
14677         Rename from x86_prefetch_sse.  Update all uses.
14678         * config/i386/i386.h: Update for rename.
14679         * config/i386/i386-options.h: Ditto.
14680
14681 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
14682
14683         PR target/98670
14684         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
14685         *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
14686         Use Bm instead of m for non-avx.  Add isa attribute.
14687
14688 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
14689
14690         PR tree-optimization/96688
14691         * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
14692         ~X can be simplified.
14693
14694 2021-01-14  Richard Sandiford  <richard.sandiford@arm.com>
14695
14696         * tree-vect-stmts.c (vect_model_load_cost): Account for unused
14697         IFN_LOAD_LANES results.
14698
14699 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14700
14701         * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
14702         Define.
14703         (aarch64_xtn<mode>): Likewise.
14704         * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
14705         Define
14706         builtins.
14707         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
14708         builtin.
14709         (vmovl_s16): Likewise.
14710         (vmovl_s32): Likewise.
14711         (vmovl_u8): Likewise.
14712         (vmovl_u16): Likewise.
14713         (vmovl_u32): Likewise.
14714         (vmovn_s16): Likewise.
14715         (vmovn_s32): Likewise.
14716         (vmovn_s64): Likewise.
14717         (vmovn_u16): Likewise.
14718         (vmovn_u32): Likewise.
14719         (vmovn_u64): Likewise.
14720
14721 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14722
14723         * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
14724         Define.
14725         (aarch64_<su>qxtn2<mode>_be): Likewise.
14726         (aarch64_<su>qxtn2<mode>): Likewise.
14727         * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
14728         Define builtins.
14729         * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
14730         (su): Handle ss_truncate and us_truncate.
14731         * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
14732         builtin.
14733         (vqmovn_high_s32): Likewise.
14734         (vqmovn_high_s64): Likewise.
14735         (vqmovn_high_u16): Likewise.
14736         (vqmovn_high_u32): Likewise.
14737         (vqmovn_high_u64): Likewise.
14738
14739 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14740
14741         * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
14742         Define.
14743         (aarch64_xtn2<mode>_be): Likewise.
14744         (aarch64_xtn2<mode>): Likewise.
14745         * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
14746         builtins.
14747         * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
14748         builtins.
14749         (vmovn_high_s32): Likewise.
14750         (vmovn_high_s64): Likewise.
14751         (vmovn_high_u16): Likewise.
14752         (vmovn_high_u32): Likewise.
14753         (vmovn_high_u64): Likewise.
14754
14755 2021-01-13  Stafford Horne  <shorne@gmail.com>
14756
14757         * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
14758
14759 2021-01-13  Stafford Horne  <shorne@gmail.com>
14760
14761         * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
14762
14763 2021-01-13  Stafford Horne  <shorne@gmail.com>
14764
14765         * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
14766           define for __or1k_hard_float__.
14767
14768 2021-01-13  Stafford Horne  <shorne@gmail.com>
14769
14770         * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
14771         (PROFILE_HOOK): Define to call _mcount.
14772         (FUNCTION_PROFILER): Change from abort to no-op.
14773
14774 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
14775
14776         PR tree-optimization/96691
14777         * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
14778         (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
14779         (~D ^ C) or (D ^ C) can be simplified.
14780
14781 2021-01-13  Richard Biener  <rguenther@suse.de>
14782
14783         PR tree-optimization/92645
14784         * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
14785         until after vector lowering.
14786
14787 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
14788
14789         * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
14790         to SVE_I.
14791         (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
14792         (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
14793
14794 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
14795
14796         * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
14797         to SVE_I.
14798         (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
14799         (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
14800
14801 2021-01-13  Richard Biener  <rguenther@suse.de>
14802
14803         PR tree-optimization/92645
14804         * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
14805         BIT_FIELD_REF argument.
14806         (vect_build_slp_tree_2): Record the desired vector type
14807         on the external vector def.
14808         (vectorizable_slp_permutation): Handle required punning
14809         of existing vector defs.
14810
14811 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
14812
14813         * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
14814
14815 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
14816
14817         * config/sh/sh.md (movsf_ie): Remove operands[2] test.
14818
14819 2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>
14820
14821         * config.gcc [$target == *-*-gnu*]: Enable
14822         'default_gnu_indirect_function'.
14823
14824 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
14825
14826         PR target/95905
14827         * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
14828         registers before calling targetm.vectorize.vec_perm_const, only after
14829         that.
14830         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
14831         two argument permutation when one operand is zero vector and only
14832         after that force operands into registers.
14833         * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
14834         define_insn_and_split pattern.
14835         (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
14836         (*avx512f_zero_extendv16hiv16si2_1): Likewise.
14837         (*avx2_zero_extendv8hiv8si2_1): Likewise.
14838         (*avx512f_zero_extendv8siv8di2_1): Likewise.
14839         (*avx2_zero_extendv4siv4di2_1): Likewise.
14840         * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
14841         into registers.
14842         * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
14843         * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
14844         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
14845         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
14846         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
14847         * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise.  Use std::swap.
14848
14849 2021-01-13  Martin Liska  <mliska@suse.cz>
14850
14851         PR tree-optimization/98455
14852         * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
14853         Record also virtual PHIs.
14854         (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
14855         conditionally.
14856
14857 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
14858
14859         * doc/invoke.texi (C++ Modules): Fix typos.
14860
14861 2021-01-13  Richard Biener  <rguenther@suse.de>
14862
14863         PR tree-optimization/98640
14864         * tree-ssa-sccvn.c (visit_nary_op): Do not try to
14865         handle plus or minus from a truncated operand to be
14866         sign-extended.
14867
14868 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
14869
14870         PR target/96938
14871         * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
14872         define_insn_and_split patterns.
14873         (splitter after *btr<mode>_2): New splitter.
14874
14875 2021-01-13  Martin Liska  <mliska@suse.cz>
14876
14877         PR ipa/98652
14878         * cgraphunit.c (analyze_functions): Remove dead code.
14879
14880 2021-01-13  Qian Jianhua  <qianjh@cn.fujitsu.com>
14881
14882         * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
14883         * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
14884         (a64fx_regmove_cost, a64fx_vector_cost): New.
14885         (a64fx_tunings): Use the new added cost tables.
14886
14887 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
14888
14889         PR target/95905
14890         * config/i386/predicates.md (pmovzx_parallel): New predicate.
14891         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
14892         define_insn_and_split pattern.
14893         (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
14894         (*sse4_1_zero_extendv2siv2di2_3): Likewise.
14895
14896 2021-01-13  Julian Brown  <julian@codesourcery.com>
14897
14898         * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
14899         to fix v0 register.
14900
14901 2021-01-13  Julian Brown  <julian@codesourcery.com>
14902
14903         * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
14904         on entry to a BB.
14905
14906 2021-01-13  Julian Brown  <julian@codesourcery.com>
14907
14908         * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
14909         for reciprocal-approximation instructions.
14910         (div<mode>3): Use fused multiply-accumulate operations for reciprocal
14911         refinement and division result.
14912         * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
14913
14914 2021-01-13  Julian Brown  <julian@codesourcery.com>
14915
14916         * config/gcn/gcn-valu.md (subdf): Rename to...
14917         (subdf3): This.
14918
14919 2021-01-12  Martin Liska  <mliska@suse.cz>
14920
14921         * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
14922
14923 2021-01-12  Andrea Corallo  <andrea.corallo@arm.com>
14924
14925         * function-abi.h: Fix typo.
14926
14927 2021-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
14928
14929         PR target/97875
14930         PR target/97875
14931         * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
14932         (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
14933         (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
14934         (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
14935         (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
14936         (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
14937         (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
14938         (ARM_HAVE_NEON_V2DI_LDST): Likewise.
14939         (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
14940         (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
14941         (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
14942         (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
14943         (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
14944         (ARM_HAVE_V2DI_LDST): Likewise.
14945         * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
14946         (*movmisalign<mode>_mve_load): New pattern.
14947         * config/arm/neon.md (movmisalign<mode>): Move to ...
14948         * config/arm/vec-common.md: ... here.
14949
14950 2021-01-12  Vladimir N. Makarov  <vmakarov@redhat.com>
14951
14952         PR target/97969
14953         * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
14954         of pattern 'plus (plus (hard reg, const), pseudo)'.
14955
14956 2021-01-12  Richard Biener  <rguenther@suse.de>
14957
14958         PR tree-optimization/98550
14959         * tree-vect-slp.c (vect_record_max_nunits): Check whether
14960         the group size is a multiple of the vector element count.
14961         (vect_build_slp_tree_1): When we need to fail because
14962         the vector type choosen causes unrolling do so lazily
14963         without affecting matches only at the end to guide group splitting.
14964
14965 2021-01-12  Martin Liska  <mliska@suse.cz>
14966
14967         PR c++/97284
14968         * optc-save-gen.awk: Compare also n_target_save vars with
14969         strcmp.
14970
14971 2021-01-12  Martin Liska  <mliska@suse.cz>
14972
14973         * gcov.c (source_info::debug): New.
14974         (print_usage): Add --debug (-D) option.
14975         (process_args): Likewise.
14976         (generate_results): Call src->debug after
14977         accumulate_line_counts.
14978         (read_graph_file): Properly assign id for EXIT_BLOCK.
14979         * profile.c (branch_prob): Dump function body before it is
14980         instrumented.
14981
14982 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
14983
14984         PR tree-optimization/98629
14985         * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
14986         unless returning non-zero.
14987
14988 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
14989
14990         PR tree-optimization/95731
14991         * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
14992         x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
14993         (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
14994         only after optimize_range_tests_var_bound.
14995
14996 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
14997
14998         * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
14999         * configure: Regenerated.
15000
15001 2021-01-12  liuhongt  <hongtao.liu@intel.com>
15002
15003         PR target/98612
15004         * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
15005         Deleted.
15006         * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
15007         dead code.
15008
15009 2021-01-12  Alexandre Oliva  <oliva@adacore.com>
15010
15011         * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
15012         declare.
15013         (auto_end_imm_use_stmt_traverse): New struct.
15014         (FOR_EACH_IMM_USE_STMT): Use it.
15015         (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
15016         along with uses...
15017         * gimple-ssa-strength-reduction.c: ... here, ...
15018         * graphite-scop-detection.c: ... here, ...
15019         * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
15020         * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
15021         * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
15022         * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
15023         * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
15024         * tree-vect-slp.c: ... and here, ...
15025         * doc/tree-ssa.texi: ... and the example here.
15026
15027 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15028
15029         * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
15030         SVE_FULL_I to SVE_I.  Generate an UNSPEC_PRED_X.
15031         (*sdiv_pow2<mode>3): New pattern.
15032         (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
15033         Wrap the ASRD in an UNSPEC_PRED_X.
15034         (*cond_<sve_int_op><mode>_2): Likewise.  Replace the UNSPEC_PRED_X
15035         predicate with a constant PTRUE, if it isn't already.
15036         (*cond_<sve_int_op><mode>_z): Replace with...
15037         (*cond_<sve_int_op><mode>_any): ...this new pattern.
15038
15039 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15040
15041         * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
15042         SVE_FULL_I to SVE_I.
15043         (*cond_bic<mode>_any): Likewise.
15044
15045 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15046
15047         * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
15048         (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
15049         to SVE_I.
15050
15051 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15052
15053         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
15054         SVE_FULL_I to SVE_I.
15055         (*aarch64_cond_<su>abd<mode>_2): Likewise.
15056         (*aarch64_cond_<su>abd<mode>_any): Likewise.
15057         (@aarch64_pred_<su>abd<mode>): Likewise.  Use UNSPEC_PRED_X
15058         for the max and min but not for the minus.
15059         (*aarch64_cond_<su>abd<mode>_3): New pattern.
15060
15061 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15062
15063         * config/aarch64/iterators.md (SVE_24I): New iterator.
15064         * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
15065         SVE_FULL_SDI to SVE_24I.  Use containers rather than elements.
15066
15067 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15068
15069         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
15070         (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
15071         to SVE_I.
15072         (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
15073         (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
15074         (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
15075         (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
15076
15077 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15078
15079         * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
15080         (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
15081         (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
15082         to SVE_I.
15083
15084 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15085
15086         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
15087         (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
15088         (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
15089
15090 2021-01-11  Martin Liska  <mliska@suse.cz>
15091
15092         PR jit/98615
15093         * symtab-clones.h (clone_info::release): Release
15094         symtab::m_clones with ggc_delete as it's a GGC memory.
15095
15096 2021-01-11  Matthias Klose  <doko@ubuntu.com>
15097
15098         * Makefile.in (LINK_PROGRESS): Show the link target.
15099
15100 2021-01-11  Richard Biener  <rguenther@suse.de>
15101
15102         PR tree-optimization/91403
15103         * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
15104         single-element interleaving group size at 4096 elements.
15105
15106 2021-01-11  Richard Biener  <rguenther@suse.de>
15107
15108         PR tree-optimization/98526
15109         * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
15110         of the actual reduction op for the regular case.
15111         (vectorizable_reduction): Cost the stmts
15112         vect_transform_reduction produces here.
15113
15114 2021-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>
15115
15116         * tree-ssa-forwprop.c (simplify_vector_constructor): For
15117         big-endian, use UNPACK[_FLOAT]_HI.
15118
15119 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
15120
15121         * tree-vect-slp-patterns.c (class complex_pattern,
15122         class complex_add_pattern): Add parameters to matches.
15123         (complex_add_pattern::build): Free memory.
15124         (complex_add_pattern::matches): Move validation end of match.
15125         (complex_add_pattern::recognize): Likewise.
15126
15127 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
15128
15129         * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
15130
15131 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
15132
15133         * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
15134
15135 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
15136
15137         PR tree-optimization/95867
15138         * tree-ssa-math-opts.h: New header.
15139         * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
15140         (powi_as_mults): No longer static.  Use build_one_cst instead of
15141         build_real.  Formatting fix.
15142         * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
15143         (attempt_builtin_powi): Handle multiplication reassociation without
15144         powi_fndecl using powi_as_mults.
15145         (reassociate_bb): For integral types don't require
15146         -funsafe-math-optimizations to call attempt_builtin_powi.
15147
15148 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
15149
15150         PR tree-optimization/95852
15151         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
15152         mul_stmts parameter type to vec<gimple *> &.  Before cond_stmt
15153         allow in the bb any of the stmts in that vector, div_stmt and
15154         up to 3 cast stmts.
15155         (arith_cast_equal_p): New function.
15156         (arith_overflow_check_p): Add cast_stmt argument, handle signed
15157         multiply overflow checks.
15158         (match_arith_overflow): Adjust caller.  Handle signed multiply
15159         overflow checks.
15160
15161 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
15162
15163         PR tree-optimization/95852
15164         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
15165         (uaddsub_overflow_check_p): Renamed to ...
15166         (arith_overflow_check_p): ... this.  Handle also multiplication
15167         with overflow check.
15168         (match_uaddsub_overflow): Renamed to ...
15169         (match_arith_overflow): ... this.  Add cfg_changed argument.  Handle
15170         also multiplication with overflow check.  Adjust function comment.
15171         (math_opts_dom_walker::after_dom_children): Adjust callers.  Call
15172         match_arith_overflow also for MULT_EXPR.
15173
15174 2021-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15175
15176         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
15177         __builtin_convertvector.
15178         (vmovl_s16): Likewise.
15179         (vmovl_s32): Likewise.
15180         (vmovl_u8): Likewise.
15181         (vmovl_u16): Likewise.
15182         (vmovl_u32): Likewise.
15183         (vmovn_s16): Likewise.
15184         (vmovn_s32): Likewise.
15185         (vmovn_s64): Likewise.
15186         (vmovn_u16): Likewise.
15187         (vmovn_u32): Likewise.
15188         (vmovn_u64): Likewise.
15189
15190 2021-01-11  Martin Liska  <mliska@suse.cz>
15191
15192         * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
15193         (if_chain::is_beneficial): Delete clusters
15194         (find_conditions): Make second argument of conditions_in_bbs a
15195         pointer so that we control over it's lifetime.
15196         (pass_if_to_switch::execute): Delete them.
15197
15198 2021-01-11  Kewen Lin  <linkw@linux.ibm.com>
15199
15200         * ira.c (move_unallocated_pseudos): Check other_reg and skip if
15201         it isn't set.
15202
15203 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
15204
15205         * config/vax/vax.md (cc): Remove mode attribute.
15206         (subst_<cc>, subst_f<cc>): Rename to...
15207         (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
15208         (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
15209         (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
15210         (*branch_<mode>, *branch_<mode>_reversed): Likewise.
15211
15212 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
15213
15214         * config/vax/vax.md (subst_f<cc>): Add mode to operands and
15215         `const_double_zero'.
15216
15217 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
15218
15219         * config/pdp11/pdp11.md (PDPfp): New mode iterator.
15220         (fcc_cc, fcc_ccnz): Use it.  Add mode to `const_double_zero' and
15221         operands.
15222
15223 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
15224
15225         * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
15226         rtx.
15227         * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
15228         with `const_double_zero'.
15229         * doc/rtl.texi (Constant Expression Types): Document it.
15230
15231 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
15232
15233         PR c++/98556
15234         * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
15235         POINTER_DIFF_EXPR to be any integral type.
15236
15237 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
15238
15239         PR rtl-optimization/98603
15240         * function.c (instantiate_virtual_regs_in_insn): For asm goto
15241         with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
15242         if any, set ASM_OPERANDS mode to VOIDmode and change
15243         ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
15244
15245 2021-01-09  Alexandre Oliva  <oliva@gnu.org>
15246
15247         PR debug/97714
15248         * final.c (notice_source_line): Narrow down the condition to
15249         skip a line-0 marker.
15250
15251 2021-01-08  Sergei Trofimovich  <siarheit@google.com>
15252
15253         * ipa-modref.c (merge_call_side_effects): Fix
15254         linebreak split by reordering two print calls.
15255
15256 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
15257
15258         * config/s390/vector.md (*tf_to_fprx2_0): Rename from
15259         "*mov_tf_to_fprx2_0" for consistency, fix constraint.
15260         (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
15261         consistency, fix constraint.
15262
15263 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
15264
15265         * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
15266         callables instead of mask values.
15267         (struct target_flag_set_p): New predicate.
15268         (s390_cpu_cpp_builtins_internal): Define or undefine
15269         __LONG_DOUBLE_VX__ macro.
15270
15271 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
15272
15273         PR target/98482
15274         * config/i386/i386.c (x86_function_profiler): Use R10 and R11
15275         to call mcount in large model with PIC for NO_PROFILE_COUNTERS
15276         targets.
15277
15278 2021-01-08  Richard Biener  <rguenther@suse.de>
15279
15280         * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
15281
15282 2021-01-08  Richard Biener  <rguenther@suse.de>
15283
15284         * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
15285         (vect_build_slp_tree): On cache hit release the matched
15286         scalar stmts vector.
15287         * tree-vect-stmts.c (vectorizable_store): Properly free
15288         vec_oprnds before possibly gathering them again.
15289
15290 2021-01-08  Richard Biener  <rguenther@suse.de>
15291
15292         PR tree-optimization/98544
15293         * tree-vect-slp.c (vect_optimize_slp): Always materialize
15294         permutes at a permute node.
15295
15296 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
15297
15298         PR target/98482
15299         * config/i386/i386.c (x86_function_profiler): Use R10 to call
15300         mcount in large model.  Sorry for large model with PIC.
15301
15302 2021-01-08  Jakub Jelinek  <jakub@redhat.com>
15303
15304         PR target/98585
15305         * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
15306         ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
15307         ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
15308         TargetSave and initialize for variables with enum types.
15309         (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
15310         mstack-protector-guard-symbol=): Add Save.
15311         * config/i386/i386-options.c (ix86_function_specific_save,
15312         ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
15313         x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
15314         x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
15315         x_ix86_veclibabi_type.
15316
15317 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
15318
15319         * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
15320         SVE_FULL_I to SVE_I.
15321         (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
15322
15323 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
15324
15325         * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
15326         SVE_FULL_I to SVE_I.
15327         (*cond_uxt<mode>_any): Likewise.
15328
15329 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15330
15331         * config/aarch64/iterators.md (Vwhalf): New iterator.
15332         * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
15333         Rename to...
15334         (aarch64_<sur>adalp<mode>): ... This.  Make more
15335         builtin-friendly.
15336         (<sur>sadv16qi): Adjust callsite of the above.
15337         * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
15338         builtins.
15339         * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
15340         builtins.
15341         (vpadal_s16): Likewise.
15342         (vpadal_u8): Likewise.
15343         (vpadal_u16): Likewise.
15344         (vpadalq_s8): Likewise.
15345         (vpadalq_s16): Likewise.
15346         (vpadalq_s32): Likewise.
15347         (vpadalq_u8): Likewise.
15348         (vpadalq_u16): Likewise.
15349         (vpadalq_u32): Likewise.
15350
15351 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15352
15353         * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
15354         Rename to...
15355         (aarch64_<su>abd<mode>): ... This.
15356         (<sur>sadv16qi): Adjust callsite of the above.
15357         * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
15358         builtins.
15359         * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
15360         builtin.
15361         (vabd_s16): Likewise.
15362         (vabd_s32): Likewise.
15363         (vabd_u8): Likewise.
15364         (vabd_u16): Likewise.
15365         (vabd_u32): Likewise.
15366         (vabdq_s8): Likewise.
15367         (vabdq_s16): Likewise.
15368         (vabdq_s32): Likewise.
15369         (vabdq_u8): Likewise.
15370         (vabdq_u16): Likewise.
15371         (vabdq_u32): Likewise.
15372
15373 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15374
15375         * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
15376         builtins.
15377         * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
15378         (vaba_s16): Likewise.
15379         (vaba_s32): Likewise.
15380         (vaba_u8): Likewise.
15381         (vaba_u16): Likewise.
15382         (vaba_u32): Likewise.
15383         (vabaq_s8): Likewise.
15384         (vabaq_s16): Likewise.
15385         (vabaq_s32): Likewise.
15386         (vabaq_u8): Likewise.
15387         (vabaq_u16): Likewise.
15388         (vabaq_u32): Likewise.
15389
15390 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15391
15392         * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
15393         (aarch64_<su>aba<mode>): ... This.  Handle uaba as well.
15394         Change RTL pattern to match.
15395
15396 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
15397
15398         * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
15399         * config/riscv/riscv-c.c (riscv-subset.h): New.
15400         (INCLUDE_STRING): Define.
15401         (riscv_cpu_cpp_builtins): Add new style architecture extension
15402         test macros.
15403         * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
15404         (riscv_subset_list::end): New.
15405         (riscv_current_subset_list): New.
15406
15407 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
15408
15409         * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
15410         Move to riscv-subset.h.
15411         (struct riscv_subset_t): Ditto.
15412         (class riscv_subset_list): Ditto.
15413         * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
15414         from riscv-common.c.
15415         (struct riscv_subset_t): Ditto.
15416         (class riscv_subset_list): Ditto.
15417         * config/riscv/t-riscv ($(common_out_file)): Add file
15418         dependency.
15419
15420 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
15421
15422         PR target/98567
15423         * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
15424         New define_insn patterns.
15425
15426 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
15427
15428         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
15429         (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
15430         (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
15431
15432 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
15433
15434         PR tree-optimization/98560
15435         * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
15436         * internal-fn.c (vec_cond_mask_direct): Get the data mode from
15437         argument 1.
15438         (vec_cond_direct): Likewise argument 2.
15439         (vec_condu_direct, vec_condeq_direct): Delete.
15440         (expand_vect_cond_optab_fn): Rename to...
15441         (expand_vec_cond_optab_fn): ...this, replacing old macro.
15442         (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
15443         (expand_vect_cond_mask_optab_fn): Rename to...
15444         (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
15445         (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
15446         convert optab.
15447         (direct_vec_cond_optab_supported_p): Likewise.
15448         (direct_vec_condu_optab_supported_p): Delete.
15449         (direct_vec_condeq_optab_supported_p): Delete.
15450         * gimple-isel.cc: Include internal-fn.h.
15451         (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
15452         before using it.
15453
15454 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
15455
15456         PR tree-optimization/98560
15457         * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
15458         IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
15459
15460 2021-01-07  Uroš Bizjak  <ubizjak@gmail.com>
15461
15462         * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
15463         rotate_insn and optab code attributes.
15464         Update all uses to merged code attribute.
15465         * config/i386/sse.md: Update all uses to merged code attribute.
15466         * config/i386/mmx.md: Update all uses to merged code attribute.
15467
15468 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
15469
15470         PR tree-optimization/98568
15471         * gimple-ssa-store-merging.c (bswap_view_convert): New function.
15472         (bswap_replace): Use it.
15473
15474 2021-01-06  Vladimir N. Makarov  <vmakarov@redhat.com>
15475
15476         PR rtl-optimization/97978
15477         * lra-int.h (lra_hard_reg_split_p): New external.
15478         * lra.c (lra_hard_reg_split_p): New global.
15479         (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
15480         * lra-assigns.c (lra_assign): Don't check allocation correctness
15481         after hard reg splitting.
15482
15483 2021-01-06  Martin Sebor  <msebor@redhat.com>
15484
15485         PR c++/98305
15486         * builtins.c (new_delete_mismatch_p): New overload.
15487         (new_delete_mismatch_p (tree, tree)): Call it.
15488
15489 2021-01-06  Alexandre Oliva  <oliva@adacore.com>
15490
15491         * Makefile.in (T_GLIMITS_H): New.
15492         (stmp-int-hdrs): Depend on it, use it.
15493         * config/t-vxworks (T_GLIMITS_H): Override it.
15494         (vxw-glimits.h): New.
15495
15496 2021-01-06  Richard Biener  <rguenther@suse.de>
15497
15498         PR tree-optimization/98513
15499         * value-range.cc (intersect_ranges): Compare the upper bounds
15500         for the expected relation.
15501
15502 2021-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
15503
15504         Revert:
15505         2020-12-28  Gerald Pfeifer  <gerald@pfeifer.com>
15506
15507         * doc/standards.texi (HSAIL): Remove section.
15508
15509 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
15510
15511         * configure: Re-generate.
15512
15513 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15514
15515         * doc/invoke.texi (-std=c++20): Adjust for the publication of
15516         ISO 14882:2020 standard.
15517         * doc/standards.texi: Likewise.
15518
15519 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15520
15521         PR tree-optimization/94802
15522         * expr.h (maybe_optimize_sub_cmp_0): Declare.
15523         * expr.c: Include tree-pretty-print.h and flags.h.
15524         (maybe_optimize_sub_cmp_0): New function.
15525         (do_store_flag): Use it.
15526         * cfgexpand.c (expand_gimple_cond): Likewise.
15527
15528 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15529
15530         * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
15531         * rtlanal.c (simple_regno_set): Tweak description to clarify the
15532         RMW condition.
15533
15534 2021-01-05  Richard Biener  <rguenther@suse.de>
15535
15536         PR tree-optimization/98516
15537         * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
15538         lanes when materializing on a VEC_PERM node.
15539         (vectorizable_slp_permutation): Dump the permute properly.
15540
15541 2021-01-05  Richard Biener  <rguenther@suse.de>
15542
15543         * tree-vect-slp.c (vect_slp_region): Move debug counter
15544         to cover individual subgraphs.
15545
15546 2021-01-05  Richard Biener  <rguenther@suse.de>
15547
15548         PR tree-optimization/98428
15549         * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
15550         vector lane extracts for loop vectorization.
15551
15552 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15553
15554         PR tree-optimization/98514
15555         * tree-ssa-reassoc.c (bb_rank): Change type from long * to
15556         int64_t *.
15557         (operand_rank): Change type from hash_map<tree, long> to
15558         hash_map<tree, int64_t>.
15559         (phi_rank): Change return type from long to int64_t.
15560         (loop_carried_phi): Change block_rank variable type from long to
15561         int64_t.
15562         (propagate_rank): Change return type, rank parameter type and
15563         op_rank variable type from long to int64_t.
15564         (find_operand_rank): Change return type from long to int64_t
15565         and change slot variable type from long * to int64_t *.
15566         (insert_operand_rank): Change rank parameter type from long to
15567         int64_t.
15568         (get_rank): Change return type and rank variable type from long to
15569         int64_t.  Use PRId64 instead of ld to print the rank.
15570         (init_reassoc): Change rank variable type from long to int64_t
15571         and adjust correspondingly bb_rank and operand_rank initialization.
15572
15573 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15574
15575         PR tree-optimization/96928
15576         * tree-ssa-phiopt.c (xor_replacement): New function.
15577         (tree_ssa_phiopt_worker): Call it.
15578
15579 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15580
15581         PR tree-optimization/96930
15582         * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
15583         from narrower value which has the same type as 1 << B, perform
15584         the right shift on the narrower value followed by extension.
15585
15586 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15587
15588         PR tree-optimization/96239
15589         * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
15590         function.
15591         (get_status_for_store_merging): Don't return BB_INVALID for blocks
15592         with potential bswap optimizable CONSTRUCTORs.
15593         (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
15594         if possible.
15595
15596 2021-01-05  Richard Biener  <rguenther@suse.de>
15597
15598         PR tree-optimization/98381
15599         * tree.c (vector_element_bits): Properly compute bool vector
15600         element size.
15601         * tree-vect-loop.c (vectorizable_live_operation): Properly
15602         compute the last lane bit offset.
15603
15604 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
15605
15606         PR target/98522
15607         * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
15608         Clear the top 64 bytes of the input XMM register.
15609         (sse_cvttps2pi): Ditto.
15610
15611 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
15612
15613         PR target/98521
15614         * config/i386/xopintrin.h (_mm256_cmov_si256): New.
15615
15616 2021-01-05  H.J. Lu  <hjl.tools@gmail.com>
15617
15618         PR target/98495
15619         * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
15620         short first.
15621
15622 2021-01-05  Claudiu Zissulescu  <claziss@synopsys.com>
15623
15624         * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
15625         (umaddsidi4_split): Likewise.
15626
15627 2021-01-05  liuhongt  <hongtao.liu@intel.com>
15628
15629         PR target/98461
15630         * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
15631         define_insn_and_split for zero_extend of subreg HI of pmovskb
15632         result.
15633         (*sse2_pmovskb_zexthisi): Add new combine splitters for
15634         zero_extend of not of subreg HI of pmovskb result.
15635
15636 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15637
15638         PR target/97269
15639         * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
15640         nested in CONSTs.
15641         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
15642         convert_memory_address to convert symbolic immediates to ptr_mode
15643         before forcing them to memory.
15644
15645 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15646
15647         PR rtl-optimization/97144
15648         * recog.c (constrain_operands): Initialize matching_operand
15649         for each alternative, rather than only doing it once.
15650
15651 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15652
15653         PR rtl-optimization/98403
15654         * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
15655         why we don't remove call clobbers.
15656         (function_info::apply_changes_to_insn): Don't attempt to add
15657         call clobbers here.
15658
15659 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15660
15661         PR tree-optimization/98371
15662         * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
15663         (vect_analyze_loop): If an epilogue loop appears to be cheaper
15664         than the main loop, re-analyze it as a main loop before adopting
15665         it as a main loop.
15666
15667 2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15668
15669         PR c++/98316
15670         * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
15671         * aclocal.m4, configure: Regenerate.
15672         * Makefile.in (NETLIBS): Define.
15673         (BACKEND): Remove $(CODYLIB).
15674
15675 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15676
15677         PR rtl-optimization/98334
15678         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
15679         Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
15680
15681 2021-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15682
15683         * tree-inline.c (expand_call_inline): Restore input_location.
15684         Return result from recursive call.
15685
15686 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
15687
15688         PR tree-optimization/95401
15689         * config/aarch64/aarch64-sve-builtins.cc
15690         (gimple_folder::load_store_cookie): Use bits rather than bytes
15691         for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
15692         * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
15693         * tree-vect-stmts.c (vectorizable_store): Likewise.
15694         (vectorizable_load): Likewise.
15695
15696 2021-01-04  Richard Biener  <rguenther@suse.de>
15697
15698         PR tree-optimization/98308
15699         * tree-vect-stmts.c (vectorizable_load): Set invariant mask
15700         SLP vectype.
15701
15702 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
15703
15704         PR tree-optimization/95771
15705         * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
15706         with precision smaller than int's precision and types with precision
15707         twice as large as long long.  Formatting fixes.
15708
15709 2021-01-04  Richard Biener  <rguenther@suse.de>
15710
15711         PR tree-optimization/98464
15712         * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
15713         (vn_valueize_wrapper): ... this.  Temporarily adjust vn_context_bb.
15714         (process_bb): Adjust.
15715
15716 2021-01-04  Matthew Malcomson  <matthew.malcomson@arm.com>
15717
15718         PR other/98437
15719         * doc/invoke.texi (-fsanitize=address): Fix wording describing
15720         clash with -fsanitize=hwaddress.
15721
15722 2021-01-04  Richard Biener  <rguenther@suse.de>
15723
15724         PR tree-optimization/98282
15725         * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
15726         invariants as VN_NARY.
15727
15728 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
15729
15730         PR target/89057
15731         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
15732         aarch64_simd_reg_or_zero for operand 2.  Use the combinez patterns
15733         to handle zero operands.
15734
15735 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
15736
15737         * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
15738         (offset_6bit_unsigned_scaled_p): Fix typo in comment.
15739         (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
15740         [-32, 31].
15741
15742 2021-01-04  Richard Biener  <rguenther@suse.de>
15743
15744         PR tree-optimization/98393
15745         * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
15746         when hitting the limit.
15747
15748 2021-01-04  Richard Biener  <rguenther@suse.de>
15749
15750         PR tree-optimization/98291
15751         * tree-vect-loop.c (vectorizable_reduction): Bypass
15752         associativity check for SLP reductions with VF 1.
15753
15754 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
15755
15756         PR tree-optimization/96782
15757         * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
15758
15759 2021-01-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15760
15761         * collect-utils.c (collect_execute): Check dumppfx.
15762         * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
15763         to collect_execute.
15764         (do_link): Add new parameter atsuffix.
15765         (main): Handle -dumpdir option.  Skip one argument for
15766         -o, -isystem and -B options.
15767         * gcc.c (make_at_file): New helper function.
15768         (close_at_file): Use it.
15769
15770 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15771
15772         * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
15773         Amend handling for LD64_VERSION fallback defaults.
15774
15775 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15776
15777         * config.gcc: Compute default version information
15778         from the configured target.  Likewise defaults for
15779         ld64.
15780         * config/darwin10.h: Removed.
15781         * config/darwin12.h: Removed.
15782         * config/darwin9.h: Removed.
15783         * config/rs6000/darwin8.h: Removed.
15784
15785 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15786
15787         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
15788
15789 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15790
15791         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
15792         * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
15793
15794 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15795
15796         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
15797         here...
15798         * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
15799
15800 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15801
15802         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
15803         for the Darwin10 unwinder stub from here ...
15804         * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
15805
15806 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15807
15808         * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
15809         (ASM_DEBUG_SPEC):Only define if the assembler supports
15810         stabs.
15811         (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
15812         (DARWIN_PREFER_DWARF): Define.
15813         * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
15814         (DARWIN_PREFER_DWARF): Likewise
15815         (DSYMUTIL_SPEC): Likewise.
15816         (COLLECT_RUN_DSYMUTIL): Likewise.
15817         (ASM_DEBUG_SPEC): Likewise.
15818         (ASM_DEBUG_OPTION_SPEC): Likewise.
15819
15820 2021-01-02  Jan Hubicka  <jh@suse.cz>
15821
15822         * cfg.c (free_block): ggc_free bb.
15823
15824 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
15825
15826         * gcc.c (process_command): Update copyright notice dates.
15827         * gcov-dump.c (print_version): Ditto.
15828         * gcov.c (print_version): Ditto.
15829         * gcov-tool.c (print_version): Ditto.
15830         * gengtype.c (create_file): Ditto.
15831         * doc/cpp.texi: Bump @copying's copyright year.
15832         * doc/cppinternals.texi: Ditto.
15833         * doc/gcc.texi: Ditto.
15834         * doc/gccint.texi: Ditto.
15835         * doc/gcov.texi: Ditto.
15836         * doc/install.texi: Ditto.
15837         * doc/invoke.texi: Ditto.
15838
15839 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
15840
15841         * ChangeLog-2020: Rotate ChangeLog.  New file.
15842
15843 \f
15844 Copyright (C) 2021 Free Software Foundation, Inc.
15845
15846 Copying and distribution of this file, with or without modification,
15847 are permitted in any medium without royalty provided the copyright
15848 notice and this notice are preserved.