Daily bump.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2021-07-16  David Malcolm  <dmalcolm@redhat.com>
2
3         * doc/analyzer.texi: Add __analyzer_dump_state.
4
5 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
6
7         * config/rs6000/rbtree.c: New file.
8         * config/rs6000/rbtree.h: New file.
9
10 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
11
12         * config/rs6000/rs6000-gen-builtins.c (restriction): New enum.
13         (typeinfo): Add restr field.
14         (match_bracketed_pair): New function.
15         (match_const_restriction): Implement.
16
17 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
18
19         * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement.
20
21 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
22
23         * config/rs6000/rs6000-gen-builtins.c (void_status): New enum.
24         (basetype): Likewise.
25         (typeinfo): Likewise.
26         (handle_pointer): New function.
27         (match_basetype): New stub function.
28         (match_const_restriction): Likewise.
29         (match_type): New function.
30
31 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
32
33         * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New
34         function.
35         (advance_line): Likewise.
36         (safe_inc_pos): Likewise.
37         (match_identifier): Likewise.
38         (match_integer): Likewise.
39         (match_to_right_bracket): Likewise.
40
41 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
42
43         * config/rs6000/rs6000-gen-builtins.c (bif_file): New variable.
44         (ovld_file): Likewise.
45         (header_file): Likewise.
46         (init_file): Likewise.
47         (defines_file): Likewise.
48         (pgm_path): Likewise.
49         (bif_path): Likewise.
50         (ovld_path): Likewise.
51         (header_path): Likewise.
52         (init_path): Likewise.
53         (defines_path): Likewise.
54         (LINELEN): New macro.
55         (linebuf): New variable.
56         (line): Likewise.
57         (pos): Likewise.
58         (diag): Likewise.
59         (bif_diag): New function.
60         (ovld_diag): Likewise.
61
62 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
63
64         * config/rs6000/rs6000-builtin-new.def: New.
65         * config/rs6000/rs6000-overload.def: New.
66
67 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
68
69         * config/rs6000/rs6000-gen-builtins.c: New.
70
71 2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
72
73         * Makefile.in (EXTRA_GTYPE_DEPS): New variable.
74         (s-gtype): Depend on EXTRA_GTYPE_DEPS.
75         * gengtype-state.c (state_writer::write_state_file_list): Add a
76         parameter to the fileslist expression for the number of build
77         headers to scan.
78         (read_state_files_list): Detect build headers and strip the
79         initial "./" or ".\" from their names.
80         * gengtype.c (build_headers): New global variable.
81         (num_build_headers): Likewise.
82         (open_base_files): Emit #include for each build header.
83         (main): Detect and count build headers.
84         * gengtype.h (build_headers): New extern variable.
85         (num_build_headers): Likewise.
86
87 2021-07-16  Richard Biener   <rguenther@suse.de>
88
89         * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use
90         the type of the LHS.
91         (find_bswap_or_nop_1): Likewise.
92         (find_bswap_or_nop): Likewise.
93         * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust
94         prototype.
95         * tree-vect-data-refs.c (vect_get_smallest_scalar_type):
96         Remove unused parameters, pass in the scalar type.  Fix
97         internal store function handling.
98         * tree-vect-stmts.c (vect_analyze_stmt): Remove assert.
99         (vect_get_vector_types_for_stmt): Move down check for
100         existing vector stmt after we've determined a scalar type.
101         Pass down the used scalar type to vect_get_smallest_scalar_type.
102         * tree-vect-generic.c (expand_vector_condition): Use
103         the type of the LHS.
104         (expand_vector_scalar_condition): Likewise.
105         (expand_vector_operations_1): Likewise.
106         * tree-vect-patterns.c (vect_widened_op_tree): Likewise.
107         (vect_recog_dot_prod_pattern): Likewise.
108         (vect_recog_sad_pattern): Likewise.
109         (vect_recog_widen_op_pattern): Likewise.
110         (vect_recog_widen_sum_pattern): Likewise.
111         (vect_recog_mixed_size_cond_pattern): Likewise.
112
113 2021-07-16  Jan Hubicka  <hubicka@ucw.cz>
114
115         * ipa-modref.c (struct escape_entry): Use eaf_fleags_t.
116         (dump_eaf_flags): Dump EAF_NOT_RETURNED
117         (eaf_flags_useful_p): Use eaf_fleags_t; handle const functions
118         and EAF_NOT_RETURNED.
119         (modref_summary::useful_p): Likewise.
120         (modref_summary_lto::useful_p): Likewise.
121         (struct) modref_summary_lto: Use eaf_fleags_t.
122         (deref_flags): Handle EAF_NOT_RETURNED.
123         (struct escape_point): Use min_flags.
124         (modref_lattice::init): Add EAF_NOT_RETURNED.
125         (merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions
126         (analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return;
127         handle call flags.
128         (analyze_parms): Also analyze const functions; update conition on
129         flags usefulness.
130         (modref_write): Update streaming.
131         (read_section): Update streaming.
132         (remap_arg_flags): Use eaf_flags_t.
133         (modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED.
134         * ipa-modref.h: (eaf_flags_t): New typedef.
135         (struct modref_summary): Use eaf_flags_t.
136         * tree-core.h (EAF_NOT_RETURNED): New constant.
137
138 2021-07-16  Richard Biener  <rguenther@suse.de>
139
140         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use
141         the type of the LHS.
142         (gimple_assign_nonnegative_warnv_p): Likewise.
143         (gimple_call_nonnegative_warnv_p): Likewise.  Return false
144         if the call has no LHS.
145         * gimple.c (gimple_could_trap_p_1): Use the type of the LHS.
146         * tree-eh.c (stmt_could_throw_1_p): Likewise.
147         * tree-inline.c (insert_init_stmt): Likewise.
148         * tree-ssa-loop-niter.c (get_val_for): Likewise.
149         * tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of
150         the def.
151         * tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a
152         gassign *.  Use the type of the lhs.
153         (vn_nary_op_lookup_stmt): Adjust.
154         (vn_nary_op_insert_stmt): Likewise.
155
156 2021-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>
157
158         * config/s390/predicates.md (bras_sym_operand): Accept all
159         functions in 64-bit mode, use UNSPEC_PLT31.
160         (larl_operand): Use UNSPEC_PLT31.
161         * config/s390/s390.c (s390_loadrelative_operand_p): Likewise.
162         (legitimize_pic_address): Likewise.
163         (s390_emit_tls_call_insn): Mark __tls_get_offset as function,
164         use UNSPEC_PLT31.
165         (s390_delegitimize_address): Use UNSPEC_PLT31.
166         (s390_output_addr_const_extra): Likewise.
167         (print_operand): Add @PLT to TLS calls, handle %K.
168         (s390_function_profiler): Mark __fentry__/_mcount as function,
169         use %K, use UNSPEC_PLT31.
170         (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K.
171         (s390_emit_call): Use UNSPEC_PLT31.
172         (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function.
173         * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT.
174         (*movdi_64): Use %K.
175         (reload_base_64): Likewise.
176         (*sibcall_brc): Likewise.
177         (*sibcall_brcl): Likewise.
178         (*sibcall_value_brc): Likewise.
179         (*sibcall_value_brcl): Likewise.
180         (*bras): Likewise.
181         (*brasl): Likewise.
182         (*bras_r): Likewise.
183         (*brasl_r): Likewise.
184         (*bras_tls): Likewise.
185         (*brasl_tls): Likewise.
186         (main_base_64): Likewise.
187         (reload_base_64): Likewise.
188         (@split_stack_call<mode>): Likewise.
189
190 2021-07-16  Richard Biener  <rguenther@suse.de>
191
192         PR tree-optimization/101467
193         * tree-vect-stmts.c (vect_gen_while): Properly guard
194         make_temp_ssa_name usage.
195
196 2021-07-16  Cooper Qu  <cooper.qu@linux.alibaba.com>
197
198         * config.gcc: Don't use forked print-sysroot-suffix.sh and
199         t-sysroot-suffix for C-SKY.
200         * config/csky/print-sysroot-suffix.sh: Delete.
201         * config/csky/t-csky-linux: Delete.
202         * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES
203         instead of CSKY_MULTILIB_DIRNAMES.
204
205 2021-07-16  Richard Biener  <rguenther@suse.de>
206
207         * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign
208         conversion issues with the partial reduction of the reused
209         vector accumulator.
210
211 2021-07-16  Richard Biener  <rguenther@suse.de>
212
213         * config/i386/i386-options.c (ix86_option_override_internal): Set
214         param_vect_partial_vector_usage to zero if not set.
215
216 2021-07-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
217
218         PR target/101346
219         * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode.
220         (VALID_INT_MODE_P): Add SDmode and DDmode.
221         Add TDmode for TARGET_64BIT.
222         (VALID_DFP_MODE_P): Remove.
223         * config/i386/i386.c (ix86_hard_regno_mode_ok):
224         Do not use VALID_DFP_MODE_P.
225
226 2021-07-15  Andrew MacLeod  <amacleod@redhat.com>
227
228         * gimple-range-fold.cc (adjust_pointer_diff_expr): Use
229         gimple_range_type.
230         (fold_using_range::fold_stmt): Ditto.
231         (fold_using_range::range_of_range_op): Ditto.
232         (fold_using_range::range_of_phi): Ditto.
233         (fold_using_range::range_of_call): Ditto.
234         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
235         (fold_using_range::range_of_builtin_call): Ditto.
236         (fold_using_range::range_of_cond_expr): Ditto.
237         * gimple-range-fold.h (gimple_range_type): New.
238
239 2021-07-15  Martin Sebor  <msebor@redhat.com>
240
241         PR middle-end/97027
242         * tree-ssa-strlen.c (handle_assign): New function.
243         (maybe_warn_overflow): Add argument.
244         (nonzero_bytes_for_type): New function.
245         (count_nonzero_bytes): Handle more tree types.  Call
246         nonzero_bytes_for_tye.
247         (count_nonzero_bytes): Handle types.
248         (handle_store): Handle stores from function calls.
249         (strlen_check_and_optimize_call): Move code to handle_assign.  Call
250         it for assignments from function calls.
251
252 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
253
254         PR analyzer/95006
255         PR analyzer/94713
256         PR analyzer/94714
257         * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value.
258
259 2021-07-15  David Malcolm  <dmalcolm@redhat.com>
260
261         * doc/invoke.texi (-fdump-analyzer-exploded-paths): New.
262
263 2021-07-15  Martin Sebor  <msebor@redhat.com>
264
265         PR c/101289
266         PR c/97548
267         * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME.
268         (operand_compare::verify_hash_value): Same.
269         * tree-core.h (OEP_DECL_NAME): New.
270
271 2021-07-15  Martin Jambor  <mjambor@suse.cz>
272
273         * profile-count.h (profile_count::value): Change the return type to
274         uint64_t.
275         * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print
276         statement.
277         * tree-cfg.c (dump_function_to_file): Likewise.
278
279 2021-07-15  Bill Schmidt  <wschmidt@linux.ibm.com>
280
281         PR target/101129
282         * config/rs6000/rs6000-p8swap.c (has_part_mult): New.
283         (rs6000_analyze_swaps): Insns containing a subreg of a mult are
284         not swappable.
285
286 2021-07-15  Richard Biener  <rguenther@suse.de>
287
288         * tree-vectorizer.h (vect_gen_while): Match up with
289         vect_gen_while_not.
290         * tree-vect-stmts.c (vect_gen_while): Adjust API to that
291         of vect_gen_while_not.
292         (vect_gen_while_not): Adjust.
293         * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise.
294
295 2021-07-15  Aldy Hernandez  <aldyh@redhat.com>
296
297         * gimple-range-cache.cc (non_null_ref::adjust_range): New.
298         (ranger_cache::range_of_def): Call adjust_range.
299         (ranger_cache::entry_range): Same.
300         * gimple-range-cache.h (non_null_ref::adjust_range): New.
301         * gimple-range.cc (gimple_ranger::range_of_expr): Call
302         adjust_range.
303         (gimple_ranger::range_on_entry): Same.
304
305 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
306
307         Revert:
308         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
309
310         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
311
312 2021-07-15  Tamar Christina  <tamar.christina@arm.com>
313
314         Revert:
315         2021-07-14  Tamar Christina  <tamar.christina@arm.com>
316
317         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
318         (sdot_prod, udot_prod): ...These.
319         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
320         (aarch64_<sur>dot<vsi2qi>): Rename to...
321         (<sur>dot_prod<vsi2qi>): ...This.
322         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
323         Update builtins.
324
325 2021-07-15  Jakub Jelinek  <jakub@redhat.com>
326
327         PR middle-end/101437
328         * gimplify.c (gimplify_expr): Throw away volatile reads from empty
329         types even if they have non-BLKmode TYPE_MODE.
330
331 2021-07-15  Richard Biener  <rguenther@suse.de>
332
333         PR driver/101383
334         * gcc.c (process_command): Process -gtoggle like process_options
335         would after parsing options.
336
337 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
338
339         * cfgexpand.c (expand_asm_loc): Adjust.
340         (expand_asm_stmt): Likewise.
341         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise.
342         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
343         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
344         * config/avr/avr.c (avr_md_asm_adjust): Likewise.
345         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
346         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
347         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
348         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
349         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
350         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
351         * config/s390/s390.c (s390_md_asm_adjust): Likewise.
352         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
353         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
354         * doc/tm.texi: Regenerate.
355         * target.def: Add location argument to md_asm_adjust.
356
357 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
358
359         * tree-diagnostic.c (diagnostic_report_current_function): Use the
360         diagnostic's location, not input_location.
361
362 2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>
363
364         * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to
365         diagnostics.
366         (expand_asm_stmt): Likewise.
367
368 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
369
370         * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower
371         addressed memory rtx, if any.
372         (rs6000_split_multireg_move): Fix code formatting.
373         Handle MMA build built-ins with operands in adjacent memory locations.
374
375 2021-07-14  Peter Bergner  <bergner@linux.ibm.com>
376
377         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later
378         in the file.
379
380 2021-07-14  Jason Merrill  <jason@redhat.com>
381
382         * sel-sched-ir.h (get_all_loop_exits): Use auto_vec.
383
384 2021-07-14  Jason Merrill  <jason@redhat.com>
385
386         * doc/invoke.texi: -fdelete-dead-exceptions is on by default for
387         C++.
388
389 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
390
391         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
392         Remove erroneous line.
393
394 2021-07-14  Andrew MacLeod  <amacleod@redhat.com>
395
396         * params.opt (param_evrp_mode): Change default.
397
398 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
399
400         * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
401         (sdot_prod, udot_prod): ...These.
402         * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
403         (aarch64_<sur>dot<vsi2qi>): Rename to...
404         (<sur>dot_prod<vsi2qi>): ...This.
405         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
406         Update builtins.
407
408 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
409
410         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
411
412 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
413
414         * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document.
415
416 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
417
418         * config/arm/neon.md (usdot_prod<vsi2qi>): New.
419
420 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
421
422         * config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to...
423         (usdot_prod<vsi2qi>): ... This.
424         * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to...
425         (usdot_prod): ...This.
426         * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise.
427         * config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>):
428         Rename to...
429         (@<sur>dot_prod<vsi2qi>): ...This.
430         * config/aarch64/aarch64-sve-builtins-base.cc
431         (svusdot_impl::expand): Use it.
432
433 2021-07-14  Tamar Christina  <tamar.christina@arm.com>
434
435         * optabs.def (usdot_prod_optab): New.
436         * doc/md.texi: Document it and clarify other dot prod optabs.
437         * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign.
438         * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab.
439         * optabs.c (expand_widen_pattern_expr): Likewise.
440         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
441         * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind.
442         * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional
443         optab subtype.
444         (vect_widened_op_tree): Optionally ignore
445         mismatch types.
446         (vect_recog_dot_prod_pattern): Support usdot_prod_optab.
447
448 2021-07-14  H.J. Lu  <hjl.tools@gmail.com>
449
450         PR target/101395
451         * config/i386/driver-i386.c (host_detect_local_cpu): Check
452         "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen.
453         Enable UINTR only for 64-bit codegen.
454         * config/i386/i386-options.c
455         (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not
456         in 64-bit mode.
457         * config/i386/i386.h (ARCH_ARG): New.
458         (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and
459         "[arch|tune] 64" for 64-bit codegen.
460
461 2021-07-14  Richard Biener  <rguenther@suse.de>
462
463         PR tree-optimization/101445
464         * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment
465         of the IV in the correct direction for negative stride
466         accesses.
467
468 2021-07-14  Jakub Jelinek  <jakub@redhat.com>
469
470         PR go/101407
471         * godump.c (godump_str_hash): New type.
472         (godump_container::pot_dummy_types): Use string_hash instead of
473         ptr_hash in the hash_set.
474
475 2021-07-14  Richard Biener  <rguenther@suse.de>
476
477         * tree-vect-loop.c (vect_find_reusable_accumulator): Handle
478         vector types where the old vector type has a multiple of
479         the new vector type elements.
480         (vect_create_partial_epilog): New function, split out from...
481         (vect_create_epilog_for_reduction): ... here.
482         (vect_transform_cycle_phi): Reduce the re-used accumulator
483         to the new vector type.
484
485 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
486
487         * tree-ssa-alias.c (attr_fnspec::verify): Fix index in
488         non-'t'-sized arg check.
489
490 2021-07-14  Alexandre Oliva  <oliva@adacore.com>
491
492         * tree-cfg.c (cleanup_dead_labels_eh): Update
493         post_landing_pad label upon change of landing pad block's
494         primary label.
495         (cleanup_dead_labels): Check that a removed label is not that
496         of a landing pad.
497
498 2021-07-13  Jonathan Wright  <jonathan.wright@arm.com>
499
500         * combine.c (combine_simplify_rtx): Add vec_select -> subreg
501         simplification.
502         * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64):
503         Add Neon to general purpose register case for zero-extend
504         pattern.
505         * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r
506         case to prevent some cases opting to go through memory.
507         * cse.c (fold_rtx): Add vec_select -> subreg simplification.
508         * rtl.c (rtvec_series_p): Define predicate to determine
509         whether a vector contains a linear series of integers.
510         * rtl.h (rtvec_series_p): Define.
511         * rtlanal.c (vec_series_lowpart_p): Define predicate to
512         determine if a vector selection is equivalent to the low part
513         of the vector.
514         * rtlanal.h (vec_series_lowpart_p): Define.
515         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
516         Add vec_select -> subreg simplification.
517
518 2021-07-13  Paul A. Clarke  <pc@us.ibm.com>
519
520         * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128,
521         _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros,
522         _mm_test_mix_ones_zeros): New.
523
524 2021-07-13  Roger Sayle  <roger@nextmovesoftware.com>
525             Richard Biener  <rguenther@suse.de>
526
527         * gimple.c (gimple_could_trap_p_1):  Make S argument a
528         "const gimple*".  Preserve constness in call to
529         gimple_asm_volatile_p.
530         (gimple_could_trap_p): Make S argument a "const gimple*".
531         * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p):
532         Update function prototypes.
533
534 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
535
536         * tree-vectorizer.h (vect_reusable_accumulator): New structure.
537         (_loop_vec_info::main_loop_edge): New field.
538         (_loop_vec_info::skip_main_loop_edge): Likewise.
539         (_loop_vec_info::skip_this_loop_edge): Likewise.
540         (_loop_vec_info::reusable_accumulators): Likewise.
541         (_stmt_vec_info::reduc_scalar_results): Likewise.
542         (_stmt_vec_info::reused_accumulator): Likewise.
543         (vect_get_main_loop_result): Declare.
544         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
545         reduc_scalar_inputs.
546         (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs.
547         * tree-vect-loop-manip.c (vect_get_main_loop_result): New function.
548         (vect_do_peeling): Fill an epilogue loop's main_loop_edge,
549         skip_main_loop_edge and skip_this_loop_edge fields.
550         * tree-vect-loop.c (INCLUDE_ALGORITHM): Define.
551         (vect_emit_reduction_init_stmts): New function.
552         (get_initial_def_for_reduction): Use it.
553         (get_initial_defs_for_reduction): Likewise.  Change the vinfo
554         parameter to a loop_vec_info.
555         (vect_create_epilog_for_reduction): Store the scalar results
556         in the reduc_info.  If an epilogue loop is reusing an accumulator
557         from the main loop, and if the epilogue loop can also be skipped,
558         try to place the reduction code in the join block.  Record
559         accumulators that could potentially be reused by epilogue loops.
560         (vect_transform_cycle_phi): When vectorizing epilogue loops,
561         try to reuse accumulators from the main loop.  Record the initial
562         value in reduc_info for non-SLP reductions too.
563
564 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
565
566         * tree-vect-loop.c (get_initial_def_for_reduction): Remove
567         adjustment handling.  Take the neutral value as an argument,
568         in place of the code argument.
569         (vect_transform_cycle_phi): Update accordingly.  Handle the
570         initial values of cond reductions separately from code reductions.
571         Choose the adjustment here rather than in
572         get_initial_def_for_reduction.  Sink the splat of vec_initial_def.
573
574 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
575
576         * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with...
577         (neutral_op_for_reduction): ...this, providing a more general
578         interface.
579         (vect_create_epilog_for_reduction): Update accordingly.
580         (vectorizable_reduction): Likewise.
581         (vect_transform_cycle_phi): Likewise.
582
583 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
584
585         * tree-vect-loop.c (get_initial_def_for_reduction): Take the
586         reduc_info instead of the original stmt_vec_info.
587         (vect_transform_cycle_phi): Update accordingly.
588
589 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
590
591         * tree-vect-loop.c (get_initial_defs_for_reduction): Take the
592         reduc_info as an additional parameter.
593         (vect_transform_cycle_phi): Update accordingly.
594
595 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
596
597         * tree-vectorizer.h: Include tree-ssa-operands.h.
598         (vect_phi_initial_value): New function.
599         * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it.
600         (get_initial_defs_for_reduction, info_for_reduction): Likewise.
601         (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise.
602         (vect_transform_cycle_phi, vectorizable_induction): Likewise.
603
604 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
605
606         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
607         the phi results to vectype after creating them.  Remove later
608         conversion code that thus becomes redundant.
609
610 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
611
612         * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace
613         the new_phis vector with a reduc_inputs vector.  Combine handling
614         of reduction chains and ncopies > 1.
615
616 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
617
618         * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate
619         scalar_results to group_size elements after reducing down from
620         N*group_size elements.  Construct an array_slice of the live-out
621         stmts and assert that there is one stmt per scalar result.
622
623 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
624
625         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
626         nested_in_vect_loop and use double_reduc everywhere.  Remove dead
627         assignment to "loop".
628
629 2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>
630
631         * internal-fn.c (vectorized_internal_fn_supported_p): Handle
632         vector types first.  For scalar types, consider both the preferred
633         vector mode and the alternative vector modes.
634         * optabs-query.c (can_vec_mask_load_store_p): Use the same
635         structure as above, in particular using related_vector_mode
636         for modes provided by autovectorize_vector_modes.
637
638 2021-07-13  Jakub Jelinek  <jakub@redhat.com>
639             Richard Biener  <rguenther@suse.de>
640
641         PR tree-optimization/101419
642         * tree-pass.h (PROP_objsz): Define.
643         (make_pass_early_object_sizes): Declare.
644         * passes.def (pass_all_early_optimizations): Rename pass_object_sizes
645         there to pass_early_object_sizes, drop parameter.
646         (pass_all_optimizations): Move pass_object_sizes right after pass_ccp,
647         drop parameter, move pass_post_ipa_warn right after that.
648         * tree-object-size.c (pass_object_sizes::execute): Rename to...
649         (object_sizes_execute): ... this.  Add insert_min_max_p argument.
650         (pass_data_object_sizes): Move after object_sizes_execute.
651         (pass_object_sizes): Likewise.  In execute method call
652         object_sizes_execute, drop set_pass_param method and insert_min_max_p
653         non-static data member and its initializer in the ctor.
654         (pass_data_early_object_sizes, pass_early_object_sizes,
655         make_pass_early_object_sizes): New.
656         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use
657         (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining.
658
659 2021-07-13  Kito Cheng  <kito.cheng@sifive.com>
660
661         PR target/101275
662         * config/riscv/constraints.md ("S"): Update description and remove
663         @internal.
664         * doc/md.texi (Machine Constraints): Document the 'S' constraints
665         for RISC-V.
666
667 2021-07-13  Richard Biener  <rguenther@suse.de>
668
669         Revert:
670         2021-07-12  Richard Biener  <rguenther@suse.de>
671
672         * tree-vect-slp.c (vect_slp_region): Show the number of
673         SLP graph entries in the optimization message.
674
675 2021-07-13  Michael Meissner  <meissner@linux.ibm.com>
676
677         * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable
678         value to to long.
679         * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change
680         return type to long.
681         * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return
682         type to long.
683
684 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
685
686         * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call):
687         Query relation between the 2 operands and use it.
688
689 2021-07-12  Sergei Trofimovich  <siarheit@google.com>
690
691         * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo.
692
693 2021-07-12  UroÅ¡ Bizjak  <ubizjak@gmail.com>
694
695         PR target/101424
696         * config/i386/predicates.md (vec_setm_sse41_operand):
697         Rename from vec_setm_operand.
698         (vec_setm_avx2_operand): New predicate.
699         * config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator.
700         Use vec_setm_sse41_operand as operand 2 predicate.
701         (vec_set<V_256_512:mode): New expander.
702         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand
703         as operand 2 predicate.
704
705 2021-07-12  Andrew MacLeod  <amacleod@redhat.com>
706
707         PR tree-optimization/101335
708         * range-op.cc (operator_cast::lhs_op1_relation): Delete.
709
710 2021-07-12  Andrew Pinski  <apinski@marvell.com>
711
712         * tree-ssa-phiopt.c (match_simplify_replacement): Move
713         insert of the sequence before the movement of the
714         statement. Check if to see if the statement is used
715         outside of the original phi to see if we should move it.
716
717 2021-07-12  Richard Biener  <rguenther@suse.de>
718
719         * dump-context.h (debug_dump_context::debug_dump_context):
720         Add FILE * parameter defaulted to stderr.
721         * dumpfile.c (debug_dump_context::debug_dump_context): Adjust.
722         * tree-vect-slp.c (dot_slp_tree): New functions.
723
724 2021-07-12  Richard Biener  <rguenther@suse.de>
725
726         PR tree-optimization/101373
727         * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping
728         references when the BB may not return.
729         (compute_avail): Pass in the function we're working on and
730         replace cfun references with it.  Externally throwing
731         const calls also possibly terminate the function.
732         (pass_pre::execute): Pass down the function we're working on.
733         * gcse.c (compute_hash_table_work): Externally throwing
734         const/pure calls also need record_last_mem_set_info.
735         * postreload-gcse.c (record_opr_changes): Looping or externally
736         throwing const/pure calls also need record_last_mem_set_info.
737
738 2021-07-12  UroÅ¡ Bizjak  <ubizjak@gmail.com>
739
740         * recog.c (memory_address_addr_space_p): Change the type to bool.
741         Return true/false instead of 1/0.
742         (offsettable_memref_p): Ditto.
743         (offsettable_nonstrict_memref_p): Ditto.
744         (offsettable_address_addr_space_p): Ditto.
745         Change the type of addressp indirect function to bool.
746         * recog.h (memory_address_addr_space_p): Change the type to bool.
747         (strict_memory_address_addr_space_p): Ditto.
748         (offsettable_memref_p): Ditto.
749         (offsettable_nonstrict_memref_p): Ditto.
750         (offsettable_address_addr_space_p): Ditto.
751         * reload.c (maybe_memory_address_addr_space_p): Ditto.
752         (strict_memory_address_addr_space_p): Change the type to bool.
753         Return true/false instead of 1/0.
754         (maybe_memory_address_addr_space_p): Change the type to bool.
755
756 2021-07-12  Richard Biener  <rguenther@suse.de>
757
758         * tree-vect-slp.c (vect_slp_region): Show the number of
759         SLP graph entries in the optimization message.
760
761 2021-07-12  Richard Biener  <rguenther@suse.de>
762
763         PR tree-optimization/101394
764         * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting
765         copies from abnormals for a full redundancy.
766
767 2021-07-12  Richard Biener  <rguenther@suse.de>
768
769         PR middle-end/101423
770         * gimple.c (gimple_could_trap_p_1): Internal function calls
771         do not trap.
772         * tree-eh.c (tree_could_trap_p): Likewise.
773
774 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
775
776         PR target/66791
777         * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with
778         __a * __b.
779         (vmulq_n_u32): Likewise.
780         (vmul_n_f32): Gate __a * __b on __FAST_MATH__.
781         (vmulq_n_f32): Likewise.
782         (vmul_n_f16): Likewise.
783         (vmulq_n_f16): Likewise.
784
785 2021-07-12  Martin Liska  <mliska@suse.cz>
786
787         PR sanitizer/101425
788         * gcc.c (check_offload_target_name): Call
789           candidates_list_and_hint only if we have a candidate.
790
791 2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
792
793         PR target/98435
794         * config/arm/neon.md (vec_init): Move to ...
795         * config/arm/vec-common.md (vec_init): ... here.
796         Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE.
797
798 2021-07-12  Roger Sayle  <roger@nextmovesoftware.com>
799
800         PR tree-optimization/101403
801         * match.pd ((T)bswap(X)>>C): Correctly handle cases where
802         signedness of the shift is not the same as the signedness of
803         the type extension.
804
805 2021-07-09  Roger Sayle  <roger@nextmovesoftware.com>
806             UroÅ¡ Bizjak  <ubizjak@gmail.com>
807
808         * config/i386/i386.md (*divmodsi4_const): Optimize SImode
809         divmod of a constant numerator with new define_insn_and_split.
810
811 2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>
812
813         PR target/100152
814         * config/i386/i386-expand.c (ix86_expand_call): If a call is
815         to a non-local-binding, or local but to a public symbol, then
816         assume that it might be indirected via the lazy symbol binder.
817         Mark R10 and R10 as clobbered in that case.
818
819 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
820
821         PR target/101377
822         * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in
823         the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined
824         and HAVE_LD_BROKEN_PE_DWARF5 is defined.
825
826 2021-07-09  UroÅ¡ Bizjak  <ubizjak@gmail.com>
827
828         * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the
829         log2 range of operands[3] to [1,31].
830         (*udivmodsi4_pow2_zext_2): Ditto.  Correct insn RTX pattern.
831
832 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
833
834         * doc/md.texi: Don't split @smallexample in multiple @groups.
835
836 2021-07-09  Sergei Trofimovich  <siarheit@google.com>
837
838         * doc/md.texi: Add missing 'see' word.
839
840 2021-07-09  Andrew Pinski  <apinski@marvell.com>
841
842         * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments
843         to take sequence and gimple_match_op.  Accept the case where
844         op is a SSA_NAME and one statement in the sequence.
845         Also allow constants.
846         (gimple_simplify_phiopt): Always pass a sequence to resimplify.
847         Update call to phiopt_early_allow.  Discard the sequence if not
848         used.
849
850 2021-07-09  Xi Ruoyao  <xry111@mengyan1223.wang>
851
852         PR target/100760
853         PR target/100761
854         PR target/100762
855         * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P
856         instead of ISA_HAS_MSA.
857         (mips_expand_vec_unpack): Likewise.
858         (mips_expand_vector_init): Likewise.
859
860 2021-07-09  Kewen Lin  <linkw@linux.ibm.com>
861
862         * config/rs6000/vsx.md (mods_<mode>): Rename to...
863         (mod<mode>3): ... this.
864         (modu_<mode>): Rename to...
865         (umod<mode>3): ... this.
866         * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI,
867         MODU_V4SI): Adjust.
868
869 2021-07-08  Jeff Law  <jeffreyalaw@gmail.com>
870
871         * config/h8300/shiftrotate.md (variable shifts): Expose condition
872         code handling for the test before the loop.
873
874 2021-07-08  Martin Jambor  <mjambor@suse.cz>
875
876         PR ipa/101066
877         * ipa-sra.c (class isra_call_summary): New member
878         m_before_any_store, initialize it in the constructor.
879         (isra_call_summary::dump): Dump the new field.
880         (ipa_sra_call_summaries::duplicate): Copy it.
881         (process_scan_results): Set it.
882         (isra_write_edge_summary): Stream it.
883         (isra_read_edge_summary): Likewise.
884         (param_splitting_across_edge): Only override
885         safe_to_import_accesses if m_before_any_store is set.
886
887 2021-07-08  Martin Sebor  <msebor@redhat.com>
888
889         PR bootstrap/101374
890         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
891         Use Object Size Type 0 instead of 1.
892
893 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
894
895         * tree-vect-loop.c (vectorizable_reduction): Remove always-true
896         if condition.
897
898 2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>
899
900         * match.pd: Simplify an extend-operate-truncate sequence involving
901         a POLY_INT_CST.
902
903 2021-07-08  Roger Sayle  <roger@nextmovesoftware.com>
904             Richard Biener  <rguenther@suse.de>
905
906         PR tree-optimization/40210
907         * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as
908         (x>>C3)&C2 when possible.  Simplify bswap(x)>>C1 as ((T)x)>>C2
909         when possible.  Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255.
910
911 2021-07-08  UroÅ¡ Bizjak  <ubizjak@gmail.com>
912
913         PR target/100637
914         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
915         Handle V4QI mode.
916         * config/i386/mmx.md (V_32): New mode iterator.
917         (mov<V_32:mode>): Use V_32 mode iterator.
918         (*mov<V_32:mode>_internal): Ditto.
919         (*push<V_32:mode>2_rex64): Ditto.
920         (*push<V_32:mode>2): Ditto.
921         (movmisalign<V_32:mode>): Ditto.
922         (mmx_<any_shiftrt:insn>v1si3): New insn pattern.
923         (sse4_1_<any_extend:code>v2qiv2hi2): Ditto.
924         (vec_unpacks_lo_v4qi): New expander.
925         (vec_unpacks_hi_v4qi): Ditto.
926         (vec_unpacku_lo_v4qi): Ditto.
927         (vec_unpacku_hi_v4qi): Ditto.
928         * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode.
929         (VALID_INT_MODE_P): Ditto.
930
931 2021-07-08  Michael Meissner  <meissner@linux.ibm.com>
932
933         PR target/100809
934         * config/rs6000/rs6000.md (udivti3): New insn.
935         (divti3): New insn.
936         (umodti3): New insn.
937         (modti3): New insn.
938
939 2021-07-07  Martin Sebor  <msebor@redhat.com>
940
941         PR tree-optimization/100137
942         PR tree-optimization/99121
943         PR tree-optimization/97027
944         * builtins.c (access_ref::access_ref): Also set offmax.
945         (access_ref::offset_in_range): Define new function.
946         (access_ref::add_offset): Set offmax.
947         (access_ref::inform_access): Handle access_none.
948         (handle_mem_ref): Clear ostype.
949         (compute_objsize_r): Handle ASSERT_EXPR.
950         * builtins.h (struct access_ref): Add offmax member.
951         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use
952         compute_objsize() and simplify.
953
954 2021-07-07  Peter Bergner  <bergner@linux.ibm.com>
955
956         * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP
957         and VSX_BUILTIN_STXVP.
958
959 2021-07-07  Martin Sebor  <msebor@redhat.com>
960
961         PR target/101363
962         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove
963         a stray %K from error_at() missed in r12-2088.
964
965 2021-07-07  Richard Biener  <rguenther@suse.de>
966
967         PR tree-optimization/99728
968         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record
969         aggregate copies.
970         (mem_refs_may_alias_p): Add assert we handled aggregate
971         copies elsewhere.
972         (sm_seq_valid_bb): Give up when running into aggregate copies.
973         (ref_indep_loop_p): Handle aggregate copies as never
974         being invariant themselves but allow other refs to be
975         disambiguated against them.
976         (can_sm_ref_p): Do not try to apply store-motion to aggregate
977         copies.
978
979 2021-07-06  Indu Bhagat  <indu.bhagat@oracle.com>
980
981         PR debug/101283
982         * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get
983         number of bits.
984
985 2021-07-06  Martin Sebor  <msebor@redhat.com>
986
987         * gimple-pretty-print.c (percent_G_format): Remove.
988         * tree-diagnostic.c (default_tree_printer): Remove calls.
989         * tree-pretty-print.c (percent_K_format): Remove.
990         * tree-pretty-print.h (percent_K_format): Remove.
991
992 2021-07-06  Martin Sebor  <msebor@redhat.com>
993
994         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
995         Remove %K and use error_at.
996         (aarch64_expand_fcmla_builtin): Same.
997         (aarch64_expand_builtin_tme): Same.
998         (aarch64_expand_builtin_memtag): Same.
999         * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same.
1000         (arm_expand_builtin): Same.
1001         * config/arm/arm.c (bounds_check): Same.
1002
1003 2021-07-06  Martin Sebor  <msebor@redhat.com>
1004
1005         * builtins.c (warn_string_no_nul): Remove %G.
1006         (maybe_warn_for_bound): Same.
1007         (warn_for_access): Same.
1008         (check_access): Same.
1009         (check_strncat_sizes): Same.
1010         (expand_builtin_strncat): Same.
1011         (expand_builtin_strncmp): Same.
1012         (expand_builtin): Same.
1013         (expand_builtin_object_size): Same.
1014         (warn_dealloc_offset): Same.
1015         (maybe_emit_free_warning): Same.
1016         * calls.c (maybe_warn_alloc_args_overflow): Same.
1017         (maybe_warn_nonstring_arg): Same.
1018         (maybe_warn_rdwr_sizes): Same.
1019         * expr.c (expand_expr_real_1): Remove %K.
1020         * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G.
1021         (gimple_fold_builtin_strncat): Same.
1022         * gimple-ssa-sprintf.c (format_directive): Same.
1023         (handle_printf_call): Same.
1024         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same.
1025         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
1026         (maybe_diag_access_bounds): Same.  Call gimple_location.
1027         (check_bounds_or_overlap): Same.
1028         * trans-mem.c (ipa_tm_scan_irr_block): Remove %K.  Simplify.
1029         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G.
1030         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
1031         (maybe_diag_stxncpy_trunc): Same.
1032         (handle_builtin_stxncpy_strncat): Same.
1033         (maybe_warn_pointless_strcmp): Same.
1034         * tree-ssa-uninit.c (maybe_warn_operand): Same.
1035
1036 2021-07-06  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1037
1038         PR target/97194
1039         * config/i386/predicates.md (vec_setm_operand): Enable
1040         register_operand for TARGET_SSE4_1.
1041         * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand
1042         as operand 2 predicate.  Call ix86_expand_vector_set_var
1043         for non-constant index operand.
1044         (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate.
1045         Call ix86_expand_vector_set_var for non-constant index operand.
1046
1047 2021-07-06  Jeff Law  <jeffreyalaw@gmail.com>
1048
1049         * config/h8300/jumpcall.md (*branch): When possible, generate
1050         the comparison in CCZN mode.
1051         * config/h8300/predicates.md (simple_memory_operand): Reject all
1052         auto-increment addressing modes.
1053
1054 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
1055
1056         PR bootstrap/100246
1057         * config/i386/i386.h (struct stringop_algs): Define a CTOR for
1058         this type.
1059
1060 2021-07-06  Richard Biener  <rguenther@suse.de>
1061
1062         * doc/md.texi (vec_fmaddsub<mode>4): Document.
1063         (vec_fmsubadd<mode>4): Likewise.
1064         * optabs.def (vec_fmaddsub$a4): Add.
1065         (vec_fmsubadd$a4): Likewise.
1066         * internal-fn.def (IFN_VEC_FMADDSUB): Add.
1067         (IFN_VEC_FMSUBADD): Likewise.
1068         * tree-vect-slp-patterns.c (addsub_pattern::recognize):
1069         Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD.
1070         (addsub_pattern::build): Likewise.
1071         * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB
1072         and CFN_VEC_FMSUBADD are not transparent for permutes.
1073         * config/i386/sse.md (vec_fmaddsub<mode>4): New expander.
1074         (vec_fmsubadd<mode>4): Likewise.
1075
1076 2021-07-06  Richard Biener  <rguenther@suse.de>
1077
1078         * doc/invoke.texi (fmove-loop-stores): Document.
1079         * common.opt (fmove-loop-stores): New option.
1080         * opts.c (default_options_table): Enable -fmove-loop-stores
1081         at -O1 but not -Og.
1082         * tree-ssa-loop-im.c (pass_lim::execute): Pass
1083         flag_move_loop_stores instead of true to
1084         loop_invariant_motion_in_fun.
1085
1086 2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>
1087
1088         * doc/install.texi: Document --with-dsymutil.
1089
1090 2021-07-06  Andrew Pinski  <apinski@marvell.com>
1091
1092         PR tree-optimization/101256
1093         * dbgcnt.def (phiopt_edge_range): New counter.
1094         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
1095         Check to make sure the new name is defined in the same
1096         bb as the conditional before duplicating range info.
1097         Also add debug counter.
1098
1099 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
1100
1101         PR rtl-optimization/100328
1102         * config/i386/i386-options.c (ix86_option_override_internal):
1103         Set param_ira_consider_dup_in_all_alts to 0.
1104
1105 2021-07-06  Kewen Lin  <linkw@linux.ibm.com>
1106
1107         PR rtl-optimization/100328
1108         * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new
1109         parameter.
1110         * ira.c (ira_get_dup_out_num): Adjust as parameter
1111         param_ira_consider_dup_in_all_alts.
1112         * params.opt (ira-consider-dup-in-all-alts): New.
1113         * ira-conflicts.c (process_regs_for_copy): Add one parameter
1114         single_input_op_has_cstr_p.
1115         (get_freq_for_shuffle_copy): New function.
1116         (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p.
1117         * ira-int.h (ira_get_dup_out_num): Add one bool parameter.
1118
1119 2021-07-05  Jeff Law  <jeffreyalaw@gmail.com>
1120
1121         * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to
1122         generate condition code aware RTL directly.
1123
1124 2021-07-05  Andrew Pinski  <apinski@marvell.com>
1125
1126         PR tree-optimization/101039
1127         * match.pd (A CMP 0 ? A : -A): New patterns.
1128         * tree-ssa-phiopt.c (abs_replacement): Delete function.
1129         (tree_ssa_phiopt_worker): Don't call abs_replacement.
1130         Update comment about abs_replacement.
1131
1132 2021-07-05  Andrew Pinski  <apinski@marvell.com>
1133
1134         * tree-ssa-phiopt.c (gimple_simplify_phiopt):
1135         If "A ? B : C" fails to simplify, try "(!A) ? C : B".
1136
1137 2021-07-05  Andrew Pinski  <apinski@marvell.com>
1138
1139         * tree-ssa-phiopt.c (match_simplify_replacement):
1140         Add early_p argument. Call gimple_simplify_phiopt
1141         instead of gimple_simplify.
1142         (tree_ssa_phiopt_worker): Update call to
1143         match_simplify_replacement and allow unconditionally.
1144         (phiopt_early_allow): New function.
1145         (gimple_simplify_phiopt): New function.
1146
1147 2021-07-05  Andrew Pinski  <apinski@marvell.com>
1148
1149         PR middle-end/101237
1150         * fold-const.c (negate_expr_p): Remove call to element_mode
1151         and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS,
1152         HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS.
1153         (fold_negate_expr_1): Likewise.
1154         (const_unop): Likewise.
1155         (fold_cond_expr_with_comparison): Likewise.
1156         (fold_binary_loc): Likewise.
1157         (fold_ternary_loc): Likewise.
1158         (tree_call_nonnegative_warnv_p): Likewise.
1159         * match.pd (-(A + B) -> (-B) - A): Likewise.
1160
1161 2021-07-05  Iain Sandoe  <iain@sandoe.co.uk>
1162
1163         * configure.ac: Handle --with-dsymutil in the same way as we
1164         do for the assembler and linker.  (DEFAULT_DSYMUTIL): New.
1165         Extract the type and version for the dsymutil configured or
1166         found by the default searches.
1167         * config.in: Regenerated.
1168         * configure: Regenerated.
1169         * collect2.c (do_dsymutil): Handle locating dsymutil in the
1170         same way as for the assembler and  linker.
1171         * config/darwin.h (DSYMUTIL): Delete.
1172         * gcc.c: Report a configured dsymutil correctly.
1173         * exec-tool.in: Allow for dsymutil.
1174
1175 2021-07-05  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1176
1177         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
1178         Handle V4QI and V2HI modes.
1179         (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1.
1180         Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes.
1181         (expand_vec_perm_pshufb): Rewrite to use switch statemets.
1182         Handle 4-byte dual operands with TARGET_XOP and single operands
1183         with TARGET_SSSE3.  Emit mmx_ppermv32 for TARGET_XOP and
1184         mmx_pshufbv4qi3 for TARGET_SSSE3.
1185         (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1.
1186         (expand_vec_perm_interleave2): Allow 4-byte vector modes.
1187         (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3.
1188         (expand_vec_perm_even_odd_1): Handle V4QI mode.
1189         (expand_vec_perm_broadcast_1): Handle V4QI mode.
1190         (ix86_vectorize_vec_perm_const): Handle V4QI mode.
1191         * config/i386/mmx.md (mmx_ppermv32): New insn pattern.
1192         (mmx_pshufbv4qi3): Ditto.
1193         (*mmx_pblendw32): Ditto.
1194         (*mmx_pblendw64): Rename from *mmx_pblendw.
1195         (mmx_punpckhbw_low): New insn_and_split pattern.
1196         (mmx_punpcklbw_low): Ditto.
1197
1198 2021-07-05  Richard Biener  <rguenther@suse.de>
1199
1200         * tree-vect-loop-manip.c (vect_loop_versioning): Do not
1201         set LOOP_C_INFINITE on the vectorized loop.
1202
1203 2021-07-05  Richard Biener  <rguenther@suse.de>
1204
1205         PR middle-end/101291
1206         * cfgloopmanip.c (loop_version): Set the loop copy of the
1207         versioned loop to the new loop.
1208
1209 2021-07-04  Iain Sandoe  <iain@sandoe.co.uk>
1210
1211         PR target/100269
1212         * config.gcc: Ensure that Darwin biarch definitions are
1213         added before i386.h.
1214         * config/i386/darwin.h (TARGET_64BIT): Remove.
1215         (PR80556_WORKAROUND): New.
1216         (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND.
1217         (DARWIN_SUBARCH_SPEC): New.
1218         * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT,
1219         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
1220         (REAL_LIBGCC_SPEC): Remove.
1221         * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT,
1222         TARGET_BI_ARCH, PR80556_WORKAROUND): New.
1223         (REAL_LIBGCC_SPEC): Remove.
1224
1225 2021-07-03  H.J. Lu  <hjl.tools@gmail.com>
1226
1227         PR middle-end/101294
1228         * expr.c (store_constructor): Don't use vec_duplicate on vector.
1229
1230 2021-07-02  Martin Sebor  <msebor@redhat.com>
1231
1232         PR middle-end/98871
1233         PR middle-end/98512
1234         * diagnostic.c (get_any_inlining_info): New.
1235         (update_effective_level_from_pragmas): Handle inlining context.
1236         (diagnostic_enabled): Same.
1237         (diagnostic_report_diagnostic): Same.
1238         * diagnostic.h (struct diagnostic_info): Add ctor.
1239         (struct diagnostic_context): Add new member.
1240         * tree-diagnostic.c (set_inlining_locations): New.
1241         (tree_diagnostics_defaults): Set new callback pointer.
1242
1243 2021-07-02  Peter Bergner  <bergner@linux.ibm.com>
1244
1245         * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
1246         New macros.
1247         (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins.
1248         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand
1249         lxvp and stxvp built-ins.
1250         (mma_init_builtins): Handle lxvp and stxvp built-ins.
1251         (builtin_function_type): Likewise.
1252         * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document.
1253
1254 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1255
1256         * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept
1257         additional argument for the code.
1258         * config/h8300/h8300.c (compute_a_shift_cc): Accept additional
1259         argument for the code.  Just return if the ZN bits are useful or
1260         not rather than the old style CC_* enums.
1261         * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before
1262         more generic shiftqi patterns.
1263         (shifthi_noscratch, shiftsi_noscratch): Similarly.
1264         (shiftqi_noscratch_set_flags): New pattern.
1265         (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise.
1266
1267 2021-07-02  Andrew MacLeod  <amacleod@redhat.com>
1268
1269         PR tree-optimization/101223
1270         * range-op.cc (build_lt): Add -1 for signed values.
1271         (built_gt): Subtract -1 for signed values.
1272
1273 2021-07-02  David Faust  <david.faust@oracle.com>
1274
1275         * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT.
1276         (btf_asm_type): Likewise.
1277
1278 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1279
1280         * config/h8300/h8300-protos.h (output_a_shift): Make first argument
1281         an array of rtx rather than a pointer to rtx.  Add code argument.
1282         (compute_a_shift_length): Similarly.
1283         * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the
1284         shift itself isn't an operand.  Create dummy operand[0] to carry
1285         a mode and pass a suitable rtx code to compute_a_shift_length.
1286         (get_shift_alg): Adjust operand number of clobber in output templates.
1287         (output_a_shift): Make first argument an array of rtx rather than
1288         a pointer to rtx.  Add code argument for the type of shift.
1289         Adjust now that the shift itself is no longer an operand.
1290         (compute_a_shift_length): Similarly.
1291         * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an
1292         iterator rather than nshift_operator.
1293         (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise.
1294         (shiftqi_clobber_flags): Adjust to API changes in output_a_shift
1295         and compute_a_shift_length.
1296         (shiftqi_noscratch_clobber_flags): Likewise.
1297         (shifthi_noscratch_clobber_flags): Likewise.
1298         (shiftsi_noscratch_clobber_flags): Likewise.
1299
1300 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
1301
1302         PR debug/101283
1303         * config/darwin.h (DSYMUTIL_SPEC): Do not try to run
1304         dsymutil for BTF/CTF.
1305
1306 2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>
1307
1308         PR debug/101283
1309         * config/darwin.h (CTF_INFO_SECTION_NAME): Update the
1310         segment to include BTF.
1311         (BTF_INFO_SECTION_NAME): New.
1312
1313 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1314
1315         * config/m32r/m32r-protos.h (call_operand): Adjust return type.
1316         (small_data_operand, memreg_operand, small_insn_p): Likewise.
1317         * config/m32r/m32r.c (call_operand): Adjust return type.
1318         (small_data_operand, memreg_operand): Likewise.
1319
1320 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1321
1322         * config/frv/frv-protos.h  (integer_register_operand): Adjust return
1323         type.
1324         (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise.
1325         (fpr_or_int6_operand, gpr_or_int_operand); Likewise.
1326         (gpr_or_int12_operand, gpr_or_int10_operand); Likewise.
1327         (move_source_operand, move_destination_operand): Likewise.
1328         (condexec_source_operand, condexec_dest_operand): Likewise.
1329         (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise.
1330         (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise.
1331         (fcr_operand, icr_operand, cr_operand, call_operand): Likewise.
1332         (fpr_operand, even_reg_operand, odd_reg_operand): Likewise.
1333         (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise.
1334         (even_fpr_operand, odd_fpr_operand): Likewise.
1335         (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise.
1336         (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise.
1337         (uint4_operand, uint1_operand, int_2word_operand): Likewise
1338         (upper_int16_operand, uint16_operand, symbolic_operand): Likewise.
1339         (relational_operator, float_relational_operator): Likewise.
1340         (ccr_eqne_operator, minmax_operator): Likewise.
1341         (condexec_si_binary_operator, condexec_si_media_operator): Likewise.
1342         (condexec_si_divide_operator, condexec_si_unary_operator): Likewise.
1343         (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise.
1344         (intop_compare_operator, acc_operand, even_acc_operand): Likewise.
1345         (quad_acc_operand, accg_operand): Likewise.
1346
1347 2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>
1348
1349         * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change
1350         return type to a bool.
1351         (nonimmediate_nonstack_operand): Likewise.
1352         (xstormy16_splittable_below100_operand): Likewise.
1353         * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix
1354         return type.
1355         (xstormy16_splittable_below100_operand): Likewise.
1356
1357 2021-07-02  Richard Biener  <rguenther@suse.de>
1358
1359         PR tree-optimization/101293
1360         * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases
1361         with combined offsets.
1362         (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were
1363         combined with the rest of the offset.
1364
1365 2021-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1366
1367         * config/i386/i386.c (asm_preferred_eh_data_format): Always use the
1368         PIC encodings for PE-COFF targets.
1369
1370 2021-07-02  Jakub Jelinek  <jakub@redhat.com>
1371
1372         PR target/101286
1373         * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant):
1374         Return nullptr for TImode inner mode.
1375
1376 2021-07-02  Richard Biener  <rguenther@suse.de>
1377
1378         PR tree-optimization/101280
1379         PR tree-optimization/101173
1380         * gimple-loop-interchange.cc
1381         (tree_loop_interchange::valid_data_dependences): Properly
1382         guard all dependence checks with DDR_REVERSED_P or its
1383         inverse.
1384
1385 2021-07-02  Hongyu Wang  <hongyu.wang@intel.com>
1386
1387         * config/i386/i386-expand.c (ix86_expand_builtin):
1388         Add branch to clear odata when ZF is set for asedecenc_expand
1389         and wideaesdecenc_expand.
1390
1391 2021-07-02  Eugene Rozenfeld  <erozen@microsoft.com>
1392
1393         * config/i386/gcc-auto-profile: regenerate
1394
1395 2021-07-02  liuhongt  <hongtao.liu@intel.com>
1396
1397         * config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to ..
1398         (trunc<mode><pmov_dst_4_lower>2): this.
1399
1400 2021-07-01  David Malcolm  <dmalcolm@redhat.com>
1401
1402         * diagnostic.h (diagnostic_context::m_file_cache): New field.
1403         * input.c (class fcache): Rename to...
1404         (class file_cache_slot): ...this, making most members private and
1405         prefixing fields with "m_".
1406         (file_cache_slot::get_file_path): New accessor.
1407         (file_cache_slot::get_use_count): New accessor.
1408         (file_cache_slot::missing_trailing_newline_p): New accessor.
1409         (file_cache_slot::inc_use_count): New.
1410         (fcache_buffer_size): Move to...
1411         (file_cache_slot::buffer_size): ...here.
1412         (fcache_line_record_size): Move to...
1413         (file_cache_slot::line_record_size): ...here.
1414         (fcache_tab): Delete, in favor of global_dc->m_file_cache.
1415         (fcache_tab_size): Move to file_cache::num_file_slots.
1416         (diagnostic_file_cache_init): Update for move of fcache_tab
1417         to global_dc->m_file_cache.
1418         (diagnostic_file_cache_fini): Likewise.
1419         (lookup_file_in_cache_tab): Convert to...
1420         (file_cache::lookup_file): ...this.
1421         (diagnostics_file_cache_forcibly_evict_file): Update for move of
1422         fcache_tab to global_dc->m_file_cache, moving most of
1423         implementation to...
1424         (file_cache::forcibly_evict_file): ...this new function and...
1425         (file_cache_slot::evict): ...this new function.
1426         (evicted_cache_tab_entry): Convert to...
1427         (file_cache::evicted_cache_tab_entry): ...this.
1428         (add_file_to_cache_tab): Convert to...
1429         (file_cache::add_file): ...this, moving bulk of implementation
1430         to...
1431         (file_cache_slot::create): ..this new function.
1432         (file_cache::file_cache): New.
1433         (file_cache::~file_cache): New.
1434         (lookup_or_add_file_to_cache_tab): Convert to...
1435         (file_cache::lookup_or_add_file): ..this new function.
1436         (fcache::fcache): Rename to...
1437         (file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes
1438         to fields.
1439         (fcache::~fcache): Rename to...
1440         (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes
1441         to fields.
1442         (needs_read): Convert to...
1443         (file_cache_slot::needs_read_p): ...this.
1444         (needs_grow): Convert to...
1445         (file_cache_slot::needs_grow_p): ...this.
1446         (maybe_grow): Convert to...
1447         (file_cache_slot::maybe_grow): ...this.
1448         (read_data): Convert to...
1449         (file_cache_slot::read_data): ...this.
1450         (maybe_read_data): Convert to...
1451         (file_cache_slot::maybe_read_data): ...this.
1452         (get_next_line): Convert to...
1453         (file_cache_slot::get_next_line): ...this.
1454         (goto_next_line): Convert to...
1455         (file_cache_slot::goto_next_line): ...this.
1456         (read_line_num): Convert to...
1457         (file_cache_slot::read_line_num): ...this.
1458         (location_get_source_line): Update for moving of globals to
1459         global_dc->m_file_cache.
1460         (location_missing_trailing_newline): Likewise.
1461         * input.h (class file_cache_slot): New forward decl.
1462         (class file_cache): New.
1463
1464 2021-07-01  Michael Meissner  <meissner@linux.ibm.com>
1465
1466         * config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE
1467         128-bit floating point conditional move support.
1468         (have_compare_and_set_mask): Add IEEE 128-bit floating point
1469         types.
1470         * config/rs6000/rs6000.md (mov<mode>cc, IEEE128 iterator): New insn.
1471         (mov<mode>cc_p10, IEEE128 iterator): New insn.
1472         (mov<mode>cc_invert_p10, IEEE128 iterator): New insn.
1473         (fpmask<mode>, IEEE128 iterator): New insn.
1474         (xxsel<mode>, IEEE128 iterator): New insn.
1475
1476 2021-07-01  Iain Sandoe  <iain@sandoe.co.uk>
1477
1478         PR debug/101283
1479         * config/darwin.h (CTF_INFO_SECTION_NAME): New.
1480
1481 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
1482
1483         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
1484         Make it global.
1485         * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate):
1486         New prototype.
1487         * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator.
1488         (vec_duplicate<mode>): New expander.
1489
1490 2021-07-01  H.J. Lu  <hjl.tools@gmail.com>
1491
1492         PR target/100865
1493         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
1494         New prototype.
1495         (ix86_byte_broadcast): New function.
1496         (ix86_convert_const_wide_int_to_broadcast): Likewise.
1497         (ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode
1498         size is 16 bytes or bigger.
1499         (ix86_broadcast_from_integer_constant): New function.
1500         (ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR
1501         to broadcast if mode size is 16 bytes or bigger.
1502         * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New
1503         prototype.
1504         * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function.
1505
1506 2021-07-01  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1507
1508         * config/i386/predicates.md (ix86_endbr_immediate_operand):
1509         Return true/false instead of 1/0.
1510         (movq_parallel): Ditto.
1511
1512 2021-07-01  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1513
1514         * recog.c (general_operand): Return true/false instead of 1/0.
1515         (register_operand): Ditto.
1516         (immediate_operand): Ditto.
1517         (const_int_operand): Ditto.
1518         (const_scalar_int_operand): Ditto.
1519         (const_double_operand): Ditto.
1520         (push_operand): Ditto.
1521         (pop_operand): Ditto.
1522         (memory_operand): Ditto.
1523         (indirect_operand): Ditto.
1524
1525 2021-07-01  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1526
1527         * genpreds.c (write_predicate_subfunction):
1528         Change the type of written subfunction to bool.
1529         (write_one_predicate_function):
1530         Change the type of written function to bool.
1531         (write_tm_preds_h): Ditto.
1532         * recog.h (*insn_operand_predicate_fn): Change the type to bool.
1533         * recog.c (general_operand): Change the type to bool.
1534         (address_operand): Ditto.
1535         (register_operand): Ditto.
1536         (pmode_register_operand): Ditto.
1537         (scratch_operand): Ditto.
1538         (immediate_operand): Ditto.
1539         (const_int_operand): Ditto.
1540         (const_scalar_int_operand): Ditto.
1541         (const_double_operand): Ditto.
1542         (nonimmediate_operand): Ditto.
1543         (nonmemory_operand): Ditto.
1544         (push_operand): Ditto.
1545         (pop_operand): Ditto.
1546         (memory_operand): Ditto.
1547         (indirect_operand): Ditto.
1548         (ordered_comparison_operator): Ditto.
1549         (comparison_operator): Ditto.
1550         * config/i386/i386-expand.c (ix86_expand_sse_cmp):
1551         Change the type of indirect predicate function to bool.
1552         * config/rs6000/rs6000.c (easy_vector_constant):
1553         Change the type to bool.
1554         * config/mips/mips-protos.h (m16_based_address_p):
1555         Change the type of operand 3 to bool.
1556
1557 2021-07-01  Richard Biener  <rguenther@suse.de>
1558
1559         PR tree-optimization/101280
1560         PR tree-optimization/101173
1561         * gimple-loop-interchange.cc
1562         (tree_loop_interchange::valid_data_dependences): Revert
1563         previous change and instead correctly handle DDR_REVERSED_P
1564         dependence.
1565
1566 2021-07-01  Richard Biener  <rguenther@suse.de>
1567
1568         PR tree-optimization/101278
1569         * tree-ssa-dse.c (dse_classify_store): First check for
1570         uses, then ignore stmt for chaining purposes.
1571
1572 2021-07-01  Richard Biener  <rguenther@suse.de>
1573
1574         PR tree-optimization/100778
1575         * tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping
1576         vectorized ops ahead of their scalar BB.
1577
1578 2021-07-01  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1579
1580         PR target/101044
1581         * config/i386/i386.md (*nabs<dwi>2_doubleword):
1582         New insn_and_split pattern.
1583         (*nabs<dwi>2_1): Ditto.
1584         * config/i386/i386-features.c
1585         (general_scalar_chain::compute_convert_gain):
1586         Handle (NEG (ABS (...))) RTX.  Rewrite src code
1587         scanner as switch statement.
1588         (general_scalar_chain::convert_insn):
1589         Handle (NEG (ABS (...))) RTX.
1590         (general_scalar_to_vector_candidate_p):
1591         Detect  (NEG (ABS (...))) RTX.  Reorder case statements
1592         for (AND (NOT (...) ...)) fallthrough.
1593
1594 2021-07-01  Richard Biener  <rguenther@suse.de>
1595
1596         PR tree-optimization/101178
1597         * tree-vect-slp.c (slpg_vertex::materialize): Remove.
1598         (slpg::perm_in): Add.
1599         (slpg::get_perm_in): Remove.
1600         (slpg::get_perm_materialized): Add.
1601         (vect_optimize_slp): Handle VEC_PERM nodes more optimally
1602         during permute propagation and materialization.
1603
1604 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
1605
1606         PR debug/101266
1607         * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR.
1608
1609 2021-07-01  Jakub Jelinek  <jakub@redhat.com>
1610
1611         PR middle-end/94366
1612         * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to
1613         is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type,
1614         use boolean_type_node instead of integer_type_node as NE_EXPR type.
1615         (lower_reduction_clauses): Likewise.
1616
1617 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
1618
1619         * config/gcn/gcn.c: Include dwarf2.h.
1620         (gcn_addr_space_debug): New function.
1621         (TARGET_ADDR_SPACE_DEBUG): New hook.
1622
1623 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
1624
1625         * common/config/gcn/gcn-common.c
1626         (gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3.
1627         * config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer
1628         when emitting CFI.
1629         (gcn_expand_prologue): Prefer the frame pointer when emitting CFI.
1630         (gcn_frame_pointer_rqd): New function.
1631         (TARGET_FRAME_POINTER_REQUIRED): New hook.
1632
1633 2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>
1634
1635         * config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for
1636         prologue register saves.
1637         (gcn_debug_unwind_info): Use UI_DWARF2.
1638         (gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC.
1639         (gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span.
1640         * config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define.
1641         (DWARF_LINK_REGISTER): New define.
1642         (FIRST_PSEUDO_REGISTER): Increment.
1643         (FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER.
1644         (CALL_USED_REGISTERS): Likewise.
1645         (REGISTER_NAMES): Likewise.
1646
1647 2021-06-30  Richard Biener  <rguenther@suse.de>
1648
1649         PR tree-optimization/101267
1650         * tree-vect-stmts.c (vect_check_scalar_mask): Adjust
1651         API and use SLP compatible interface of vect_is_simple_use.
1652         Reject not vectorized SLP defs for callers that do not support
1653         that.
1654         (vect_check_store_rhs): Handle masked stores and pass down
1655         the appropriate operator index.
1656         (vectorizable_call): Adjust.
1657         (vectorizable_store): Likewise.
1658         (vectorizable_load): Likewise.  Handle SLP pecularity of
1659         masked loads.
1660         (vect_is_simple_use): Remove special-casing of masked stores.
1661
1662 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
1663
1664         * common.opt (foffload): Remove help as Driver only.
1665         * gcc.c (display_help): Add -foffload.
1666
1667 2021-06-30  Tobias Burnus  <tobias@codesourcery.com>
1668
1669         * gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC.
1670         (check_offload_target_name): Fix splitting OFFLOAD_TARGETS into
1671         a candidate list; better inform no offload target is configured
1672         and fix hint extraction when passed target is not '\0' at [len].
1673         * common.opt (foffload): Add tailing '.'.
1674         (foffload-options): Likewise; fix flag name in the help string.
1675
1676 2021-06-30  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
1677
1678         PR target/66791
1679         * config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32.
1680         (vcage_f32): Gate comparison on __FAST_MATH__.
1681         (vcageq_f32): Likewise.
1682         (vcale_f32): Likewise.
1683         (vcaleq_f32): Likewise.
1684         (vcagt_f32): Likewise.
1685         (vcagtq_f32): Likewise.
1686         (vcalt_f32): Likewise.
1687         (vcaltq_f32): Likewise.
1688         (vcage_f16): Likewise.
1689         (vcageq_f16): Likewise.
1690         (vcale_f16): Likewise.
1691         (vcaleq_f16): Likewise.
1692         (vcagt_f16): Likewise.
1693         (vcagtq_f16): Likewise.
1694         (vcalt_f16): Likewise.
1695         (vcaltq_f16): Likewise.
1696
1697 2021-06-30  Richard Biener  <rguenther@suse.de>
1698
1699         PR tree-optimization/101264
1700         * tree-vect-slp.c (vect_optimize_slp): Propagate the
1701         computed perm_in to all "any" permute successors
1702         we cannot de-duplicate immediately.
1703
1704 2021-06-30  liuhongt  <hongtao.liu@intel.com>
1705
1706         PR target/101248
1707         * config/i386/sse.md
1708         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>):
1709         Refined to ..
1710         (avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>):
1711         this.
1712         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>"): Refined.
1713         * config/i386/subst.md (maskz_scalar): New define_subst.
1714         (maskz_scalar_name): New subst_attr.
1715         (maskz_scalar_op5): Ditto.
1716         (round_saeonly_maskz_scalar_op5): Ditto.
1717         (round_saeonly_maskz_scalar_operand5): Ditto.
1718
1719 2021-06-30  David Edelsohn  <dje.gcc@gmail.com>
1720
1721         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
1722         Increase code CSECT alignment to at least 32 bytes.
1723         * config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte
1724         alignment designation.
1725
1726 2021-06-29  Sergei Trofimovich  <siarheit@google.com>
1727
1728         * doc/generic.texi: Fix s/net yet/not yet/ typo.
1729
1730 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
1731
1732         PR tree-optimization/101254
1733         * range-op.cc (operator_minus::op1_op2_relation_effect): Check for
1734         wrapping/non-wrapping when setting the result range.
1735
1736 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
1737
1738         * value-query.cc (gimple_range_global): Allow phis.
1739
1740 2021-06-29  Andrew MacLeod  <amacleod@redhat.com>
1741
1742         * vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt.
1743         (simplify_using_ranges::op_with_boolean_value_range_p): Add a
1744         statement for location context.
1745         (check_for_binary_op_overflow): Ditto.
1746         (simplify_using_ranges::get_vr_for_comparison): Ditto.
1747         (simplify_using_ranges::compare_name_with_value): Ditto.
1748         (simplify_using_ranges::compare_names): Ditto.
1749         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto.
1750         (simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto.
1751         (simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto.
1752         (simplify_using_ranges::simplify_internal_call_using_ranges): Ditto.
1753         (simplify_using_ranges::two_valued_val_range_p): Ditto.
1754         (simplify_using_ranges::simplify): Ditto.
1755         * vr-values.h: Adjust prototypes.
1756
1757 2021-06-29  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1758
1759         PR target/95046
1760         * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern.
1761
1762 2021-06-29  Julian Brown  <julian@codesourcery.com>
1763
1764         * config/gcn/gcn.c (gcn_init_libfuncs): New function.
1765         (TARGET_INIT_LIBFUNCS): Define target hook using above function.
1766         * config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4
1767         otherwise.
1768         (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions.
1769         (MAX_FIXED_MODE_SIZE): Change to 128.
1770
1771 2021-06-29  Julian Brown  <julian@codesourcery.com>
1772
1773         * config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant.
1774         (s_mnemonic): Add clrsb.
1775         (gcn_flbit<mode>_int): Add insn pattern for SImode/DImode.
1776         (clrsb<mode>2): Add expander for SImode/DImode.
1777
1778 2021-06-29  Julian Brown  <julian@codesourcery.com>
1779
1780         * config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm,
1781         muldi3): Add patterns.
1782
1783 2021-06-29  Julian Brown  <julian@codesourcery.com>
1784
1785         * config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander.
1786         (<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns.
1787
1788 2021-06-29  Julian Brown  <julian@codesourcery.com>
1789
1790         * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.
1791
1792 2021-06-29  Joseph Myers  <joseph@codesourcery.com>
1793
1794         * btfout.c, ctfout.c: Include "memmodel.h".
1795
1796 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
1797
1798         * gcc.c (check_offload_target_name): Cast len argument to
1799         %q.*s to 'int'; avoid -Wstringop-truncation warning.
1800
1801 2021-06-29  Richard Biener  <rguenther@suse.de>
1802
1803         * tree-vect-slp.c (vect_optimize_slp): Forward propagate
1804         to "any" permute nodes and relax "any" permute proapgation
1805         during iterative backward propagation.
1806
1807 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
1808
1809         PR other/67300
1810         * common.opt (-foffload=): Update description.
1811         (-foffload-options=): New.
1812         * doc/invoke.texi (C Language Options): Document
1813         -foffload and -foffload-options.
1814         * gcc.c (check_offload_target_name): New, split off from
1815         handle_foffload_option.
1816         (check_foffload_target_names): New.
1817         (handle_foffload_option): Handle -foffload=default.
1818         (driver_handle_option): Update for -foffload-options.
1819         * lto-opts.c (lto_write_options): Use -foffload-options
1820         instead of -foffload.
1821         * lto-wrapper.c (merge_and_complain, append_offload_options):
1822         Likewise.
1823         * opts.c (common_handle_option): Likewise.
1824
1825 2021-06-29  Tobias Burnus  <tobias@codesourcery.com>
1826
1827         * doc/invoke.texi (C Language Options): Sort options
1828         alphabetically in optlist and also the description itself.
1829         Remove leftover -fallow-single-precision from and add missing
1830         -fgnu-tm to the optlist.
1831
1832 2021-06-29  Richard Biener  <rguenther@suse.de>
1833
1834         * tree-vect-slp.c (slpg_vertex::visited): Remove.
1835         (vect_slp_perms_eq): Handle -1 permutes.
1836         (vect_optimize_slp): Rewrite permute propagation.
1837
1838 2021-06-29  Jakub Jelinek  <jakub@redhat.com>
1839
1840         PR c++/101210
1841         * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't
1842         perform the optimization in GENERIC when sanitizing and x has a
1843         reference type.
1844
1845 2021-06-29  Richard Biener  <rguenther@suse.de>
1846
1847         PR tree-optimization/101242
1848         * tree-vect-slp.c (vect_slp_build_vertices): Force-add
1849         PHIs with not represented initial values as leafs.
1850
1851 2021-06-29  Jan-Benedict Glaw  <jbglaw@getslash.de>
1852
1853         * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning.
1854         * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove
1855         "register" keyword.
1856         (pdp11_initial_elimination_offset) Remove unused variable.
1857         (pdp11_cmp_length) Ditto.
1858         (pdp11_insn_cost): Ditto, and fix signedness warning.
1859
1860 2021-06-29  David Edelsohn  <dje.gcc@gmail.com>
1861
1862         * btfout.c: Include tm_p.h.
1863         * ctfout.c: Same.
1864
1865 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
1866
1867         * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as
1868         frame related.
1869         (bpf_expand_epilogue): Likewise.
1870         * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0.
1871         Do not define DBX_DEBUGGING_INFO.
1872
1873 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
1874
1875         * doc/invoke.texi: Document the CTF and BTF debug info options.
1876
1877 2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
1878             David Faust  <david.faust@oracle.com>
1879             Jose E. Marchesi  <jose.marchesi@oracle.com>
1880             Weimin Pan  <weimin.pan@oracle.com>
1881
1882         * Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to
1883         GTFILES.  Add new object files.
1884         * common.opt: Add CTF and BTF debug info options.
1885         * btfout.c: New file.
1886         * ctfc.c: Likewise.
1887         * ctfc.h: Likewise.
1888         * ctfout.c: Likewise.
1889         * dwarf2ctf.c: Likewise.
1890         * dwarf2ctf.h: Likewise.
1891         * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and
1892         BTF_DEBUG.
1893         * dwarf2out.c (dwarf2out_source_line): Likewise.
1894         (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to
1895         be generated.
1896         (debug_format_do_cu): New function.
1897         (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for
1898         them if requested.
1899         Include dwarf2ctf.c.
1900         * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug
1901         formats.
1902         * flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG.
1903         (CTF_DEBUG): New bitmask.
1904         (BTF_DEBUG): Likewise.
1905         (enum ctf_debug_info_levels): New enum.
1906         * gengtype.c (open_base_files): Handle ctfc.h.
1907         (main): Handle uint32_t type.
1908         * flags.h (btf_debuginfo_p): New definition.
1909         (dwarf_based_debuginfo_p): Likewise.
1910         * opts.c (debug_type_names): Add entries for CTF and BTF.
1911         (btf_debuginfo_p): New function.
1912         (dwarf_based_debuginfo_p): Likewise.
1913         (common_handle_option): Handle -gctfN and -gbtf options.
1914         (set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate.
1915         * toplev.c (process_options): Inform the user and ignore -gctfLEVEL if
1916         frontend is not C.
1917
1918 2021-06-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
1919
1920         * dwarf2out.c (AT_class): Function is no longer static.
1921         (AT_int): Likewise.
1922         (AT_unsigned): Likewise.
1923         (AT_loc): Likewise.
1924         (get_AT): Likewise.
1925         (get_AT_string): Likewise.
1926         (get_AT_flag): Likewise.
1927         (get_AT_unsigned): Likewise.
1928         (get_AT_ref): Likewise.
1929         (new_die_raw): Likewise.
1930         (lookup_decl_die): Likewise.
1931         (base_type_die): Likewise.
1932         (add_name_attribute): Likewise.
1933         (add_AT_int): Likewise.
1934         (add_AT_unsigned): Likewise.
1935         (add_AT_loc): Likewise.
1936         (dw_get_die_tag): New function.
1937         (dw_get_die_child): Likewise.
1938         (dw_get_die_sib): Likewise.
1939         (struct dwarf_file_data): Move from here to dwarf2out.h
1940         (struct dw_attr_struct): Likewise.
1941         * dwarf2out.h: Analogous changes.
1942
1943 2021-06-28  Martin Jambor  <mjambor@suse.cz>
1944
1945         PR ipa/93385
1946         * ipa-param-manipulation.h (class ipa_param_body_adjustments): New
1947         members m_dead_stmts and m_dead_ssas.
1948         * ipa-param-manipulation.c
1949         (ipa_param_body_adjustments::mark_dead_statements): New function.
1950         (ipa_param_body_adjustments::common_initialization): Call it on
1951         all removed but not split parameters.
1952         (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
1953         new mwmbers.
1954         (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that
1955         are dead.
1956         * tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset
1957         dead debug statements.
1958         (copy_phis_for_bb): Do not copy dead PHI nodes.
1959
1960 2021-06-28  Martin Jambor  <mjambor@suse.cz>
1961
1962         PR ipa/93385
1963         * symtab-clones.h (clone_info): Removed member param_adjustments.
1964         * ipa-param-manipulation.h: Adjust initial comment to reflect how we
1965         deal with pass-through splits now.
1966         (ipa_param_performed_split): Removed.
1967         (ipa_param_adjustments::modify_call): Adjusted parameters.
1968         (class ipa_param_body_adjustments): Adjusted parameters of
1969         register_replacement, modify_gimple_stmt and modify_call_stmt.
1970         (ipa_verify_edge_has_no_modifications): Declare.
1971         (ipa_edge_modifications_finalize): Declare.
1972         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove
1973         performed_splits processing, pas only edge to padjs->modify_call,
1974         check that call arguments were not modified if they should not have
1975         been.
1976         * cgraphclones.c (cgraph_node::create_clone): Do not copy performed
1977         splits.
1978         * ipa-param-manipulation.c (struct pass_through_split_map): New type.
1979         (ipa_edge_modification_info): Likewise.
1980         (ipa_edge_modification_sum): Likewise.
1981         (ipa_edge_modifications): New edge summary.
1982         (ipa_verify_edge_has_no_modifications): New function.
1983         (transitive_split_p): Removed.
1984         (transitive_split_map): Likewise.
1985         (init_transitive_splits): Likewise.
1986         (ipa_param_adjustments::modify_call): Adjusted to use the new edge
1987         summary instead of performed_splits.
1988         (ipa_param_body_adjustments::register_replacement): Drop dummy
1989         parameter, set base_index of the created ipa_param_body_replacement.
1990         (phi_arg_will_live_p): New function.
1991         (ipa_param_body_adjustments::common_initialization): Do not create
1992         IPA_SRA dummy decls.
1993         (simple_tree_swap_info): Removed.
1994         (remap_split_decl_to_dummy): Likewise.
1995         (record_argument_state_1): New function.
1996         (record_argument_state): Likewise.
1997         (ipa_param_body_adjustments::modify_call_stmt): New parameter
1998         orig_stmt.  Do not work with dummy decls, save necessary info about
1999         changes to ipa_edge_modifications.
2000         (ipa_param_body_adjustments::modify_gimple_stmt): New parameter
2001         orig_stmt, pass it to modify_call_stmt.
2002         (ipa_param_body_adjustments::modify_cfun_body): Adjust call to
2003         modify_gimple_stmt.
2004         (ipa_edge_modifications_finalize): New function.
2005         * tree-inline.c (remap_gimple_stmt): Pass original statement to
2006         modify_gimple_stmt.
2007         (copy_phis_for_bb): Do not copy dead PHI nodes.
2008         (expand_call_inline): Do not remap performed_splits.
2009         (update_clone_info): Likewise.
2010         * toplev.c: Include ipa-param-manipulation.h.
2011         (toplev::finalize): Call ipa_edge_modifications_finalize.
2012
2013 2021-06-28  Andrew Pinski  <apinski@marvell.com>
2014
2015         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range
2016         info if we're the only things setting the target PHI.
2017         (value_replacement): Don't duplicate range here.
2018         (minmax_replacement): Likewise.
2019
2020 2021-06-28  Richard Biener  <rguenther@suse.de>
2021
2022         PR tree-optimization/101229
2023         * gimple-walk.c (gimple_walk_op): Handle PHIs.
2024
2025 2021-06-28  Martin Liska  <mliska@suse.cz>
2026
2027         * config/v850/v850.c (construct_dispose_instruction): Allocate
2028         a bigger buffer.
2029         (construct_prepare_instruction): Likewise.
2030
2031 2021-06-28  Martin Liska  <mliska@suse.cz>
2032
2033         * config/v850/v850.c (v850_option_override): Build default
2034         target node.
2035         (v850_can_inline_p): New.  Allow MASK_PROLOG_FUNCTION to be
2036         ignored for inlining.
2037         (TARGET_CAN_INLINE_P): New.
2038
2039 2021-06-28  Richard Biener  <rguenther@suse.de>
2040
2041         PR tree-optimization/101207
2042         * tree-vect-slp.c (vect_optimize_slp): Do BB reduction
2043         permute eliding for load permutations properly.
2044
2045 2021-06-28  Richard Biener  <rguenther@suse.de>
2046
2047         PR tree-optimization/101173
2048         * gimple-loop-interchange.cc
2049         (tree_loop_interchange::valid_data_dependences): Disallow outer
2050         loop dependence distance of zero.
2051
2052 2021-06-28  liuhongt  <hongtao.liu@intel.com>
2053
2054         PR target/100648
2055         * config/i386/sse.md (*avx_cmp<mode>3_lt): New
2056         define_insn_and_split.
2057         (*avx_cmp<mode>3_ltint): Ditto.
2058         (*avx2_pcmp<mode>3_3): Ditto.
2059         (*avx2_pcmp<mode>3_4): Ditto.
2060         (*avx2_pcmp<mode>3_5): Ditto.
2061
2062 2021-06-28  liuhongt  <hongtao.liu@intel.com>
2063
2064         * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256,
2065         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256,
2066         IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS,
2067         IX86_BUILTIN_PBLENDVB128): Replace icode with
2068         CODE_FOR_nothing.
2069         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv
2070         builtins.
2071         * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not):
2072         New pre_reload splitter.
2073
2074 2021-06-27  Andrew Pinski  <apinski@marvell.com>
2075
2076         PR middle-end/101230
2077         * fold-const.c (fold_ternary_loc): Check
2078         the return value of invert_tree_comparison.
2079
2080 2021-06-27  David Edelsohn  <dje.gcc@gmail.com>
2081
2082         * config.gcc: Add SPDX License Identifier.
2083         (powerpc-ibm-aix789): Default to aix73.h.
2084         (powerpc-ibm-aix7.2.*.*): New stanza.
2085         * config/rs6000/aix72.h: Add SPDX License Identifier.
2086         * config/rs6000/aix73.h: New file.
2087
2088 2021-06-26  Jason Merrill  <jason@redhat.com>
2089
2090         * except.c: #include "dwarf2.h" instead of "dwarf2out.h".
2091
2092 2021-06-26  Andrew Pinski  <apinski@marvell.com>
2093
2094         * genmatch.c (lower_cond): Copy for_subst_vec
2095         for the simplify also.
2096         (lower): Swap the order for lower_for and lower_cond.
2097
2098 2021-06-26  Andrew Pinski  <apinski@marvell.com>
2099
2100         * tree-ssa-phiopt.c (match_simplify_replacement): Reset
2101         flow senatitive info on the moved ssa set.
2102
2103 2021-06-26  Andrew Pinski  <apinski@marvell.com>
2104
2105         * fold-const.c (fold_cond_expr_with_comparison):
2106         Exand arg0 into comp_code, arg00, and arg01.
2107         (fold_ternary_loc): Use invert_tree_comparison
2108         instead of fold_invert_truthvalue for the case
2109         where we have A CMP B ? C : A.
2110
2111 2021-06-25  Martin Sebor  <msebor@redhat.com>
2112
2113         PR middle-end/101216
2114         * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant.
2115
2116 2021-06-25  Jeff Law  <jeffreyalaw@gmail.com>
2117
2118         * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT.
2119
2120 2021-06-25  Richard Biener  <rguenther@suse.de>
2121
2122         PR tree-optimization/101202
2123         * tree-vect-slp.c (vect_optimize_slp): Explicitely handle
2124         failed nodes.
2125
2126 2021-06-25  Richard Biener  <rguenther@suse.de>
2127
2128         * tree-vect-slp-patterns.c (addsub_pattern::build): Copy
2129         STMT_VINFO_REDUC_DEF from the original representative.
2130
2131 2021-06-25  Martin Sebor  <msebor@redhat.com>
2132
2133         * builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING,
2134         gimple_no_warning_p and gimple_set_no_warning with
2135         warning_suppressed_p, and suppress_warning.
2136         (c_strlen): Same.
2137         (maybe_warn_for_bound): Same.
2138         (warn_for_access): Same.
2139         (check_access): Same.
2140         (expand_builtin_strncmp): Same.
2141         (fold_builtin_varargs): Same.
2142         * calls.c (maybe_warn_nonstring_arg): Same.
2143         (maybe_warn_rdwr_sizes): Same.
2144         * cfgexpand.c (expand_call_stmt): Same.
2145         * cgraphunit.c (check_global_declaration): Same.
2146         * fold-const.c (fold_undefer_overflow_warnings): Same.
2147         (fold_truth_not_expr): Same.
2148         (fold_unary_loc): Same.
2149         (fold_checksum_tree): Same.
2150         * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same.
2151         (array_bounds_checker::check_mem_ref): Same.
2152         (array_bounds_checker::check_addr_expr): Same.
2153         (array_bounds_checker::check_array_bounds): Same.
2154         * gimple-expr.c (copy_var_decl): Same.
2155         * gimple-fold.c (gimple_fold_builtin_strcpy): Same.
2156         (gimple_fold_builtin_strncat): Same.
2157         (gimple_fold_builtin_stxcpy_chk): Same.
2158         (gimple_fold_builtin_stpcpy): Same.
2159         (gimple_fold_builtin_sprintf): Same.
2160         (fold_stmt_1): Same.
2161         * gimple-ssa-isolate-paths.c (diag_returned_locals): Same.
2162         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
2163         * gimple-ssa-sprintf.c (handle_printf_call): Same.
2164         * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same.
2165         * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
2166         * gimple-ssa-warn-restrict.h: Adjust declarations.
2167         (maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING,
2168         gimple_no_warning_p and gimple_set_no_warning with
2169         warning_suppressed_p, and suppress_warning.
2170         (check_call): Same.
2171         (check_bounds_or_overlap): Same.
2172         * gimple.c (gimple_build_call_from_tree): Same.
2173         * gimplify.c (gimplify_return_expr): Same.
2174         (gimplify_cond_expr): Same.
2175         (gimplify_modify_expr_complex_part): Same.
2176         (gimplify_modify_expr): Same.
2177         (gimple_push_cleanup): Same.
2178         (gimplify_expr): Same.
2179         * omp-expand.c (expand_omp_for_generic): Same.
2180         (expand_omp_taskloop_for_outer): Same.
2181         * omp-low.c (lower_rec_input_clauses): Same.
2182         (lower_lastprivate_clauses): Same.
2183         (lower_send_clauses): Same.
2184         (lower_omp_target): Same.
2185         * tree-cfg.c (pass_warn_function_return::execute): Same.
2186         * tree-complex.c (create_one_component_var): Same.
2187         * tree-inline.c (remap_gimple_op_r): Same.
2188         (copy_tree_body_r): Same.
2189         (declare_return_variable): Same.
2190         (expand_call_inline): Same.
2191         * tree-nested.c (lookup_field_for_decl): Same.
2192         * tree-sra.c (create_access_replacement): Same.
2193         (generate_subtree_copies): Same.
2194         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same.
2195         * tree-ssa-forwprop.c (combine_cond_expr_cond): Same.
2196         * tree-ssa-loop-ch.c (ch_base::copy_headers): Same.
2197         * tree-ssa-loop-im.c (execute_sm): Same.
2198         * tree-ssa-phiopt.c (cond_store_replacement): Same.
2199         * tree-ssa-strlen.c (maybe_warn_overflow): Same.
2200         (handle_builtin_strcpy): Same.
2201         (maybe_diag_stxncpy_trunc): Same.
2202         (handle_builtin_stxncpy_strncat): Same.
2203         (handle_builtin_strcat): Same.
2204         * tree-ssa-uninit.c (get_no_uninit_warning): Same.
2205         (set_no_uninit_warning): Same.
2206         (uninit_undefined_value_p): Same.
2207         (warn_uninit): Same.
2208         (maybe_warn_operand): Same.
2209         * tree-vrp.c (compare_values_warnv): Same.
2210         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same.
2211         (test_for_singularity): Same.
2212         * gimple.h (warning_suppressed_p): New function.
2213         (suppress_warning): Same.
2214         (copy_no_warning): Same.
2215         (gimple_set_block): Call gimple_set_location.
2216         (gimple_set_location): Call copy_warning.
2217
2218 2021-06-25  Martin Sebor  <msebor@redhat.com>
2219
2220         * tree.h (warning_suppressed_at, copy_warning,
2221         warning_suppressed_p, suppress_warning): New functions.
2222
2223 2021-06-25  Martin Sebor  <msebor@redhat.com>
2224
2225         * Makefile.in (OBJS-libcommon): Add diagnostic-spec.o.
2226         * gengtype.c (open_base_files): Add diagnostic-spec.h.
2227         * diagnostic-spec.c: New file.
2228         * diagnostic-spec.h: New file.
2229         * tree.h (no_warning, all_warnings, suppress_warning_at): New
2230         declarations.
2231         * warning-control.cc: New file.
2232
2233 2021-06-25  liuhongt  <hongtao.liu@intel.com>
2234
2235         PR target/101185
2236         * config/i386/i386.c (x86_order_regs_for_local_alloc):
2237         Revert r12-1669.
2238
2239 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
2240
2241         PR tree-optimization/101189
2242         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass
2243         LHS range of condition to postfold routine.
2244         (fold_using_range::postfold_gcond_edges): Only process the TRUE or
2245         FALSE edge if the LHS range supports it being taken.
2246         * gimple-range-fold.h (postfold_gcond_edges): Add range parameter.
2247
2248 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
2249
2250         * value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks.
2251         (relation_oracle::find_relation_block): Check correct bitmap.
2252         (relation_oracle::dump): Do not dump NULL blocks.
2253
2254 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
2255
2256         * gimple-range-cache.cc (ranger_cache::propagate_cache): Call
2257         range_on_edge instead of manually calculating.
2258
2259 2021-06-24  Andrew MacLeod  <amacleod@redhat.com>
2260
2261         * range-op.cc: Fix comment.
2262
2263 2021-06-24  UroÅ¡ Bizjak  <ubizjak@gmail.com>
2264
2265         PR target/89021
2266         * config/i386/i386-expand.c (ix86_expand_sse_unpack):
2267         Handle V8QI and V4HI modes.
2268         * config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2):
2269         New insn pattern.
2270         (sse4_1_<any_extend:code>v4qiv4hi2): Ditto.
2271         (mmxpackmode): New mode attribute.
2272         (vec_pack_trunc_<mmxpackmode:mode>): New expander.
2273         (mmxunpackmode): New mode attribute.
2274         (vec_unpacks_lo_<mmxunpackmode:mode>): New expander.
2275         (vec_unpacks_hi_<mmxunpackmode:mode>): Ditto.
2276         (vec_unpacku_lo_<mmxunpackmode:mode>): Ditto.
2277         (vec_unpacku_hi_<mmxunpackmode:mode>): Ditto.
2278         * config/i386/i386.md (extsuffix): Move from ...
2279         * config/i386/sse.md: ... here.
2280
2281 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
2282
2283         * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here..
2284         (dwarf2out_finish): ...instead of here.
2285
2286 2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>
2287
2288         * configure.ac (--gdwarf-5 option): Use objdump instead of readelf.
2289         (working --gdwarf-4/--gdwarf-5 for all sources): Likewise.
2290         (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows.
2291         * configure: Regenerate.
2292
2293 2021-06-24  Richard Biener  <rguenther@suse.de>
2294
2295         * config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3,
2296         vec_addsubv8sf3, vec_addsubv4sf3): Merge into ...
2297         (vec_addsub<mode>3): ... using a new addsub_cst mode attribute.
2298
2299 2021-06-24  Richard Biener  <rguenther@suse.de>
2300
2301         * config/i386/sse.md (avx_addsubv4df3): Rename to
2302         vec_addsubv4df3.
2303         (avx_addsubv8sf3): Rename to vec_addsubv8sf3.
2304         (sse3_addsubv2df3): Rename to vec_addsubv2df3.
2305         (sse3_addsubv4sf3): Rename to vec_addsubv4sf3.
2306         * config/i386/i386-builtin.def: Adjust.
2307         * internal-fn.def (VEC_ADDSUB): New internal optab fn.
2308         * optabs.def (vec_addsub_optab): New optab.
2309         * tree-vect-slp-patterns.c (class addsub_pattern): New.
2310         (slp_patterns): Add addsub_pattern.
2311         * tree-vect-slp.c (vect_optimize_slp): Disable propagation
2312         across CFN_VEC_ADDSUB.
2313         * tree-vectorizer.h (vect_pattern::vect_pattern): Make
2314         m_ops optional.
2315         * doc/md.texi (vec_addsub<mode>3): Document.
2316
2317 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
2318
2319         PR middle-end/101170
2320         * df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs
2321         where regno + subreg_regno_offset wraps around use 0 as starting
2322         regno.
2323
2324 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
2325
2326         PR middle-end/101172
2327         * stor-layout.c (finish_bitfield_representative): If nextf has
2328         error_mark_node type, set repr type to error_mark_node too.
2329
2330 2021-06-24  Ilya Leoshkevich  <iii@linux.ibm.com>
2331
2332         * config/s390/s390.c (s390_function_profiler): Ignore labelno
2333         parameter.
2334         * config/s390/s390.h (NO_PROFILE_COUNTERS): Define.
2335
2336 2021-06-24  Richard Biener  <rguenther@suse.de>
2337
2338         * tree-vect-slp.c (vect_optimize_slp): Do not propagate
2339         across operations that have different semantics on different
2340         lanes.
2341
2342 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
2343
2344         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP.
2345         * gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses
2346         with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification
2347         of non-decl OMP_CLAUSE_DECL.  For OMP_CLAUSE_IN_REDUCTION on
2348         OMP_TARGET user outer_ctx instead of ctx for placeholders and
2349         initializer/combiner gimplification.
2350         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION
2351         on target constructs.
2352         (lower_rec_input_clauses): Likewise.
2353         (lower_omp_target): Likewise.
2354         * omp-expand.c (expand_omp_target): Temporarily ignore nowait clause
2355         on target if in_reduction is present.
2356
2357 2021-06-24  Kewen Lin  <linkw@linux.ibm.com>
2358
2359         * tree-predcom.c (class pcom_worker): New class.
2360         (release_chain): Renamed to...
2361         (pcom_worker::release_chain): ...this.
2362         (release_chains): Renamed to...
2363         (pcom_worker::release_chains): ...this.
2364         (aff_combination_dr_offset): Renamed to...
2365         (pcom_worker::aff_combination_dr_offset): ...this.
2366         (determine_offset): Renamed to...
2367         (pcom_worker::determine_offset): ...this.
2368         (class comp_ptrs): New class.
2369         (split_data_refs_to_components): Renamed to...
2370         (pcom_worker::split_data_refs_to_components): ...this,
2371         and update with class comp_ptrs.
2372         (suitable_component_p): Renamed to...
2373         (pcom_worker::suitable_component_p): ...this.
2374         (filter_suitable_components): Renamed to...
2375         (pcom_worker::filter_suitable_components): ...this.
2376         (valid_initializer_p): Renamed to...
2377         (pcom_worker::valid_initializer_p): ...this.
2378         (find_looparound_phi): Renamed to...
2379         (pcom_worker::find_looparound_phi): ...this.
2380         (add_looparound_copies): Renamed to...
2381         (pcom_worker::add_looparound_copies): ...this.
2382         (determine_roots_comp): Renamed to...
2383         (pcom_worker::determine_roots_comp): ...this.
2384         (determine_roots): Renamed to...
2385         (pcom_worker::determine_roots): ...this.
2386         (single_nonlooparound_use): Renamed to...
2387         (pcom_worker::single_nonlooparound_use): ...this.
2388         (remove_stmt): Renamed to...
2389         (pcom_worker::remove_stmt): ...this.
2390         (execute_pred_commoning_chain): Renamed to...
2391         (pcom_worker::execute_pred_commoning_chain): ...this.
2392         (execute_pred_commoning): Renamed to...
2393         (pcom_worker::execute_pred_commoning): ...this.
2394         (struct epcc_data): New member worker.
2395         (execute_pred_commoning_cbck): Call execute_pred_commoning
2396         with pcom_worker pointer.
2397         (find_use_stmt): Renamed to...
2398         (pcom_worker::find_use_stmt): ...this.
2399         (find_associative_operation_root): Renamed to...
2400         (pcom_worker::find_associative_operation_root): ...this.
2401         (find_common_use_stmt): Renamed to...
2402         (pcom_worker::find_common_use_stmt): ...this.
2403         (combinable_refs_p): Renamed to...
2404         (pcom_worker::combinable_refs_p): ...this.
2405         (reassociate_to_the_same_stmt): Renamed to...
2406         (pcom_worker::reassociate_to_the_same_stmt): ...this.
2407         (stmt_combining_refs): Renamed to...
2408         (pcom_worker::stmt_combining_refs): ...this.
2409         (combine_chains): Renamed to...
2410         (pcom_worker::combine_chains): ...this.
2411         (try_combine_chains): Renamed to...
2412         (pcom_worker::try_combine_chains): ...this.
2413         (prepare_initializers_chain): Renamed to...
2414         (pcom_worker::prepare_initializers_chain): ...this.
2415         (prepare_initializers): Renamed to...
2416         (pcom_worker::prepare_initializers): ...this.
2417         (prepare_finalizers_chain): Renamed to...
2418         (pcom_worker::prepare_finalizers_chain): ...this.
2419         (prepare_finalizers): Renamed to...
2420         (pcom_worker::prepare_finalizers): ...this.
2421         (tree_predictive_commoning_loop): Renamed to...
2422         (pcom_worker::tree_predictive_commoning_loop): ...this, adjust
2423         some calls and remove some cleanup code.
2424         (tree_predictive_commoning): Adjusted to use pcom_worker instance.
2425         (static variable looparound_phis): Remove.
2426         (static variable name_expansions): Remove.
2427
2428 2021-06-24  Richard Biener  <rguenther@suse.de>
2429
2430         * tree-vect-slp.c (slpg_vertex): New struct.
2431         (vect_slp_build_vertices): Adjust.
2432         (vect_optimize_slp): Likewise.  Maintain an outgoing permute
2433         and a materialized one.
2434
2435 2021-06-24  Richard Biener  <rguenther@suse.de>
2436
2437         PR tree-optimization/101105
2438         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
2439         Only ignore steps when they are equal or scalar order is preserved.
2440
2441 2021-06-24  liuhongt  <hongtao.liu@intel.com>
2442
2443         PR target/98434
2444         * config/i386/i386-expand.c (ix86_expand_vec_interleave):
2445         Adjust comments for ix86_expand_vecop_qihi2.
2446         (ix86_expand_vecmul_qihi): Renamed to ..
2447         (ix86_expand_vecop_qihi2): Adjust function prototype to
2448         support shift operation, add static to definition.
2449         (ix86_expand_vec_shift_qihi_constant): Add static to definition.
2450         (ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and
2451         ix86_expand_vec_shift_qihi_constant.
2452         * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted.
2453         (ix86_expand_vec_shift_qihi_constant): Deleted.
2454         * config/i386/sse.md (VI12_256_512_AVX512VL): New mode
2455         iterator.
2456         (mulv8qi3): Call ix86_expand_vecop_qihi directly, add
2457         condition TARGET_64BIT.
2458         (mul<mode>3): Ditto.
2459         (<insn><mode>3): Ditto.
2460         (vlshr<mode>3): Extend to support avx512 vlshr.
2461         (v<insn><mode>3): New expander for
2462         vashr/vlshr/vashl.
2463         (v<insn>v8qi3): Ditto.
2464         (vashrv8hi3<mask_name>): Renamed to ..
2465         (vashr<mode>3): And extend to support V16QImode for avx512.
2466         (vashrv16qi3): Deleted.
2467         (vashrv2di3<mask_name>): Extend expander to support avx512
2468         instruction.
2469
2470 2021-06-23  Dimitar Dimitrov  <dimitar@dinux.eu>
2471
2472         * doc/lto.texi (Design Overview): Update that slim objects are
2473         the default.
2474
2475 2021-06-23  Aaron Sawdey  <acsawdey@linux.ibm.com>
2476
2477         * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out
2478         of OTHER_POWER10_MASKS so it will not be enabled by default.
2479
2480 2021-06-23  Richard Biener  <rguenther@suse.de>
2481             Martin Jambor  <mjambor@suse.cz>
2482
2483         * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the
2484         param replacement unconditionally.  Adjust comment.
2485
2486 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
2487
2488         * Makefile.in (OBJS): Add gimple-range-fold.o
2489         * gimple-range-fold.cc: New.
2490         * gimple-range-fold.h: New.
2491         * gimple-range-gori.cc (gimple_range_calc_op1): Move to here.
2492         (gimple_range_calc_op2): Ditto.
2493         * gimple-range-gori.h: Move prototypes to here.
2494         * gimple-range.cc: Adjust include files.
2495         (fur_source:fur_source): Relocate to gimple-range-fold.cc.
2496         (fur_source::get_operand): Ditto.
2497         (fur_source::get_phi_operand): Ditto.
2498         (fur_source::query_relation): Ditto.
2499         (fur_source::register_relation): Ditto.
2500         (class fur_edge): Ditto.
2501         (fur_edge::fur_edge): Ditto.
2502         (fur_edge::get_operand): Ditto.
2503         (fur_edge::get_phi_operand): Ditto.
2504         (fur_stmt::fur_stmt): Ditto.
2505         (fur_stmt::get_operand): Ditto.
2506         (fur_stmt::get_phi_operand): Ditto.
2507         (fur_stmt::query_relation): Ditto.
2508         (class fur_depend): Relocate to gimple-range-fold.h.
2509         (fur_depend::fur_depend): Relocate to gimple-range-fold.cc.
2510         (fur_depend::register_relation): Ditto.
2511         (fur_depend::register_relation): Ditto.
2512         (class fur_list): Ditto.
2513         (fur_list::fur_list): Ditto.
2514         (fur_list::get_operand): Ditto.
2515         (fur_list::get_phi_operand): Ditto.
2516         (fold_range): Ditto.
2517         (adjust_pointer_diff_expr): Ditto.
2518         (gimple_range_adjustment): Ditto.
2519         (gimple_range_base_of_assignment): Ditto.
2520         (gimple_range_operand1): Ditto.
2521         (gimple_range_operand2): Ditto.
2522         (gimple_range_calc_op1): Relocate to gimple-range-gori.cc.
2523         (gimple_range_calc_op2): Ditto.
2524         (fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc.
2525         (fold_using_range::range_of_range_op): Ditto.
2526         (fold_using_range::range_of_address): Ditto.
2527         (fold_using_range::range_of_phi): Ditto.
2528         (fold_using_range::range_of_call): Ditto.
2529         (fold_using_range::range_of_builtin_ubsan_call): Ditto.
2530         (fold_using_range::range_of_builtin_call): Ditto.
2531         (fold_using_range::range_of_cond_expr): Ditto.
2532         (fold_using_range::range_of_ssa_name_with_loop_info): Ditto.
2533         (fold_using_range::relation_fold_and_or): Ditto.
2534         (fold_using_range::postfold_gcond_edges): Ditto.
2535         * gimple-range.h: Add gimple-range-fold.h to include files. Change
2536         GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H.
2537         (gimple_range_handler): Relocate to gimple-range-fold.h.
2538         (gimple_range_ssa_p): Ditto.
2539         (range_compatible_p): Ditto.
2540         (class fur_source): Ditto.
2541         (class fur_stmt): Ditto.
2542         (class fold_using_range): Ditto.
2543         (gimple_range_calc_op1): Relocate to gimple-range-gori.h
2544         (gimple_range_calc_op2): Ditto.
2545
2546 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
2547
2548         PR tree-optimization/101148
2549         PR tree-optimization/101014
2550         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
2551         (ranger_cache::~ranger_cache): Adjust.
2552         (ranger_cache::block_range): Check if propagation disallowed.
2553         (ranger_cache::propagate_cache): Disallow propagation if new value
2554         can't be stored properly.
2555         * gimple-range-cache.h (ranger_cache::m_propfail): New member.
2556
2557 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
2558
2559         * gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype.
2560         (sbr_vector::set_bb_range): Return true.
2561         (class sbr_sparse_bitmap): Adjust.
2562         (sbr_sparse_bitmap::set_bb_range): Return value.
2563         (block_range_cache::set_bb_range): Return value.
2564         (ranger_cache::propagate_cache): Use return value to print msg.
2565         * gimple-range-cache.h (class block_range_cache): Adjust.
2566
2567 2021-06-23  Andrew MacLeod  <amacleod@redhat.com>
2568
2569         * gimple-range.cc (dump_bb): Use range_on_edge from the cache.
2570
2571 2021-06-23  Jeff Law  <jeffreyalaw@gmail.com>
2572
2573         * config/h8300/logical.md (<code><mode>3<ccnz>): Use <cczn>
2574         so this pattern can be used for test/compare removal.  Pass
2575         current insn to compute_logical_op_length and output_logical_op.
2576         * config/h8300/h8300.c (compute_logical_op_cc): Remove.
2577         (h8300_and_costs): Add argument to compute_logical_op_length.
2578         (output_logical_op): Add new argument.  Use it to determine if the
2579         condition codes are used and adjust the output accordingly.
2580         (compute_logical_op_length): Add new argument and update length
2581         computations when condition codes are used.
2582         * config/h8300/h8300-protos.h (compute_logical_op_length): Update
2583         prototype.
2584         (output_logical_op): Likewise.
2585
2586 2021-06-23  UroÅ¡ Bizjak  <ubizjak@gmail.com>
2587
2588         PR target/89021
2589         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
2590         Handle 64bit modes for TARGET_XOP.  Use indirect gen_* functions.
2591         * config/i386/mmx.md (mmx_ppermv64): New insn pattern.
2592         * config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ...
2593         * config/i386/sse.md (unspec): ... here.
2594
2595 2021-06-23  Martin Liska  <mliska@suse.cz>
2596
2597         PR target/98636
2598         * optc-save-gen.awk: Put back arm_fp16_format to
2599         checked_options.
2600
2601 2021-06-23  UroÅ¡ Bizjak  <ubizjak@gmail.com>
2602
2603         PR target/101175
2604         * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX.
2605         (bsr): Ditto.
2606         (*bsrhi): Remove.
2607         (clz<mode>2): Update RTX pattern for additions.
2608
2609 2021-06-23  Jakub Jelinek  <jakub@redhat.com>
2610
2611         PR middle-end/101167
2612         * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs
2613         and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set.
2614
2615 2021-06-22  Sergei Trofimovich  <siarheit@google.com>
2616
2617         * doc/rtl.texi: drop unbalanced parenthesis.
2618
2619 2021-06-22  Richard Biener  <rguenther@suse.de>
2620
2621         PR middle-end/101156
2622         * gimplify.c (gimplify_expr): Remove premature incorrect
2623         optimization.
2624
2625 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
2626
2627         PR tree-optimization/101159
2628         * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some
2629         comment typos.
2630
2631 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
2632
2633         PR middle-end/101160
2634         * function.c (assign_parms): For decl_result with TYPE_EMPTY_P type
2635         clear crtl->return_rtx instead of keeping it referencing a pseudo.
2636
2637 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
2638             Andrew Pinski  <apinski@marvell.com>
2639
2640         PR tree-optimization/101162
2641         * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer
2642         types.
2643
2644 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2645
2646         * range-op.cc (range_relational_tests): New.
2647         (range_op_tests): Call range_relational_tests.
2648
2649 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2650
2651         * range-op.cc (operator_cast::lhs_op1_relation): New.
2652         (operator_identity::lhs_op1_relation): Mew.
2653
2654 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2655
2656         * range-op.cc (operator_minus::op1_op2_relation_effect): New.
2657
2658 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2659
2660         * range-op.cc (operator_plus::lhs_op1_relation): New.
2661         (operator_plus::lhs_op2_relation): New.
2662
2663 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2664
2665         * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a
2666         relation_oracle if dominators exist.
2667         (ranger_cache::~ranger_cache): Dispose of oracle.
2668         (ranger_cache::dump_bb): Dump oracle.
2669         * gimple-range.cc (fur_source::fur_source): New.
2670         (fur_source::get_operand): Use mmeber query.
2671         (fur_source::get_phi_operand): Use member_query.
2672         (fur_source::query_relation): New.
2673         (fur_source::register_dependency): Delete.
2674         (fur_source::register_relation): New.
2675         (fur_edge::fur_edge): Adjust.
2676         (fur_edge::get_phi_operand): Fix comment.
2677         (fur_edge::query): Delete.
2678         (fur_stmt::fur_stmt): Adjust.
2679         (fur_stmt::query): Delete.
2680         (fur_depend::fur_depend): Adjust.
2681         (fur_depend::register_relation): New.
2682         (fur_depend::register_relation): New.
2683         (fur_list::fur_list): Adjust.
2684         (fur_list::get_operand): Use member query.
2685         (fold_using_range::range_of_range_op): Process and query relations.
2686         (fold_using_range::range_of_address): Adjust dependency call.
2687         (fold_using_range::range_of_phi): Ditto.
2688         (gimple_ranger::gimple_ranger): New.  Use ranger_ache oracle.
2689         (fold_using_range::relation_fold_and_or): New.
2690         (fold_using_range::postfold_gcond_edges): New.
2691         * gimple-range.h (class gimple_ranger): Adjust.
2692         (class fur_source): Adjust members.
2693         (class fur_stmt): Ditto.
2694         (class fold_using_range): Ditto.
2695
2696 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2697
2698         * range-op.cc (range_operator::wi_fold): Apply relation effect.
2699         (range_operator::fold_range): Adjust and apply relation effect.
2700         (*::fold_range): Add relation parameters.
2701         (*::op1_range): Ditto.
2702         (*::op2_range): Ditto.
2703         (range_operator::lhs_op1_relation): New.
2704         (range_operator::lhs_op2_relation): New.
2705         (range_operator::op1_op2_relation): New.
2706         (range_operator::op1_op2_relation_effect): New.
2707         (relop_early_resolve): New.
2708         (operator_equal::op1_op2_relation): New.
2709         (operator_equal::fold_range): Call relop_early_resolve.
2710         (operator_not_equal::op1_op2_relation): New.
2711         (operator_not_equal::fold_range): Call relop_early_resolve.
2712         (operator_lt::op1_op2_relation): New.
2713         (operator_lt::fold_range): Call relop_early_resolve.
2714         (operator_le::op1_op2_relation): New.
2715         (operator_le::fold_range): Call relop_early_resolve.
2716         (operator_gt::op1_op2_relation): New.
2717         (operator_gt::fold_range): Call relop_early_resolve.
2718         (operator_ge::op1_op2_relation): New.
2719         (operator_ge::fold_range): Call relop_early_resolve.
2720         * range-op.h (class range_operator): Adjust parameters and methods.
2721
2722 2021-06-22  Andrew MacLeod  <amacleod@redhat.com>
2723
2724         * Makefile.in (OBJS): Add value-relation.o.
2725         * gimple-range.h: Adjust include files.
2726         * tree-data-ref.c: Adjust include file order.
2727         * value-query.cc (range_query::get_value_range): Default to no oracle.
2728         (range_query::query_relation): New.
2729         (range_query::query_relation): New.
2730         * value-query.h (class range_query): Adjust.
2731         * value-relation.cc: New.
2732         * value-relation.h: New.
2733
2734 2021-06-22  Richard Biener  <rguenther@suse.de>
2735
2736         PR tree-optimization/101151
2737         * tree-ssa-sink.c (statement_sink_location): Expand irreducible
2738         region check.
2739
2740 2021-06-22  Jojo R  <rjiejie@linux.alibaba.com>
2741
2742         * config/riscv/riscv.c (thead_c906_tune_info): New.
2743         (riscv_tune_info_table): Use new tune.
2744
2745 2021-06-22  Richard Biener  <rguenther@suse.de>
2746
2747         PR tree-optimization/101158
2748         * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand
2749         checking after checking for matching operation.
2750
2751 2021-06-22  Richard Biener  <rguenther@suse.de>
2752
2753         PR tree-optimization/101159
2754         * tree-vect-patterns.c (vect_recog_popcount_pattern): Add
2755         missing NULL vectype check.
2756
2757 2021-06-22  Richard Biener  <rguenther@suse.de>
2758
2759         PR tree-optimization/101154
2760         * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access.
2761
2762 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
2763
2764         PR target/11877
2765         * config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare.
2766         * config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable.
2767         * config/i386/i386.c (ix86_expand_prologue): Clear it.
2768         * config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx):
2769         Remove "" from match_operand.  Emit new insns using emit_move_insn and
2770         set ix86_last_zero_store_uid to INSN_UID of the last store.
2771         Add peephole2s for 1/2/4 stores of const0_rtx following previous
2772         successful peep2s.
2773
2774 2021-06-22  Martin Liska  <mliska@suse.cz>
2775
2776         * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format
2777         was changed.
2778
2779 2021-06-22  Martin Liska  <mliska@suse.cz>
2780
2781         * gcov-io.h: Remove padding entries.
2782
2783 2021-06-22  liuhongt  <hongtao.liu@intel.com>
2784
2785         PR tree-optimization/97770
2786         * tree-vect-patterns.c (vect_recog_popcount_pattern):
2787         New.
2788         (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern.
2789
2790 2021-06-22  liuhongt  <hongtao.liu@intel.com>
2791
2792         PR target/100267
2793         * config/i386/i386-builtin.def (BDESC): Adjust builtin name.
2794         * config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to ..
2795         (expand<mode>_mask): this ..
2796         (*expand<mode>_mask): New pre_reload splitter to transform
2797         v{,p}expand* to vmov* when mask is zero, all ones, or has all
2798         ones in it's lower part, otherwise still generate
2799         v{,p}expand*.
2800
2801 2021-06-22  liuhongt  <hongtao.liu@intel.com>
2802
2803         PR target/100310
2804         * config/i386/i386-expand.c
2805         (ix86_expand_special_args_builtin): Keep constm1_operand only
2806         if it satisfies insn's operand predicate.
2807
2808 2021-06-21  Jason Merrill  <jason@redhat.com>
2809
2810         PR target/88529
2811         * df-scan.c (df_ref_record): Check that regno < endregno.
2812         * function.c (assign_parms, expand_function_end): Do nothing with a
2813         TYPE_EMPTY_P result.
2814
2815 2021-06-21  Richard Biener  <rguenther@suse.de>
2816
2817         PR tree-optimization/101120
2818         * tree-vect-data-refs.c (bump_vector_ptr): Fold the
2819         built increment.
2820         * tree-vect-slp.c (vect_transform_slp_perm_load): Add
2821         DR chain DCE capability.
2822         * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
2823         * tree-vect-stmts.c (vectorizable_load): Remove unused
2824         loads in the DR chain for SLP.
2825
2826 2021-06-21  Jakub Jelinek  <jakub@redhat.com>
2827
2828         PR inline-asm/100785
2829         * gimplify.c (gimplify_asm_expr): Don't diagnose errors if
2830         output or input operands were already error_mark_node.
2831         * cfgexpand.c (expand_asm_stmt): If errors are emitted,
2832         remove all inputs, outputs and clobbers from the asm and
2833         set template to "".
2834
2835 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
2836
2837         * config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b.
2838         (vceq_s16): Likewise.
2839         (vceq_s32): Likewise.
2840         (vceq_u8): Likewise.
2841         (vceq_u16): Likewise.
2842         (vceq_u32): Likewise.
2843         (vceq_p8): Likewise.
2844         (vceqq_s8): Likewise.
2845         (vceqq_s16): Likewise.
2846         (vceqq_s32): Likewise.
2847         (vceqq_u8): Likewise.
2848         (vceqq_u16): Likewise.
2849         (vceqq_u32): Likewise.
2850         (vceqq_p8): Likewise.
2851         (vceq_f32): Gate __a == __b on __FAST_MATH__.
2852         (vceqq_f32): Likewise.
2853         (vceq_f16): Likewise.
2854         (vceqq_f16): Likewise.
2855
2856 2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>
2857
2858         PR target/97906
2859         * config/arm/iterators.md (NEON_VACMP): Remove.
2860         * config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE
2861         iterator.
2862         (neon_vca<cmp_op><mode>_insn): Likewise.
2863         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of
2864         NEON_VACMP.
2865
2866 2021-06-21  Richard Biener  <rguenther@suse.de>
2867
2868         PR tree-optimization/101121
2869         * tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally
2870         when we just lack a stmt with the desired op when doing permutation.
2871         (vect_build_slp_tree): When caching a failed SLP build attempt
2872         assert that at least one lane is marked as not matching.
2873
2874 2021-06-21  liuhongt  <hongtao.liu@intel.com>
2875
2876         PR target/101142
2877         * config/i386/i386.md: (*anddi_1): Disparage slightly the mask
2878         register alternative.
2879         (*and<mode>_1): Ditto.
2880         (*andqi_1): Ditto.
2881         (*andn<mode>_1): Ditto.
2882         (*<code><mode>_1): Ditto.
2883         (*<code>qi_1): Ditto.
2884         (*one_cmpl<mode>2_1): Ditto.
2885         (*one_cmplsi2_1_zext): Ditto.
2886         (*one_cmplqi2_1): Ditto.
2887         * config/i386/i386.c (x86_order_regs_for_local_alloc): Change
2888         the order of mask registers to be before general registers.
2889
2890 2021-06-21  Roger Sayle  <roger@nextmovesoftware.com>
2891
2892         PR target/11877
2893         * config/i386/i386.md: New define_peephole2s to shrink writing
2894         1, 2 or 4 consecutive zeros to memory when optimizing for size.
2895
2896 2021-06-18  Jeff Law  <jeffreyalaw@gmail.com>
2897
2898         * config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF.
2899         * config/h8300/logical.md (<code><mode>3 logcial expander): Generate
2900         more efficient code when the source can be trivially simplified.
2901
2902 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
2903
2904         * gimple-range-cache.cc (ranger_cache::range_of_def):  Calculate
2905         a range if global is not available.
2906         (ranger_cache::entry_range): Fallback to range_of_def.
2907         * gimple-range-cache.h (range_of_def): Adjust prototype.
2908
2909 2021-06-18  Andrew MacLeod  <amacleod@redhat.com>
2910
2911         PR tree-optimization/101014
2912         * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor
2913         value list.
2914         (ranger_cache::~ranger_cache): Ditto.
2915         (ranger_cache::enable_new_values): Delete.
2916         (ranger_cache::push_poor_value): Delete.
2917         (ranger_cache::range_of_def): Remove poor value processing.
2918         (ranger_cache::entry_range): Ditto.
2919         (ranger_cache::fill_block_cache): Ditto.
2920         * gimple-range-cache.h (class ranger_cache): Remove poor value members.
2921         * gimple-range.cc (gimple_ranger::range_of_expr): Remove call.
2922         * gimple-range.h (class gimple_ranger): Adjust.
2923
2924 2021-06-18  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
2925
2926         PR target/100856
2927         * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function
2928         derived from arm_canon_arch.
2929         (arm_canon_arch_option): Call it.
2930         (arm_canon_arch_multilib_option): New function.
2931         * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup.
2932         * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype.
2933         (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro.
2934         (MULTILIB_ARCH_CANONICAL_SPECS): New macro.
2935         (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS.
2936         * config/arm/arm.opt (mlibarch): New option.
2937         * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use
2938         of march on RHS with mlibarch.
2939
2940 2021-06-18  Marcel Vollweiler  <marcel@codesourcery.com>
2941
2942         * config.in: Regenerate.
2943         * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
2944         functions.
2945         * configure: Regenerate.
2946         * configure.ac: Fix for global_load assembler functions.
2947
2948 2021-06-18  Richard Biener  <rguenther@suse.de>
2949
2950         PR tree-optimization/101112
2951         * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition
2952         to lookup a pattern stmt def.
2953
2954 2021-06-18  Jakub Jelinek  <jakub@redhat.com>
2955
2956         PR middle-end/101062
2957         * stor-layout.c (finish_bitfield_layout): Don't add bitfield
2958         representatives in QUAL_UNION_TYPE.
2959
2960 2021-06-18  Andrew Pinski  <apinski@marvell.com>
2961
2962         * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
2963         Add counting of how many times it is done.
2964         (factor_out_conditional_conversion): Likewise.
2965         (match_simplify_replacement): Likewise.
2966         (value_replacement): Likewise.
2967         (spaceship_replacement): Likewise.
2968         (cond_store_replacement): Likewise.
2969         (cond_if_else_store_replacement_1): Likewise.
2970         (hoist_adjacent_loads): Likewise.
2971
2972 2021-06-18  Andrew Pinski  <apinski@marvell.com>
2973
2974         * tree-cfg.c (verify_gimple_assign_unary): Reject point and offset
2975         types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR.
2976         (verify_gimple_assign_binary): Reject point and offset types on
2977         MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR,
2978         FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR,
2979         FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR.
2980
2981 2021-06-18  Michael Meissner  <meissner@linux.ibm.com>
2982
2983         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA
2984         3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions.
2985         * config/rs6000/rs6000.md (s<minmax><mode>3, IEEE128 iterator):
2986         New insns.
2987
2988 2021-06-17  Aaron Sawdey  <acsawdey@linux.ibm.com>
2989
2990         * config/rs6000/genfusion.pl (gen_logical_addsubf): Add
2991         earlyclobber to alts 0/1.
2992         (gen_addadd): Add earlyclobber to alts 0/1.
2993         * config/rs6000/fusion.md: Regenerate file.
2994
2995 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
2996
2997         * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec.
2998
2999 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
3000
3001         * gimple-range-cache.cc: Comment cleanups.
3002         * gimple-range-gori.cc: Comment cleanups.
3003         * gimple-range.cc: Comment/spacing cleanups
3004         * value-range.h: Comment cleanups.
3005
3006 2021-06-17  H.J. Lu  <hjl.tools@gmail.com>
3007
3008         PR target/100704
3009         * calls.c (expand_call): Replace PUSH_ARGS with
3010         targetm.calls.push_argument (0).
3011         (emit_library_call_value_1): Likewise.
3012         * defaults.h (PUSH_ARGS): Removed.
3013         (PUSH_ARGS_REVERSED): Replace PUSH_ARGS with
3014         targetm.calls.push_argument (0).
3015         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
3016         (emit_push_insn): Pass the number bytes to push to
3017         targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0.
3018         * hooks.c (hook_bool_uint_true): New.
3019         * hooks.h (hook_bool_uint_true): Likewise.
3020         * rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with
3021         targetm.calls.push_argument (0).
3022         * target.def (push_argument): Add a targetm.calls hook.
3023         * targhooks.c (default_push_argument): New.
3024         * targhooks.h (default_push_argument): Likewise.
3025         * config/bpf/bpf.h (PUSH_ARGS): Removed.
3026         * config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New.
3027         * config/cr16/cr16.h (PUSH_ARGS): Removed.
3028         * config/i386/i386.c (ix86_push_argument): New.
3029         (TARGET_PUSH_ARGUMENT): Likewise.
3030         * config/i386/i386.h (PUSH_ARGS): Removed.
3031         * config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New.
3032         * config/m32c/m32c.h (PUSH_ARGS): Removed.
3033         * config/nios2/nios2.h (PUSH_ARGS): Likewise.
3034         * config/pru/pru.h (PUSH_ARGS): Likewise.
3035         * doc/tm.texi.in: Remove PUSH_ARGS documentation.  Add
3036         TARGET_PUSH_ARGUMENT hook.
3037         * doc/tm.texi: Regenerated.
3038
3039 2021-06-17  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3040
3041         PR target/97194
3042         * config/i386/i386-expand.c (expand_vector_set_var):
3043         Handle V2FS mode remapping.  Pass TARGET_MMX_WITH_SSE to
3044         ix86_expand_vector_init_duplicate.
3045         (ix86_expand_vector_init_duplicate): Emit insv_1 for
3046         QImode for !TARGET_PARTIAL_REG_STALL.
3047         * config/i386/predicates.md (vec_setm_mmx_operand): New predicate.
3048         * config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand
3049         as operand 2 predicate.  Call ix86_expand_vector_set_var
3050         for non-constant index operand.
3051         (vec_setv2si): Ditto.
3052         (vec_setv4hi): Ditto.
3053         (vec_setv8qi): ditto.
3054
3055 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
3056
3057         PR tree-optimization/100790
3058         * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz
3059         code.
3060
3061 2021-06-17  Martin Liska  <mliska@suse.cz>
3062
3063         * doc/invoke.texi: Use consistently -O1 instead of -O.
3064
3065 2021-06-17  Martin Liska  <mliska@suse.cz>
3066
3067         * gcov-io.h: Update documentation entry about string format.
3068
3069 2021-06-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
3070
3071         PR target/100871
3072         * config/s390/vecintrin.h (vec_doublee): Fix to use
3073           __builtin_s390_vflls.
3074         (vec_floate): Fix to use __builtin_s390_vflrd.
3075
3076 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3077
3078         * dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>.
3079         * dominance.h (get_dominated_to_depth): Likewise.
3080         (get_all_dominated_blocks): Likewise.
3081         * cfgcleanup.c (delete_unreachable_blocks): Adjust.
3082         * gcse.c (hoist_code): Likewise.
3083         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
3084         * tree-parloops.c (oacc_entry_exit_ok): Likewise.
3085         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3086         * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise.
3087
3088 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3089
3090         * dominance.c (get_dominated_by_region): Return auto_vec<basic_block>.
3091         * dominance.h (get_dominated_by_region): Likewise.
3092         * tree-cfg.c (gimple_duplicate_sese_region): Adjust.
3093         (gimple_duplicate_sese_tail): Likewise.
3094         (move_sese_region_to_fn): Likewise.
3095
3096 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3097
3098         * dominance.c (get_dominated_by): Return auto_vec<basic_block>.
3099         * dominance.h (get_dominated_by): Likewise.
3100         * auto-profile.c (afdo_find_equiv_class): Adjust.
3101         * cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise.
3102         * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
3103         * tree-cfg.c (test_linear_chain): Likewise.
3104         (test_diamond): Likewise.
3105
3106 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3107
3108         * cfgloop.h (get_loop_hot_path): Return auto_vec<basic_block>.
3109         * cfgloopanal.c (get_loop_hot_path): Likewise.
3110         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
3111
3112 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3113
3114         * cgraph.c (cgraph_node::collect_callers): Return
3115         auto_vec<cgraph_edge *>.
3116         * cgraph.h (cgraph_node::collect_callers): Likewise.
3117         * ipa-cp.c (create_specialized_node): Adjust.
3118         (decide_about_value): Likewise.
3119         (decide_whether_version_node): Likewise.
3120         * ipa-sra.c (process_isra_node_results): Likewise.
3121
3122 2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>
3123
3124         * vec.h (vl_ptr>::using_auto_storage): Handle null m_vec.
3125         (auto_vec<T, 0>::auto_vec): Define move constructor, and delete copy
3126         constructor.
3127         (auto_vec<T, 0>::operator=): Define move assignment and delete copy
3128         assignment.
3129
3130 2021-06-17  Aldy Hernandez  <aldyh@redhat.com>
3131
3132         * gimple-range.cc (debug_seed_ranger): New.
3133         (dump_ranger): New.
3134         (debug_ranger): New.
3135
3136 2021-06-17  Richard Biener   <rguenther@suse.de>
3137
3138         PR tree-optimization/54400
3139         * tree-vectorizer.h (enum slp_instance_kind): Add
3140         slp_inst_kind_bb_reduc.
3141         (reduction_fn_for_scalar_code): Declare.
3142         * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
3143         Check SLP_INSTANCE_KIND instead of looking at the
3144         representative.
3145         (vect_slp_analyze_instance_alignment): Likewise.
3146         * tree-vect-loop.c (reduction_fn_for_scalar_code): Export.
3147         * tree-vect-slp.c (vect_slp_linearize_chain): Split out
3148         chain linearization from vect_build_slp_tree_2 and generalize
3149         for the use of BB reduction vectorization.
3150         (vect_build_slp_tree_2): Adjust accordingly.
3151         (vect_optimize_slp): Elide permutes at the root of BB reduction
3152         instances.
3153         (vectorizable_bb_reduc_epilogue): New function.
3154         (vect_slp_prune_covered_roots): Likewise.
3155         (vect_slp_analyze_operations): Use them.
3156         (vect_slp_check_for_constructors): Recognize associatable
3157         chains for BB reduction vectorization.
3158         (vectorize_slp_instance_root_stmt): Generate code for the
3159         BB reduction epilogue.
3160
3161 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
3162
3163         * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with
3164         may_recompute_p.
3165         (gori_compute::may_recompute_p): New.
3166         (gori_compute::outgoing_edge_range_p): Perform recomputations.
3167         * gimple-range-gori.h (class gori_compute): Add prototype.
3168
3169 2021-06-17  Andrew MacLeod  <amacleod@redhat.com>
3170
3171         * gimple-range-cache.cc (ranger_cache::range_on_edge): Always return
3172         true when a range can be calculated.
3173         * gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p.
3174
3175 2021-06-16  Martin Sebor  <msebor@redhat.com>
3176
3177         * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete):
3178         Correct documented defaults.
3179
3180 2021-06-16  Andrew MacLeod  <amacleod@redhat.com>
3181
3182         * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize
3183         m_new_value_p directly.
3184
3185 2021-06-16  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3186
3187         PR target/89021
3188         * config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv):
3189         Handle 64bit modes for TARGET_SSE4_1.
3190         (expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3.
3191         (expand_vec_perm_even_odd_pack): Handle V4HI mode.
3192         (expand_vec_perm_even_odd_1) <case E_V4HImode>: Expand via
3193         expand_vec_perm_pshufb2 for TARGET_SSSE3 and via
3194         expand_vec_perm_even_odd_pack for TARGET_SSE4_1.
3195         * config/i386/mmx.md (mmx_packusdw): New insn pattern.
3196
3197 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
3198
3199         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>):
3200         Change to an expander that emits the correct instruction
3201         depending on endianness.
3202         (aarch64_<sur><addsub>hn<mode>_insn_le): Define.
3203         (aarch64_<sur><addsub>hn<mode>_insn_be): Define.
3204
3205 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
3206
3207         * config/aarch64/aarch64-simd-builtins.def: Split generator
3208         for aarch64_<su>qmovn builtins into scalar and vector
3209         variants.
3210         * config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le):
3211         Define.
3212         (aarch64_<su>qmovn<mode>_insn_be): Define.
3213         (aarch64_<su>qmovn<mode>): Split into scalar and vector
3214         variants. Change vector variant to an expander that emits the
3215         correct instruction depending on endianness.
3216
3217 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
3218
3219         * config/aarch64/aarch64-simd-builtins.def: Split generator
3220         for aarch64_sqmovun builtins into scalar and vector variants.
3221         * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>):
3222         Split into scalar and vector variants. Change vector variant
3223         to an expander that emits the correct instruction depending
3224         on endianness.
3225         (aarch64_sqmovun<mode>_insn_le): Define.
3226         (aarch64_sqmovun<mode>_insn_be): Define.
3227
3228 2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>
3229
3230         * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le):
3231         Define - modeling zero-high-half semantics.
3232         (aarch64_xtn<mode>): Change to an expander that emits the
3233         appropriate instruction depending on endianness.
3234         (aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half
3235         semantics.
3236         (aarch64_xtn2<mode>_le): Rename to...
3237         (aarch64_xtn2<mode>_insn_le): This.
3238         (aarch64_xtn2<mode>_be): Rename to...
3239         (aarch64_xtn2<mode>_insn_be): This.
3240         (vec_pack_trunc_<mode>): Emit truncation instruction instead
3241         of aarch64_xtn.
3242         * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode
3243         attribute iterator.
3244
3245 2021-06-16  Martin Jambor  <mjambor@suse.cz>
3246
3247         PR tree-optimization/100453
3248         * tree-sra.c (create_access): Disqualify any const candidates
3249         which are written to.
3250         (sra_modify_expr): Do not store sub-replacements back to a const base.
3251         (handle_unscalarized_data_in_subtree): Likewise.
3252         (sra_modify_assign): Likewise.  Earlier, use TREE_READONLy test
3253         instead of constant_decl_p.
3254
3255 2021-06-16  Jakub Jelinek  <jakub@redhat.com>
3256
3257         PR middle-end/101062
3258         * stor-layout.c (finish_bitfield_representative): For fields in unions
3259         assume nextf is always NULL.
3260         (finish_bitfield_layout): Compute bit field representatives also in
3261         unions, but handle it as if each bitfield was the only field in the
3262         aggregate.
3263
3264 2021-06-16  Richard Biener  <rguenther@suse.de>
3265
3266         PR tree-optimization/101088
3267         * tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for
3268         supported refs on edges.  Do not assert same ref but
3269         different kind stores are unsuported but mark them so.
3270         (hoist_memory_references): Only look for supported refs
3271         on exits.
3272
3273 2021-06-16  Roger Sayle  <roger@nextmovesoftware.com>
3274
3275         PR rtl-optimization/46235
3276         * config/i386/i386.md: New define_split for bt followed by cmov.
3277         (*bt<mode>_setcqi): New define_insn_and_split for bt followed by setc.
3278         (*bt<mode>_setncqi): New define_insn_and_split for bt then setnc.
3279         (*bt<mode>_setnc<mode>): New define_insn_and_split for bt followed
3280         by setnc with zero extension.
3281
3282 2021-06-16  Richard Biener  <rguenther@suse.de>
3283
3284         PR tree-optimization/101083
3285         * tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get
3286         vectype as argument.
3287         (vect_build_slp_tree_2): Adjust.
3288
3289 2021-06-15  Martin Sebor  <msebor@redhat.com>
3290
3291         PR middle-end/100876
3292         * builtins.c: (gimple_call_return_array): Account for size_t
3293         mangling as either unsigned int or unsigned long
3294
3295 2021-06-15  Jeff Law  <jeffreyalaw@gmail.com>
3296
3297         * compare-elim.c (try_eliminate_compare): Run DCE to clean things
3298         up before eliminating comparisons.
3299
3300 2021-06-15  Aldy Hernandez  <aldyh@redhat.com>
3301
3302         * range-op.cc (operator_bitwise_or::wi_fold): Make sure
3303         nonzero|X is nonzero.
3304         (range_op_bitwise_and_tests): Add tests for above.
3305
3306 2021-06-15  Carl Love  <cel@us.ibm.com>
3307
3308         PR target/101022
3309         * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the
3310         enum definition.
3311         (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2
3312         definitions.
3313
3314 2021-06-15  Tobias Burnus  <tobias@codesourcery.com>
3315
3316         PR fortran/92568
3317         * gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET.
3318         (struct gimplify_omp_ctx): Extend defaultmap array by one.
3319         (new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET].
3320         (omp_notice_variable): Update type classification for Fortran.
3321         (gimplify_scan_omp_clauses): Update calls for new argument; handle
3322         GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY.
3323         * langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument.
3324         * langhooks.c (lhd_omp_scalar_p): Likewise.
3325         (LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
3326         (LANG_HOOKS_DECLS): Add them.
3327         * langhooks.h (struct lang_hooks_for_decls): Add new hooks, update
3328         omp_scalar_p pointer type to include the new bool argument.
3329
3330 2021-06-15  David Malcolm  <dmalcolm@redhat.com>
3331
3332         * doc/analyzer.texi
3333         (Special Functions for Debugging the Analyzer): Add
3334         __analyzer_dump_capacity.
3335
3336 2021-06-15  Jakub Jelinek  <jakub@redhat.com>
3337
3338         PR target/101046
3339         * expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR,
3340         case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode.
3341
3342 2021-06-15  Richard Biener  <rguenther@suse.de>
3343
3344         * cfgloopanal.c (mark_irreducible_loops): Use a dominance
3345         check to identify loop latches.
3346         * cfgloop.c (verify_loop_structure): Likewise.
3347         * loop-init.c (apply_loop_flags): Allow marked irreducible
3348         regions even with multiple latches.
3349         * predict.c (rebuild_frequencies): Simplify.
3350
3351 2021-06-15  Richard Biener  <rguenther@suse.de>
3352
3353         * tree-ssa-threadupdate.c
3354         (jump_thread_path_registry::mark_threaded_blocks): Assert we
3355         have marked irreducible regions.
3356
3357 2021-06-14  Martin Sebor  <msebor@redhat.com>
3358
3359         PR c++/100876
3360         * builtins.c (gimple_call_return_array): Check for attribute fn spec.
3361         Handle calls to placement new.
3362         (ndecl_dealloc_argno): Avoid placement delete.
3363
3364 2021-06-14  Peter Bergner  <bergner@linux.ibm.com>
3365
3366         PR target/100777
3367         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use
3368         create_tmp_reg_or_ssa_name().
3369
3370 2021-06-14  Andrew MacLeod  <amacleod@redhat.com>
3371
3372         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
3373         (ranger_cache::enable_new_values): Set to specified value and
3374         return the old value.
3375         (ranger_cache::disable_new_values): Delete.
3376         (ranger_cache::fill_block_cache): Disable non 1st order derived
3377         poor values.
3378         * gimple-range-cache.h (ranger_cache): Adjust prototypes.
3379         * gimple-range.cc (gimple_ranger::range_of_expr): Adjust.
3380
3381 2021-06-14  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3382
3383         PR target/101058
3384         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
3385         Return true early when testing with V2HImode.
3386         * config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1.
3387
3388 2021-06-14  Christophe Lyon  <christophe.lyon@linaro.org>
3389
3390         * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): New pattern.
3391         (mve_vec_unpack<US>_hi_<mode>): New pattern.
3392         (@mve_vec_pack_trunc_lo_<mode>): New pattern.
3393         (mve_vmovntq_<supf><mode>): Prefix with '@'.
3394         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move to
3395         vec-common.md.
3396         (vec_unpack<US>_lo_<mode>): Likewise.
3397         (vec_pack_trunc_<mode>): Rename to
3398         neon_quad_vec_pack_trunc_<mode>.
3399         * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): New
3400         pattern.
3401         (vec_unpack<US>_lo_<mode>): New.
3402         (vec_pack_trunc_<mode>): New.
3403
3404 2021-06-14  Richard Biener  <rguenther@suse.de>
3405
3406         PR tree-optimization/100934
3407         * tree-ssa-dom.c (pass_dominator::execute): Properly
3408         mark irreducible regions.
3409
3410 2021-06-14  Martin Liska  <mliska@suse.cz>
3411
3412         * doc/invoke.texi: Put r{...} on the same line as @item.
3413
3414 2021-06-14  Martin Liska  <mliska@suse.cz>
3415
3416         * doc/invoke.texi: Add missing newline.
3417
3418 2021-06-14  Martin Liska  <mliska@suse.cz>
3419
3420         * doc/invoke.texi: Remove '+' charasters.
3421
3422 2021-06-14  Claudiu Zissulescu  <claziss@synopsys.com>
3423
3424         * config.gcc (arc): Add support for with_cpu option.
3425         * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu.
3426
3427 2021-06-14  Richard Biener  <rguenther@suse.de>
3428
3429         PR tree-optimization/101031
3430         * tree-ssa-strlen.c (maybe_invalidate): Increment max_size
3431         instead of size when accounting for a possibly string
3432         terminating nul.
3433
3434 2021-06-14  Martin Liska  <mliska@suse.cz>
3435
3436         * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[].
3437
3438 2021-06-14  Aldy Hernandez  <aldyh@redhat.com>
3439
3440         * value-query.cc (gimple_range_global): Call get_range_global
3441         if called after inlining.
3442
3443 2021-06-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3444
3445         PR target/101021
3446         * config/i386/i386-expand.c (expand_vec_perm_pshufb):
3447         Emit constant permutation insn directly from here.
3448
3449 2021-06-13  Trevor Saunders  <tbsaunde@tbsaunde.org>
3450
3451         * attribs.c (find_attribute_namespace): Iterate over vec<> with
3452         range based for.
3453         * auto-profile.c (afdo_find_equiv_class): Likewise.
3454         * gcc.c (do_specs_vec): Likewise.
3455         (do_spec_1): Likewise.
3456         (driver::set_up_specs): Likewise.
3457         * gimple-loop-jam.c (any_access_function_variant_p): Likewise.
3458         * gimple-ssa-store-merging.c (compatible_load_p): Likewise.
3459         (imm_store_chain_info::try_coalesce_bswap): Likewise.
3460         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
3461         (get_location_for_stmts): Likewise.
3462         * graphite-poly.c (print_iteration_domains): Likewise.
3463         (free_poly_bb): Likewise.
3464         (remove_gbbs_in_scop): Likewise.
3465         (free_scop): Likewise.
3466         (dump_gbb_cases): Likewise.
3467         (dump_gbb_conditions): Likewise.
3468         (print_pdrs): Likewise.
3469         (print_scop): Likewise.
3470         * ifcvt.c (cond_move_process_if_block): Likewise.
3471         * lower-subreg.c (decompose_multiword_subregs): Likewise.
3472         * regcprop.c (pass_cprop_hardreg::execute): Likewise.
3473         * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
3474         * sel-sched-dump.c (dump_insn_vector): Likewise.
3475         * store-motion.c (store_ops_ok): Likewise.
3476         (store_killed_in_insn): Likewise.
3477         * timevar.c (timer::named_items::print): Likewise.
3478         * tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise.
3479         (cleanup_tree_cfg_noloop): Likewise.
3480         * tree-data-ref.c (dump_data_references): Likewise.
3481         (print_dir_vectors): Likewise.
3482         (print_dist_vectors): Likewise.
3483         (dump_data_dependence_relations): Likewise.
3484         (dump_dist_dir_vectors): Likewise.
3485         (dump_ddrs): Likewise.
3486         (create_runtime_alias_checks): Likewise.
3487         (free_subscripts): Likewise.
3488         (save_dist_v): Likewise.
3489         (save_dir_v): Likewise.
3490         (invariant_access_functions): Likewise.
3491         (same_access_functions): Likewise.
3492         (access_functions_are_affine_or_constant_p): Likewise.
3493         (find_data_references_in_stmt): Likewise.
3494         (graphite_find_data_references_in_stmt): Likewise.
3495         (free_dependence_relations): Likewise.
3496         (free_data_refs): Likewise.
3497         * tree-inline.c (copy_debug_stmts): Likewise.
3498         * tree-into-ssa.c (dump_currdefs): Likewise.
3499         (rewrite_update_phi_arguments): Likewise.
3500         * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
3501         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
3502         Likewise.
3503         (vect_slp_analyze_node_dependences): Likewise.
3504         (vect_slp_analyze_instance_dependence): Likewise.
3505         (vect_record_base_alignments): Likewise.
3506         (vect_get_peeling_costs_all_drs): Likewise.
3507         (vect_peeling_supportable): Likewise.
3508         * tree-vectorizer.c (vec_info::~vec_info): Likewise.
3509         (vec_info::free_stmt_vec_infos): Likewise.
3510
3511 2021-06-13  Jeff Law  <jeffreyalaw@gmail.com>
3512
3513         * config/h8300/logical.md (<code>qi3_1<cczn>): New pattern.
3514         (andqi3_1<cczn>): Removed.
3515         (<ors>qi3_1): Do not split for IOR/XOR a single bit.
3516         (H8/SX bit logicals): Split out from other patterns.
3517         * config/h8300/multiply.md (mulqihi3_const<cczn>): Renamed from
3518         mulqihi3_const_clobber_flags.
3519         (mulqihi3<cczn>, mulhisi3_const<cczn>, mulhisi3<cczn>): Similarly
3520
3521 2021-06-13  H.J. Lu  <hjl.tools@gmail.com>
3522
3523         PR target/101023
3524         * config/i386/i386.c (ix86_expand_prologue): Set red_zone_used
3525         to true if red zone is used.
3526         (ix86_output_indirect_jmp): Replace ix86_red_zone_size with
3527         ix86_red_zone_used.
3528         * config/i386/i386.h (machine_function): Add red_zone_used.
3529         (ix86_red_zone_size): Removed.
3530         (ix86_red_zone_used): New.
3531         * config/i386/i386.md (peephole2 patterns): Replace
3532         ix86_red_zone_size with ix86_red_zone_used.
3533
3534 2021-06-12  Jason Merrill  <jason@redhat.com>
3535
3536         * doc/extend.texi (unused variable attribute): Applies to
3537         structure fields as well.
3538
3539 2021-06-12  Eugene Rozenfeld  <erozen@microsoft.com>
3540
3541         * auto-profile.c (read_profile): fix a typo in an error string
3542
3543 2021-06-11  Thomas Schwinge  <thomas@codesourcery.com>
3544
3545         * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
3546         default argument.
3547         * tree-pretty-print.c (dump_omp_clauses): Update.
3548         (dump_generic_node) <OMP_CLAUSE>: Use it.
3549
3550 2021-06-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
3551
3552         PR target/101016
3553         * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0,
3554         int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for
3555         the polymorphic variants matching code.
3556         (__arm_vld1q_z): Likewise.
3557         (__arm_vld2q): Likewise.
3558         (__arm_vld4q): Likewise.
3559         (__arm_vldrbq_gather_offset): Likewise.
3560         (__arm_vldrbq_gather_offset_z): Likewise.
3561
3562 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
3563
3564         PR tree-optimization/96392
3565         * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype.
3566
3567 2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>
3568
3569         PR tree-optimization/96392
3570         * fold-const.c (fold_real_zero_addition_p): Take both arguments
3571         of the addition or subtraction, not just the zero.  Use this
3572         other argument in tests for signaling NaNs and signed zeros.
3573         (tree_expr_maybe_real_minus_zero_p): New predicate.
3574         * fold-const.h (fold_real_zero_addition_p): Update prototype.
3575         (tree_expr_maybe_real_minus_zero_p): New function prototype.
3576         * match.pd: Update calls to fold_real_zero_addition_p.
3577         Replace HONOR_NANS with tree_expr_maybe_nan_p.
3578         Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p.
3579         Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p.
3580         * tree-ssa-reassoc.c (eliminate_using_constants): Update
3581         call to fold_real_zero_addition_p.
3582
3583 2021-06-11  Richard Biener  <rguenther@suse.de>
3584
3585         PR tree-optimization/101025
3586         * tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process
3587         all refs that require dependence checking.
3588
3589 2021-06-11  Richard Biener  <rguenther@suse.de>
3590
3591         PR tree-optimization/101028
3592         * tree-vect-slp.c (vect_build_slp_tree_2): When SLP
3593         reassoc discovery fails fatally, mark appropriate lanes
3594         in matches[] so.
3595
3596 2021-06-11  Richard Biener  <rguenther@suse.de>
3597
3598         PR tree-optimization/101026
3599         * tree-vect-slp.c (vect_build_slp_tree_2): Make sure we
3600         have a representative for the associated chain nodes.
3601
3602 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
3603
3604         PR rtl-optimization/101008
3605         * simplify-rtx.c (relational_result): New function.
3606         (simplify_logical_relational_operation,
3607         simplify_relational_operation): Use it.
3608
3609 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
3610
3611         PR target/101007
3612         * config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2.
3613
3614 2021-06-11  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3615
3616         PR target/101021
3617         * config/i386/i386-expand.c (expand_vec_perm_pshufb): Return
3618         false if the permutation can be implemented with constant
3619         permutation instruction in wider mode.
3620         (canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb.
3621         Handle V8QImode and V4HImode.
3622
3623 2021-06-11  Martin Liska  <mliska@suse.cz>
3624
3625         PR gcov-profile/100788
3626         * common.opt: Add new option.
3627         * coverage.c (coverage_begin_function): Emit warning instead on
3628         the internal compiler error.
3629         * doc/invoke.texi: Document the option.
3630         * toplev.c (process_options): Enable it by default.
3631
3632 2021-06-11  Richard Biener  <rguenther@suse.de>
3633
3634         PR middle-end/101009
3635         * tree-data-ref.c (build_classic_dist_vector_1): Make sure
3636         to set *init_b to true when we encounter a constant equal
3637         index pair.
3638         (compute_affine_dependence): Also dump the actual DR_REF.
3639
3640 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
3641
3642         PR tree-optimization/100984
3643         * gimple-ssa-evrp.c  (ssa_equiv_stack): Use auto_vec for
3644         replacements table.
3645         (ssa_equiv_stack::~ssa_equiv_stack): Remove.
3646
3647 2021-06-11  Kewen Lin  <linkw@linux.ibm.com>
3648
3649         * config/rs6000/rs6000.md
3650         (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New
3651         define_insn_and_split.
3652
3653 2021-06-11  Richard Biener  <rguenther@suse.de>
3654
3655         * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort
3656         to sort operands of the associative chain.
3657
3658 2021-06-11  Richard Biener  <rguenther@suse.de>
3659
3660         * system.h (gcc_stablesort_r): Declare.
3661         * sort.cc (gcc_sort_r): Support stable sort.
3662         (gcc_stablesort_r): Define.
3663         * vec.h (vec<>::stablesort): Add.
3664
3665 2021-06-10  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3666
3667         PR target/89021
3668         * config/i386/i386-expand.c (ix86_split_mmx_punpck):
3669         Handle V2SF mode.  Emit SHUFPS to fixup unpack-high for V2SF mode.
3670         (expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1.
3671         (expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3.
3672         (expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1.
3673         (expand_vec_perm_interleave2): Handle 64bit modes.
3674         (expand_vec_perm_even_odd_pack): Handle V8QI mode.
3675         (expand_vec_perm_even_odd_1): Ditto.
3676         (ix86_vectorize_vec_perm_const): Ditto.
3677         * config/i386/i386.md (UNSPEC_PSHUFB): Move from ...
3678         * config/i386/sse.md: ... here.
3679         * config/i386/mmx.md (*vec_interleave_lowv2sf):
3680         New insn_and_split pattern.
3681         (*vec_interleave_highv2sf): Ditto.
3682         (mmx_pshufbv8qi3): New insn pattern.
3683         (*mmx_pblendw): Ditto.
3684
3685 2021-06-10  Peter Bergner  <bergner@linux.ibm.com>
3686
3687         * config/rs6000/rs6000-builtin.def (build_pair): New built-in.
3688         (build_acc): Likewise.
3689         * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble
3690         source operands in little-endian mode.
3691         (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR.
3692         (mma_init_builtins): Likewise.
3693         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness
3694         ordering for the MMA assemble and build source operands.
3695         * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair):
3696         Document.
3697         (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove
3698         documentation.
3699
3700 2021-06-10  Jeff Law  <jeffreyalaw@gmail.com>
3701
3702         * config/h8300/h8300.c (select_cc_mode): Handle MEM.  Use
3703         REG_P.
3704         * config/h8300/extensions.md: Replace _clobber_flags patterns
3705         with <cczn>.
3706
3707 2021-06-10  Robin Dapp  <rdapp@linux.ibm.com>
3708
3709         * config/s390/vector.md (vcond_mask_<mode><mode>): Change to
3710         (vcond_mask_<mode><tointvec>): this.
3711
3712 2021-06-10  Andrew Stubbs  <ams@codesourcery.com>
3713             Thomas Schwinge  <thomas@codesourcery.com>
3714
3715         * omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into...
3716         (BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these.
3717         * gimple.h (enum gf_mask): Split
3718         'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into
3719         'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and
3720         'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'.
3721         (is_gimple_omp_oacc): Update.
3722         * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
3723         * gimplify.c (gimplify_omp_target_update): Likewise.
3724         * omp-expand.c (expand_omp_target, build_omp_regions_1)
3725         (omp_make_gimple_edges): Likewise.
3726         * omp-low.c (check_omp_nesting_restrictions, lower_omp_target):
3727         Likewise.
3728
3729 2021-06-10  Aldy Hernandez  <aldyh@redhat.com>
3730
3731         * value-query.cc (value_query::value_on_edge): Rename name to
3732         expr.
3733         (range_query::range_on_edge): Same.
3734         (range_query::value_of_expr): Same.
3735         (range_query::value_on_edge): Same.
3736         * value-query.h (class value_query): Same.
3737         (class range_query): Same.
3738
3739 2021-06-10  Richard Biener  <rguenther@suse.de>
3740
3741         PR tree-optimization/101003
3742         * tree-vect-slp.c (vect_build_slp_tree_2): Appropriately
3743         use the pattern stmt defs when linearizing a chain.
3744
3745 2021-06-10  Jakub Jelinek  <jakub@redhat.com>
3746
3747         PR debug/100852
3748         * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use
3749         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
3750
3751 2021-06-10  Clement Chigot  <clement.chigot@atos.net>
3752
3753         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive.
3754         * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
3755
3756 2021-06-09  Andrew Pinski  <apinski@marvell.com>
3757
3758         PR tree-optimization/100925
3759         * match.pd (a ? CST1 : CST2): Limit transformations
3760         that would produce a negative to integeral types only.
3761         Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also.
3762
3763 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
3764
3765         Revert:
3766         2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
3767
3768         * doc/tm.texi: Correctly update.
3769
3770 2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>
3771
3772         * doc/tm.texi: Correctly update.
3773
3774 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
3775
3776         PR other/100735
3777         * doc/tm.texi.in (Trampolines): Add a missing blank line.
3778
3779 2021-06-09  Paul Eggert  <eggert@cs.ucla.edu>
3780
3781         PR other/100735
3782         * doc/invoke.texi (Code Gen Options); Document that -fno-trampolines
3783         and -ftrampolines work only with Ada.
3784         * doc/tm.texi.in (Trampolines): Likewise.
3785         * doc/tm.texi: Regenerated.
3786
3787 2021-06-09  Carl Love  <cel@us.ibm.com>
3788
3789         * config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq):
3790         Add define for new builtins.
3791         * config/rs6000/altivec.md(altivec_vreveti2): Add define_expand.
3792         * config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL):  Add
3793         overloaded builtin definitions.
3794         (VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D,
3795         VSIGNEXTSD2Q):  Add builtin expansions.
3796         (SIGNEXT): Add P10 overload definition.
3797         * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL,
3798         P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions.
3799         * config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn.
3800         (vsignextend_v2di_v1ti, vsignextend_qi_<mode>, vsignextend_hi_<mode>,
3801         vsignextend_si_v2di)[VIlong]: Add define_expand.
3802         Make define_insn vsx_sign_extend_si_v2di visible.
3803         * doc/extend.texi:  Add documentation for the vec_signexti,
3804         vec_signextll builtins and vec_signextq.
3805
3806 2021-06-09  Carl Love  <cel@us.ibm.com>
3807
3808         * config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf,
3809         __floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw,
3810         __floattikf_sw, __floatuntikf_sw respectively.
3811         * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
3812         fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add
3813         define_insn for mode IEEE 128.
3814
3815 2021-06-09  Carl Love  <cel@us.ibm.com>
3816
3817         * config/rs6000/altivec.md (altivec_vslq, altivec_vsrq):
3818         Rename to altivec_vslq_<mode>, altivec_vsrq_<mode>, mode VEC_TI.
3819         * config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md.
3820         (vashlv1ti3): Change to vashl<mode>3, mode VEC_TI.
3821         (vlshrv1ti3): Change to vlshr<mode>3, mode VEC_TI.
3822         * config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update
3823         uses of VSX_TI to VEC_TI.
3824
3825 2021-06-09  Carl Love  <cel@us.ibm.com>
3826
3827         * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns.
3828
3829 2021-06-09  Carl Love  <cel@us.ibm.com>
3830
3831         * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new
3832         builtins.
3833         * config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD,
3834         UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs.
3835         (altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud,
3836         altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq,
3837         altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm,
3838         altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq,
3839         altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New
3840         define_insn.
3841         (vec_widen_umult_even_v2di, vec_widen_smult_even_v2di,
3842         vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi,
3843         altivec_vrlqnm): New define_expands.
3844         * config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P,
3845         VCMPGTUT_P): Add macro expansions.
3846         (BU_P10V_AV_P): Add builtin predicate definition.
3847         (VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI,
3848         CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P,
3849         VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ,
3850         VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI,
3851         MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions.
3852         (VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions.
3853         * config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT,
3854         P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI,
3855         P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST,
3856         P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI,
3857         P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI,
3858         P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD,
3859         P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD,
3860         P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS,
3861         P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI,
3862         P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ,
3863         P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ,
3864         P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P,
3865         P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P,
3866         P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET,
3867         P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P,
3868         P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI,
3869         P10V_BUILTIN_MODU_V1TI):
3870         New overloaded definitions.
3871         (rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT,
3872         P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI,
3873         P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT,
3874         P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI,
3875         P10V_BUILTIN_CMPLE_U1TI]: New case statements.
3876         (rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]:
3877         New assignments.
3878         (altivec_init_builtins): New E_V1TImode case statement.
3879         (builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD,
3880         P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI,
3881         P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI,
3882         P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements.
3883         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode,
3884         E_V1TImode]: New case statements.
3885         * config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum
3886         value RS6000_BTI_bool_V1TI.
3887         * config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti,
3888         vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti,
3889         vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p,
3890         vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3,
3891         vlshrv1ti3, vashrv1ti3): New define_expands.
3892         * config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ,
3893         UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ,
3894         UNSPEC_VSX_MODUQ): New unspecs.
3895         (mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti,
3896         vsx_diveu_v1ti, vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New
3897         define_insns.
3898         (vcmpnet): New define_expand.
3899         * doc/extend.texi: Add documentation for the new builtins vec_rl,
3900         vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo,
3901         vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt,
3902         vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt,
3903         vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt,
3904         vec_any_ge, vec_any_le.
3905
3906 2021-06-09  Carl Love  <cel@us.ibm.com>
3907
3908         * config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix
3909         bug in argument generation.
3910
3911 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
3912
3913         * config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S.
3914         (VCLZQ): Remove.
3915         * config/arm/mve.md (mve_vclzq_<supf><mode>): Add '@' prefix,
3916         remove <supf> iterator.
3917         (mve_vclzq_u<mode>): New.
3918         * config/arm/neon.md (clz<mode>2): Rename to neon_vclz<mode>.
3919         (neon_vclz<mode): Move to ...
3920         * config/arm/unspecs.md (VCLZQ_U, VCLZQ_S): Remove.
3921         * config/arm/vec-common.md: ... here. Add support for MVE.
3922
3923 2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>
3924
3925         * config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'.
3926         (@mve_vrhaddq_<supf><mode): Likewise.
3927         * config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise.
3928         * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
3929         (avg<mode>3_ceil", uavg<mode>3_ceil): New patterns.
3930
3931 2021-06-09  imba-tjd  <109224573@qq.com>
3932
3933         * doc/invoke.texi: Fix typo.
3934
3935 2021-06-09  Roger Sayle  <roger@nextmovesoftware.com>
3936
3937         PR middle-end/53267
3938         * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]:
3939         Support evaluation of fmod/fmodf/fmodl at compile-time.
3940
3941 2021-06-09  Richard Biener  <rguenther@suse.de>
3942
3943         PR tree-optimization/100981
3944         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
3945         gimple_get_lhs to also handle calls.
3946         * tree-vect-slp-patterns.c (complex_pattern::build): Transfer
3947         reduction info.
3948
3949 2021-06-09  Richard Biener  <rguenther@suse.de>
3950
3951         PR tree-optimization/97832
3952         * tree-vectorizer.h (_slp_tree::failed): New.
3953         * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
3954         failed member.
3955         (_slp_tree::~_slp_tree): Free failed.
3956         (vect_build_slp_tree): Retain failed nodes and record
3957         matches in them, copying that back out when running
3958         into a cached fail.  Dump start and end of discovery.
3959         (dt_sort_cmp): New.
3960         (vect_build_slp_tree_2): Handle associatable chains
3961         together doing more aggressive operand swapping.
3962
3963 2021-06-09  H.J. Lu  <hjl.tools@gmail.com>
3964
3965         PR target/100896
3966         * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and
3967         GNU targets.
3968         * doc/install.texi: Require glibc 2.1 and binutils 2.12 for
3969         Linux and GNU targets.
3970
3971 2021-06-09  Richard Biener  <rguenther@suse.de>
3972
3973         * tree-vect-stmts.c (vect_is_simple_use): Always get dt
3974         from the stmt.
3975
3976 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
3977
3978         * config/arc/arc.md (loop_end): Change it to
3979         define_insn_and_split.
3980
3981 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
3982
3983         * config/arc/arc.md (maddhisi4): Use VMAC2H instruction.
3984         (machi): New pattern.
3985         (umaddhisi4): Use VMAC2HU instruction.
3986         (umachi): New pattern.
3987
3988 2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
3989
3990         * config/arc/arc-protos.h (arc_split_move_p): New prototype.
3991         * config/arc/arc.c (arc_split_move_p): New function.
3992         (arc_split_move): Clean up.
3993         * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p.
3994         (movdf_insn): Likewise.
3995         * config/arc/simdext.md (mov<VWH>_insn): Likewise.
3996
3997 2021-06-09  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3998
3999         PR target/100936
4000         * config/i386/i386.c (print_operand_address_as): Rename "no_rip"
4001         argument to "raw".  Do not emit segment overrides when "raw" is true.
4002
4003 2021-06-09  Martin Liska  <mliska@suse.cz>
4004
4005         * doc/gcov.texi: Create a proper JSON files.
4006         * doc/invoke.texi: Remove dots in order to make it a valid
4007         JSON object.
4008
4009 2021-06-09  Xionghu Luo  <luoxhu@linux.ibm.com>
4010
4011         * config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New.
4012         (insn_is_load_p): Use pattern_is_rotate64.
4013         (insn_is_swap_p): Likewise.
4014         (quad_aligned_load_p): Likewise.
4015         (const_load_sequence_p): Likewise.
4016         (replace_swapped_aligned_load): Likewise.
4017         (recombine_lvx_pattern): Likewise.
4018         (recombine_stvx_pattern): Likewise.
4019
4020 2021-06-09  Andrew MacLeod  <amacleod@redhat.com>
4021
4022         * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a
4023         fur_stmt source record.
4024         * gimple-range.cc (fur_source::get_operand): Generic range query.
4025         (fur_source::get_phi_operand): New.
4026         (fur_source::register_dependency): New.
4027         (fur_source::query): New.
4028         (class fur_edge): New.  Edge source for operands.
4029         (fur_edge::fur_edge): New.
4030         (fur_edge::get_operand): New.
4031         (fur_edge::get_phi_operand): New.
4032         (fur_edge::query): New.
4033         (fur_stmt::fur_stmt): New.
4034         (fur_stmt::get_operand): New.
4035         (fur_stmt::get_phi_operand): New.
4036         (fur_stmt::query): New.
4037         (class fur_depend): New.  Statement source and process dependencies.
4038         (fur_depend::fur_depend): New.
4039         (fur_depend::register_dependency): New.
4040         (class fur_list): New.  List source for operands.
4041         (fur_list::fur_list): New.
4042         (fur_list::get_operand): New.
4043         (fur_list::get_phi_operand): New.
4044         (fold_range): New.  Instantiate appropriate fur_source class and fold.
4045         (fold_using_range::range_of_range_op): Use new API.
4046         (fold_using_range::range_of_address): Ditto.
4047         (fold_using_range::range_of_phi): Ditto.
4048         (imple_ranger::fold_range_internal): Use fur_depend class.
4049         (fold_using_range::range_of_ssa_name_with_loop_info): Use new API.
4050         * gimple-range.h (class fur_source): Now a base class.
4051         (class fur_stmt): New.
4052         (fold_range): New prototypes.
4053         (fur_source::fur_source): Delete.
4054
4055 2021-06-08  Andrew Pinski  <apinski@marvell.com>
4056
4057         PR tree-optimization/25290
4058         * tree-ssa-phiopt.c (xor_replacement): Delete.
4059         (tree_ssa_phiopt_worker): Delete use of xor_replacement.
4060         (match_simplify_replacement): Allow one cheap preparation
4061         statement that can be moved to before the if.
4062
4063 2021-06-08  Pat Haugen  <pthaugen@linux.ibm.com>
4064
4065         * config/rs6000/power10.md (power10-fused-load, power10-fused-store,
4066         power10-fused_alu, power10-fused-vec, power10-fused-branch): New.
4067
4068 2021-06-08  Jeff Law  <jeffreyalaw@gmail.com>
4069
4070         * config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split.
4071         Create length attribute on define_insn_and_split.  Only split for cases which we
4072         know will use AND.
4073         (andqi3_1<cczn>): Renamed from andqi3_1_clobber_flags.  Only handle AND here and
4074         fix length computation.
4075         (b<code><mode>msx): Combine QImode and HImode H8/SX patterns using iterator.
4076
4077 2021-06-08  Richard Biener  <rguenther@suse.de>
4078
4079         PR tree-optimization/100923
4080         * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to
4081         the operand vector to be valueized.
4082         (valueize_refs): Likewise.
4083         (valueize_shared_reference_ops_from_ref): Adjust.
4084         (valueize_shared_reference_ops_from_call): Likewise.
4085         (vn_reference_lookup_3): Likewise.
4086         (vn_reference_lookup_pieces): Likewise.  Re-valueize
4087         with honoring availability when we are about to create
4088         the ao_ref and valueized before.
4089         (vn_reference_lookup): Likewise.
4090         (vn_reference_insert_pieces): Adjust.
4091
4092 2021-06-08  Richard Biener  <rguenther@suse.de>
4093
4094         * tree-vectorizer.h (_slp_instance::root_stmt): Change to...
4095         (_slp_instance::root_stmts): ... a vector.
4096         (SLP_INSTANCE_ROOT_STMT): Rename to ...
4097         (SLP_INSTANCE_ROOT_STMTS): ... this.
4098         (slp_root::root): Change to...
4099         (slp_root::roots): ... a vector.
4100         (slp_root::slp_root): Adjust.
4101         * tree-vect-slp.c (_slp_instance::location): Adjust.
4102         (vect_free_slp_instance): Release the root stmt vector.
4103         (vect_build_slp_instance): Adjust.
4104         (vect_analyze_slp): Likewise.
4105         (_bb_vec_info::~_bb_vec_info): Likewise.
4106         (vect_slp_analyze_operations): Likewise.
4107         (vect_bb_vectorization_profitable_p): Likewise.  Adjust
4108         costs for the root stmt.
4109         (vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs
4110         as root stmts.
4111         (vect_slp_analyze_bb_1): Simplify by marking all root stmts
4112         as pure_slp.
4113         (vectorize_slp_instance_root_stmt): Adjust.
4114         (vect_schedule_slp): Likewise.
4115
4116 2021-06-08  Aldy Hernandez  <aldyh@redhat.com>
4117
4118         * gimple-ssa-evrp.c (class ssa_equiv_stack): New.
4119         (ssa_equiv_stack::ssa_equiv_stack): New.
4120         (ssa_equiv_stack::~ssa_equiv_stack): New.
4121         (ssa_equiv_stack::enter): New.
4122         (ssa_equiv_stack::leave): New.
4123         (ssa_equiv_stack::push_replacement): New.
4124         (ssa_equiv_stack::get_replacement): New.
4125         (is_pointer_ssa): New.
4126         (class pointer_equiv_analyzer): New.
4127         (pointer_equiv_analyzer::pointer_equiv_analyzer): New.
4128         (pointer_equiv_analyzer::~pointer_equiv_analyzer): New.
4129         (pointer_equiv_analyzer::set_global_equiv): New.
4130         (pointer_equiv_analyzer::set_cond_equiv): New.
4131         (pointer_equiv_analyzer::get_equiv): New.
4132         (pointer_equiv_analyzer::enter): New.
4133         (pointer_equiv_analyzer::leave): New.
4134         (pointer_equiv_analyzer::get_equiv_expr): New.
4135         (pta_valueize): New.
4136         (pointer_equiv_analyzer::visit_stmt): New.
4137         (pointer_equiv_analyzer::visit_edge): New.
4138         (hybrid_folder::value_of_expr): Call PTA.
4139         (hybrid_folder::value_on_edge): Same.
4140         (hybrid_folder::pre_fold_bb): New.
4141         (hybrid_folder::post_fold_bb): New.
4142         (hybrid_folder::pre_fold_stmt): New.
4143         (rvrp_folder::pre_fold_bb): New.
4144         (rvrp_folder::post_fold_bb): New.
4145         (rvrp_folder::pre_fold_stmt): New.
4146         (rvrp_folder::value_of_expr): Call PTA.
4147         (rvrp_folder::value_on_edge): Same.
4148
4149 2021-06-08  Jakub Jelinek  <jakub@redhat.com>
4150
4151         PR c++/100957
4152         * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't
4153         check TREE_CODE if OMP_CLAUSE_DECL is NULL.
4154
4155 2021-06-08  Richard Biener  <rguenther@suse.de>
4156
4157         PR middle-end/100951
4158         * tree-vect-generic.c (expand_vector_piecewise): Build a
4159         VECTOR_CST if all elements are constant.
4160         (expand_vector_condition): Likewise.
4161         (lower_vec_perm): Likewise.
4162         (expand_vector_conversion): Likewise.
4163
4164 2021-06-08  Martin Liska  <mliska@suse.cz>
4165
4166         * doc/invoke.texi: Document new param evrp-sparse-threshold.
4167
4168 2021-06-08  Martin Liska  <mliska@suse.cz>
4169
4170         * genautomata.c (create_automata): Fix typo.
4171
4172 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
4173
4174         PR tree-optimization/100794
4175         * tree-predcom.c (tree_predictive_commoning_loop): Add parameter
4176         allow_unroll_p and only allow unrolling when it's true.
4177         (tree_predictive_commoning): Add parameter allow_unroll_p and
4178         adjust for it.
4179         (run_tree_predictive_commoning): Likewise.
4180         (pass_predcom::gate): Check flag_tree_loop_vectorize and
4181         global_options_set.x_flag_predictive_commoning.
4182         (pass_predcom::execute): Adjust for allow_unroll_p.
4183
4184 2021-06-08  Kewen Lin  <linkw@linux.ibm.com>
4185
4186         * tree-predcom.c (execute_pred_commoning): Remove update_ssa call.
4187         (tree_predictive_commoning_loop): Factor some cleanup stuffs into
4188         lambda function cleanup, remove scev_reset call, and adjust return
4189         value.
4190         (tree_predictive_commoning): Adjust for different changed values,
4191         only set flag TODO_update_ssa_only_virtuals if changed.
4192         (pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals
4193         from todo_flags_finish.
4194
4195 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
4196
4197         * gimple-range-cache.cc (class sbr_sparse_bitmap): New.
4198         (sbr_sparse_bitmap::sbr_sparse_bitmap): New.
4199         (sbr_sparse_bitmap::bitmap_set_quad): New.
4200         (sbr_sparse_bitmap::bitmap_get_quad): New.
4201         (sbr_sparse_bitmap::set_bb_range): New.
4202         (sbr_sparse_bitmap::get_bb_range): New.
4203         (sbr_sparse_bitmap::bb_range_p): New.
4204         (block_range_cache::block_range_cache): initialize bitmap obstack.
4205         (block_range_cache::~block_range_cache): Destruct obstack.
4206         (block_range_cache::set_bb_range): Decide when to utilze the
4207         sparse on entry cache.
4208         * gimple-range-cache.h (block_range_cache): Add bitmap obstack.
4209         * params.opt (-param=evrp-sparse-threshold): New.
4210
4211 2021-06-07  Andrew MacLeod  <amacleod@redhat.com>
4212
4213         * bitmap.c (bitmap_set_aligned_chunk): New.
4214         (bitmap_get_aligned_chunk): New.
4215         (test_aligned_chunk): New.
4216         (bitmap_c_tests): Call test_aligned_chunk.
4217         * bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New.
4218
4219 2021-06-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4220
4221         PR target/100637
4222         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
4223         Handle V4QI mode.
4224         (ix86_expand_vector_init_one_nonzero): Ditto.
4225         (ix86_expand_vector_init_one_var): Ditto.
4226         (ix86_expand_vector_init_general): Ditto.
4227         * config/i386/mmx.md (vec_initv4qiqi): New expander.
4228
4229 2021-06-07  Jeff Law  <jeffreyalaw@gmail.com>
4230
4231         * config/h8300/movepush.md: Change most _clobber_flags
4232         patterns to instead use <cczn> subst.
4233         (movsi_cczn): New pattern with usable CC cases split out.
4234         (movsi_h8sx_cczn): Likewise.
4235
4236 2021-06-07  Martin Liska  <mliska@suse.cz>
4237
4238         * common/common-target.def: Split long lines and replace them
4239         with '\n\'.
4240         * target.def: Likewise.
4241         * doc/tm.texi: Re-generated.
4242
4243 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
4244
4245         PR target/100887
4246         * fold-const.c (fold_read_from_vector): Return NULL if trying to
4247         read from a CONSTRUCTOR with vector type elements.
4248
4249 2021-06-07  Jakub Jelinek  <jakub@redhat.com>
4250
4251         PR middle-end/100898
4252         * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy
4253         should copy any arguments.  Don't call gimple_call_num_args
4254         on id->call_stmt or call_stmt more than once.
4255
4256 2021-06-07  liuhongt  <hongtao.liu@intel.com>
4257
4258         PR target/100885
4259         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine
4260         constraints.
4261         (<insn>v4siv4di2): Delete constraints for define_expand.
4262
4263 2021-06-07  liuhongt  <hongtao.liu@intel.com>
4264
4265         PR target/82735
4266         * config/i386/i386-expand.c (ix86_expand_builtin): Remove
4267         assignment of cfun->machine->has_explicit_vzeroupper.
4268         * config/i386/i386-features.c
4269         (ix86_add_reg_usage_to_vzerouppers): Delete.
4270         (ix86_add_reg_usage_to_vzeroupper): Ditto.
4271         (rest_of_handle_insert_vzeroupper): Remove
4272         ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end
4273         of the function.
4274         (gate): Remove cfun->machine->has_explicit_vzeroupper.
4275         * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper):
4276         Declared.
4277         * config/i386/i386.c (ix86_insn_callee_abi): New function.
4278         (ix86_initialize_callee_abi): Ditto.
4279         (ix86_expand_avx_vzeroupper): Ditto.
4280         (ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper
4281         ABI.
4282         (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi.
4283         (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper
4284         directly.
4285         * config/i386/i386.h (struct GTY(()) machine_function): Delete
4286         has_explicit_vzeroupper.
4287         * config/i386/i386.md (enum unspec): New member
4288         UNSPEC_CALLEE_ABI.
4289         (ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New
4290         define_constants for insn callee abi index.
4291         * config/i386/predicates.md (vzeroupper_pattern): Adjust.
4292         * config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted.
4293         (avx_vzeroupper): Call ix86_expand_avx_vzeroupper.
4294         (*avx_vzeroupper): Rename to ..
4295         (avx_vzeroupper_callee_abi): .. this, and adjust pattern as
4296         call_insn which has a special vzeroupper ABI.
4297         (*avx_vzeroupper_1): Deleted.
4298
4299 2021-06-07  liuhongt  <hongtao.liu@intel.com>
4300
4301         PR target/82735
4302         * df-scan.c (df_get_call_refs): When call_insn is a fake call,
4303         it won't use stack pointer reg.
4304         * final.c (leaf_function_p): When call_insn is a fake call, it
4305         won't affect caller as a leaf function.
4306         * reg-stack.c (callee_clobbers_any_stack_reg): New.
4307         (subst_stack_regs): When call_insn doesn't clobber any stack
4308         reg, don't clear the arguments.
4309         * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is
4310         a insn.
4311         * shrink-wrap.c (requires_stack_frame_p): No need for stack
4312         frame for a fake call.
4313         * rtl.h (FAKE_CALL_P): New macro.
4314
4315 2021-06-06  Eric Botcazou  <ebotcazou@adacore.com>
4316
4317         * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename
4318         to...
4319         (sparc_order_regs_for_local_alloc): ...this.
4320         (sparc_leaf_reg_remap): Declare.
4321         * config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust.
4322         (LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap.
4323         * config/sparc/sparc.c (leaf_reg_remap): Delete.
4324         (order_regs_for_local_alloc): Rename to...
4325         (sparc_order_regs_for_local_alloc): ...this.
4326         (sparc_leaf_reg_remap): New function.
4327         (sparc_conditional_register_usage): Do not modify leaf_reg_remap.
4328
4329 2021-06-06  David Edelsohn  <dje.gcc@gmail.com>
4330
4331         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common):
4332         Use assemble_name to output BSS section name.
4333
4334 2021-06-06  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4335
4336         * config/i386/constraints.md (Bs):
4337         Remove boolean operators from match_test RTX.
4338         (Bw): Ditto.
4339         (L): Ditto.
4340         (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX.
4341         (Wz): Ditto.
4342
4343 2021-06-06  Martin Liska  <mliska@suse.cz>
4344
4345         * doc/extend.texi: Add missing @headitem.
4346         * doc/invoke.texi: Likewise.
4347         * doc/objc.texi: Likewise.
4348
4349 2021-06-06  Martin Liska  <mliska@suse.cz>
4350
4351         * genhooks.c (emit_findices): Remove unused function.
4352         (emit_documentation): Do not call emit_findices
4353         and do not search for @Fcode directives.
4354
4355 2021-06-06  Martin Liska  <mliska@suse.cz>
4356
4357         * doc/invoke.texi: Remove extra character.
4358
4359 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4360
4361         * config/sh/sh.md (doloop_end_split): Fix empty split condition.
4362
4363 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4364
4365         * config/sparc/sparc.md (*snedi<W:mode>_zero_vis3,
4366         *neg_snedi<W:mode>_zero_subxc, *plus_snedi<W:mode>_zero,
4367         *plus_plus_snedi<W:mode>_zero, *minus_snedi<W:mode>_zero,
4368         *minus_minus_snedi<W:mode>_zero): Fix empty split condition.
4369
4370 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4371
4372         * config/or1k/or1k.md (*movdi): Fix empty split condition.
4373
4374 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4375
4376         * config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty
4377         split condition.
4378
4379 2021-06-05  Kewen Lin  <linkw@linux.ibm.com>
4380
4381         * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec,
4382         *zero_extendsidi2): Fix empty split condition.
4383
4384 2021-06-05  Jeff Law  <jeffreyalaw@gmail.com>
4385
4386         * config/h8300/addsub.md: Fix split condition in define_insn_and_split
4387         patterns.
4388         * config/h8300/bitfield.md: Likewise.
4389         * config/h8300/combiner.md: Likewise.
4390         * config/h8300/divmod.md: Likewise.
4391         * config/h8300/extensions.md: Likewise.
4392         * config/h8300/jumpcall.md: Likewise.
4393         * config/h8300/movepush.md: Likewise.
4394         * config/h8300/multiply.md: Likewise.
4395         * config/h8300/other.md: Likewise.
4396         * config/h8300/shiftrotate.md: Likewise.
4397         * config/h8300/logical.md: Likewise.  Fix split pattern to use
4398         code iterator that somehow slipped through.
4399
4400 2021-06-04  Tobias Burnus  <tobias@codesourcery.com>
4401
4402         PR middle-end/100905
4403         * tree-nested.c (convert_nonlocal_omp_clauses,
4404         convert_local_omp_clauses): Handle OMP_CLAUSE_BIND.
4405
4406 2021-06-04  Martin Sebor  <msebor@redhat.com>
4407
4408         PR middle-end/100732
4409         * gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls
4410         with either source or destination argument of invalid type.
4411         * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking
4412         calls with arguments of invalid type.
4413
4414 2021-06-04  Martin Sebor  <msebor@redhat.com>
4415
4416         * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected
4417         order.
4418         (attr_access::vla_bounds): Also handle VLA bounds.
4419
4420 2021-06-04  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4421
4422         * config/i386/predicates.md (GOT_memory_operand):
4423         Implement using match_code RTXes.
4424         (GOT32_symbol_operand): Ditto.
4425
4426 2021-06-04  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4427
4428         PR target/100637
4429         * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
4430         Handle V2HI mode.
4431         (ix86_expand_vector_init_general): Ditto.
4432         Use SImode instead of word_mode for logic operations
4433         when GET_MODE_SIZE (mode) < UNITS_PER_WORD.
4434         (expand_vec_perm_even_odd_1): Assert that V2HI mode should be
4435         implemented by expand_vec_perm_1.
4436         (expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes
4437         should be implemented using standard shuffle patterns.
4438         (ix86_vectorize_vec_perm_const): Handle V2HImode.  Add V4HI and
4439         V2HI modes to modes, implementable with shuffle for one operand.
4440         * config/i386/mmx.md (*punpckwd): New insn_and_split pattern.
4441         (*pshufw_1): New insn pattern.
4442         (*vec_dupv2hi): Ditto.
4443         (vec_initv2hihi): New expander.
4444
4445 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
4446
4447         * config/arm/vfp.md (no_literal_pool_df_immediate,
4448         no_literal_pool_sf_immediate): Fix empty split condition.
4449
4450 2021-06-04  Kewen Lin  <linkw@linux.ibm.com>
4451
4452         * config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext,
4453         *tls_dynamic_gnu2_combine_32): Fix empty split condition.
4454         * config/i386/sse.md (*<sse2_avx2>_pmovmskb_lt,
4455         *<sse2_avx2>_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt,
4456         *<sse4_1_avx2>_pblendvb_lt): Likewise.
4457
4458 2021-06-04  Jakub Jelinek  <jakub@redhat.com>
4459
4460         PR target/100887
4461         * config/i386/i386-expand.c (ix86_expand_vector_init): Handle
4462         concatenation from half-sized modes with TImode elements.
4463
4464 2021-06-04  Claudiu Zissulescu  <claziss@synopsys.com>
4465
4466         * config/arc/arc.c (arc_override_options): Disable millicode
4467         thunks when RF16 is on.
4468
4469 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
4470
4471         * config/rs6000/rs6000.h (PROMOTE_MODE): Remove.
4472
4473 2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>
4474
4475         * config/rs6000/rs6000-call.c (rs6000_promote_function_mode):
4476         Replace PROMOTE_MODE marco with its content.
4477
4478 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
4479
4480         * config/cris/cris.md (*addi_reload): Fix empty split condition.
4481
4482 2021-06-03  Jim Wilson  <jimw@sifive.com>
4483
4484         * config.gcc (riscv*-*-*): If --with-riscv-attribute not used,
4485         turn it on for all riscv targets.
4486
4487 2021-06-03  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4488
4489         PR target/100637
4490         * config/i386/i386-expand.c (ix86_expand_vector_set):
4491         Handle V2HI and V4QI modes.
4492         (ix86_expand_vector_extract): Ditto.
4493         * config/i386/mmx.md (*pinsrw): New insn pattern.
4494         (*pinsrb): Ditto.
4495         (*pextrw): Ditto.
4496         (*pextrw_zext): Ditto.
4497         (*pextrb): Ditto.
4498         (*pextrb_zext): Ditto.
4499         (vec_setv2hi): New expander.
4500         (vec_extractv2hihi): Ditto.
4501         (vec_setv4qi): Ditto.
4502         (vec_extractv4qiqi): Ditto.
4503         (vec_setv8qi): Enable only for TARGET_SSE4_1.
4504         (vec_extractv8qiqi): Ditto.
4505
4506 2021-06-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
4507
4508         * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input
4509         order to subf instruction.
4510         * config/rs6000/fusion.md: Regenerate.
4511
4512 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
4513
4514         * calls.c (get_size_range): Use range_of_expr instead of
4515         determine_value_range.
4516         * tree-affine.c (expr_to_aff_combination): Same.
4517         * tree-data-ref.c (split_constant_offset): Same.
4518         * tree-vrp.c (determine_value_range_1): Remove.
4519         (determine_value_range): Remove.
4520         * tree-vrp.h (determine_value_range): Remove.
4521
4522 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
4523
4524         * function-tests.c (test_ranges): Call gimple_range_tests.
4525         * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt
4526         to get_tree_range.
4527         * gimple-range.cc (fur_source::get_operand): Do not call
4528         get_tree_range or gimple_range_global.
4529         get_tree_range.
4530         (get_tree_range): Move to value-query.cc.
4531         Call get_arith_expr_range.
4532         (gimple_ranger::range_of_expr): Add argument to get_tree_range.
4533         Include gimple-range-tests.cc.
4534         * gimple-range.h (fold_range): Add argument.
4535         (get_tree_range): Remove.
4536         * selftest.h (gimple_range_tests): New.
4537         * value-query.cc (global_range_query::range_of_expr): Add
4538         stmt argument.
4539         (range_query::get_tree_range): Move from gimple-range.cc.
4540         * value-query.h (class range_query): Add get_tree_range and
4541         get_arith_expr_range.  Make fur_source a friend.
4542         * vr-values.c (vr_values::range_of_expr): Pass stmt to
4543         get_tree_range.
4544         * gimple-range-tests.cc: New file.
4545
4546 2021-06-03  Aldy Hernandez  <aldyh@redhat.com>
4547
4548         * gimple-range.cc (gimple_ranger::export_global_ranges): Call
4549           update_global_range.
4550         * value-query.cc (update_global_range): New.
4551         * value-query.h (update_global_range): New.
4552
4553 2021-06-03  David Malcolm  <dmalcolm@redhat.com>
4554
4555         * diagnostic-show-locus.c (diagnostic_show_locus): Don't reject
4556         printing the same location twice if there are fix-it hints,
4557         multiple locations, or a label.
4558
4559 2021-06-03  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4560
4561         * tree-vect-loop.c (vect_transform_loop): Use main loop's various'
4562         thresholds to narrow the upper bound on epilogue iterations.
4563
4564 2021-06-03  Christophe Lyon  <christophe.lyon@linaro.org>
4565
4566         * config/arm/mve.md (mve_vabsq_f<mode>): Use 'abs' instead of unspec.
4567         (mve_vabsq_s<mode>): Likewise.
4568         * config/arm/neon.md (abs<mode>2): Rename to neon_abs<mode>2.
4569         * config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete.
4570         * config/arm/vec-common.md (neg<mode>2): Rename to
4571         <absneg_str><mode>2.
4572
4573 2021-06-03  Claudiu Zissulescu  <claziss@synopsys.com>
4574
4575         * common/config/arc/arc-common.c (arc_option_optimization_table):
4576         Remove malign-call.
4577         * config/arc/arc.c (arc_unalign_branch_p): Remove unused function.
4578         * config/arc/arc.h (TARGET_MIXED_CODE): Remove macro.
4579         (INDEX_REG_CLASS): Only refer to GENERAL_REGS.
4580         * config/arc/arc.md (abssi2_mixed): Remove pattern.
4581         * config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete.
4582         (malign-call): Likewise.
4583         (mmixed-code): Likewise.
4584         * doc/invoke.texi (ARC): Update doc.
4585
4586 2021-06-03  Martin Liska  <mliska@suse.cz>
4587
4588         * common.opt: Use proper Enum values.
4589         * opts.c (COVERAGE_SANITIZER_OPT): Remove.
4590         (parse_sanitizer_options): Handle only sanitizer_opts.
4591         (common_handle_option): Just assign value.
4592
4593 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
4594
4595         PR ipa/99122
4596         * tree-inline.c (inline_forbidden_p): Remove test on return type.
4597
4598 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
4599
4600         * dwarf2out.c (loc_list_from_tree_1) <FUNCTION_DECL>: Also generate
4601         DW_OP_GNU_variable_value referencing an existing DIE at file scope.
4602         (type_byte_size): Inline into...
4603         (add_byte_size_attribute): ...this and call add_scalar_info.
4604
4605 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
4606
4607         * dwarf2out.c (mem_loc_descriptor) <UDIV>: Fix typo.
4608         (typed_binop_from_tree): New function.
4609         (loc_list_from_tree_1) <EXACT_DIV_EXPR>: For an unsigned type,
4610         turn a divide by a power of 2 into a shift.
4611         <CEIL_DIV_EXPR>: For an unsigned type, use a signed divide if the
4612         size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a
4613         typed divide by calling typed_binop_from_tree.
4614
4615 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
4616
4617         * dwarf2out.c (scompare_loc_descriptor): Fix head comment.
4618         (is_handled_procedure_type): Likewise.
4619         (struct loc_descr_context): Add strict_signedness field.
4620         (resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type,
4621         DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret.
4622         (resolve_args_picking): Minor tweak.
4623         (function_to_dwarf_procedure): Initialize strict_signedness field.
4624         (type_byte_size): Likewise.
4625         (field_byte_offset): Likewise.
4626         (gen_descr_array_type_die): Likewise.
4627         (gen_variant_part): Likewise.
4628         (loc_list_from_tree_1) <CALL_EXPR>: Tidy up and set strict_signedness
4629         to true when a context is present before evaluating the arguments.
4630         <COND_EXPR>: Do not generate a useless comparison with zero.
4631         When dereferencing an address, if strict_signedness is true and the
4632         type is small and signed, use DW_OP_deref_type to do the dereference
4633         and then DW_OP_convert to convert back to the generic type.
4634
4635 2021-06-03  Jakub Jelinek  <jakub@redhat.com>
4636
4637         PR c++/100859
4638         * tree-inline.c (copy_tree_body_r): Handle iterators on
4639         OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND.
4640
4641 2021-06-03  Kewen Lin  <linkw@linux.ibm.com>
4642
4643         * config/arc/arc.md (*bbit_di): Remove.
4644
4645 2021-06-02  Christoph Muellner  <cmuellner@gcc.gnu.org>
4646
4647         PR rtl-optimization/100264
4648         * ree.c (get_sub_rtx): Ignore SET expressions without register
4649         destinations and remove assertion, as it is not valid anymore
4650         with this new behaviour.
4651         (merge_def_and_ext): Eliminate destination check for register
4652         as such SET expressions can't occur anymore.
4653         (combine_reaching_defs): Likewise.
4654
4655 2021-06-02  Jakub Jelinek  <jakub@redhat.com>
4656
4657         PR target/100841
4658         * config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid
4659         -Wtype-limits warnings.
4660         (DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition
4661         in operands to avoid -Wsign-compare warnings.
4662
4663 2021-06-02  Pat Haugen  <pthaugen@linux.ibm.com>
4664
4665         * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use
4666         gen_frame_store.
4667
4668 2021-06-02  Vineet Gupta  <vgupta@synopsys.com>
4669
4670         * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux.
4671
4672 2021-06-02  Ilya Leoshkevich  <iii@linux.ibm.com>
4673
4674         * config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single
4675         constraint.
4676         * config/s390/subst.md(cconly_subst): Use a single constraint
4677         in (match_scratch).
4678
4679 2021-06-02  Martin Liska  <mliska@suse.cz>
4680
4681         * ipa-icf.h: Use auto_vec for memory_access_types.
4682
4683 2021-06-02  Jeff Law  <jeffreyalaw@gmail.com>
4684
4685         * config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused
4686         argument from prototype.
4687         (output_logical_op): Add rtx_code argument.
4688         (compute_logical_op_length): Likewise.
4689         * config/h8300/h8300.c (h8300_and_costs): Pass additional argument
4690         to compute_a_shift_length.
4691         (output_logical_op); New argument with the rtx code rather than
4692         extracting it from an operand.  Handle QImode too.
4693         (compute_logical_op_length): Similary.
4694         (compute_a_shift_length): Drop unused argument.
4695         * config/h8300/h8300.md (logicals): New code iterator.
4696         * config/h8300/logical.md (<code><mode>3 expander): Combine
4697         the "and" expander with the "ior"/"xor" expander.
4698         (bclr<mode>msx): Combine the QI/HI mode patterns.
4699         (<logical><mode>3 insns): Use code iterator rather than match_operator.
4700         Handle QImode as well.   Update call to output_logical_op and
4701         compute_logical_op_length to pass in rtx_code
4702         Fix split condition on all define_insn_and_split patterns.
4703         (one_cmpl<mode>2<cczn>): Use <cczn> to support both clobbering
4704         the flags and setting ZN via existing define_subst.
4705         * config/h8300/shiftrotate.md: Drop unused argument from
4706         calls to compute_a_shift_length.
4707         Signed-off-by: Jeff Law <jeffreyalaw@gmail.com>
4708
4709 2021-06-01  Andrew Pinski  <apinski@marvell.com>
4710
4711         PR tree-optimization/25290
4712         * tree-ssa-phiopt.c (match_simplify_replacement):
4713         New function.
4714         (tree_ssa_phiopt_worker): Use match_simplify_replacement.
4715         (two_value_replacement): Change the comment about
4716         conditional_replacement.
4717         (conditional_replacement): Delete.
4718
4719 2021-06-01  Andrew Pinski  <apinski@marvell.com>
4720
4721         PR tree-optimization/95481
4722         * tree-tailcall.c (find_tail_calls): Handle empty typed
4723         return decls.
4724
4725 2021-06-01  Andrew Pinski  <apinski@marvell.com>
4726
4727         * gimplify.c (zero_sized_field_decl): Delete
4728         (zero_sized_type): Delete
4729         (gimplify_init_ctor_eval): Use is_empty_type instead
4730         of zero_sized_field_decl.
4731         (gimplify_modify_expr): Use is_empty_type instead of
4732         zero_sized_type.
4733
4734 2021-06-01  Jason Merrill  <jason@redhat.com>
4735
4736         PR c++/91859
4737         * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment.
4738
4739 2021-06-01  Jason Merrill  <jason@redhat.com>
4740
4741         PR c++/94492
4742         * diagnostic.h (warning_enabled_at): Declare.
4743         * diagnostic.c (diagnostic_enabled): Factor out from...
4744         (diagnostic_report_diagnostic): ...here.
4745         (warning_enabled_at): New.
4746
4747 2021-06-01  Aldy Hernandez  <aldyh@redhat.com>
4748
4749         * gimple-ssa-evrp.c: Enable exporting of global ranges.
4750
4751 2021-06-01  Martin Liska  <mliska@suse.cz>
4752
4753         PR other/100826
4754         * doc/invoke.texi: Mention that -fgcse-after-reload
4755         is enabled with -O3.
4756
4757 2021-06-01  liuhongt  <hongtao.liu@intel.com>
4758
4759         PR tree-optimization/98365
4760         * tree-if-conv.c (strip_nop_cond_scalar_reduction): New function.
4761         (is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction.
4762         (convert_scalar_cond_reduction): Ditto.
4763         (predicate_scalar_phi): Ditto.
4764
4765 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
4766
4767         PR tree-optimization/100781
4768         * gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new
4769         value calculation by default.
4770         (ranger_cache::enable_new_values): New.
4771         (ranger_cache::disable_new_values): New.
4772         (ranger_cache::push_poor_value): Check if new values are allowed.
4773         * gimple-range-cache.h (class ranger_cache): New member/methods.
4774         * gimple-range.cc (gimple_ranger::range_of_expr): Check for debug
4775         statement, and disable/renable new value calculation.
4776
4777 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
4778
4779         * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete.
4780         (ranger_cache::range_of_def): New.
4781         (ranger_cache::entry_range): New.
4782         (ranger_cache::exit_range): New.
4783         (ranger_cache::range_of_expr): Adjust.
4784         (ranger_cache::range_on_edge): Adjust.
4785         (ranger_cache::propagate_cache): Call exit_range directly.
4786         * gimple-range-cache.h (class ranger_cache): Adjust.
4787
4788 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
4789
4790         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for
4791         gori_compute being a member rather than base class.
4792         dervied call to member call.
4793         (ranger_cache::dump): No longer dump gori_map.
4794         (ranger_cache::dump_bb): New.
4795         (ranger_cache::get_non_stale_global_range): Adjust for gori_compute
4796         being a member rather than base class.
4797         (ranger_cache::set_global_range): Ditto.
4798         (ranger_cache::ssa_range_in_bb): Ditto.
4799         (ranger_cache::range_of_expr): New.
4800         (ranger_cache::range_on_edge): New.
4801         (ranger_cache::block_range): Adjust for gori_computes.  Debug changes.
4802         (ranger_cache::propagate_cache):  Adjust debugging output.
4803         (ranger_cache::fill_block_cache): Adjust for gori_computes.  Debug
4804         output changes.
4805         * gimple-range-cache.h (class ranger_cache): Make gori_compute a
4806         member, and inherit from range_query instead.
4807         (ranger_cache::dump_bb): New. split from dump.
4808         * gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete.
4809         (gori_compute::expr_range_at_stmt): Delete.
4810         (gori_compute::compute_name_range_op): Delete.
4811         (gori_compute::compute_operand_range_switch): Add fur_source.
4812         (gori_compute::compute_operand_range): Add fur_source param, inline
4813         old compute_name_range_op and optimize_logical_operands.
4814         (struct tf_range): Delete.
4815         (gori_compute::logical_combine): Adjust
4816         (gori_compute::optimize_logical_operands): Delete.
4817         (gori_compute::compute_logical_operands_in_chain): Delete.
4818         (gori_compute::compute_logical_operands): Adjust.
4819         (gori_compute::compute_operand1_range): Adjust to fur_source.
4820         (gori_compute::compute_operand2_range): Ditto.
4821         (gori_compute::compute_operand1_and_operand2_range): Ditto.
4822         (gori_compute::outgoing_edge_range_p): Add range_query parameter,
4823         and adjust to fur_source.
4824         * gimple-range-gori.h (class gori_compute): Simplify and adjust to
4825         range_query and fur_source.
4826         * gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge
4827         from the ranger_cache..
4828         (gimple_ranger::fold_range_internal): Adjust to base class change of
4829         ranger_cache.
4830         (gimple_ranger::dump_bb): Adjust dump.
4831         * gimple-range.h (gimple_ranger):export gori computes object.
4832
4833 2021-06-01  Andrew MacLeod  <amacleod@redhat.com>
4834
4835         PR tree-optimization/100774
4836         * gimple-range-cache.cc (ranger_cache::get_non_stale_global_range):
4837         Constant values are also not stale.
4838         (ranger_cache::set_global_range): Range invariant values should also
4839         have the correct timestamp.
4840
4841 2021-05-31  Martin Liska  <mliska@suse.cz>
4842
4843         * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
4844         Unpack FUNCTION_DECL_DECL_TYPE.
4845         * tree-streamer-out.c (pack_ts_function_decl_value_fields):
4846         Stream FUNCTION_DECL_DECL_TYPE instead of
4847         DECL_IS_OPERATOR_NEW_P.
4848         * tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE
4849         macro.
4850         (DECL_IS_OPERATOR_NEW_P): Likewise.
4851         (DECL_IS_OPERATOR_DELETE_P): Likewise.
4852         (DECL_LAMBDA_FUNCTION_P): Likewise.
4853
4854 2021-05-31  Richard Biener  <rguenther@suse.de>
4855
4856         PR c++/88601
4857         * internal-fn.c (expand_SHUFFLEVECTOR): Define.
4858         * internal-fn.def (SHUFFLEVECTOR): New.
4859         * internal-fn.h (expand_SHUFFLEVECTOR): Declare.
4860         * doc/extend.texi: Document __builtin_shufflevector.
4861
4862 2021-05-31  Peter Bergner  <bergner@linux.ibm.com>
4863
4864         PR target/99842
4865         * config/rs6000/predicates.md(mma_assemble_input_operand): Allow
4866         indexed form addresses.
4867
4868 2021-05-29  Jeff Law  <jlaw@tachyum.com>
4869
4870         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused
4871         parameter.  Call callers fixed.
4872         (push): Likewise.
4873         (output_plussi): Add FALLTHRU markers.
4874         (h8300_shift_needs_scratch_p): Add gcc_unreachable marker.
4875
4876 2021-05-29  Jakub Jelinek  <jakub@redhat.com>
4877
4878         PR middle-end/99928
4879         * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd
4880         combined with parallel, make sure to add shared clause to
4881         parallel for explicit linear clause.
4882
4883 2021-05-29  Aldy Hernandez  <aldyh@redhat.com>
4884
4885         PR tree-optimization/100787
4886         * gimple-ssa-evrp.c: Disable exporting of global ranges.
4887
4888 2021-05-28  Jason Merrill  <jason@redhat.com>
4889
4890         * tree-iterator.h (struct tree_stmt_iterator): Add operator++,
4891         operator--, operator*, operator==, and operator!=.
4892         (class tsi_range): New.
4893
4894 2021-05-28  Richard Biener  <rguenther@suse.de>
4895
4896         PR tree-optimization/100778
4897         * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly
4898         trapping ops in different BBs.
4899
4900 2021-05-28  Richard Biener  <rguenther@suse.de>
4901
4902         PR ipa/100791
4903         * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack
4904         copy fntype from original call.
4905
4906 2021-05-28  Martin Liska  <mliska@suse.cz>
4907
4908         PR gcov-profile/100751
4909         * doc/gcov.texi: Revert partially a hunk that was wrong.
4910
4911 2021-05-28  Cooper Qu  <cooper.qu@linux.alibaba.com>
4912
4913         * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi):
4914         Defined.
4915         (HAVE_sync_compare_and_swaphi): Likewise.
4916         (HAVE_sync_compare_and_swapsi): Likewise.
4917
4918 2021-05-28  Jakub Jelinek  <jakub@redhat.com>
4919
4920         PR middle-end/99928
4921         * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define.
4922
4923 2021-05-28  Tobias Burnus  <tobias@codesourcery.com>
4924
4925         * gimplify.c (gimplify_omp_affinity): New.
4926         (gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards.
4927         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY.
4928         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY.
4929         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause.
4930         (walk_tree_1): Handle OMP_CLAUSE_AFFINITY.
4931
4932 2021-05-28  Joern Rennecke  <joern.rennecke@riscy-ip.com>
4933             Richard Biener   <rguenther@suse.de>
4934
4935         * match.pd <popcount & / + pattern matching>:
4936         When generating popcount directly fails, try doing it in two halves.
4937
4938 2021-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4939
4940         * Makefile.in (generated_files): Add gimple-match.c and
4941         generic-match.c
4942
4943 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4944
4945         * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP.
4946
4947 2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4948
4949         * gensupport.c (alter_constraints): Add MATCH_SCRATCH case.
4950
4951 2021-05-28  Kewen Lin  <linkw@linux.ibm.com>
4952
4953         PR tree-optimization/99398
4954         * tree-ssa-forwprop.c (simplify_permutation): Optimize some cases
4955         where the fed operands are CTOR/CST and propagated through
4956         VIEW_CONVERT_EXPR.  Call vec_perm_indices::new_shrunk_vector.
4957         * vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New
4958         function.
4959         * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New
4960         declare.
4961
4962 2021-05-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4963
4964         * config/i386/mmx.md (addv2sf3): Do not call
4965         ix86_fixup_binary_operands_no_copy.
4966         (subv2sf3): Ditto.
4967         (mulv2sf3): Ditto.
4968         (<smaxmin:code>v2sf3): Ditto.
4969         (<plusminus:insn><MMXMODEI:mode>3): Ditto.
4970         (<plusminus:insn><VI_32:mode>3): Remove expander.
4971         (<plusminus:insn><VI_32:mode>3): Rename from
4972         "*<plusminus:insn><VI_32:mode>3".
4973         (mulv4hi): Do not call ix86_fixup_binary_operands_no_copy.
4974         (mulv2hi3): Remove expander.
4975         (mulv2hi3): Rename from *mulv2hi3.
4976         (<s>mulv2hi3_highpart): Remove expander.
4977         (<s>mulv2hi3_highpart): Rename from *<s>mulv2hi3_highpart.
4978         (<smaxmin:code><MMXMODE14:mode>3): Rename from
4979         "*mmx_<smaxmin:code><MMXMODE14:mode>3".
4980         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Remove expander.
4981         (SMAXMIN_MMXMODEI): Remove mode iterator.
4982         (<smaxmin:code>v4hi3): New expander.
4983         (<smaxmin:code>v4qi3): Rename from *<smaxmin:code>v4qi3.
4984         (<smaxmin:code>v2hi3): Rename from *<smaxmin:code>v2hi3.
4985         (<smaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
4986         (SMAXMIN_VI_32): Remove mode iterator.
4987         (<umaxmin:code><MMXMODE24:mode>3): Rename from
4988         "*mmx_<umaxmin:code><MMXMODE24:mode>3".
4989         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Remove expander.
4990         (UMAXMIN_MMXMODEI): Remove mode iterator.
4991         (<umaxmin:code>v8qi3): New expander.
4992         (<umaxmin:code>v4qi3): Rename from *<umaxmin:code>v4qi3.
4993         (<umaxmin:code>v2hi3): Rename from *<umaxmin:code>v2hi3.
4994         (<umaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
4995         (UMAXMIN_VI_32): Remove mode iterator.
4996         (<any_shift:insn>v2hi3): Remove expander.
4997         (<any_shift:insn>v2hi3): Rename from *<any_shift:insn>v2hi3.
4998         (<any_logic:code><MMXMODEI:mode>3): Do not call
4999         ix86_fixup_binary_operands_no_copy.
5000         (<any_logic:code><VI_32:mode>3): Remove expander.
5001         (<any_logic:code><VI_32:mode>3): Rename from
5002         "*<any_logic:code><VI_32:mode>3".
5003         (uavg<mode>3_ceil): Do not call ix86_fixup_binary_operands_no_copy.
5004         * config/i386/sse.md (div<VF2:mode>3): Do not call
5005         ix86_fixup_binary_operands_no_copy.
5006         (div<VF1:mode>3): Ditto.
5007         (<maxmin:code><VI8_AVX2_AVX512F:mode>3): Ditto.
5008         (smulhrsv4hi3): Ditto.
5009         (smulhrsv2hi3): Ditto.
5010
5011 2021-05-27  Martin Sebor  <msebor@redhat.com>
5012
5013         * ggc.h (gt_ggc_mx): Add overloads for all integers.
5014         (gt_pch_nx):  Same.
5015         * hash-map.h (class hash_map): Add pch_nx_helper overloads for all
5016         integers.
5017         (hash_map::operator==): New function.
5018
5019 2021-05-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5020
5021         PR target/100637
5022         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
5023         For TARGET_XOP bypass SSE comparisons for all supported vector modes.
5024         * config/i386/mmx.md (*xop_maskcmp<MMXMODEI:mode>3): New insn pattern.
5025         (*xop_maskcmp<VI_32:mode>3): Ditto.
5026         (*xop_maskcmp_uns<MMXMODEI:mode>3): Ditto.
5027         (*xop_maskcmp_uns<VI_32:mode>3): Ditto.
5028
5029 2021-05-27  Richard Earnshaw  <rearnsha@arm.com>
5030
5031         PR target/100767
5032         * config/arm/arm.c (arm_configure_build_target): Remove parameter
5033         opts_set, directly check opts parameters for being non-null.
5034         (arm_option_restore): Update call to arm_configure_build_target.
5035         (arm_option_override): Likewise.
5036         (arm_can_inline_p): Likewise.
5037         (arm_valid_target_attribute_tree): Likewise.
5038         * config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
5039         * config/arm/arm-protos.h (arm_configure_build_target): Adjust
5040         prototype.
5041
5042 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
5043
5044         * vr-values.c (simplify_conversion_using_ranges): Use
5045         get_range_query instead of get_global_range_query.
5046
5047 2021-05-27  Aldy Hernandez  <aldyh@redhat.com>
5048
5049         * gimple-range.cc (get_range_global): Move to value-query.cc.
5050         (gimple_range_global): Same.
5051         (get_global_range_query): Same.
5052         (global_range_query::range_of_expr): Same.
5053         * gimple-range.h (class global_range_query): Move to
5054         value-query.h.
5055         (gimple_range_global): Same.
5056         * tree-ssanames.c (get_range_info): Move to value-query.cc.
5057         (get_ptr_nonnull): Same.
5058         * tree-ssanames.h (get_range_info): Remove.
5059         (get_ptr_nonnull): Remove.
5060         * value-query.cc (get_ssa_name_range_info): Move from
5061         tree-ssanames.c.
5062         (get_ssa_name_ptr_info_nonnull): Same.
5063         (get_range_global): Move from gimple-range.cc.
5064         (gimple_range_global): Same.
5065         (get_global_range_query): Same.
5066         (global_range_query::range_of_expr): Same.
5067         * value-query.h (class global_range_query): Move from
5068         gimple-range.h.
5069         (gimple_range_global): Same.
5070
5071 2021-05-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5072
5073         PR target/100637
5074         * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern.
5075         (uavgv2hi3_ceil): Ditto.
5076
5077 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5078
5079         PR c/100653
5080         * doc/extend.texi (scalar_storage_order): Rephrase slightly.
5081
5082 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
5083
5084         * tree-ssanames.c (get_range_info): Merge both copies of
5085         get_range_info into one that works with irange.
5086         * tree-ssanames.h (get_range_info): Remove version that works on
5087         wide_ints.
5088
5089 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
5090
5091         * builtins.c (check_nul_terminated_array): Convert to get_range_query.
5092         (expand_builtin_strnlen): Same.
5093         (determine_block_size): Same.
5094         * fold-const.c (expr_not_equal_to): Same.
5095         * gimple-fold.c (size_must_be_zero_p): Same.
5096         * gimple-match-head.c: Include gimple-range.h.
5097         * gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query.
5098         * gimple-ssa-warn-restrict.c
5099         (builtin_memref::extend_offset_range): Same.
5100         * graphite-sese-to-poly.c (add_param_constraints): Same.
5101         * internal-fn.c (get_min_precision): Same.
5102         * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same.
5103         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
5104         * match.pd: Same.
5105         * tree-data-ref.c (split_constant_offset): Same.
5106         (dr_step_indicator): Same.
5107         * tree-dfa.c (get_ref_base_and_extent): Same.
5108         * tree-scalar-evolution.c (iv_can_overflow_p): Same.
5109         * tree-ssa-loop-niter.c (refine_value_range_using_guard): Same.
5110         (determine_value_range): Same.
5111         (record_nonwrapping_iv): Same.
5112         (infer_loop_bounds_from_signedness): Same.
5113         (scev_var_range_cant_overflow): Same.
5114         * tree-ssa-phiopt.c (two_value_replacement): Same.
5115         * tree-ssa-pre.c (insert_into_preds_of_block): Same.
5116         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same.
5117         * tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same.
5118         (get_range): Same.
5119         (dump_strlen_info): Same.
5120         (set_strlen_range): Same.
5121         (maybe_diag_stxncpy_trunc): Same.
5122         (get_len_or_size): Same.
5123         (handle_integral_assign): Same.
5124         * tree-ssa-structalias.c (find_what_p_points_to): Same.
5125         * tree-ssa-uninit.c (find_var_cmp_const): Same.
5126         * tree-switch-conversion.c (bit_test_cluster::emit): Same.
5127         * tree-vect-patterns.c (vect_get_range_info): Same.
5128         (vect_recog_divmod_pattern): Same.
5129         * tree-vrp.c (intersect_range_with_nonzero_bits): Same.
5130         (register_edge_assert_for_2): Same.
5131         (determine_value_range_1): Same.
5132         * tree.c (get_range_pos_neg): Same.
5133         * vr-values.c (vr_values::get_lattice_entry): Same.
5134         (vr_values::update_value_range): Same.
5135         (simplify_conversion_using_ranges): Same.
5136
5137 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
5138
5139         * gimple-ssa-warn-alloca.c (alloca_call_type): Use
5140           get_range_query instead of query argument.
5141         (pass_walloca::execute): Enable and disable global ranger.
5142
5143 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
5144
5145         * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call
5146         enable_ranger.
5147         (rvrp_folder::~rvrp_folder): Call disable_ranger.
5148         (hybrid_folder::hybrid_folder): Call enable_ranger.
5149         (hybrid_folder::~hybrid_folder): Call disable_ranger.
5150
5151 2021-05-26  Aldy Hernandez  <aldyh@redhat.com>
5152
5153         * function.c (allocate_struct_function): Set cfun->x_range_query.
5154         * function.h (struct function): Declare x_range_query.
5155         (get_range_query): New.
5156         (get_global_range_query): New.
5157         * gimple-range-cache.cc (ssa_global_cache::ssa_global_cache):
5158         Remove call to safe_grow_cleared.
5159         * gimple-range.cc (get_range_global): New.
5160         (gimple_range_global): Move from gimple-range.h.
5161         (get_global_range_query): New.
5162         (global_range_query::range_of_expr): New.
5163         (enable_ranger): New.
5164         (disable_ranger): New.
5165         * gimple-range.h (gimple_range_global): Move to gimple-range.cc.
5166         (class global_range_query): New.
5167         (enable_ranger): New.
5168         (disable_ranger): New.
5169         * gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename
5170         dump_all_value_ranges to dump.
5171         * tree-vrp.c (vrp_prop::finalize): Same.
5172         * value-query.cc (range_query::dump): New.
5173         * value-query.h (range_query::dump): New.
5174         * vr-values.c (vr_values::dump_all_value_ranges): Rename to...
5175         (vr_values::dump): ...this.
5176         * vr-values.h (class vr_values): Rename dump_all_value_ranges to
5177         dump and make virtual.
5178
5179 2021-05-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5180
5181         * config/i386/i386.c (ix86_autovectorize_vector_modes):
5182         Add V4QImode and V16QImode for TARGET_SSE2.
5183         * doc/sourcebuild.texi (Vector-specific attributes):
5184         Add vect64 and vect32 description.
5185
5186 2021-05-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5187
5188         * gimple-range-gori.cc (range_def_chain::register_dependency):
5189         Resize m_def_chain when needed.
5190
5191 2021-05-26  Christophe Lyon  <christophe.lyon@linaro.org>
5192
5193         * config/arm/mve.md (mve_vaddvq_<supf><mode>): Prefix with '@'.
5194         * config/arm/neon.md (reduc_plus_scal_<mode>): Move to ..
5195         * config/arm/vec-common.md: .. here. Add support for MVE.
5196
5197 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
5198
5199         * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove
5200         register keywords.
5201         * config/microblaze/microblaze.c (microblaze_legitimize_address,
5202         call_internal1,
5203         microblaze_option_override, print_operand): Likewise.
5204         * config/microblaze/microblaze.md (call_internal_plt,
5205         call_value_intern_plt, call_value_intern): Likewise.
5206         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise.
5207         * config/iq2000/iq2000.md (call_internal1, call_value_internal1,
5208         call_value_multiple_internal1): Likewise.
5209         * config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise.
5210
5211 2021-05-26  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5212
5213         * config/arc/arc.c (arc_address_cost, arc_print_operand_address,
5214         arc_ccfsm_advance, symbolic_reference_mentioned_p,
5215         arc_raw_symbolic_reference_mentioned_p): Remove register
5216         keyword.
5217
5218 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
5219
5220         PR libgomp/100573
5221         * omp-low.c: Include omp-offload.h.
5222         (create_omp_child_function): If current_function_decl has
5223         "omp declare target" attribute and is_gimple_omp_offloaded,
5224         remove that attribute from the copy of attribute list and
5225         add "omp target entrypoint" attribute instead.
5226         (lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.*
5227         variables for offloading if in omp_maybe_offloaded_ctx.
5228         * omp-offload.c (pass_omp_target_link::execute): Nullify second
5229         argument to GOMP_target_data_ext in offloaded code.
5230
5231 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5232
5233         * config/csky/csky.c (csky_can_change_mode_class): Delete.
5234         For csky, HF/SF mode use the low bits of VREGS.
5235
5236 2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5237
5238         * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a
5239         DECL which is a reference for OMP.
5240
5241 2021-05-26  Martin Liska  <mliska@suse.cz>
5242
5243         PR gcov-profile/100751
5244         * doc/gcov.texi: Document that __gcov_dump can be called just
5245         once and that __gcov_reset resets run-time counters.
5246
5247 2021-05-26  Martin Liska  <mliska@suse.cz>
5248
5249         * doc/install.texi: Port relevant part from install-old.texi
5250         and re-generate list of CPUs and systems.
5251
5252 2021-05-26  Martin Liska  <mliska@suse.cz>
5253
5254         * Makefile.in: Remove it.
5255         * doc/include/fdl.texi: Update next/previous chapters.
5256         * doc/install.texi: Likewise.
5257         * doc/install-old.texi: Removed.
5258
5259 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5260
5261         * config/csky/csky.c (ck810_legitimate_index_p): Support
5262         "base + index" with DF mode.
5263         * config/csky/constraints.md ("Y"): New constraint for memory operands
5264         without index register.
5265         * config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m"
5266         when mov between memory and general registers, and lower their priority.
5267         * config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise.
5268
5269 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5270
5271         * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete.
5272
5273 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5274
5275         * config/csky/csky.md (untyped_call): Emit clobber for return
5276         registers to mark them used.
5277
5278 2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>
5279
5280         * config/csky/csky.md (cskyv2_sextend_ldbs): New.
5281
5282 2021-05-26  Andrew Pinski  <apinski@marvell.com>
5283
5284         * match.pd (x < 0 ? ~y : y): New patterns.
5285
5286 2021-05-26  Andrew Pinski  <apinski@marvell.com>
5287
5288         * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0,
5289         A?POW2:0 and A?0:POW2.
5290
5291 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5292
5293         * gimple-range-gori.cc (class logical_stmt_cache): Delete
5294         (logical_stmt_cache::logical_stmt_cache ): Delete.
5295         (logical_stmt_cache::~logical_stmt_cache): Delete.
5296         (logical_stmt_cache::cache_entry::dump): Delete.
5297         (logical_stmt_cache::get_range): Delete.
5298         (logical_stmt_cache::cached_name ): Delete.
5299         (logical_stmt_cache::same_cached_name): Delete.
5300         (logical_stmt_cache::cacheable_p): Delete.
5301         (logical_stmt_cache::slot_diagnostics ): Delete.
5302         (logical_stmt_cache::dump): Delete.
5303         (gori_compute_cache::gori_compute_cache): Delete.
5304         (gori_compute_cache::~gori_compute_cache): Delete.
5305         (gori_compute_cache::compute_operand_range): Delete.
5306         (gori_compute_cache::cache_stmt): Delete.
5307         * gimple-range-gori.h (gori_compute::compute_operand_range): Remove
5308         virtual.
5309         (class gori_compute_cache): Delete.
5310
5311 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5312
5313         * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori
5314         intead of m_cache.
5315         (fold_using_range::range_of_address): Adjust.
5316         (fold_using_range::range_of_phi): Adjust.
5317         * gimple-range.h (class fur_source): Adjust.
5318         (fur_source::fur_source): Adjust.
5319
5320 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5321
5322         * gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename
5323         from expr_range_in_bb and adjust.
5324         (gori_compute::compute_name_range_op): Adjust.
5325         (gori_compute::optimize_logical_operands): Adjust.
5326         (gori_compute::compute_logical_operands_in_chain): Adjust.
5327         (gori_compute::compute_operand1_range): Adjust.
5328         (gori_compute::compute_operand2_range): Adjust.
5329         (ori_compute_cache::cache_stmt): Adjust.
5330         * gimple-range-gori.h (gori_compute): Rename prototype.
5331
5332 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5333
5334         * gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be
5335         checked only after range_of_stmt, not range_on_entry.
5336         (gimple_ranger::range_on_entry): Check for non-null in any
5337         predecessor block, if it is not already non-null.
5338         (gimple_ranger::range_on_exit): DOnt check for non-null after
5339         range on entry call.
5340         (gimple_ranger::dump_bb): New.  Split from dump.
5341         (gimple_ranger::dump): Adjust.
5342         * gimple-range.h (class gimple_ranger): Adjust.
5343
5344 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5345
5346         * gimple-range-cache.cc (struct range_timestamp): Delete.
5347         (class temporal_cache): Adjust.
5348         (temporal_cache::get_timestamp): Delete.
5349         (temporal_cache::set_dependency): Delete.
5350         (temporal_cache::temporal_value): Adjust.
5351         (temporal_cache::current_p): Take dependencies as params.
5352         (temporal_cache::set_timestamp): Adjust.
5353         (temporal_cache::set_always_current): Adjust.
5354         (ranger_cache::get_non_stale_global_range): Adjust.
5355         (ranger_cache::register_dependency): Delete.
5356         * gimple-range-cache.h (class range_cache): Adjust.
5357
5358 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5359
5360         * gimple-range-gori.cc (range_def_chain::range_def_chain): init
5361         bitmap obstack.
5362         (range_def_chain::~range_def_chain): Dispose of obstack rather than
5363         each individual bitmap.
5364         (range_def_chain::set_import): New.
5365         (range_def_chain::get_imports): New.
5366         (range_def_chain::chain_import_p): New.
5367         (range_def_chain::register_dependency): Rename from build_def_chain
5368         and set imports.
5369         (range_def_chain::def_chain_in_bitmap_p): New.
5370         (range_def_chain::add_def_chain_to_bitmap): New.
5371         (range_def_chain::has_def_chain): Just check first depenedence.
5372         (range_def_chain::get_def_chain): Process imports, use generic
5373         register_dependency routine.
5374         (range_def_chain::dump): New.
5375         (gori_map::gori_map): Allocate import list.
5376         (gori_map::~gori_map): Release imports.
5377         (gori_map::exports): Check for past allocated block size.
5378         (gori_map::imports): New.
5379         (gori_map::def_chain_in_export_p): Delete.
5380         (gori_map::is_import_p): New.
5381         (gori_map::maybe_add_gori): Handle imports.
5382         (gori_map::dump): Adjust output, add imports.
5383         (gori_compute::has_edge_range_p): Remove def_chain_in_export call.
5384         (gori_export_iterator::gori_export_iterator): New.
5385         (gori_export_iterator::next): New.
5386         (gori_export_iterator::get_name): New.
5387         * gimple-range-gori.h (range_def_chain): Add imports and direct
5388         dependecies via struct rdc.
5389         (range_def_chain::depend1): New.
5390         (range_def_chain::depend2): New.
5391         (class gori_map): Adjust.
5392         (FOR_EACH_GORI_IMPORT_NAME): New.
5393         (FOR_EACH_GORI_EXPORT_NAME): New.
5394         (class gori_export_iterator): New.
5395
5396 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5397
5398         * gimple-range-cache.cc (ranger_cache::ranger_cache):  Move initial
5399         export cache filling to here.
5400         * gimple-range-gori.cc (gori_compute::gori_compute) : From Here.
5401
5402 2021-05-25  Andrew MacLeod  <amacleod@redhat.com>
5403
5404         * gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h.
5405         (gori_map): Move to gimple-range-gori.h.
5406         (gori_compute::gori_compute): Adjust.
5407         (gori_compute::~gori_compute): Delete.
5408         (gori_compute::compute_operand_range_switch): Adjust.
5409         (gori_compute::compute_operand_range): Adjust.
5410         (gori_compute::compute_logical_operands): Adjust.
5411         (gori_compute::has_edge_range_p ): Adjust.
5412         (gori_compute::set_range_invariant): Delete.
5413         (gori_compute::dump): Adjust.
5414         (gori_compute::outgoing_edge_range_p): Adjust.
5415         * gimple-range-gori.h (class range_def_chain): Relocate here.
5416         (class gori_map): Relocate here.
5417         (class gori_compute): Inherit from gori_map, and adjust.
5418
5419 2021-05-25  Aldy Hernandez  <aldyh@redhat.com>
5420
5421         * value-range.cc (range_tests_legacy): Use
5422         build_nonstandard_integer_type instead of int and short.
5423
5424 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5425
5426         * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL
5427         when really creating an initialization statement for it.
5428
5429 2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5430
5431         * tree-inline.c (setup_one_parameter): Fix thinko in new condition.
5432
5433 2021-05-25  Kito Cheng  <kito.cheng@sifive.com>
5434
5435         * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax.
5436
5437 2021-05-25  Martin Liska  <mliska@suse.cz>
5438
5439         PR tree-optimization/92860
5440         PR target/99592
5441         * optc-save-gen.awk: Remove exceptions.
5442
5443 2021-05-25  Martin Liska  <mliska@suse.cz>
5444
5445         * asan.h (sanitize_coverage_p): New function.
5446         * doc/extend.texi: Document it.
5447         * fold-const.c (fold_range_test): Use sanitize_flags_p
5448         instead of flag_sanitize_coverage.
5449         (fold_truth_andor): Likewise.
5450         * sancov.c: Likewise.
5451         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
5452         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle
5453         -fsanitize-coverage when inlining.
5454
5455 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
5456
5457         * config/csky/csky-modes.def : Fix copyright.
5458
5459 2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>
5460
5461         * config/csky/csky-modes.def : Amend copyright.
5462         * config/csky/csky_insn_fpuv2.md : Likewise.
5463         * config/csky/csky_insn_fpuv3.md : Likewise.
5464
5465 2021-05-25  Richard Biener  <rguenther@suse.de>
5466
5467         PR middle-end/100727
5468         * calls.c (initialize_argument_information): Explicitely test
5469         for WITH_SIZE_EXPR.
5470         * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR.
5471
5472 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
5473
5474         * config/csky/csky.h (FRAME_POINTER_REGNUM): Use
5475         HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of
5476         the signle definition. The signle definition may not work well
5477         at simplify_subreg_regno().
5478         (HARD_FRAME_POINTER_REGNUM): New.
5479         (ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM.
5480         * config/csky/csky.c (get_csky_live_regs, csky_can_eliminate,
5481         csky_initial_elimination_offset, csky_expand_prologue,
5482         csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM.
5483
5484 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
5485
5486         * config/csky/csky.c (csky_option_override):
5487         Init csky_arch_isa_features[] in advance, so TARGET_DSP
5488         and TARGET_DIV can be set well.
5489
5490 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
5491
5492         * config/csky/constraints.md ("l", "h"): Delete.
5493         * config/csky/csky.h (reg_class, REG_CLASS_NAMES,
5494         REG_CLASS_CONTENTS):  Delete LO_REGS and HI_REGS.
5495         * config/csky/csky.c (regno_reg_classm,
5496         csky_secondary_reload, csky_register_move_cost):
5497         Use HILO_REGS instead of LO_REGS and HI_REGS.
5498
5499 2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>
5500
5501         * config/csky/constraints.md ("W"): New constriant for mem operand
5502         with base reg, index register.
5503         ("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to
5504         "csky_valid_mem_constraint_operand" to deal with both "Q" and "W"
5505         constraint.
5506         ("Dv"): New constraint for const double value that can be used at
5507         fmovi instruction.
5508         * config/csky/csky-modes.def (HFmode): New mode.
5509         * config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename
5510         to "csky_valid_mem_constraint_operand" and support new constraint
5511         "W".
5512         (csky_get_movedouble_length): New.
5513         (fpuv3_output_move): New.
5514         (fpuv3_const_double): New.
5515         * config/csky/csky.c (csky_option_override): New arch CK860 with fpv3.
5516         (decompose_csky_address): Refine.
5517         (csky_print_operand): New "CONST_DOUBLE" operand.
5518         (csky_output_move): Support fpv3 instructions.
5519         (csky_get_movedouble_length): New.
5520         (fpuv3_output_move): New.
5521         (fpuv3_const_double): New.
5522         (csky_emit_compare): Cover float comparsion.
5523         (csky_emit_compare_float): Refine.
5524         (csky_vaild_fpuv2_mem_operand): Rename to
5525         "csky_valid_mem_constraint_operand" and support new constraint "W".
5526         (ck860_rtx_costs): New.
5527         (csky_rtx_costs): Add the cost calculation of CK860.
5528         (regno_reg_class): New vregs for fpuv3.
5529         (csky_dbx_regno): Likewise.
5530         (csky_cpu_cpp_builtins): New builtin macro for fpuv3.
5531         (csky_conditional_register_usage): Suporrot fpuv3.
5532         (csky_dwarf_register_span): Suporrot fpuv3.
5533         (csky_init_builtins, csky_mangle_type): Support "__fp16" type.
5534         (ck810_legitimate_index_p): Support fp16.
5535         * config/csky/csky.h (TARGET_TLS): ADD CK860.
5536         (CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3.
5537         (TARGET_SINGLE_FPU): Support fpuv3.
5538         (TARGET_SUPPORT_FPV3): New.
5539         (FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers.
5540         (FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES,
5541          REG_CLASS_CONTENTS): Support fpuv3.
5542         * config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine.
5543         (csky_movsf_fpv2): Likewise.
5544         (ck801_movsf): Likewise.
5545         (csky_movsf): Likewise.
5546         (movdf): Likewise.
5547         (csky_movdf_fpv2): Likewise.
5548         (ck801_movdf): Likewise.
5549         (csky_movdf): Likewise.
5550         (movsicc): Refine. Use "comparison_operatior" instead of
5551         "ordered_comparison_operatior".
5552         (addsicc): Likewise.
5553         (CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant.
5554         (call_value_internal_vh): New.
5555         * config/csky/csky_cores.def (CK860): New arch and cpu.
5556         (fpv3_hf): New.
5557         (fpv3_hsf): New.
5558         (fpv3_sdf): New.
5559         (fpv3): New.
5560         * config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns
5561         into emit-patterns and match-patterns, remain the emit-patterns here,
5562         and move the match-patterns to csky_insn_fpuv2.md or
5563         csky_insn_fpuv3.md.
5564         * config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions.
5565         * config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3
5566         isntructions.
5567         * config/csky/csky_isa.def (fcr): New.
5568         (fpv3_hi): New.
5569         (fpv3_hf): New.
5570         (fpv3_sf): New.
5571         (fpv3_df): New.
5572         (CK860): New definition for ck860.
5573         * config/csky/csky_tables.opt (ck860): New processors ck860,
5574         ck860f. And new arch ck860.
5575         (fpv3_hf): New.
5576         (fpv3_hsf): New.
5577         (fpv3_hdf): New.
5578         (fpv3): New.
5579         * config/csky/predicates.md (csky_float_comparsion_operator): Delete
5580         "geu", "gtu", "leu", "ltu", which will never appear at float comparison.
5581         * config/csky/t-csky-elf: Support 860.
5582         * config/csky/t-csky-linux: Likewise.
5583         * doc/md.texi: Add "Q" and "W" constraints for C-SKY.
5584
5585 2021-05-24  Aaron Sawdey  <acsawdey@linux.ibm.com>
5586
5587         * config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to
5588         add generation of logical-add and add-logical fusion pairs.
5589         * config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask
5590         and powerpc mask.
5591         * config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on
5592         logical-add and add-logical fusion by default.
5593         * config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and
5594         -mpower10-fusion-add-logical options.
5595         * config/rs6000/fusion.md: Regenerate file.
5596
5597 2021-05-24  Aldy Hernandez  <aldyh@redhat.com>
5598
5599         * value-range.cc (irange::legacy_equal_p): Check type when
5600         comparing VR_VARYING types.
5601         (range_tests_legacy): Test comparing VARYING ranges of different
5602         sizes.
5603
5604 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
5605
5606         * config/aarch64/aarch64.c (neoversen1_tunings):
5607         Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
5608
5609 2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
5610
5611         * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for
5612         extern weak symbols.  Limit symbol offsets for non-GOT symbols with
5613         PIC/PIE.
5614
5615 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
5616
5617         * config/arm/neon.md (vec_load_lanesxi<mode>)
5618         (vec_store_lanexoi<mode>): Move ...
5619         * config/arm/vec-common.md: here.
5620
5621 2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>
5622
5623         * config/arm/neon.md (vec_load_lanesoi<mode>)
5624         (vec_store_lanesoi<mode>): Move ...
5625         * config/arm/vec-common.md: here.
5626
5627 2021-05-24  liuhongt  <hongtao.liu@intel.com>
5628
5629         PR target/100660
5630         * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing
5631         stmt with GIMPLE_NOP when lhs doesn't exist.
5632
5633 2021-05-23  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5634
5635         PR target/100722
5636         * config/i386/mmx.md (*push<VI_32:mode>2_rex64):
5637         New instruction pattern.
5638         (*push<VI_32:mode>2): Ditto.
5639         (push splitter for SSE registers): New splitter.
5640
5641 2021-05-23  Andrew Pinski  <apinski@marvell.com>
5642
5643         * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types.
5644
5645 2021-05-22  Aaron Sawdey  <acsawdey@linux.ibm.com>
5646
5647         * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types.
5648         * config/rs6000/fusion.md: Regenerate file.
5649
5650 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
5651
5652         * config/rs6000/genfusion.pl (gen_addadd): New function.
5653         * config/rs6000/fusion.md: Regenerate file.
5654         * config/rs6000/rs6000-cpus.def: Add
5655         OPTION_MASK_P10_FUSION_2ADD to masks.
5656         * config/rs6000/rs6000.c (rs6000_option_override_internal):
5657         Handle default value of OPTION_MASK_P10_FUSION_2ADD.
5658         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2add.
5659
5660 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
5661
5662         PR middle-end/99928
5663         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define.
5664         * gimplify.c (enum gimplify_omp_var_data): Fix up
5665         GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT.
5666         (omp_lastprivate_for_combined_outer_constructs): If combined target
5667         has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to
5668         GOVD_MAP | GOVD_SEEN.
5669         (gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for
5670         firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT.
5671         (gimplify_adjust_omp_clauses): For firstprivate clauses with
5672         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and
5673         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and
5674         let it be replaced by implicit map clause.
5675
5676 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
5677
5678         PR middle-end/99928
5679         * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New
5680         function.
5681         (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it.
5682         (gimplify_omp_for): Likewise.
5683
5684 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5685
5686         PR middle-end/90115
5687         * omp-low.c (oacc_privatization_candidate_p): Reject 'static',
5688         'external' in blocks.
5689
5690 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5691
5692         PR middle-end/90115
5693         * flag-types.h (enum openacc_privatization): New.
5694         * params.opt (-param=openacc-privatization): New.
5695         * doc/invoke.texi (openacc-privatization): Document it.
5696         * omp-general.h (get_openacc_privatization_dump_flags): New
5697         function.
5698         * omp-low.c (oacc_privatization_candidate_p): Add diagnostics.
5699         * omp-offload.c (execute_oacc_device_lower)
5700         <IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics.
5701         * target.def (goacc.adjust_private_decl): Add 'location_t'
5702         parameter.
5703         * doc/tm.texi: Regenerate.
5704         * config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust.
5705         * config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise.
5706         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl):
5707         Likewise.  Preserve it for...
5708         (nvptx_goacc_expand_var_decl): ... use here.
5709
5710 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5711
5712         * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__'
5713         DejaGnu selector.
5714
5715 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5716
5717         PR middle-end/90115
5718         * omp-low.c (oacc_privatization_candidate_p): New function.
5719         (oacc_privatization_scan_clause_chain)
5720         (oacc_privatization_scan_decl_chain): Use it.  Also
5721         'gcc_checking_assert' that we're not seeing duplicates.
5722
5723 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5724
5725         PR middle-end/90115
5726         * omp-offload.c (execute_oacc_device_lower): Skip processing if no
5727         work to be done.
5728
5729 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5730
5731         PR middle-end/90115
5732         * omp-offload.c (execute_oacc_device_lower): Explain.
5733
5734 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5735
5736         PR middle-end/90115
5737         * omp-offload.c (execute_oacc_device_lower)
5738         <IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1'
5739         case, too.
5740         * internal-fn.c (expand_UNIQUE): Don't expect
5741         'IFN_UNIQUE_OACC_PRIVATE'.
5742
5743 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5744
5745         PR middle-end/90115
5746         * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses.
5747
5748 2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5749
5750         PR middle-end/90115
5751         * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl)
5752         (nvptx_goacc_expand_var_decl): Tighten.
5753
5754 2021-05-21  Julian Brown  <julian@codesourcery.com>
5755             Chung-Lin Tang  <cltang@codesourcery.com>
5756             Thomas Schwinge  <thomas@codesourcery.com>
5757
5758         PR middle-end/90115
5759         * doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL)
5760         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks.
5761         * doc/tm.texi: Regenerate.
5762         * expr.c (expand_expr_real_1): Expand decls using the
5763         expand_var_decl OpenACC hook if defined.
5764         * internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE.
5765         * internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE.
5766         * omp-low.c (omp_context): Add oacc_privatization_candidates
5767         field.
5768         (lower_oacc_reductions): Add PRIVATE_MARKER parameter.  Insert
5769         before fork.
5770         (lower_oacc_head_tail): Add PRIVATE_MARKER parameter.  Modify
5771         private marker's gimple call arguments, and pass it to
5772         lower_oacc_reductions.
5773         (oacc_privatization_scan_clause_chain)
5774         (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
5775         New functions.
5776         (lower_omp_for, lower_omp_target, lower_omp_1): Use these.
5777         * omp-offload.c (convert.h): Include.
5778         (oacc_loop_xform_head_tail): Treat private-variable markers like
5779         fork/join when transforming head/tail sequences.
5780         (struct var_decl_rewrite_info): Add struct.
5781         (oacc_rewrite_var_decl, is_sync_builtin_call): New functions.
5782         (execute_oacc_device_lower): Support rewriting gang-private
5783         variables using target hook, and fix up addr_expr and var_decl
5784         nodes afterwards.
5785         * target.def (adjust_private_decl, expand_var_decl): New hooks.
5786         * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl):
5787         Rename to...
5788         (gcn_goacc_adjust_private_decl): ...this.
5789         * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl):
5790         Rename to...
5791         (gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter.
5792         * config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename
5793         definition using gcn_goacc_adjust_gangprivate_decl...
5794         (TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using
5795         gcn_goacc_adjust_private_decl.
5796         * config/nvptx/nvptx.c (tree-pretty-print.h): Include.
5797         (gang_private_shared_size): New global variable.
5798         (gang_private_shared_align): Likewise.
5799         (gang_private_shared_sym): Likewise.
5800         (gang_private_shared_hmap): Likewise.
5801         (nvptx_option_override): Initialize these.
5802         (nvptx_file_end): Output gang_private_shared_sym.
5803         (nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl):
5804         New functions.
5805         (nvptx_set_current_function): Clear gang_private_shared_hmap.
5806         (TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook.
5807         (TARGET_GOACC_EXPAND_VAR_DECL): Likewise.
5808
5809 2021-05-21  H.J. Lu  <hjl.tools@gmail.com>
5810
5811         * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed.
5812
5813 2021-05-21  Richard Biener  <rguenther@suse.de>
5814             H.J. Lu  <hjl.tools@gmail.com>
5815
5816         PR middle-end/90773
5817         * expr.c (expand_constructor): Elide expand_constructor if
5818         move by pieces is preferred.
5819
5820 2021-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5821
5822         * config/aarch64/aarch64-builtins.c (aarch64_call_properties):
5823         Take a flag and mode value as arguments.
5824         (aarch64_modifies_global_state_p): Likewise.
5825         (aarch64_reads_global_state_p): Likewise.
5826         (aarch64_could_trap_p): Likewise.
5827         (aarch64_get_attributes): Likewise.
5828         (aarch64_init_simd_builtins): Adjust callsite of above.
5829         (aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get
5830         function attributes to apply to builtins.
5831         (aarch64_init_crc32_builtins): Likewise.
5832         (aarch64_init_builtin_rsqrt): Likewise.
5833
5834 2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
5835
5836         * config/rs6000/rs6000.md (define_attr "type"): Add types for fusion.
5837         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types.
5838         (gen_2logical): Use new fusion types.
5839         * config/rs6000/fusion.md: Regenerate.
5840
5841 2021-05-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5842
5843         PR target/100637
5844         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
5845         Handle V4QI and V2HI modes.
5846         (ix86_expand_sse_movcc): Ditto.
5847         * config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3):
5848         New instruction pattern.
5849         (*eq<VI_32:mode>3): Ditto.
5850         (*gt<VI_32:mode>3): Ditto.
5851         (*xop_pcmov_<VI_32:mode>): Ditto.
5852         (mmx_pblendvb32): Ditto.
5853         (mmx_pblendvb64): Rename from mmx_pblendvb.
5854         (vec_cmp<VI_32:mode><VI_32:mode>): New expander.
5855         (vec_cmpu<VI_32:mode><VI_32:mode>): Ditto.
5856         (vcond<VI_32:mode><VI_32:mode>): Ditto.
5857         (vcondu<VI_32:mode><VI_32:mode>): Ditto.
5858         (vcond_mask_<VI_32:mode><VI_32:mode>): Ditto.
5859
5860 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
5861
5862         PR tree-optimization/94589
5863         * tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and
5864         rhs2, treat x <= 4 equivalently to x < 5 etc.  In cmp1 and cmp2 (if
5865         not the same as cmp3) treat <= the same as < and >= the same as >.
5866         Don't require that cond2_phi_edge is true edge, instead take
5867         false/true edges into account based on cmp1/cmp2 comparison kinds.
5868
5869 2021-05-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5870
5871         PR target/100637
5872         * config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator.
5873         (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Macroize expander
5874         from <smaxmin:code>v4hi3> and <smaxmin:code><MMXMODE14:mode>3
5875         using SMAXMIN_MMXMODEI mode iterator.
5876         (*<smaxmin:code>v4qi3): New insn pattern.
5877         (*<smaxmin:code>v2hi3): Ditto.
5878         (SMAXMIN_VI_32): New mode iterator.
5879         (<smaxmin:code><SMAXMIN_VI_32>mode3): New expander.
5880         (UMAXMIN_MMXMODEI): New mode iterator.
5881         (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Macroize expander
5882         from <umaxmin:code>v8qi3> and <umaxmin:code><MMXMODE24:mode>3
5883         using UMAXMIN_MMXMODEI mode iterator.
5884         (*<umaxmin:code>v4qi3): New insn pattern.
5885         (*<umaxmin:code>v2hi3): Ditto.
5886         (UMAXMIN_VI_32): New mode iterator.
5887         (<umaxmin:code><UMAXMIN_VI_32>mode3): New expander.
5888         (abs<VI_32:mode>2): New insn pattern.
5889         (ssse3_abs<MMXMODEI:mode>2, abs<MMXMODEI:mode>2): Move from ...
5890         * config/i386/sse.md: ... here.
5891
5892 2021-05-20  Clement Chigot  <clement.chigot@atos.net>
5893             David Edelsohn  <dje.gcc@gmail.com>
5894
5895         * collect2.c (scan_prog_file): Issue non-fatal warning for
5896         non-COFF files.
5897
5898 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
5899
5900         * doc/invoke.texi (-Wno-c++11-extensions)
5901         (-Wno-c++14-extensions, -Wno-c++17-extensions)
5902         (-Wno-c++20-extensions, -Wno-c++23-extensions): Document
5903         new options.
5904
5905 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
5906
5907         * config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p.
5908         * config/darwin.c (darwin_override_options): Likewise.
5909         * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
5910         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
5911         (DWARF2_FRAME_REG_OUT): Likewise.
5912         * config/mips/mips.c (mips_output_filename): Likewise.
5913         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name):
5914         Likewise.
5915         (rs6000_dbx_register_number): Likewise.
5916         * dbxout.c: Include flags.h.
5917         * dwarf2cfi.c (cfi_label_required_p): Likewise.
5918         (dwarf2out_do_frame): Likewise.
5919         * except.c: Include flags.h.
5920         * final.c (dwarf2_debug_info_emitted_p): Likewise.
5921         (final_scan_insn_1): Likewise.
5922         * flags.h (dwarf_debuginfo_p): New function declaration.
5923         * opts.c (dwarf_debuginfo_p): New function definition.
5924         * targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p.
5925         * toplev.c (process_options): Likewise.
5926
5927 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
5928
5929         * common.opt: Change type to support bitmasks.
5930         * flag-types.h (enum debug_info_type): Rename enumerator constants.
5931         (NO_DEBUG): New bitmask.
5932         (DBX_DEBUG): Likewise.
5933         (DWARF2_DEBUG): Likewise.
5934         (XCOFF_DEBUG): Likewise.
5935         (VMS_DEBUG): Likewise.
5936         (VMS_AND_DWARF2_DEBUG): Likewise.
5937         * flags.h (debug_set_to_format): New function declaration.
5938         (debug_set_count): Likewise.
5939         (debug_set_names): Likewise.
5940         * opts.c (debug_type_masks): Array of bitmasks for debug formats.
5941         (debug_set_to_format): New function definition.
5942         (debug_set_count): Likewise.
5943         (debug_set_names): Likewise.
5944         (set_debug_level): Update access to debug_type_names.
5945         * toplev.c: Likewise.
5946
5947 2021-05-20  Martin Sebor  <msebor@redhat.com>
5948
5949         PR middle-end/100684
5950         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda.
5951
5952 2021-05-20  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5953
5954         PR target/100701
5955         * config/i386/i386.md (isa): Remove x64_bmi.
5956         (enabled): Remove x64_bmi.
5957         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
5958         Remove general register alternative.
5959         (*andnot<VI_32:mode>3): Ditto.
5960         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
5961         (*<any_logic:code><VI_32:mode>3): Ditto.
5962
5963 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
5964
5965         * config/arm/arm.c: Include head files tree-vectorizer.h and
5966         cfgloop.h.
5967
5968 2021-05-20  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5969
5970         PR target/100637
5971         * config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes.
5972         (*<plusminus:insn><VI_32:mode>3): Use Yw instad of <Yv_Yw> constrint.
5973         (<s>mulv4hi3_highpart): New expander.
5974         (*<s>mulv2hi3_highpart): New insn pattern.
5975         (<s>mulv2hi3_higpart): New expander.
5976         (*<any_shift:insn>v2hi3): New insn pattern.
5977         (<any_shift:insn>v2hi3): New expander.
5978         * config/i386/sse.md (smulhrsv2hi3): New expander.
5979         (*smulhrsv2hi3): New insn pattern.
5980
5981 2021-05-20  Kewen Lin  <linkw@linux.ibm.com>
5982
5983         * doc/invoke.texi (vect-inner-loop-cost-factor): Document new
5984         parameter.
5985         * params.opt (vect-inner-loop-cost-factor): New.
5986         * targhooks.c (default_add_stmt_cost): Replace hardcoded factor
5987         50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file
5988         tree-vectorizer.h and its required ones.
5989         * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace
5990         hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR.
5991         * config/arm/arm.c (arm_add_stmt_cost): Likewise.
5992         * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
5993         * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
5994         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
5995         Likewise.
5996         (_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor.
5997         * tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor.
5998         (LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro.
5999
6000 2021-05-20  Christophe Lyon  <christophe.lyon@linaro.org>
6001             Torbjörn Svensson  <torbjorn.svensson@st.com>
6002
6003         PR c/42579
6004         * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__.
6005
6006 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
6007
6008         PR middle-end/99928
6009         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LINEAR>: For
6010         explicit linear clause when combined with target, make it map(tofrom:)
6011         instead of no clause or firstprivate.
6012
6013 2021-05-20  Jakub Jelinek  <jakub@redhat.com>
6014
6015         PR tree-optimization/94589
6016         * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence
6017         of integral conversions.
6018
6019 2021-05-19  Andrew MacLeod  <amacleod@redhat.com>
6020
6021         * gimple-range.cc (fur_source::get_operand): New.
6022         (gimple_range_fold): Delete.
6023         (fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt.
6024         (fold_using_range::range_of_range_op): Move from gimple_ranger.
6025         (fold_using_range::range_of_address): Ditto.
6026         (fold_using_range::range_of_phi): Ditto.
6027         (fold_using_range::range_of_call): Ditto.
6028         (fold_using_range::range_of_builtin_ubsan_call): Move from
6029         range_of_builtin_ubsan_call.
6030         (fold_using_range::range_of_builtin_call): Move from
6031         range_of_builtin_call.
6032         (gimple_ranger::range_of_builtin_call): Delete.
6033         (fold_using_range::range_of_cond_expr): Move from gimple_ranger.
6034         (gimple_ranger::fold_range_internal): New.
6035         (gimple_ranger::range_of_stmt): Use new fold_using_range API.
6036         (fold_using_range::range_of_ssa_name_with_loop_info): Move from
6037         gimple_ranger.  Improve ranges of SSA_NAMES when possible.
6038         * gimple-range.h (gimple_ranger): Remove various range_of routines.
6039         (class fur_source): New.
6040         (class fold_using_range): New.
6041         (fur_source::fur_source): New.
6042         (fold_range): New.
6043         * vr-values.c (vr_values::extract_range_basic): Use fold_using_range
6044         instead of range_of_builtin_call.
6045
6046 2021-05-19  Jonathan Wakely  <jwakely@redhat.com>
6047
6048         * doc/cpp.texi (Common Predefined Macros): Update documentation
6049         for the __GXX_EXPERIMENTAL_CXX0X__ macro.
6050
6051 2021-05-19  Alex Coplan  <alex.coplan@arm.com>
6052
6053         PR target/100333
6054         * config/arm/arm.md (nonsecure_call_internal): Always ensure
6055         callee's address is in a register.
6056
6057 2021-05-19  Geng Qi  <gengqi@linux.alibaba.com>
6058
6059         * common/config/riscv/riscv-common.c
6060         (riscv_subset_list::parsing_subset_version): Properly parse the letter
6061         'p' in '-march'.
6062         (riscv_subset_list::parse_std_ext,
6063          riscv_subset_list::parse_multiletter_ext): To handle errors generated
6064         in riscv_subset_list::parsing_subset_version.
6065
6066 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
6067
6068         * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q"
6069         type attribute in patterns generating XTN(2).
6070
6071 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
6072
6073         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_<mode>):
6074         Remove as duplicate of...
6075         (aarch64_xtn<mode>): This.
6076         (aarch64_xtn2<mode>_le): Move position in file.
6077         (aarch64_xtn2<mode>_be): Move position in file.
6078         (aarch64_xtn2<mode>): Move position in file.
6079         (vec_pack_trunc_<mode>): Define as an expander.
6080
6081 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
6082
6083         * config/aarch64/aarch64-simd-builtins.def: Split builtin
6084         generation for aarch64_<sur>q<r>shr<u>n_n<mode> pattern into
6085         separate scalar and vector generators.
6086         * config/aarch64/aarch64-simd.md
6087         (aarch64_<sur>q<r>shr<u>n_n<mode>): Define as an expander and
6088         split into...
6089         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): This and...
6090         (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): This.
6091         * config/aarch64/iterators.md: Define SD_HSDI iterator.
6092
6093 2021-05-19  Jonathn Wright  <jonathan.wright@arm.com>
6094
6095         * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead
6096         of UNSPEC_SQXTUN2.
6097         * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2.
6098
6099 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
6100
6101         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n2_n<mode>):
6102         Implement as an expand emitting a big/little endian
6103         instruction pattern.
6104         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Define.
6105         (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Define.
6106
6107 2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>
6108
6109         * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>):
6110         Implement as an expand emitting a big/little endian
6111         instruction pattern.
6112         (aarch64_<sur><addsub>hn2<mode>_insn_le): Define.
6113         (aarch64_<sur><addsub>hn2<mode>_insn_be): Define.
6114         * config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and
6115         UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator.
6116
6117 2021-05-19  Richard Biener  <rguenther@suse.de>
6118
6119         PR middle-end/100672
6120         * fold-const.c (fold_negate_expr_1): Use element_precision.
6121         (negate_expr_p): Likewise.
6122
6123 2021-05-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6124
6125         * config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator.
6126         (pred_load): New int attribute.
6127         * config/aarch64/aarch64-sve.md
6128         (aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Use
6129         SVE_PRED_LOAD enum iterator and corresponding pred_load attribute.
6130         * config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to
6131         code_for_aarch64_load.
6132
6133 2021-05-19  Richard Biener  <rguenther@suse.de>
6134
6135         * cfgexpand.c (discover_nonconstant_array_refs_r): Make
6136         sure TARGET_MEM_REF bases are expanded as memory.
6137         * tree-ssa-operands.c (operands_scanner::get_tmr_operands):
6138         Do not mark TARGET_MEM_REF bases addressable.
6139         * tree-ssa.c (non_rewritable_mem_ref_base): Handle
6140         TARGET_MEM_REF bases as never rewritable.
6141         * gimple-walk.c (walk_stmt_load_store_addr_ops): Do not
6142         walk TARGET_MEM_REF bases as address-takens.
6143         * tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF.
6144
6145 2021-05-19  Richard Biener  <rguenther@suse.de>
6146
6147         * builtins.c (get_object_alignment_1): Strip outer
6148         WITH_SIZE_EXPR.
6149         * tree-dfa.c (get_ref_base_and_extent): Handle outer
6150         WITH_SIZE_EXPR for size processing and process the
6151         containing ref.
6152         * tree-ssa-alias.c (ao_ref_base_alias_set): Strip
6153         outer WITH_SIZE_EXPR.
6154         (ao_ref_base_alias_ptr_type): Likewise.
6155         (refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref
6156         and handle that accordingly, stripping it for the
6157         core alias workers.
6158         * tree.c (get_base_address): Handle WITH_SIZE_EXPR by
6159         looking through it instead of returning NULL.
6160
6161 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
6162
6163         PR middle-end/100576
6164         * builtins.c (check_read_access): Convert bound to size_type_node if
6165         non-NULL.
6166
6167 2021-05-19  Richard Biener  <rguenther@suse.de>
6168
6169         * tree-cfg.c (verify_types_in_gimple_min_lval): Inline...
6170         (verify_types_in_gimple_reference): ... here.  Sanitize.
6171         (verify_gimple_call): Verify references in LHS and arguments.
6172         (verify_gimple_assign_single): Reject WITH_SIZE_EXPR.
6173
6174 2021-05-19  UroÅ¡ Bizjak  <ubizjak@gmail.com>
6175
6176         * config/i386/i386.h (VALID_INT_MODE_P):
6177         Add V8QI, V4HI and V2SI modes for TARGET_64BIT.
6178         * config/i386/i386.md (isa): Add x64_bmi.
6179         (enabled): Handle x64_bmi.
6180         * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
6181         Add alternative using 64bit general registers.
6182         (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
6183
6184 2021-05-19  Jakub Jelinek  <jakub@redhat.com>
6185
6186         PR middle-end/99928
6187         * tree.h (OMP_MASTER_COMBINED): Define.
6188         * gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate
6189         handling for outer combined/composite constructs to a loop.
6190         Handle lastprivate on combined target.
6191         (gimplify_expr): Formatting fix.
6192
6193 2021-05-19  Xionghu Luo  <luoxhu@linux.ibm.com>
6194
6195         * passes.def: Add sink_code pass before store_merging.
6196         * tree-ssa-sink.c (pass_sink_code:clone): New.
6197
6198 2021-05-18  Bill Schmidt  <wschmidt@linux.ibm.com>
6199
6200         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to
6201         rs6000_special_adjust_field_align_p.
6202         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
6203         * config/rs6000/rs6000-call.c (rs6000_function_arg_boundary):
6204         Remove ABI warning.
6205         (rs6000_function_arg): Likewise.
6206         * config/rs6000/rs6000-protos.h
6207         (rs6000_special_adjust_field_align_p): Remove prototype.
6208         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
6209         Remove.
6210         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to
6211         rs6000_special_adjust_field_align_p.
6212
6213 2021-05-18  UroÅ¡ Bizjak  <ubizjak@gmail.com>
6214
6215         PR target/100637
6216         * config/i386/i386.h (VALID_SSE2_REG_MODE):
6217         Add V4QI and V2HI modes.
6218         (VALID_INT_MODE_P): Ditto.
6219         * config/i386/mmx.md (VI_32): New mode iterator.
6220         (mmxvecsize): Handle V4QI and V2HI.
6221         (Yv_Yw): Ditto.
6222         (mov<VI_32:mode>): New expander.
6223         (*mov<mode>_internal): New insn pattern.
6224         (movmisalign<VI_32:mode>): New expander.
6225         (neg<VI_32:mode>): New expander.
6226         (<plusminus:insn><VI_32:mode>3): New expander.
6227         (*<plusminus:insn><VI_32:mode>3): New insn pattern.
6228         (mulv2hi3): New expander.
6229         (*mulv2hi3): New insn pattern.
6230         (one_cmpl<VI_32:mode>2): New expander.
6231         (*andnot<VI_32:mode>3): New insn pattern.
6232         (<any_logic:code><VI_32:mode>3): New expander.
6233         (*<any_logic:code><VI_32:mode>3): New insn pattern.
6234
6235 2021-05-18  UroÅ¡ Bizjak  <ubizjak@gmail.com>
6236
6237         * config/i386/sse.md (<any_extend:insn>v4qiv4di2):
6238         Fix a mode mismatch with operand 1.
6239
6240 2021-05-18  UroÅ¡ Bizjak  <ubizjak@gmail.com>
6241
6242         PR target/100626
6243         * config/i386/i386-expand.c (split_double_mode): Return
6244         temporary register when simplify_gen_subreg fails with
6245         the high half od the paradoxical subreg.
6246
6247 2021-05-18  Richard Biener  <rguenther@suse.de>
6248
6249         * cfgexpand.c (expand_one_var): Pass in forced_stack_var
6250         and honor it when expanding.
6251         (expand_used_vars_for_block): Pass through forced_stack_var.
6252         (expand_used_vars): Likewise.
6253         (discover_nonconstant_array_refs_r): Set bits in
6254         forced_stack_vars instead of marking vars TREE_ADDRESSABLE.
6255         (avoid_type_punning_on_regs): Likewise.
6256         (discover_nonconstant_array_refs): Likewise.
6257         (pass_expand::execute): Create and pass down forced_stack_var
6258         bitmap.  For parameters and returns temporarily set
6259         TREE_ADDRESSABLE when expand_function_start.
6260
6261 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
6262
6263         * doc/sourcebuild.texi: Document 'dg-note'.
6264
6265 2021-05-18  Tobias Burnus  <tobias@codesourcery.com>
6266
6267         PR other/100598
6268         * configure: Regenerate.
6269         * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@).
6270
6271 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
6272
6273         * gimple.h (is_gimple_omp_oacc): Tighten.
6274         * omp-low.c (check_omp_nesting_restrictions): Adjust.
6275
6276 2021-05-18  Richard Biener  <rguenther@suse.de>
6277
6278         * tree-ssa-operands.c (mark_address_taken): Simplify.
6279
6280 2021-05-18  Martin Liska  <mliska@suse.cz>
6281
6282         * config/gcn/mkoffload.c (STR): Redefine.
6283         * config/i386/intelmic-mkoffload.c (STR): Likewise.
6284         * config/nvptx/mkoffload.c (STR): Likewise.
6285
6286 2021-05-18  Martin Liska  <mliska@suse.cz>
6287
6288         * common/config/aarch64/aarch64-common.c (aarch64_parse_extension):
6289         Use startswith function instead of strncmp.
6290         * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
6291         * common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise.
6292         * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise.
6293         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise.
6294         * config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise.
6295         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
6296         * config/arm/arm.c (arm_file_start): Likewise.
6297         (arm_valid_target_attribute_rec): Likewise.
6298         (thumb1_md_asm_adjust): Likewise.
6299         * config/arm/driver-arm.c (host_detect_local_cpu): Likewise.
6300         * config/avr/avr.c (STR_PREFIX_P): Likewise.
6301         (avr_set_current_function): Likewise.
6302         (avr_handle_addr_attribute): Likewise.
6303         (avr_asm_output_aligned_decl_common): Likewise.
6304         (avr_asm_named_section): Likewise.
6305         (avr_section_type_flags): Likewise.
6306         (avr_asm_select_section): Likewise.
6307         * config/c6x/c6x.c (c6x_in_small_data_p): Likewise.
6308         (c6x_section_type_flags): Likewise.
6309         * config/darwin-c.c (darwin_cfstring_ref_p): Likewise.
6310         (darwin_objc_declare_unresolved_class_reference): Likewise.
6311         (darwin_objc_declare_class_definition): Likewise.
6312         * config/darwin.c (indirect_data): Likewise.
6313         (darwin_encode_section_info): Likewise.
6314         (darwin_objc2_section): Likewise.
6315         (darwin_objc1_section): Likewise.
6316         (machopic_select_section): Likewise.
6317         (darwin_globalize_label): Likewise.
6318         (darwin_label_is_anonymous_local_objc_name): Likewise.
6319         (darwin_asm_named_section): Likewise.
6320         (darwin_asm_output_dwarf_offset): Likewise.
6321         * config/frv/frv.c (frv_string_begins_with): Likewise.
6322         (frv_in_small_data_p): Likewise.
6323         * config/gcn/mkoffload.c (STR): Likewise.
6324         (main): Likewise.
6325         * config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise.
6326         * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
6327         * config/i386/i386.c (x86_64_elf_section_type_flags): Likewise.
6328         (ix86_md_asm_adjust): Likewise.
6329         * config/i386/intelmic-mkoffload.c (STR): Likewise.
6330         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
6331         (i386_pe_file_end): Likewise.
6332         * config/ia64/ia64.c (ia64_in_small_data_p): Likewise.
6333         (ia64_section_type_flags): Likewise.
6334         * config/mips/driver-native.c (host_detect_local_cpu): Likewise.
6335         * config/mips/mips.c (mips_handle_interrupt_attr): Likewise.
6336         (mips16_stub_function_p): Likewise.
6337         (mips_function_rodata_section): Likewise.
6338         * config/msp430/msp430.c (msp430_mcu_name): Likewise.
6339         (msp430_function_section): Likewise.
6340         (msp430_section_type_flags): Likewise.
6341         (msp430_expand_helper): Likewise.
6342         * config/nios2/nios2.c (nios2_small_section_name_p): Likewise.
6343         (nios2_valid_target_attribute_rec): Likewise.
6344         * config/nvptx/mkoffload.c (process): Likewise.
6345         (STR): Likewise.
6346         * config/pa/som.h: Likewise.
6347         * config/pdp11/pdp11.c (pdp11_output_ident): Likewise.
6348         * config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise.
6349         * config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise.
6350         (rs6000_inner_target_options): Likewise.
6351         * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise.
6352         * config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise.
6353         * config/vax/vax.c (vax_output_int_move): Likewise.
6354         * config/vms/vms-ld.c (startswith): Likewise.
6355         (process_args): Likewise.
6356         (main): Likewise.
6357         * config/vms/vms.c: Likewise.
6358
6359 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
6360
6361         PR rtl-optimization/100590
6362         * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if
6363         they are NONJUMP_INSN_P.
6364
6365 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
6366
6367         PR c++/100580
6368         * function.c (push_dummy_function): Set DECL_ARTIFICIAL and
6369         DECL_ASSEMBLER_NAME on the fn_decl.
6370
6371 2021-05-18  Jakub Jelinek  <jakub@redhat.com>
6372
6373         PR tree-optimization/94589
6374         * tree-ssa-phiopt.c (spaceship_replacement): Pattern match
6375         phi result used in (res & ~1) == 0 comparison as res >= 0 as
6376         res == 2 would be UB with -ffinite-math-only.
6377
6378 2021-05-18  Martin Liska  <mliska@suse.cz>
6379
6380         * Makefile.in: genversion.o should depend on DATESTAMP.
6381
6382 2021-05-18  Claudiu Zissulescu  <claziss@synopsys.com>
6383
6384         * config/arc/simdext.md (negv2si2): Remove round bracket.
6385
6386 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
6387
6388         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
6389         _Bool as macro expanding to _Bool.
6390
6391 2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
6392
6393         PR c++/100281
6394         * tree.c (build_reference_type_for_mode)
6395         (build_pointer_type_for_mode): Pick pointer mode if MODE argument
6396         is VOIDmode.
6397         (build_reference_type, build_pointer_type): Invoke
6398         build_*_type_for_mode with VOIDmode.
6399
6400 2021-05-17  Andrew MacLeod  <amacleod@redhat.com>
6401
6402         PR tree-optimization/100512
6403         * gimple-range-cache.cc (ranger_cache::set_global_range): Mark const
6404         and non-zero pointer ranges as invariant.
6405         * gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer
6406         processing from here.
6407
6408 2021-05-17  Tom de Vries  <tdevries@suse.de>
6409
6410         PR target/100497
6411         * config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare
6412         * config/nvptx/nvptx.c (nvptx_output_barrier)
6413         (nvptx_output_atomic_insn): New function.
6414         (nvptx_print_operand): Add support for 'B'.
6415         * config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic
6416         insns.
6417
6418 2021-05-17  Aldy Hernandez  <aldyh@redhat.com>
6419
6420         PR tree-optimization/100349
6421         * vr-values.c (bounds_of_var_in_loop): Bail if scev returns
6422           NULL.
6423
6424 2021-05-17  Tamar Christina  <tamar.christina@arm.com>
6425
6426         * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New.
6427         (host_detect_local_cpu): Use it.
6428
6429 2021-05-17  Martin Liska  <mliska@suse.cz>
6430
6431         * doc/invoke.texi: Add 2 missing dots.
6432
6433 2021-05-17  Marius Hillenbrand  <mhillen@linux.ibm.com>
6434
6435         PR bootstrap/100552
6436         * configure.ac: Replace pattern substitution with call to sed.
6437         * configure: Regenerate.
6438
6439 2021-05-17  Richard Biener  <rguenther@suse.de>
6440
6441         PR middle-end/100582
6442         * tree.c (array_at_struct_end_p): Get to the base of the
6443         reference before looking for the underlying decl.
6444
6445 2021-05-17  Joern Rennecke  <joern.rennecke@embecosm.com>
6446
6447         * genoutput.c (validate_insn_alternatives) Make "wrong number of
6448         alternatives" message more specific, and remove assumption on where
6449         the problem is.
6450
6451 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
6452
6453         * config/arm/iterators.md (V16): New iterator.
6454         (VH_cvtto): New iterator.
6455         (v_cmp_result): Added V4HF and V8HF support.
6456         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>): Use VDQWH.
6457         (vcond<mode><mode>): Likewise.
6458         (vcond_mask_<mode><v_cmp_result>): Likewise.
6459         (vcond<VH_cvtto><mode>): New expander.
6460
6461 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
6462
6463         * config/arm/arm-protos.h (arm_expand_vector_compare): Update
6464         prototype.
6465         * config/arm/arm.c (arm_expand_vector_compare): Add support for
6466         MVE.
6467         (arm_expand_vcond): Likewise.
6468         * config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S,
6469         VCMPEQQ_N_S, VCMPNEQ_N_S.
6470         (VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove.
6471         * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Add '@' prefix.
6472         (@mve_vcmp<mve_cmp_op>q_f<mode>): Likewise.
6473         (@mve_vcmp<mve_cmp_op>q_n_f<mode>): Likewise.
6474         (@mve_vpselq_<supf><mode>): Likewise.
6475         (@mve_vpselq_f<mode>"): Likewise.
6476         * config/arm/neon.md (vec_cmp<mode><v_cmp_result): Enable for MVE
6477         and move to vec-common.md.
6478         (vec_cmpu<mode><mode>): Likewise.
6479         (vcond<mode><mode>): Likewise.
6480         (vcond<V_cvtto><mode>): Likewise.
6481         (vcondu<mode><v_cmp_result>): Likewise.
6482         (vcond_mask_<mode><v_cmp_result>): Likewise.
6483         * config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S)
6484         (VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U)
6485         (VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S)
6486         (VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U)
6487         (VCMPHIQ_N_U, VCMPHIQ_U): Remove.
6488         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result): Moved
6489         from neon.md.
6490         (vec_cmpu<mode><mode>): Likewise.
6491         (vcond<mode><mode>): Likewise.
6492         (vcond<V_cvtto><mode>): Likewise.
6493         (vcondu<mode><v_cmp_result>): Likewise.
6494         (vcond_mask_<mode><v_cmp_result>): Likewise. Added unsafe math
6495         condition.
6496
6497 2021-05-17  liuhongt  <hongtao.liu@intel.com>
6498
6499         PR target/100549
6500         * config/i386/i386.c (ix86_gimple_fold_builtin): Use
6501         gsi_insert_seq_before instead.
6502
6503 2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>
6504
6505         * doc/sourcebuild.texi (arm_qbit_ok): Rename into...
6506         (arm_sat_ok): ...this.
6507
6508 2021-05-17  Martin Liska  <mliska@suse.cz>
6509
6510         * lto-wrapper.c (merge_flto_options): Factor out a new function.
6511         (merge_and_complain): Use it.
6512         (run_gcc): Merge also linker command line -flto=foo argument
6513         with IL files.
6514
6515 2021-05-16  Christophe Lyon  <christophe.lyon@linaro.org>
6516
6517         * config/arm/arm.h (CPP_SPEC): Remove error message about
6518         -mlittle-endian/-mbig-endian conflict.
6519
6520 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
6521
6522         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
6523         __ROP_PROTECT__ if -mrop-protect is selected.
6524
6525 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
6526
6527         * config/rs6000/rs6000-internal.h (rs6000_stack): Add
6528         rop_hash_save_offset and rop_hash_size.
6529         * config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute
6530         rop_hash_size and rop_hash_save_offset.
6531         (debug_stack_info): Dump rop_hash_save_offset and rop_hash_size.
6532         (rs6000_emit_prologue): Emit hashst[p] in prologue.
6533         (rs6000_emit_epilogue): Emit hashchk[p] in epilogue.
6534         * config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and
6535         UNSPEC_HASHCHK.
6536         (hashst): New define_insn.
6537         (hashchk): Likewise.
6538
6539 2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>
6540
6541         * config/rs6000/rs6000.c (rs6000_option_override_internal):
6542         Disable shrink wrap when inserting ROP-protect instructions.
6543         * config/rs6000/rs6000.opt (mrop-protect): New option.
6544         (mprivileged): Likewise.
6545         * doc/invoke.texi: Document mrop-protect and mprivileged.
6546
6547 2021-05-15  Hans-Peter Nilsson  <hp@axis.com>
6548
6549         * reorg.c (fill_slots_from_thread): Reinstate code typoed out in
6550         "Remove CC0".
6551
6552 2021-05-15  Martin Jambor  <mjambor@suse.cz>
6553
6554         Revert:
6555         2021-05-13  Martin Jambor  <mjambor@suse.cz>
6556
6557         PR tree-optimization/100453
6558         * tree-sra.c (sra_modify_assign): All const base accesses do not
6559         need refreshing, not just those from decl_pool.
6560         (sra_modify_assign): Do not refresh into a const base decl.
6561
6562 2021-05-15  Jakub Jelinek  <jakub@redhat.com>
6563
6564         PR rtl-optimization/100342
6565         * regcprop.c (copy_value): When copying a source reg in a wider
6566         mode than it has recorded for the value, adjust recorded destination
6567         mode too or punt if !REG_CAN_CHANGE_MODE_P.
6568
6569 2021-05-14  Jason Merrill  <jason@redhat.com>
6570
6571         * intl.h: Add comments.
6572
6573 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6574
6575         * config/aarch64/aarch64-simd.md
6576         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Split into...
6577         (aarch64_sqdmlsl2_lane<mode>_internal): ... This...
6578         (aarch64_sqdmlal2_lane<mode>_internal): ... And this.
6579         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Split into ...
6580         (aarch64_sqdmlsl2_laneq<mode>_internal): ... This...
6581         (aarch64_sqdmlal2_laneq<mode>_internal): ... And this.
6582         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Split into...
6583         (aarch64_sqdmlsl2_n<mode>_internal): ... This...
6584         (aarch64_sqdmlal2_n<mode>_internal): ... And this.
6585
6586 2021-05-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6587
6588         PR target/66791
6589         * config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's
6590         boolean logic equivalent.
6591         (vtst_s16): Likewise.
6592         (vtst_s32): Likewise.
6593         (vtst_u8): Likewise.
6594         (vtst_u16): Likewise.
6595         (vtst_u32): Likewise.
6596         (vtst_p8): Likewise.
6597         (vtst_p16): Likewise.
6598         (vtstq_s8): Likewise.
6599         (vtstq_s16): Likewise.
6600         (vtstq_s32): Likewise.
6601         (vtstq_u8): Likewise.
6602         (vtstq_u16): Likewise.
6603         (vtstq_u32): Likewise.
6604         (vtstq_p8): Likewise.
6605         (vtstq_p16): Likewise.
6606         * config/arm/arm_neon_builtins.def: Remove entry for vtst.
6607         * config/arm/neon.md (neon_vtst<mode>): Remove pattern.
6608
6609 2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6610
6611         * config/aarch64/aarch64-simd.md (aarch64_sqdmlal2<mode>): Merge into...
6612         (aarch64_sqdml<SBINQOPS:as>l2<mode>): ... This.
6613         (aarch64_sqdmlsl2<mode>): Delete.
6614         (aarch64_sqdmlal2_lane<mode>): Merge this...
6615         (aarch64_sqdmlsl2_lane<mode>): ... And this...
6616         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>): ... Into this.
6617         (aarch64_sqdmlal2_laneq<mode>): Merge this...
6618         (aarch64_sqdmlsl2_laneq<mode>): ... And this...
6619         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>): ... Into this.
6620         (aarch64_sqdmlal2_n<mode>): Merge this...
6621         (aarch64_sqdmlsl2_n<mode>): ... And this...
6622         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>): ... Into this.
6623
6624 2021-05-13  Martin Sebor  <msebor@redhat.com>
6625
6626         PR middle-end/100574
6627         * builtins.c (access_ref::get_ref): Improve detection of PHIs with
6628         all null arguments.
6629
6630 2021-05-13  Martin Sebor  <msebor@redhat.com>
6631
6632         PR tree-optimization/93100
6633         PR middle-end/98583
6634         * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that
6635         don't modify referenced objects.
6636
6637 2021-05-13  Martin Jambor  <mjambor@suse.cz>
6638
6639         PR tree-optimization/100453
6640         * tree-sra.c (sra_modify_assign): All const base accesses do not
6641         need refreshing, not just those from decl_pool.
6642         (sra_modify_assign): Do not refresh into a const base decl.
6643
6644 2021-05-13  Martin Liska  <mliska@suse.cz>
6645
6646         * tree-ssa-dom.c: Remove m_simplifier.
6647
6648 2021-05-13  Richard Earnshaw  <rearnsha@arm.com>
6649
6650         PR target/100563
6651         * config/arm/arm.c (arm_canonicalize_comparison): Correctly
6652         canonicalize DImode inequality comparisons against the
6653         maximum integral value.
6654
6655 2021-05-13  Jakub Jelinek  <jakub@redhat.com>
6656
6657         PR tree-optimization/98856
6658         * config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument.
6659         Expect V2DI and V4DI arithmetic right shifts to be emulated.
6660         (ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost
6661         caller.
6662         * config/i386/i386-expand.c (expand_vec_perm_2perm_interleave,
6663         expand_vec_perm_2perm_pblendv): New functions.
6664         (ix86_expand_vec_perm_const_1): Use them.
6665         * config/i386/sse.md (ashr<mode>3<mask_name>): Rename to ...
6666         (<mask_codefor>ashr<mode>3<mask_name>): ... this.
6667         (ashr<mode>3): New define_expand with VI248_AVX512BW iterator.
6668         (ashrv4di3): New define_expand.
6669         (ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP
6670         and !TARGET_AVX512VL expansion.
6671
6672 2021-05-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
6673
6674         PR target/100581
6675         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode
6676         sizes < 16 to a register when constructing vpcmov pattern.
6677         * config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode.
6678
6679 2021-05-13  Martin Liska  <mliska@suse.cz>
6680
6681         * gcov-io.c (gcov_write_block): Remove.
6682         (gcov_write_words): Likewise.
6683         (gcov_read_words): Re-implement using gcov_read_bytes.
6684         (gcov_allocate): Remove.
6685         (GCOV_BLOCK_SIZE): Likewise.
6686         (struct gcov_var): Remove most of the fields.
6687         (gcov_position): Implement with ftell.
6688         (gcov_rewrite): Remove setting of start and offset fields.
6689         (from_file): Re-format.
6690         (gcov_open): Remove setbuf call. It should not be needed.
6691         (gcov_close): Remove internal buffer handling.
6692         (gcov_magic): Use __builtin_bswap32.
6693         (gcov_write_counter): Use directly gcov_write_unsigned.
6694         (gcov_write_string): Use direct fwrite and do not round
6695         to 4 bytes.
6696         (gcov_seek): Use directly fseek.
6697         (gcov_write_tag): Use gcov_write_unsigned directly.
6698         (gcov_write_length): Likewise.
6699         (gcov_write_tag_length): Likewise.
6700         (gcov_read_bytes): Use directly fread.
6701         (gcov_read_unsigned): Use gcov_read_words.
6702         (gcov_read_counter): Likewise.
6703         (gcov_read_string): Use gcov_read_bytes.
6704         * gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect
6705         that size is not in bytes, but words (4B).
6706         (GCOV_TAG_FUNCTION_LENGTH): Likewise.
6707         (GCOV_TAG_ARCS_LENGTH): Likewise.
6708         (GCOV_TAG_ARCS_NUM): Likewise.
6709         (GCOV_TAG_COUNTER_LENGTH): Likewise.
6710         (GCOV_TAG_COUNTER_NUM): Likewise.
6711         (GCOV_TAG_SUMMARY_LENGTH): Likewise.
6712
6713 2021-05-13  liuhongt  <hongtao.liu@intel.com>
6714
6715         PR target/94680
6716         * config/i386/sse.md (ssedoublevecmode): Add attribute for
6717         V64QI/V32HI/V16SI/V4DI.
6718         (ssehalfvecmode): Add attribute for V2DI/V2DF.
6719         (*vec_concatv4si_0): Extend to VI124_128.
6720         (*vec_concat<mode>_0): New pre-reload splitter.
6721         * config/i386/predicates.md (movq_parallel): New predicate.
6722
6723 2021-05-13  Alexandre Oliva  <oliva@adacore.com>
6724
6725         * targhooks.c (default_zero_call_used_regs): Retry using
6726         successfully-zeroed registers as sources.
6727
6728 2021-05-12  Tobias Burnus  <tobias@codesourcery.com>
6729
6730         * omp-low.c (finish_taskreg_scan): Use the proper detach decl.
6731
6732 2021-05-12  Aldy Hernandez  <aldyh@redhat.com>
6733
6734         PR c/100521
6735         * gimple-range.cc (range_of_builtin_call): Skip out on
6736           processing __builtin_clz when varying.
6737
6738 2021-05-12  Tom de Vries  <tdevries@suse.de>
6739
6740         PR target/96005
6741         * config/nvptx/nvptx-opts.h (enum ptx_version): New enum.
6742         * config/nvptx/nvptx.c (nvptx_file_start): Print .version according
6743         to ptx_version_option.
6744         * config/nvptx/nvptx.h (TARGET_PTX_6_3): Define.
6745         * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
6746         (define_insn "nvptx_vote_ballot"): Use sync variant for
6747         TARGET_PTX_6_3.
6748         * config/nvptx/nvptx.opt (ptx_version): Add enum.
6749         (mptx): Add option.
6750         * doc/invoke.texi (Nvidia PTX Options): Add mptx item.
6751
6752 2021-05-12  Richard Biener  <rguenther@suse.de>
6753
6754         PR tree-optimization/100566
6755         * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
6756         allow_back for all edge queries.
6757
6758 2021-05-12  liuhongt  <hongtao.liu@intel.com>
6759
6760         PR target/99908
6761         * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add
6762         splitters for pblendvb of NOT mask register.
6763
6764 2021-05-12  Richard Biener  <rguenther@suse.de>
6765
6766         PR tree-optimization/100519
6767         * tree-ssa-reassoc.c (can_associate_p): Split into...
6768         (can_associate_op_p): ... this
6769         (can_associate_type_p): ... and this.
6770         (is_reassociable_op): Call can_associate_op_p.
6771         (break_up_subtract_bb): Call the appropriate predicates.
6772         (reassociate_bb): Likewise.
6773
6774 2021-05-12  Martin Liska  <mliska@suse.cz>
6775
6776         * lto-wrapper.c (merge_and_complain): Merge -flto=arg options.
6777         (run_gcc): Use -flto argument detection for merged
6778         fdecoded_options.
6779
6780 2021-05-12  Martin Liska  <mliska@suse.cz>
6781
6782         * lto-wrapper.c (print_lto_docs_link): New function.
6783         (run_gcc): Print warning about missing job server detection
6784         after we know NR of partitions. Do the same for -flto{,=1}.
6785         * opts.c (get_option_html_page): Support -flto option.
6786
6787 2021-05-12  Martin Liska  <mliska@suse.cz>
6788
6789         * lto-wrapper.c (get_options_from_collect_gcc_options): Change
6790         return type.
6791         (append_option): Remove.
6792         (find_option): Rework to use the vector type.
6793         (remove_option): Remove.
6794         (merge_and_complain): Use vectors for cl_decoded_option data
6795         type arguments.
6796         (append_compiler_options): Likewise.
6797         (append_diag_options): Likewise.
6798         (append_linker_options): Likewise.
6799         (append_offload_options): Likewise.
6800         (compile_offload_image): Likewise.
6801         (compile_images_for_offload_targets): Likewise.
6802         (find_and_merge_options): Likewise.
6803         (run_gcc): Likewise.
6804
6805 2021-05-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6806
6807         PR debug/100515
6808         * dwarf2out.c (dwarf2out_finish): Set
6809         have_multiple_function_sections with multi-range text_section.
6810
6811 2021-05-12  Martin Liska  <mliska@suse.cz>
6812
6813         PR bootstrap/100560
6814         * Makefile.in: Remove version.h from linker command line.
6815
6816 2021-05-12  Richard Biener  <rguenther@suse.de>
6817
6818         PR middle-end/100547
6819         * rtl.h (rtvec_alloc): Make argument size_t.
6820         * rtl.c (rtvec_alloc): Verify the count is less than INT_MAX.
6821
6822 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
6823
6824         PR middle-end/100508
6825         * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector
6826         type, don't reuse DECL_RTL if it has different mode, instead force
6827         creation of a new DEBUG_EXPR.
6828
6829 2021-05-12  Jakub Jelinek  <jakub@redhat.com>
6830             Marc Glisse  <marc.glisse@inria.fr>
6831
6832         PR tree-optimization/94589
6833         * match.pd ((X & Y) == X -> (X & ~Y) == 0,
6834         (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications.
6835
6836 2021-05-12  UroÅ¡ Bizjak  <ubizjak@gmail.com>
6837
6838         PR target/98218
6839         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode.
6840         * config/i386/mmx.md (MMXMODE124): New mode iterator.
6841         (V2FI): Ditto.
6842         (mmxintvecmode): New mode attribute.
6843         (mmxintvecmodelower): Ditto.
6844         (*mmx_maskcmpv2sf3_comm): New insn pattern.
6845         (*mmx_maskcmpv2sf3): Ditto.
6846         (vec_cmpv2sfv2si): New expander.
6847         (vcond<V2FI:mode>v2si): Ditto.
6848         (mmx_vlendvps): New insn pattern.
6849         (vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode.
6850         (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
6851         (vcond_mask_<mode><mmxintvecmodelower>): Ditto.
6852
6853 2021-05-11  Martin Sebor  <msebor@redhat.com>
6854
6855         PR middle-end/21433
6856         * expr.c (expand_expr_real_1): Replace unreachable code with an assert.
6857
6858 2021-05-11  Richard Biener  <rguenther@suse.de>
6859
6860         * gimple-fold.c (gimple_fold_call): Do not call
6861         maybe_fold_reference on call arguments or the static chain.
6862         (fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM
6863         inputs.
6864
6865 2021-05-11  Martin Liska  <mliska@suse.cz>
6866
6867         * builtins.def (DEF_HSAIL_BUILTIN): Remove.
6868         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
6869         (DEF_HSAIL_SAT_BUILTIN): Likewise.
6870         (DEF_HSAIL_INTR_BUILTIN): Likewise.
6871         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
6872         * doc/frontends.texi: Remove BRIG.
6873         * doc/install.texi: Likewise.
6874         * doc/invoke.texi: Likewise.
6875         * doc/standards.texi: Likewise.
6876         * brig-builtins.def: Removed.
6877         * brig/ChangeLog: Removed.
6878         * brig/Make-lang.in: Removed.
6879         * brig/brig-builtins.h: Removed.
6880         * brig/brig-c.h: Removed.
6881         * brig/brig-lang.c: Removed.
6882         * brig/brigfrontend/brig-arg-block-handler.cc: Removed.
6883         * brig/brigfrontend/brig-atomic-inst-handler.cc: Removed.
6884         * brig/brigfrontend/brig-basic-inst-handler.cc: Removed.
6885         * brig/brigfrontend/brig-branch-inst-handler.cc: Removed.
6886         * brig/brigfrontend/brig-cmp-inst-handler.cc: Removed.
6887         * brig/brigfrontend/brig-code-entry-handler.cc: Removed.
6888         * brig/brigfrontend/brig-code-entry-handler.h: Removed.
6889         * brig/brigfrontend/brig-comment-handler.cc: Removed.
6890         * brig/brigfrontend/brig-control-handler.cc: Removed.
6891         * brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed.
6892         * brig/brigfrontend/brig-cvt-inst-handler.cc: Removed.
6893         * brig/brigfrontend/brig-fbarrier-handler.cc: Removed.
6894         * brig/brigfrontend/brig-function-handler.cc: Removed.
6895         * brig/brigfrontend/brig-function.cc: Removed.
6896         * brig/brigfrontend/brig-function.h: Removed.
6897         * brig/brigfrontend/brig-inst-mod-handler.cc: Removed.
6898         * brig/brigfrontend/brig-label-handler.cc: Removed.
6899         * brig/brigfrontend/brig-lane-inst-handler.cc: Removed.
6900         * brig/brigfrontend/brig-machine.c: Removed.
6901         * brig/brigfrontend/brig-machine.h: Removed.
6902         * brig/brigfrontend/brig-mem-inst-handler.cc: Removed.
6903         * brig/brigfrontend/brig-module-handler.cc: Removed.
6904         * brig/brigfrontend/brig-queue-inst-handler.cc: Removed.
6905         * brig/brigfrontend/brig-seg-inst-handler.cc: Removed.
6906         * brig/brigfrontend/brig-signal-inst-handler.cc: Removed.
6907         * brig/brigfrontend/brig-to-generic.cc: Removed.
6908         * brig/brigfrontend/brig-to-generic.h: Removed.
6909         * brig/brigfrontend/brig-util.cc: Removed.
6910         * brig/brigfrontend/brig-util.h: Removed.
6911         * brig/brigfrontend/brig-variable-handler.cc: Removed.
6912         * brig/brigfrontend/hsa-brig-format.h: Removed.
6913         * brig/brigfrontend/phsa.h: Removed.
6914         * brig/brigspec.c: Removed.
6915         * brig/config-lang.in: Removed.
6916         * brig/gccbrig.texi: Removed.
6917         * brig/lang-specs.h: Removed.
6918         * brig/lang.opt: Removed.
6919
6920 2021-05-11  Richard Biener  <rguenther@suse.de>
6921
6922         PR ipa/100513
6923         * ipa-param-manipulation.c
6924         (ipa_param_body_adjustments::modify_call_stmt): Avoid
6925         altering SSA_NAME_DEF_STMT by adjusting the calls LHS
6926         via gimple_call_lhs_ptr.
6927
6928 2021-05-11  Alex Coplan  <alex.coplan@arm.com>
6929
6930         PR target/99725
6931         * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear):
6932         Avoid emitting CFA adjusts on the sp if we have the fp.
6933
6934 2021-05-11  Richard Sandiford  <richard.sandiford@arm.com>
6935
6936         * config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete.
6937         (VMULD): New iterator.
6938         (VCOND): Handle V4HF and V8HF.
6939         (VCONQ): Fix entry for V2SF.
6940         * config/aarch64/aarch64-simd.md (mul_lane<mode>3): Use VMULD
6941         instead of VMUL.  Use a 64-bit vector mode for the indexed operand.
6942         (*aarch64_mul3_elt_<vswap_width_name><mode>): Merge with...
6943         (mul_laneq<mode>3): ...this define_insn.  Use VMUL instead of VDQSF.
6944         Use a 128-bit vector mode for the indexed operand.  Use stype for
6945         the scheduling type.
6946
6947 2021-05-11  Richard Biener  <rguenther@suse.de>
6948
6949         * gimple-fold.c (maybe_fold_reference): Only return
6950         is_gimple_min_invariant values.
6951
6952 2021-05-11  Richard Biener  <rguenther@suse.de>
6953
6954         PR middle-end/100509
6955         * gimple-fold.c (fold_gimple_assign): Only call
6956         get_symbol_constant_value on register type symbols.
6957
6958 2021-05-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
6959             Joe Ramsay   <joe.ramsay@arm.com>
6960
6961         PR target/100419
6962         * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments.
6963         (__arm_vcmpneq): Remove duplicate definition.
6964         (__arm_vstrwq_scatter_offset_p): Likewise.
6965         (__arm_vmaxq_x): Likewise.
6966         (__arm_vmlsdavaq): Likewise.
6967         (__arm_vmlsdavaxq): Likewise.
6968         (__arm_vmlsdavq_p): Likewise.
6969         (__arm_vmlsdavxq_p): Likewise.
6970         (__arm_vrmlaldavhaq): Likewise.
6971         (__arm_vstrbq_p): Likewise.
6972         (__arm_vstrbq_scatter_offset): Likewise.
6973         (__arm_vstrbq_scatter_offset_p): Likewise.
6974         (__arm_vstrdq_scatter_offset): Likewise.
6975         (__arm_vstrdq_scatter_offset_p): Likewise.
6976         (__arm_vstrdq_scatter_shifted_offset): Likewise.
6977         (__arm_vstrdq_scatter_shifted_offset_p): Likewise.
6978
6979 2021-05-11  Jakub Jelinek  <jakub@redhat.com>
6980
6981         PR middle-end/100471
6982         * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data
6983         is 0, bypass the reduction loop including
6984         GOMP_taskgroup_reduction_unregister call.
6985
6986 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
6987
6988         * config/rs6000/rs6000.c (struct rs6000_cost_data): New member
6989         costing_for_scalar.
6990         (rs6000_density_test): Early return if costing_for_scalar is true.
6991         (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data.
6992
6993 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
6994
6995         * doc/tm.texi: Regenerated.
6996         * target.def (init_cost): Add new parameter costing_for_scalar.
6997         * targhooks.c (default_init_cost): Adjust for new parameter.
6998         * targhooks.h (default_init_cost): Likewise.
6999         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise.
7000         (vect_compute_single_scalar_iteration_cost): Likewise.
7001         (vect_analyze_loop_2): Likewise.
7002         * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise.
7003         (vect_bb_vectorization_profitable_p): Likewise.
7004         * tree-vectorizer.h (init_cost): Likewise.
7005         * config/aarch64/aarch64.c (aarch64_init_cost): Likewise.
7006         * config/i386/i386.c (ix86_init_cost): Likewise.
7007         * config/rs6000/rs6000.c (rs6000_init_cost): Likewise.
7008
7009 2021-05-11  Kewen Lin  <linkw@linux.ibm.com>
7010
7011         * config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to
7012         vect_nonmem and moved into...
7013         (struct rs6000_cost_data): ...here.
7014         (rs6000_init_cost): Use vect_nonmem of cost_data instead.
7015         (rs6000_add_stmt_cost): Likewise.
7016         (rs6000_finish_cost): Likewise.
7017
7018 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
7019
7020         * range-op.cc (get_bool_state): Adjust head comment.
7021         (operator_not_equal::op1_range): Fix comment.
7022         (operator_bitwise_xor::op1_range): Remove call to gcc_unreachable.
7023
7024 2021-05-10  Martin Sebor  <msebor@redhat.com>
7025
7026         PR middle-end/100425
7027         PR middle-end/100510
7028         * gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename...
7029         (pass_walloca::xlimit_certain_p): ...to this.
7030         (pass_walloca::gate): Execute for any kind of handled warning.
7031         (pass_walloca::execute): Avoid issuing "maybe" and "unbounded"
7032         warnings when xlimit_certain_p is set.
7033
7034 2021-05-10  Pat Haugen  <pthaugen@linux.ibm.com>
7035
7036         * config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class):
7037         Return ALTIVEC_REGS if that is best_class.
7038         (rs6000_compute_pressure_classes): Add ALTIVEC_REGS.
7039
7040 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7041
7042         * config/arm/arm.h (CPP_SPEC): Remove error message about
7043         -mfloat-abi.
7044
7045 2021-05-10  Martin Jambor  <mjambor@suse.cz>
7046
7047         * ipa-prop.h (IPA_NODE_REF): Removed.
7048         (IPA_NODE_REF_GET_CREATE): Likewise.
7049         (IPA_EDGE_REF): Likewise.
7050         (IPA_EDGE_REF_GET_CREATE): Likewise.
7051         (IS_VALID_JUMP_FUNC_INDEX): Likewise.
7052         * ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct
7053         use of ipa_node_params_sum.
7054         (ipcp_versionable_function_p): Likewise.
7055         (push_node_to_stack): Likewise.
7056         (pop_node_from_stack): Likewise.
7057         (set_single_call_flag): Replaced two IPA_NODE_REF with one single
7058         direct use of ipa_node_params_sum.
7059         (initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of
7060         ipa_node_params_sum.
7061         (ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of
7062         ipa_edge_args_sum.
7063         (ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct
7064         use of ipa_node_params_sum.
7065         (self_recursively_generated_p): Likewise.
7066         (propagate_scalar_across_jump_function): Likewise.
7067         (propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a
7068         direct use of ipa_edge_args_sum, moved the lookup after the early
7069         exit.  Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum.
7070         (propagate_bits_across_jump_function): Replaced IPA_NODE_REF with
7071         direct uses of ipa_node_params_sum.
7072         (propagate_vr_across_jump_function): Likewise.
7073         (propagate_aggregate_lattice): Likewise.
7074         (propagate_aggs_across_jump_function): Likewise.
7075         (propagate_constants_across_call): Likewise, also replaced
7076         IPA_EDGE_REF with a direct use of ipa_edge_args_sum.
7077         (good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use
7078         of ipa_node_params_sum.
7079         (estimate_local_effects): Likewise.
7080         (add_all_node_vals_to_toposort): Likewise.
7081         (propagate_constants_topo): Likewise.
7082         (ipcp_propagate_stage): Likewise.
7083         (ipcp_discover_new_direct_edges): Likewise.
7084         (calls_same_node_or_its_all_contexts_clone_p): Likewise.
7085         (cgraph_edge_brings_value_p): Likewise (in both overloaded functions).
7086         (get_info_about_necessary_edges): Likewise.
7087         (want_remove_some_param_p): Likewise.
7088         (create_specialized_node): Likewise.
7089         (self_recursive_pass_through_p): Likewise.
7090         (self_recursive_agg_pass_through_p): Likewise.
7091         (find_more_scalar_values_for_callers_subset): Likewise and also
7092         replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one
7093         case replacing two of those with a single query.
7094         (find_more_contexts_for_caller_subset): Likewise for the
7095         ipa_polymorphic_call_context overload.
7096         (intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct
7097         use of ipa_edge_args_sum.  Replaced IPA_NODE_REF with direct uses of
7098         ipa_node_params_sum.
7099         (find_aggregate_values_for_callers_subset): Likewise, also reusing
7100         results of ipa_edge_args_sum->get.
7101         (cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with
7102         direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a
7103         direct use of ipa_edge_args_sum.
7104         (cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node
7105         summary query after the early exit and reused the result later.
7106         (decide_about_value): Replaced IPA_NODE_REF with a direct use of
7107         ipa_node_params_sum.
7108         (decide_whether_version_node): Likewise.  Removed re-querying for
7109         summaries after cloning.
7110         (spread_undeadness): Replaced IPA_NODE_REF with a direct use of
7111         ipa_node_params_sum.
7112         (has_undead_caller_from_outside_scc_p): Likewise, reusing results of
7113         some queries.
7114         (identify_dead_nodes): Likewise.
7115         (ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of
7116         ipa_node_params_sum.
7117         (ipcp_store_vr_results): Likewise.
7118         * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
7119         (ipa_fn_summary_t::duplicate): Likewise.
7120         (analyze_function_body): Likewise.
7121         (estimate_calls_size_and_time): Likewise.
7122         (ipa_cached_call_context::duplicate_from): Likewise.
7123         (ipa_call_context::equal_to): Likewise.
7124         (remap_edge_params): Likewise.
7125         (ipa_merge_fn_summary_after_inlining): Likewise.
7126         (inline_read_section): Likewise.
7127         * ipa-icf.c (sem_function::param_used_p): Likewise.
7128         * ipa-modref.c (compute_parm_map): Likewise.
7129         (compute_parm_map): Replaced IPA_EDGE_REF with a direct use of
7130         ipa_edge_args_sum.
7131         (get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of
7132         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
7133         ipa_edge_args_sum.
7134         * ipa-profile.c (check_argument_count): Likewise.
7135         * ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE
7136         with a direct use of ipa_node_params_sum.
7137         (ipa_initialize_node_params): Likewise.
7138         (ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a
7139         direct use of ipa_edge_args_sum and reused the query result.
7140         (ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a
7141         direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a
7142         direct use of ipa_edge_args_sum.
7143         (ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of
7144         ipa_node_params_sum and reused the result of the query.
7145         (ipa_analyze_node): Likewise.
7146         (ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use
7147         of ipa_node_params_sum.
7148         (update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with
7149         direct uses of ipa_edge_args_sum.
7150         (update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with
7151         direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a
7152         direct use of ipa_edge_args_sum.  Removed superficial re-querying the
7153         top edge summary.
7154         (propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of
7155         ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
7156         ipa_edge_args_sum.
7157         (ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a
7158         direct use of ipa_edge_args_sum.
7159         (ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct
7160         use of ipa_node_params_sum.
7161         (ipa_print_node_params): Likewise.
7162         (ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with
7163         direct uses of ipa_edge_args_sum.
7164         (ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of
7165         ipa_edge_args_sum.
7166         (ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of
7167         ipa_node_params_sum.
7168         (ipa_prop_write_jump_functions): Likewise.  Move variable node to the
7169         scopes where it is used.
7170
7171 2021-05-10  UroÅ¡ Bizjak  <ubizjak@gmail.com>
7172
7173         * config/i386/i386-expand.c (ix86_expand_sse_movcc)
7174         <case E_V2SImode>: Force op_true to register.
7175
7176 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7177
7178         * config/arm/iterators.md (MVE_FP_COMPARISONS): New.
7179         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_f<mode>)
7180         (mve_vcmp<mve_cmp_op>q_n_f<mode>): New, merge all vcmp_*f*
7181         patterns.
7182         (mve_vcmpeqq_f<mode>, mve_vcmpeqq_n_f<mode>, mve_vcmpgeq_f<mode>)
7183         (mve_vcmpgeq_n_f<mode>, mve_vcmpgtq_f<mode>)
7184         (mve_vcmpgtq_n_f<mode>, mve_vcmpleq_f<mode>)
7185         (mve_vcmpleq_n_f<mode>, mve_vcmpltq_f<mode>)
7186         (mve_vcmpltq_n_f<mode>, mve_vcmpneq_f<mode>)
7187         (mve_vcmpneq_n_f<mode>): Remove.
7188         * config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F)
7189         (VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F)
7190         (VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove.
7191
7192 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7193
7194         * config/arm/iterators.md (MVE_COMPARISONS): New.
7195         (mve_cmp_op): New.
7196         (mve_cmp_type): New.
7197         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all
7198         mve_vcmp patterns.
7199         (mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>)
7200         (mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>)
7201         (mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>)
7202         (mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>)
7203         (mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
7204         (mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
7205         (mve_vcmpneq_n_<mode>): Remove.
7206
7207 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7208
7209         * config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix.
7210         * config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix.
7211         * config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern
7212         names.
7213
7214 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7215
7216         * config/arm/arm_mve_builtins.def (vcmpneq_u): Remove.
7217         (vcmpneq_n_u): Likewise.
7218         (vcmpeqq_u,): Likewise.
7219         (vcmpeqq_n_u): Likewise.
7220         * config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U,
7221         VCMPEQQ_N_U and VCMPNEQ_N_U.
7222         * config/arm/mve.md (mve_vcmpneq): Remove <supf> iteration.
7223         (mve_vcmpeqq_n): Likewise.
7224         (mve_vcmpeqq): Likewise.
7225         (mve_vcmpneq_n): Likewise.
7226
7227 2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>
7228
7229         * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call
7230         the 's' version of the builtin.
7231
7232 2021-05-10  Richard Biener  <rguenther@suse.de>
7233
7234         PR tree-optimization/100492
7235         * tree-loop-distribution.c (find_seed_stmts_for_distribution):
7236         Find nothing when the loop contains an irreducible region.
7237
7238 2021-05-10  Richard Biener  <rguenther@suse.de>
7239
7240         PR middle-end/100464
7241         PR c++/100468
7242         * gimple-fold.c (canonicalize_constructor_val): Do not set
7243         TREE_ADDRESSABLE.
7244
7245 2021-05-10  Richard Biener  <rguenther@suse.de>
7246
7247         PR tree-optimization/100434
7248         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
7249         call LHS.
7250         (dse_optimize_stmt): Handle call LHS by dropping the
7251         LHS or the whole call if it doesn't have other
7252         side-effects.
7253         (pass_dse::execute): Adjust.
7254
7255 2021-05-10  Martin Liska  <mliska@suse.cz>
7256
7257         * Makefile.in: Add missing genversion rule.
7258
7259 2021-05-10  Alex Coplan  <alex.coplan@arm.com>
7260
7261         PR target/99960
7262         * config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use
7263         vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores.
7264
7265 2021-05-10  Martin Liska  <mliska@suse.cz>
7266
7267         * builtins.c (is_builtin_name): Use startswith
7268         function instead of strncmp.
7269         * collect2.c (main): Likewise.
7270         (has_lto_section): Likewise.
7271         (scan_libraries): Likewise.
7272         * coverage.c (coverage_checksum_string): Likewise.
7273         (coverage_init): Likewise.
7274         * dwarf2out.c (is_cxx): Likewise.
7275         (gen_compile_unit_die): Likewise.
7276         * gcc-ar.c (main): Likewise.
7277         * gcc.c (init_spec): Likewise.
7278         (read_specs): Likewise.
7279         (execute): Likewise.
7280         (check_live_switch): Likewise.
7281         * genattrtab.c (write_attr_case): Likewise.
7282         (IS_ATTR_GROUP): Likewise.
7283         * gencfn-macros.c (main): Likewise.
7284         * gengtype.c (type_for_name): Likewise.
7285         (gen_rtx_next): Likewise.
7286         (get_file_langdir): Likewise.
7287         (write_local): Likewise.
7288         * genmatch.c (get_operator): Likewise.
7289         (get_operand_type): Likewise.
7290         (expr::gen_transform): Likewise.
7291         * genoutput.c (validate_optab_operands): Likewise.
7292         * incpath.c (add_sysroot_to_chain): Likewise.
7293         * langhooks.c (lang_GNU_C): Likewise.
7294         (lang_GNU_CXX): Likewise.
7295         (lang_GNU_Fortran): Likewise.
7296         (lang_GNU_OBJC): Likewise.
7297         * lto-wrapper.c (run_gcc): Likewise.
7298         * omp-general.c (omp_max_simt_vf): Likewise.
7299         * omp-low.c (omp_runtime_api_call): Likewise.
7300         * opts-common.c (parse_options_from_collect_gcc_options): Likewise.
7301         * read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise.
7302         * real.c (real_from_string): Likewise.
7303         * selftest.c (assert_str_startswith): Likewise.
7304         * timevar.c (timer::validate_phases): Likewise.
7305         * tree.c (get_file_function_name): Likewise.
7306         * ubsan.c (ubsan_use_new_style_p): Likewise.
7307         * varasm.c (default_function_rodata_section): Likewise.
7308         (incorporeal_function_p): Likewise.
7309         (default_section_type_flags): Likewise.
7310         * system.h (startswith): Define startswith.
7311
7312 2021-05-10  Martin Liska  <mliska@suse.cz>
7313
7314         * bitmap.h (class auto_bitmap): Remove
7315         __cplusplus >= 201103.
7316         * config/aarch64/aarch64.c: Likewise.
7317         * gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info):
7318         Likewise.
7319         * sbitmap.h: Likewise.
7320
7321 2021-05-10  Martin Liska  <mliska@suse.cz>
7322
7323         * Makefile.in: Rename gcov-iov to genversion and depend
7324         on version.h (instead of gcov-iov.h).
7325         * gcov-io.h: Include version.h instread of gcov-iov.h.
7326         * gengtype-state.c (read_state_version): Likewise.
7327         * gcov-iov.c: Moved to...
7328         * genversion.c: ...here.
7329         * lto-streamer.h (LTO_major_version): Define it with
7330         GCC_major_version.
7331         * version.c: Removed.
7332         * version.h: Removed.
7333
7334 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7335
7336         * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define.
7337         * config/arc/simdext.md (VCT): Add predicates for iterator
7338         elements.
7339         (EMUVEC): Define.
7340         (voptab): Likewise.
7341         (vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate.
7342         (<voptab>v2si3): New patterns.
7343         (neg): Likewise.
7344         (reduc_plus_scal_v4hi): Likewise.
7345         (reduc_plus_scal_v2si): Likewise.
7346         (vec_duplicatev2si): Likewise.
7347         (vec_duplicatev4hi): Likewise.
7348
7349 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7350
7351         * config/arc/simdext.md: Format and cleanup file.
7352
7353 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7354
7355         * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access
7356         only when munaligned-access option is on.
7357         (movmisalign<mode>): Likewise.
7358
7359 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7360
7361         * common/config/arc/arc-common.c (arc_handle_option): Remove dot
7362         from string.
7363         * config/arc/arc.c (arc_reorg): Remove underscore from string.
7364
7365 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7366
7367         * config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
7368         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
7369         * config/arc/arc.md (clrsbsi2): Cleanup pattern.
7370         (norm_f): Likewise.
7371         (ffs): Likewise.
7372         (ffs_f): Likewise.
7373         (clzsi2): Use fls instruction when available.
7374         (arc_clzsi2): Likewise.
7375
7376 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7377
7378         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27.
7379
7380 2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
7381
7382         * doc/extend.texi (__builtin_arc_sr): Swap arguments.
7383
7384 2021-05-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7385
7386         PR middle-end/100467
7387         * toplev.c (compile_file): Call insn_locations_init before
7388         targetm.asm_out.code_end.
7389
7390 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
7391
7392         Revert:
7393         2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
7394
7395         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
7396
7397 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
7398             Andrew Stubbs  <amd@codesourcery.com>
7399
7400         PR target/100418
7401         * builtins.c (try_store_by_multiple_pieces): Use force_operand for
7402         emit_move_insn operands.
7403
7404 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
7405
7406         * cfgexpand.c (expand_gimple_basic_block): Do not inherit a current
7407         location for the outgoing edges of an empty block.
7408         * dwarf2out.c (add_subscript_info): Retrieve the bounds and index
7409         type by means of the get_array_descr_info langhook, if it is set and
7410         returns true.  Remove obsolete code dealing with unnamed subtypes.
7411
7412 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7413
7414         * gimple-range-cache.cc (ssa_block_ranges): Virtualize.
7415         (sbr_vector): Renamed from ssa_block_cache.
7416         (sbr_vector::sbr_vector): Allocate from obstack abd initialize.
7417         (ssa_block_ranges::~ssa_block_ranges): Remove.
7418         (sbr_vector::set_bb_range): Use varying and undefined cached values.
7419         (ssa_block_ranges::set_bb_varying): Remove.
7420         (sbr_vector::get_bb_range): Adjust assert.
7421         (sbr_vector::bb_range_p): Adjust assert.
7422         (~block_range_cache): No freeing loop required.
7423         (block_range_cache::get_block_ranges): Remove.
7424         (block_range_cache::set_bb_range): Inline get_block_ranges.
7425         (block_range_cache::set_bb_varying): Remove.
7426         * gimple-range-cache.h (set_bb_varying): Remove prototype.
7427         * value-range.h (irange_allocator::get_memory): New.
7428
7429 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7430
7431         * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search
7432         dominator tree is available and requested.
7433         (ranger_cache::ssa_range_in_bb): Don't search dom tree here.
7434         (ranger_cache::fill_block_cache): Don't search dom tree here either.
7435         * gimple-range-cache.h (non_null_deref_p): Add dom_search param.
7436
7437 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7438
7439         * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with
7440         only PHI nodes better.
7441
7442 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7443
7444         * gimple-range-edge.h (gimple_outgoing_range): Rename from
7445         outgoing_range.
7446         (gcond_edge_range): Export prototype.
7447         * gimple-range-edge.cc (gcond_edge_range): New.
7448         (gimple_outgoing_range::edge_range_p): Use gcond_edge_range.
7449         * gimple-range-gori.h (gori_compute): Use gimple_outgoing_range.
7450
7451 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7452
7453         * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute
7454         default range into a temp and allocate only what is needed.
7455
7456 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7457
7458         * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED.
7459
7460 2021-05-07  Andrew MacLeod  <amacleod@redhat.com>
7461
7462         * gimple-range.h (gimple_range_global): Pick up parameter initial
7463         values, and use-before defined locals are UNDEFINED.
7464
7465 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
7466
7467         * doc/extend.texi (scalar_storage_order): Mention effect on pointer
7468         and vector fields.
7469         * tree.h (reverse_storage_order_for_component_p): Return false if
7470         the type is a pointer.
7471
7472 2021-05-07  Andrew Stubbs  <ams@codesourcery.com>
7473
7474         * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
7475
7476 2021-05-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
7477
7478         PR target/98218
7479         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
7480         Handle V8QI, V4HI and V2SI modes.
7481         * config/i386/mmx.md (mmx_pblendvb): New insn pattern.
7482         * config/i386/sse.md (unspec): Move UNSPEC_BLENDV ...
7483         * config/i386/i386.md (unspec): ... here.
7484
7485 2021-05-07  Tobias Burnus  <tobias@codesourcery.com>
7486             Tom de Vries  <tdevries@suse.de>
7487
7488         * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if
7489         a truth_value_p reduction variable is nonintegral.
7490
7491 2021-05-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
7492
7493         PR target/100445
7494         * config/i386/i386-expand.c (ix86_use_mask_cmp_p):
7495         Return false for mode sizes < 16.
7496
7497 2021-05-07  Jakub Jelinek  <jakub@redhat.com>
7498
7499         PR target/100445
7500         * config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn.
7501
7502 2021-05-06  Martin Jambor  <mjambor@suse.cz>
7503
7504         * ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even
7505         when there is no function summary.
7506         (ipa_sra_summarize_function): produce edge summaries even when
7507         bailing out early.
7508
7509 2021-05-06  Tom Tromey  <tom@tromey.com>
7510
7511         * godump.c (string_hash_eq): Remove.
7512         (go_finish): Use htab_eq_string.
7513
7514 2021-05-06  Tom Tromey  <tom@tromey.com>
7515
7516         * gengtype-state.c (read_state): Use htab_eq_string.
7517         (string_eq): Remove.
7518
7519 2021-05-06  Tom Tromey  <tom@tromey.com>
7520
7521         * gensupport.c (htab_eq_string): Remove.
7522
7523 2021-05-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7524
7525         PR ipa/97937
7526         * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer.
7527         * dwarf2out.h (dw_fde_node::ignored_debug): New data item.
7528         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy
7529         set_ignored_loc callbacks.
7530         * debug.c (do_nothing_debug_hooks): Likewise.
7531         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7532         * dwarf2out.c (text_section_used, cold_text_section_used): Remove.
7533         (in_text_section_p, last_text_label, last_cold_label,
7534         switch_text_ranges, switch_cold_ranges): New data items.
7535         (dwarf2out_note_section_used): Remove.
7536         (dwarf2out_begin_prologue): Set fde->ignored_debug and
7537         in_text_section_p.
7538         (mark_ignored_debug_section): New helper function.
7539         (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call
7540         mark_ignored_debug_section.
7541         (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc.
7542         (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc.
7543         (size_of_aranges): Adjust formula for multi-part text ranges size.
7544         (output_aranges): Output multi-part text ranges.
7545         (dwarf2out_set_ignored_loc): New callback function.
7546         (dwarf2out_finish): Output multi-part text ranges.
7547         (dwarf2out_c_finalize): Clear new data items.
7548         * final.c (final_start_function_1): Call set_ignored_loc callback.
7549         (final_scan_insn_1): Likewise.
7550         * ggc-page.c (gt_ggc_mx): New helper function.
7551         * stringpool.c (gt_pch_nx): Likewise.
7552
7553 2021-05-06  Richard Biener  <rguenther@suse.de>
7554
7555         * timevar.def (TV_TREE_INSERT_PHI_NODES): Remove.
7556         (TV_TREE_SSA_REWRITE_BLOCKS): Likewise.
7557         (TV_TREE_INTO_SSA): New.
7558         * tree-into-ssa.c (insert_phi_nodes): Do not account separately.
7559         (rewrite_blocks): Likewise.
7560         (pass_data_build_ssa): Account to TV_TREE_INTO_SSA.
7561
7562 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
7563
7564         * tree-ssa-phiopt.c (value_replacement, minmax_replacement,
7565         abs_replacement, xor_replacement,
7566         cond_removal_in_popcount_clz_ctz_pattern,
7567         replace_phi_edge_with_variable): Change type of phi argument from
7568         gimple * to gphi *.
7569
7570 2021-05-06  Richard Biener  <rguenther@suse.de>
7571
7572         * tree-ssa-loop-split.c (split_loop): Delay updating SSA form.
7573         Output an opt-info message.
7574         (do_split_loop_on_cond): Likewise.
7575         (tree_ssa_split_loops): Update SSA form here.
7576
7577 2021-05-06  Richard Biener  <rguenther@suse.de>
7578
7579         * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE
7580         return variable removal.
7581
7582 2021-05-06  Marius Hillenbrand  <mhillen@linux.ibm.com>
7583
7584         * config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros.
7585         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
7586         (s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate
7587         operand.
7588         * config/s390/s390.c (s390_const_operand_ok): Remove unused
7589         values.
7590
7591 2021-05-06  Jakub Jelinek  <jakub@redhat.com>
7592
7593         PR tree-optimization/94589
7594         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
7595         spaceship_replacement.
7596         (cond_only_block_p, spaceship_replacement): New functions.
7597
7598 2021-05-06  Richard Biener  <rguenther@suse.de>
7599
7600         PR ipa/100373
7601         * tree-emutls.c (gen_emutls_addr): Pass in whether we're
7602         dealing with a debug use and only query existing addresses
7603         if so.
7604         (lower_emutls_1): Avoid splitting out addresses for debug
7605         stmts, reset the debug stmt when we fail to find existing
7606         lowered addresses.
7607         (lower_emutls_phi_arg): Set wi.stmt.
7608
7609 2021-05-06  Christoph Muellner  <cmuellner@gcc.gnu.org>
7610
7611         PR target/100266
7612         * config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper.
7613         * config/riscv/riscv.md (cbranch<mode>4): Generate helpers.
7614         (stack_protect_test): Use cbranch helper.
7615
7616 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7617
7618         PR target/100402
7619         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
7620         always return the establisher frame for __builtin_frame_address (0).
7621
7622 2021-05-05  Ivan Sorokin  <vanyacpp@gmail.com>
7623
7624         PR target/91400
7625         * config/i386/i386-builtins.c (ix86_cpu_model_type_node): New.
7626         (ix86_cpu_model_var): Likewise.
7627         (ix86_cpu_features2_type_node): Likewise.
7628         (ix86_cpu_features2_var): Likewise.
7629         (fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with
7630         their types.
7631
7632 2021-05-05  Martin Sebor  <msebor@redhat.com>
7633
7634         * passes.def (pass_warn_printf): Run after SSA.
7635
7636 2021-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7637
7638         * config/arm/neon.md (neon_vtst_combine<mode>): New pattern.
7639         * config/arm/predicates.md (minus_one_operand): New predicate.
7640
7641 2021-05-05  Jeff Law  <jlaw@tachyum.com>
7642
7643         * config/avr/avr.md: Remove references to CC_STATUS_INIT.
7644
7645 2021-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
7646
7647         PR rtl-optimization/100263
7648         * postreload.c (move2add_valid_value_p): Ensure register can
7649         change mode.
7650
7651 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7652
7653         PR rtl-optimization/100411
7654         * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue
7655         and beginning of function markers.
7656
7657 2021-05-05  Jeff Law  <jlaw@tachyum.com>
7658
7659         * config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove.
7660         * config/cr16/cr16.c (notice_update_cc): Remove.
7661         * config/cr16/cr16-protos.h (notice_update_cc): Remove.
7662
7663 2021-05-05  UroÅ¡ Bizjak  <ubizjak@gmail.com>
7664
7665         PR target/98218
7666         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
7667         Handle V8QI, V4HI and V2SI modes.
7668         * config/i386/i386.c (ix86_build_const_vector): Handle V2SImode.
7669         (ix86_build_signbit_mask): Ditto.
7670         * config/i386/mmx.md (MMXMODE14): New mode iterator.
7671         (<smaxmin:code><MMXMODE14:mode>3): New expander.
7672         (*mmx_<smaxmin:code><MMXMODE14:mode>3): New insn pattern.
7673         (<umaxmin:code><MMXMODE24:mode>3): New expander.
7674         (*mmx_<umaxmin:code><MMXMODE24:mode>3): New insn pattern.
7675         (vec_cmp<MMXMODEI:mode><MMXMODEI:mode>): New expander.
7676         (vec_cmpu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
7677         (vcond<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
7678         (vcondu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
7679         (vcond_mask_<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
7680
7681 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7682
7683         * dwarf2out.c (loc_list_from_tree_1) <DECL>: During early DWARF, do
7684         not expand the VALUE_EXPR of variables put in the non-local frame.
7685         * gimplify.c (gimplify_type_sizes) <RECORD_TYPE>: If the type is not
7686         to be ignored for debug info, ensure its variable offsets are not.
7687
7688 2021-05-05  Richard Biener  <rguenther@suse.de>
7689
7690         PR tree-optimization/79333
7691         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
7692         Fold stmt following SSA edges.
7693
7694 2021-05-05  Richard Biener  <rguenther@suse.de>
7695
7696         PR middle-end/100394
7697         * calls.c (expand_call): Preserve possibly throwing calls.
7698         * cfgexpand.c (expand_call_stmt): When a call can throw signal
7699         RTL expansion there are side-effects.
7700         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify,
7701         mark all possibly throwing stmts necessary unless we can elide
7702         dead EH.
7703         * tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless
7704         -fdelete-dead-exceptions.
7705         * tree.h (DECL_PURE_P): Add note about exceptions.
7706
7707 2021-05-05  Alexandre Oliva  <oliva@adacore.com>
7708
7709         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it
7710         unconditional.
7711
7712 2021-05-04  David Edelsohn  <dje.gcc@gmail.com>
7713
7714         * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
7715         get_fnname_from_decl for name of thunk.
7716         * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name
7717         and ASM_OUTPUT_LABEL.
7718         (rs6000_xcoff_declare_function_name): Use assemble_name and
7719         ASM_OUTPUT_LABEL.
7720         (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL.
7721         (rs6000_xcoff_encode_section_info): Don't add mapping class
7722         for aliases.  Always add [DS] mapping class to primary
7723         FUNCTION_DECL.
7724         (rs6000_asm_weaken_decl): Don't explicitly add [DS].
7725
7726 2021-05-04  Martin Sebor  <msebor@redhat.com>
7727
7728         PR middle-end/100307
7729         * builtins.c (compute_objsize_r): Clear base0 for pointers.
7730
7731 2021-05-04  Jeff Law  <jlaw@tachyum.com>
7732
7733         * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.
7734
7735 2021-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7736
7737         * caller-save.c: Remove CC0.
7738         * cfgcleanup.c: Remove CC0.
7739         * cfgrtl.c: Remove CC0.
7740         * combine.c: Remove CC0.
7741         * compare-elim.c: Remove CC0.
7742         * conditions.h: Remove CC0.
7743         * config/h8300/h8300.h: Remove CC0.
7744         * config/h8300/h8300-protos.h: Remove CC0.
7745         * config/h8300/peepholes.md: Remove CC0.
7746         * config/i386/x86-tune-sched.c: Remove CC0.
7747         * config/m68k/m68k.c: Remove CC0.
7748         * config/rl78/rl78.c: Remove CC0.
7749         * config/sparc/sparc.c: Remove CC0.
7750         * config/xtensa/xtensa.c: Remove CC0.
7751         (gen_conditional_move):  Use pc_rtx instead of cc0_rtx in a piece of
7752         RTL where that is used as a placeholder only.
7753         * cprop.c: Remove CC0.
7754         * cse.c: Remove CC0.
7755         * cselib.c: Remove CC0.
7756         * df-problems.c: Remove CC0.
7757         * df-scan.c: Remove CC0.
7758         * doc/md.texi: Remove CC0.  Adjust an example.
7759         * doc/rtl.texi: Remove CC0.  Adjust an example.
7760         * doc/tm.texi: Regenerate.
7761         * doc/tm.texi.in: Remove CC0.
7762         * emit-rtl.c: Remove CC0.
7763         * final.c: Remove CC0.
7764         * fwprop.c: Remove CC0.
7765         * gcse-common.c: Remove CC0.
7766         * gcse.c: Remove CC0.
7767         * genattrtab.c: Remove CC0.
7768         * genconfig.c: Remove CC0.
7769         * genemit.c: Remove CC0.
7770         * genextract.c: Remove CC0.
7771         * gengenrtl.c: Remove CC0.
7772         * genrecog.c: Remove CC0.
7773         * haifa-sched.c: Remove CC0.
7774         * ifcvt.c: Remove CC0.
7775         * ira-costs.c: Remove CC0.
7776         * ira.c: Remove CC0.
7777         * jump.c: Remove CC0.
7778         * loop-invariant.c: Remove CC0.
7779         * lra-constraints.c: Remove CC0.
7780         * lra-eliminations.c: Remove CC0.
7781         * optabs.c: Remove CC0.
7782         * postreload-gcse.c: Remove CC0.
7783         * postreload.c: Remove CC0.
7784         * print-rtl.c: Remove CC0.
7785         * read-rtl-function.c: Remove CC0.
7786         * reg-notes.def: Remove CC0.
7787         * reg-stack.c: Remove CC0.
7788         * reginfo.c: Remove CC0.
7789         * regrename.c: Remove CC0.
7790         * reload.c: Remove CC0.
7791         * reload1.c: Remove CC0.
7792         * reorg.c: Remove CC0.
7793         * resource.c: Remove CC0.
7794         * rtl.c: Remove CC0.
7795         * rtl.def: Remove CC0.
7796         * rtl.h: Remove CC0.
7797         * rtlanal.c: Remove CC0.
7798         * sched-deps.c: Remove CC0.
7799         * sched-rgn.c: Remove CC0.
7800         * shrink-wrap.c: Remove CC0.
7801         * simplify-rtx.c: Remove CC0.
7802         * system.h: Remove CC0.  Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT,
7803         CC_STATUS_MDEP, and CC_STATUS.
7804         * target.def: Remove CC0.
7805         * valtrack.c: Remove CC0.
7806         * var-tracking.c: Remove CC0.
7807
7808 2021-05-04  Richard Biener  <rguenther@suse.de>
7809
7810         PR tree-optimization/100414
7811         * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
7812         info here.
7813         (tree_ssa_phiopt_worker): But unconditionally here.
7814
7815 2021-05-04  Tobias Burnus  <tobias@codesourcery.com>
7816
7817         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
7818         && and || with floating-point and complex arguments.
7819
7820 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7821
7822         * tree-inline.c (insert_debug_decl_map): Delete.
7823         (copy_debug_stmt): Minor tweak.
7824         (setup_one_parameter): Do not use a variable if the value is either
7825         a read-only DECL or a non-addressable local variable in the caller.
7826         In this case, insert the debug-only variable in the map manually.
7827         (expand_call_inline): Do not generate a CLOBBER for these values.
7828         * tree-inline.h (debug_map): Minor tweak.
7829
7830 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7831
7832         * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy.
7833         * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up.
7834
7835 2021-05-04  Richard Biener  <rguenther@suse.de>
7836
7837         PR tree-optimization/100329
7838         * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
7839         asm goto defs.
7840         (insert_stmt_after): Assert we're not running into asm goto.
7841
7842 2021-05-04  Richard Biener  <rguenther@suse.de>
7843
7844         PR tree-optimization/100398
7845         * tree-ssa-dse.c (pass_dse::execute): Preserve control
7846         altering stmts.
7847
7848 2021-05-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7849
7850         * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype.
7851
7852 2021-05-04  Alexandre Oliva  <oliva@adacore.com>
7853
7854         * builtins.c (try_store_by_multiple_pieces): New.
7855         (expand_builtin_memset_args): Use it.  If target_char_cast
7856         fails, proceed as for non-constant val.  Pass len's ctz to...
7857         * expr.c (clear_storage_hints): ... this.  Try store by
7858         multiple pieces after setmem.
7859         (clear_storage): Adjust.
7860         * expr.h (clear_storage_hints): Likewise.
7861         (try_store_by_multiple_pieces): Declare.
7862         * passes.def: Replace the last copy_prop with ccp.
7863
7864 2021-05-03  Tom de Vries  <tdevries@suse.de>
7865
7866         PR target/100321
7867         * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined
7868         reduction.
7869
7870 2021-05-03  Richard Biener  <rguenther@suse.de>
7871
7872         * tree-ssa-dse.c (dse_classify_store): Track two PHI defs.
7873
7874 2021-05-03  Richard Biener  <rguenther@suse.de>
7875
7876         * tree-ssa-dse.c: Do not include domwalk.h but cfganal.h.
7877         (dse_dom_walker): Remove.
7878         (dse_dom_walker::dse_optimize_stmt): Rename...
7879         (dse_optimize_stmt): ... to this, pass in live_bytes sbitmap.
7880         (dse_dom_walker::before_dom_children): Inline ...
7881         (pass_dse::execute): ... here.  Perform a reverse program
7882         order walk.
7883
7884 2021-05-03  H.J. Lu  <hjl.tools@gmail.com>
7885
7886         PR bootstrap/99703
7887         * configure: Regenerated.
7888
7889 2021-05-03  Ilya Leoshkevich  <iii@linux.ibm.com>
7890
7891         PR target/100217
7892         * config/s390/s390.c (s390_hard_fp_reg_p): New function.
7893         (s390_md_asm_adjust): Handle hard registers.
7894
7895 2021-05-03  Jakub Jelinek  <jakub@redhat.com>
7896
7897         PR tree-optimization/100382
7898         * tree-ssa-dse.c: Include tree-eh.h.
7899         (dse_dom_walker::before_dom_children): Don't remove stmts if
7900         stmt_unremovable_because_of_non_call_eh_p is true.
7901
7902 2021-05-02  David Edelsohn  <dje.gcc@gmail.com>
7903
7904         * varasm.c (compute_reloc_for_var): Split out from...
7905         (get_variable_section): Use it.
7906         * output.h (compute_reloc_for_var): Declare.
7907         * config/rs6000/rs6000-protos.h
7908         (rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to
7909         unsigned int.
7910         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix):
7911         Don't append storage mapping class to symbol.
7912         (rs6000_xcoff_asm_named_section): Add BS and UL mapping classes.
7913         Don't convert TLS BSS to common.
7914         (rs6000_xcoff_unique_section): Don't fall back to select_secton.
7915         (rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is
7916         bss_initializer.
7917         (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage
7918         mapping class.
7919         (rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int.
7920         If align is 0 from TLS class, use the same rules as varasm.c
7921         If not common, switch to BSS section manually.
7922         If common, emit appropriate comm or lcomm directive.
7923         (rs6000_xcoff_encode_section_info): Add logic to append all
7924         storage mapping classes.
7925         (rs6000_asm_weaken_decl): Adjust for qualname symbols.
7926         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
7927         rs6000_xcoff_asm_output_aligned_decl_common.
7928         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
7929         rs6000_xcoff_asm_output_aligned_decl_common.
7930         (ASM_OUTPUT_TLS_COMMON): Use
7931         rs6000_xcoff_asm_output_aligned_decl_common.
7932
7933 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
7934
7935         PR target/100375
7936         * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0
7937         as first argument of pseudo_node_t constructors.
7938
7939 2021-05-02  Jakub Jelinek  <jakub@redhat.com>
7940
7941         PR target/100336
7942         * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def.
7943
7944 2021-05-01  Aldy Hernandez  <aldyh@redhat.com>
7945
7946         * value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove.
7947         (gt_pch_nx (int_range<1> *&)): New.
7948         (gt_ggc_mx (int_range<1> *&)): New.
7949         * value-range.h (class irange): Add GTY support for
7950         the base class.
7951
7952 2021-05-01  Geng Qi  <gengqi@linux.alibaba.com>
7953
7954         * doc/options.texi (Negative): Change either or to both and.
7955
7956 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
7957
7958         * config/aarch64/aarch64-simd-builtins.def: Add
7959         float_ml[as][q]_laneq builtin generator macros.
7960         * config/aarch64/aarch64-simd.md (mul_laneq<mode>3): Define.
7961         (aarch64_float_mla_laneq<mode>): Define.
7962         (aarch64_float_mls_laneq<mode>): Define.
7963         * config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin
7964         instead of GCC vector extensions.
7965         (vmlaq_laneq_f32): Likewise.
7966         (vmls_laneq_f32): Likewise.
7967         (vmlsq_laneq_f32): Likewise.
7968
7969 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
7970
7971         * config/aarch64/aarch64-simd-builtins.def: Add
7972         float_ml[as]_lane builtin generator macros.
7973         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt<mode>):
7974         Rename to...
7975         (mul_lane<mode>3): This, and re-order arguments.
7976         (aarch64_float_mla_lane<mode>): Define.
7977         (aarch64_float_mls_lane<mode>): Define.
7978         * config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin
7979         instead of GCC vector extensions.
7980         (vmlaq_lane_f32): Likewise.
7981         (vmls_lane_f32): Likewise.
7982         (vmlsq_lane_f32): Likewise.
7983
7984 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
7985
7986         * config/aarch64/aarch64-simd-builtins.def: Add float_ml[as]
7987         builtin generator macros.
7988         * config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>):
7989         Define.
7990         (aarch64_float_mls<mode>): Define.
7991         * config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin
7992         instead of relying on GCC vector extensions.
7993         (vmla_f64): Likewise.
7994         (vmlaq_f32): Likewise.
7995         (vmlaq_f64): Likewise.
7996         (vmls_f32): Likewise.
7997         (vmls_f64): Likewise.
7998         (vmlsq_f32): Likewise.
7999         (vmlsq_f64): Likewise.
8000         * config/aarch64/iterators.md: Define VDQF_DF mode iterator.
8001
8002 2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>
8003
8004         * config/aarch64/aarch64-simd-builtins.def: Add
8005         float_ml[as]_n_builtin generator macros.
8006         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup<mode>):
8007         Rename to...
8008         (mul_n<mode>3): This, and re-order arguments.
8009         (aarch64_float_mla_n<mode>): Define.
8010         (aarch64_float_mls_n<mode>): Define.
8011         * config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin
8012         instead of inline asm.
8013         (vmlaq_n_f32): Likewise.
8014         (vmls_n_f32): Likewise.
8015         (vmlsq_n_f32): Likewise.
8016
8017 2021-04-30  Jonathan Wright  <joanthan.wright@arm.com>
8018
8019         * config/aarch64/aarch64-simd-builtins.def: Add pmull[2]
8020         builtin generator macros.
8021         * config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define.
8022         (aarch64_pmull_hiv16qi_insn): Define.
8023         (aarch64_pmull_hiv16qi): Define.
8024         * config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin
8025         instead of inline asm.
8026         (vmull_p8): Likewise.
8027
8028 2021-04-30  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
8029
8030         * config/avr/avr.md: Adjust peepholes to match and
8031         generate parallels with clobber of REG_CC.
8032         (mov<mode>_insn): Rename to mov<mode>_insn_split.
8033         (*mov<mode>_insn): Rename to mov<mode>_insn.
8034
8035 2021-04-30  David Edelsohn  <dje.gcc@gmail.com>
8036
8037         * varasm.c (use_blocks_for_decl_p): Don't use section anchors
8038         for VAR_DECLs if -fdata-sections enabled.
8039
8040 2021-04-30  Michael Meissner  <meissner@linux.ibm.com>
8041
8042         PR bootstrap/100327
8043         * config/rs6000/rs6000.c
8044         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
8045         (rs6000_libgcc_floating_mode_supported_p): New target hook.
8046
8047 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
8048
8049         * tree-ssa-threadbackward.c (class thread_jumps): Split out code
8050         from here...
8051         (class back_threader_registry): ...to here...
8052         (class back_threader_profitability): ...and here...
8053         (thread_jumps::thread_through_all_blocks): Remove argument.
8054         (back_threader_registry::back_threader_registry): New.
8055         (back_threader_registry::~back_threader_registry): New.
8056         (back_threader_registry::thread_through_all_blocks): New.
8057         (thread_jumps::profitable_jump_thread_path): Move from here...
8058         (back_threader_profitability::profitable_path_p): ...to here.
8059         (thread_jumps::find_taken_edge): New.
8060         (thread_jumps::convert_and_register_current_path): Move...
8061         (back_threader_registry::register_path): ...to here.
8062         (thread_jumps::register_jump_thread_path_if_profitable): Move...
8063         (thread_jumps::maybe_register_path): ...to here.
8064         (thread_jumps::handle_phi): Call find_taken_edge and
8065         maybe_register_path.
8066         (thread_jumps::handle_assignment): Same.
8067         (thread_jumps::fsm_find_control_statement_thread_paths): Remove
8068         tree argument to handle_phi and handle_assignment.
8069         (thread_jumps::find_jump_threads_backwards): Set m_name.  Remove
8070         set of m_speed_p and m_max_threaded_paths.
8071         (pass_thread_jumps::execute): Remove second argument from
8072         find_jump_threads_backwards.
8073         (pass_early_thread_jumps::execute): Same.
8074
8075 2021-04-30  Aldy Hernandez  <aldyh@redhat.com>
8076
8077         * tree-ssa-dom.c (class dom_jump_threader_simplifier): New.
8078         (class dom_opt_dom_walker): Initialize some class variables.
8079         (pass_dominator::execute): Pass evrp_range_analyzer and
8080         dom_jump_threader_simplifier to dom_opt_dom_walker.
8081         Adjust for some functions moving into classes.
8082         (simplify_stmt_for_jump_threading): Adjust and move to...
8083         (jump_threader_simplifier::simplify): ...here.
8084         (dom_opt_dom_walker::before_dom_children): Adjust for
8085         m_evrp_range_analyzer.
8086         (dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack.
8087         (test_for_singularity): Place in dom_opt_dom_walker class.
8088         (dom_opt_dom_walker::optimize_stmt): The argument
8089         evrp_range_analyzer is now a class field.
8090         * tree-ssa-threadbackward.c (class thread_jumps): Add m_registry.
8091         (thread_jumps::thread_through_all_blocks): New.
8092         (thread_jumps::convert_and_register_current_path): Use m_registry.
8093         (pass_thread_jumps::execute): Adjust for thread_through_all_blocks
8094         being in the threader class.
8095         (pass_early_thread_jumps::execute): Same.
8096         * tree-ssa-threadedge.c (threadedge_initialize_values): Move...
8097         (jump_threader::jump_threader): ...here.
8098         (threadedge_finalize_values): Move...
8099         (jump_threader::~jump_threader): ...here.
8100         (jump_threader::remove_jump_threads_including): New.
8101         (jump_threader::thread_through_all_blocks): New.
8102         (record_temporary_equivalences_from_phis): Move...
8103         (jump_threader::record_temporary_equivalences_from_phis): ...here.
8104         (record_temporary_equivalences_from_stmts_at_dest): Move...
8105         (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
8106         Here...
8107         (simplify_control_stmt_condition_1): Move to jump_threader class.
8108         (simplify_control_stmt_condition): Move...
8109         (jump_threader::simplify_control_stmt_condition): ...here.
8110         (thread_around_empty_blocks): Move...
8111         (jump_threader::thread_around_empty_blocks): ...here.
8112         (thread_through_normal_block): Move...
8113         (jump_threader::thread_through_normal_block): ...here.
8114         (thread_across_edge): Move...
8115         (jump_threader::thread_across_edge): ...here.
8116         (thread_outgoing_edges): Move...
8117         (jump_threader::thread_outgoing_edges): ...here.
8118         * tree-ssa-threadedge.h: Move externally facing functings...
8119         (class jump_threader): ...here...
8120         (class jump_threader_simplifier): ...and here.
8121         * tree-ssa-threadupdate.c (struct redirection_data): Remove comment.
8122         (jump_thread_path_allocator::jump_thread_path_allocator): New.
8123         (jump_thread_path_allocator::~jump_thread_path_allocator): New.
8124         (jump_thread_path_allocator::allocate_thread_edge): New.
8125         (jump_thread_path_allocator::allocate_thread_path): New.
8126         (jump_thread_path_registry::jump_thread_path_registry): New.
8127         (jump_thread_path_registry::~jump_thread_path_registry): New.
8128         (jump_thread_path_registry::allocate_thread_edge): New.
8129         (jump_thread_path_registry::allocate_thread_path): New.
8130         (dump_jump_thread_path): Make extern.
8131         (debug (const vec<jump_thread_edge *> &path)): New.
8132         (struct removed_edges): Move to tree-ssa-threadupdate.h.
8133         (struct thread_stats_d): Remove.
8134         (remove_ctrl_stmt_and_useless_edges): Make static.
8135         (lookup_redirection_data): Move...
8136         (jump_thread_path_registry::lookup_redirection_data): ...here.
8137         (ssa_redirect_edges): Make static.
8138         (thread_block_1): Move...
8139         (jump_thread_path_registry::thread_block_1): ...here.
8140         (thread_block): Move...
8141         (jump_thread_path_registry::thread_block): ...here.
8142         (thread_through_loop_header):  Move...
8143         (jump_thread_path_registry::thread_through_loop_header): ...here.
8144         (mark_threaded_blocks): Move...
8145         (jump_thread_path_registry::mark_threaded_blocks): ...here.
8146         (debug_path): Move...
8147         (jump_thread_path_registry::debug_path): ...here.
8148         (debug_all_paths): Move...
8149         (jump_thread_path_registry::dump): ..here.
8150         (rewire_first_differing_edge): Move...
8151         (jump_thread_path_registry::rewire_first_differing_edge): ...here.
8152         (adjust_paths_after_duplication): Move...
8153         (jump_thread_path_registry::adjust_paths_after_duplication): ...here.
8154         (duplicate_thread_path): Move...
8155         (jump_thread_path_registry::duplicate_thread_path): ..here.
8156         (remove_jump_threads_including): Move...
8157         (jump_thread_path_registry::remove_jump_threads_including): ...here.
8158         (thread_through_all_blocks): Move to...
8159         (jump_thread_path_registry::thread_through_all_blocks): ...here.
8160         (delete_jump_thread_path): Remove.
8161         (register_jump_thread): Move...
8162         (jump_thread_path_registry::register_jump_thread): ...here.
8163         * tree-ssa-threadupdate.h: Move externally facing functions...
8164         (class jump_thread_path_allocator): ...here...
8165         (class jump_thread_path_registry): ...and here.
8166         (thread_through_all_blocks): Remove.
8167         (struct removed_edges): New.
8168         (register_jump_thread): Remove.
8169         (remove_jump_threads_including): Remove.
8170         (delete_jump_thread_path): Remove.
8171         (remove_ctrl_stmt_and_useless_edges): Remove.
8172         (free_dom_edge_info): New prototype.
8173         * tree-vrp.c: Remove x_vr_values hack.
8174         (class vrp_jump_threader_simplifier): New.
8175         (vrp_jump_threader_simplifier::simplify): New.
8176         (vrp_jump_threader::vrp_jump_threader): Adjust method signature.
8177         Remove m_dummy_cond.
8178         Instantiate m_simplifier and m_threader.
8179         (vrp_jump_threader::thread_through_all_blocks): New.
8180         (vrp_jump_threader::simplify_stmt): Remove.
8181         (vrp_jump_threader::after_dom_children): Do not set m_dummy_cond.
8182         Remove x_vr_values hack.
8183         (execute_vrp): Adjust for thread_through_all_blocks being in a
8184         class.
8185
8186 2021-04-30  Christophe Lyon  <christophe.lyon@linaro.org>
8187
8188         * genflags.c (gen_insn): Print failed expansion string.
8189
8190 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
8191
8192         * expr.c (alignment_for_piecewise_move): Call mode_for_size
8193         without limit to MAX_FIXED_MODE_SIZE.
8194
8195 2021-04-30  H.J. Lu  <hjl.tools@gmail.com>
8196
8197         PR middle-end/90773
8198         * builtins.c (builtin_memset_gen_str): Don't use return from
8199         simplify_gen_subreg.
8200
8201 2021-04-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
8202
8203         PR target/98060
8204         * config/i386/i386.md (*add<mode>3_carry_0r): New insn pattern.
8205         (*addsi3_carry_zext_0r): Ditto.
8206         (*sub<mode>3_carry_0): Ditto.
8207         (*subsi3_carry_zext_0r): Ditto.
8208         * config/i386/predicates.md (ix86_carry_flag_unset_operator):
8209         New predicate.
8210         * config/i386/i386.c (ix86_rtx_costs) <case PLUS, case MINUS>:
8211         Also consider ix86_carry_flag_unset_operator to calculate
8212         the cost of adc/sbb insn.
8213
8214 2021-04-30  Roman Zhuykov  <zhroma@ispras.ru>
8215
8216         PR rtl-optimization/100225
8217         PR rtl-optimization/84878
8218         * modulo-sched.c (sms_schedule): Use note_stores to skip loops
8219         where we have an instruction which touches (writes) any hard
8220         register from df->regular_block_artificial_uses set.
8221         Allow not-single-set instruction only right before basic block
8222         tail.
8223
8224 2021-04-30  Geng Qi  <gengqi@linux.alibaba.com>
8225
8226         * config/riscv/riscv.opt (march=,mabi=): Negative itself.
8227
8228 2021-04-30  LevyHsu  <admin@levyhsu.com>
8229
8230         * config/riscv/riscv.c (riscv_min_arithmetic_precision): New.
8231         * config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New.
8232         * config/riscv/riscv.md (addv<mode>4, uaddv<mode>4): New.
8233         (subv<mode>4, usubv<mode>4, mulv<mode>4, umulv<mode>4): New.
8234
8235 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
8236
8237         * config.gcc: Merged x86 and x86_64 cpu_type-setting cases.
8238
8239 2021-04-29  Alexandre Oliva  <oliva@adacore.com>
8240
8241         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to...
8242         (ASM_OUTPUT_MAX_SKIP_ALIGN): ... this.  Enclose in do/while(0).
8243         * config/i386/i386.c: Adjust.
8244         * config/i386/i386.md: Adjust.
8245         * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop.
8246         * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8247         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8248         * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8249         * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8250         * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8251         * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8252         * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8253         * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8254         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8255         (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
8256
8257 2021-04-29  UroÅ¡ Bizjak  <ubizjak@gmail.com>
8258
8259         * config/i386/i386-expand.c (ix86_expand_int_compare):
8260         Swap operands of GTU and LEU comparison to emit carry flag comparison.
8261         * config/i386/i386.md (*add<mode>3_carry_0): Change insn
8262         predicate to allow more combine opportunities with memory operands.
8263         (*sub<mode>3_carry_0): Ditto.
8264
8265 2021-04-29  Richard Sandiford  <richard.sandiford@arm.com>
8266
8267         PR rtl-optimization/100303
8268         * rtl-ssa/accesses.cc (function_info::make_use_available): Take a
8269         boolean that indicates whether the use will only be used in
8270         debug instructions.  Treat it in the same way that existing
8271         cross-EBB debug references would be handled if so.
8272         (function_info::make_uses_available): Likewise.
8273         * rtl-ssa/functions.h (function_info::make_uses_available): Update
8274         prototype accordingly.
8275         (function_info::make_uses_available): Likewise.
8276         * fwprop.c (try_fwprop_subst): Update call accordingly.
8277
8278 2021-04-29  Jeff Law  <jlaw@tachyum.com>
8279
8280         * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside
8281         of RTX_CODE guard.
8282
8283 2021-04-29  UroÅ¡ Bizjak  <ubizjak@gmail.com>
8284             Richard Biener  <rguenther@suse.de>
8285
8286         PR target/100312
8287         * config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD)
8288         (IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256)
8289         (IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD)
8290         (IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256)
8291         (IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS
8292         to PURE_ARGS category.
8293         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
8294         Handle PURE_ARGS category.
8295         * config/i386/i386-expand.c (ix86_expand_builtin): Ditto.
8296
8297 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
8298
8299         * configure.ac: Check for the presence of sys/locking.h header and
8300         for whether _LK_LOCK is supported by _locking.
8301         * configure: Regenerate.
8302         * config.in: Likewise.
8303         * gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK.
8304         * gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING.
8305         * system.h: Include <sys/locking.h> if HAVE_SYS_LOCKING_H.
8306
8307 2021-04-29  UroÅ¡ Bizjak  <ubizjak@gmail.com>
8308
8309         * config/i386/predicates.md (fcmov_comparison_operator):
8310         Do not check for trivial FP comparison operator.
8311         <case GEU, case LTU>: Allow CCGZmode.
8312         <case GTU, case LEU>: Do not allow CCCmode.
8313         (ix86_comparison_operator) <case GTU, case LEU>: Allow only CCmode.
8314         (ix86_carry_flag_operator): Match only LTU and UNLT code.
8315         Do not check for trivial FP comparison operator.  Allow CCGZmode.
8316
8317 2021-04-29  Tom de Vries  <tdevries@suse.de>
8318
8319         * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of
8320         fd->loop.step by either step or orig_step.
8321
8322 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
8323
8324         * config/sparc/sparc.c (gen_load_pcrel_sym): Delete.
8325         (load_got_register): Do the PIC dance here.
8326         (sparc_legitimize_tls_address): Simplify.
8327         (sparc_emit_probe_stack_range): Likewise.
8328         (sparc32_initialize_trampoline): Likewise.
8329         (sparc64_initialize_trampoline): Likewise.
8330         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Add @ marker.
8331         (probe_stack_range<P:mode>): Likewise.
8332         (flush<P:mode>): Likewise.
8333         (tgd_hi22<P:mode>): Likewise.
8334         (tgd_lo10<P:mode>): Likewise.
8335         (tgd_add<P:mode>): Likewise.
8336         (tgd_call<P:mode>): Likewise.
8337         (tldm_hi22<P:mode>): Likewise.
8338         (tldm_lo10<P:mode>): Likewise.
8339         (tldm_add<P:mode>): Likewise.
8340         (tldm_call<P:mode>): Likewise.
8341         (tldo_hix22<P:mode>): Likewise.
8342         (tldo_lox10<P:mode>): Likewise.
8343         (tldo_add<P:mode>): Likewise.
8344         (tie_hi22<P:mode>): Likewise.
8345         (tie_lo10<P:mode>): Likewise.
8346         (tie_add<P:mode>): Likewise.
8347         (tle_hix22<P:mode>): Likewise.
8348         (tle_lox10<P:mode>): Likewise.
8349         (stack_protect_setsi): Rename to...
8350         (stack_protect_set32): ...this.
8351         (stack_protect_setdi): Rename to...
8352         (stack_protect_set64): ...this.
8353         (stack_protect_set): Adjust calls to above.
8354         (stack_protect_testsi): Rename to...
8355         (stack_protect_test32): ...this.
8356         (stack_protect_testdi): Rename to...
8357         (stack_protect_test64): ...this.
8358         (stack_protect_test): Adjust calls to above.
8359
8360 2021-04-29  H.J. Lu  <hjl.tools@gmail.com>
8361
8362         PR middle-end/90773
8363         * builtins.c (builtin_memcpy_read_str): Add a dummy argument.
8364         (builtin_strncpy_read_str): Likewise.
8365         (builtin_memset_read_str): Add an argument for the previous RTL
8366         information and generate the new RTL from the previous RTL info.
8367         (builtin_memset_gen_str): Likewise.
8368         * builtins.h (builtin_strncpy_read_str): Update the prototype.
8369         (builtin_memset_read_str): Likewise.
8370         * expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p()
8371         returns true, round up size and alignment to the widest integer
8372         mode for maximum size.
8373         (pieces_addr::adjust): Add a pointer to by_pieces_prev argument
8374         and pass it to m_constfn.
8375         (op_by_pieces_d): Add m_push and m_overlap_op_by_pieces.
8376         (op_by_pieces_d::op_by_pieces_d): Add a bool argument to
8377         initialize m_push.  Initialize m_overlap_op_by_pieces with
8378         targetm.overlap_op_by_pieces_p ().
8379         (op_by_pieces_d::run): Pass the previous RTL information to
8380         pieces_addr::adjust and generate overlapping operations if
8381         m_overlap_op_by_pieces is true.
8382         (PUSHG_P): New.
8383         (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d
8384         change.
8385         (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d
8386         change.
8387         (can_store_by_pieces): Use by_pieces_constfn on constfun.
8388         (store_by_pieces): Use by_pieces_constfn on constfun.  Updated
8389         for op_by_pieces_d change.
8390         (clear_by_pieces_1): Add a dummy argument.
8391         (clear_by_pieces): Updated for op_by_pieces_d change.
8392         (compare_by_pieces_d::compare_by_pieces_d): Likewise.
8393         (string_cst_read_str): Add a dummy argument.
8394         * expr.h (by_pieces_constfn): Add a dummy argument.
8395         (by_pieces_prev): New.
8396         * target.def (overlap_op_by_pieces_p): New target hook.
8397         * config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New.
8398         * doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P.
8399         * doc/tm.texi: Regenerated.
8400
8401 2021-04-29  Richard Biener  <rguenther@suse.de>
8402
8403         PR tree-optimization/100253
8404         * tree-vect-stmts.c (vectorizable_load): Do not assume
8405         element alignment when DR_MISALIGNMENT is -1.
8406         (vectorizable_store): Likewise.
8407
8408 2021-04-29  Jakub Jelinek  <jakub@redhat.com>
8409
8410         PR target/100302
8411         * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
8412         absu_hwi instead of abs_hwi.
8413
8414 2021-04-29  Richard Biener  <rguenther@suse.de>
8415
8416         PR middle-end/38474
8417         * tree-ssa-structalias.c (add_graph_edge): Avoid direct
8418         forwarding when indirect forwarding through ESCAPED
8419         alread happens.
8420
8421 2021-04-29  Tom de Vries  <tdevries@suse.de>
8422
8423         PR target/100232
8424         * internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC)
8425         (expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED)
8426         (expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY)
8427         (expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to.
8428
8429 2021-04-29  Richard Biener  <rguenther@suse.de>
8430
8431         PR tree-optimization/99912
8432         * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New.
8433         (dse_dom_walker::todo): Likewise.
8434         (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the
8435         caller.
8436         (dse_dom_walker::before_dom_children): Remove trivially
8437         dead SSA defs and schedule CFG cleanup if we removed all
8438         PHIs in a block.
8439         (pass_dse::execute): Get TODO as computed by the DOM walker
8440         and return it.  Wipe dominator info earlier.
8441
8442 2021-04-29  Richard Biener  <rguenther@suse.de>
8443
8444         PR ipa/100308
8445         * ipa-prop.c (ipcp_modif_dom_walker::before_dom_children):
8446         Track blocks to cleanup EH in new m_need_eh_cleanup.
8447         (ipcp_modif_dom_walker::cleanup_eh): New.
8448         (ipcp_transform_function): Release dominator info before
8449         doing EH cleanup.
8450
8451 2021-04-29  Martin Sebor  <msebor@redhat.com>
8452
8453         PR middle-end/100250
8454         * attribs.c (attr_access::array_as_string): Avoid dereferencing
8455         a pointer when it's null.
8456
8457 2021-04-29  Martin Sebor  <msebor@redhat.com>
8458
8459         * Makefile.in (OBJS): Add ipa-free-lang-data.o.
8460         * ipa-free-lang-data.cc: New file.
8461         * tree.c: Move pass free_lang_data to file above.
8462          (build_array_type_1): Declare extern.
8463         * tree.h (build_array_type_1): Declare.
8464
8465 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8466
8467         * config/aarch64/aarch64-simd-builtins.def: Modify comment to
8468         make consistent with updated RTL pattern.
8469         * config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>):
8470         Implement using ss_truncate and us_truncate rather than
8471         unspecs.
8472         * config/aarch64/iterators.md: Remove redundant unspecs and
8473         iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively.
8474
8475 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8476
8477         * config/aarch64/arm_acle.h (__attribute__): Make intrinsic
8478         attributes consistent with those defined in arm_neon.h.
8479
8480 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8481
8482         * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic
8483         attributes consistent with those defined in arm_neon.h.
8484
8485 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8486
8487         * config/aarch64/aarch64-simd-builtins.def: Add
8488         float_trunc_rodd builtin generator macros.
8489         * config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df):
8490         Define.
8491         (aarch64_float_trunc_rodd_lo_v2sf): Define.
8492         (aarch64_float_trunc_rodd_hi_v4sf_le): Define.
8493         (aarch64_float_trunc_rodd_hi_v4sf_be): Define.
8494         (aarch64_float_trunc_rodd_hi_v4sf): Define.
8495         * config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin
8496         instead of inline asm.
8497         (vcvtx_high_f32_f64): Likewise.
8498         (vcvtxd_f32_f64): Likewise.
8499         * config/aarch64/iterators.md: Add FCVTXN unspec.
8500
8501 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8502
8503         * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin
8504         generator macros.
8505         * config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>):
8506         Define.
8507         * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin
8508         instead of inline asm.
8509         (vqtbx1_u8): Likewise.
8510         (vqtbx1_p8): Likewise.
8511         (vqtbx1q_s8): Likewise.
8512         (vqtbx1q_u8): Likewise.
8513         (vqtbx1q_p8): Likewise.
8514         (vtbx2_s8): Likewise.
8515         (vtbx2_u8): Likewise.
8516         (vtbx2_p8): Likewise.
8517
8518 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8519
8520         * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin
8521         generator macros.
8522         * config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin
8523         instead of inline asm.
8524         (vqtbl1_s8): Likewise.
8525         (vqtbl1_u8): Likewise.
8526         (vqtbl1q_p8): Likewise.
8527         (vqtbl1q_s8): Likewise.
8528         (vqtbl1q_u8): Likewise.
8529         (vtbl1_s8): Likewise.
8530         (vtbl1_u8): Likewise.
8531         (vtbl1_p8): Likewise.
8532         (vtbl2_s8): Likewise.
8533         (vtbl2_u8): Likewise.
8534         (vtbl2_p8): Likewise.
8535
8536 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8537
8538         * config/aarch64/aarch64-simd-builtins.def: Add polynomial
8539         ssri_n buitin generator macro.
8540         * config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin
8541         instead of inline asm.
8542         (vsri_n_p16): Likewise.
8543         (vsri_n_p64): Likewise.
8544         (vsriq_n_p8): Likewise.
8545         (vsriq_n_p16): Likewise.
8546         (vsriq_n_p64): Likewise.
8547
8548 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8549
8550         * config/aarch64/aarch64-simd-builtins.def: Use VALLP mode
8551         iterator for polynomial ssli_n builtin generator macro.
8552         * config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin
8553         instead of inline asm.
8554         (vsli_n_p16): Likewise.
8555         (vsliq_n_p8): Likewise.
8556         (vsliq_n_p16): Likewise.
8557         * config/aarch64/iterators.md: Define VALLP mode iterator.
8558
8559 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8560
8561         * config/aarch64/aarch64-simd-builtins.def: Use VDQV_L
8562         iterator to generate [su]adalp RTL builtins.
8563         * config/aarch64/aarch64-simd.md: Use VDQV_L iterator in
8564         [su]adalp RTL pattern.
8565         * config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin
8566         instead of inline asm.
8567         (vpadal_u32): Likewise.
8568
8569 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8570
8571         * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp
8572         builtin generator macros.
8573         * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>):
8574         Define.
8575         * config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin
8576         instead of inline asm.
8577         (vpaddl_s16): Likewise.
8578         (vpaddl_s32): Likewise.
8579         (vpaddl_u8): Likewise.
8580         (vpaddl_u16): Likewise.
8581         (vpaddl_u32): Likewise.
8582         (vpaddlq_s8): Likewise.
8583         (vpaddlq_s16): Likewise.
8584         (vpaddlq_s32): Likewise.
8585         (vpaddlq_u8): Likewise.
8586         (vpaddlq_u16): Likewise.
8587         (vpaddlq_u32): Liwewise.
8588         * config/aarch64/iterators.md: Define [SU]ADDLP unspecs with
8589         appropriate attributes.
8590
8591 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8592
8593         * config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator
8594         for aarch64_addp<mode> builtin macro generator.
8595         * config/aarch64/aarch64-simd.md: Use VDQ_I iterator in
8596         aarch64_addp<mode> RTL pattern.
8597         * config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin
8598         instead of inline asm.
8599         (vpaddq_s16): Likewise.
8600         (vpaddq_s32): Likewise.
8601         (vpaddq_s64): Likewise.
8602         (vpaddq_u8): Likewise.
8603         (vpaddq_u16): Likewise.
8604         (vpaddq_u32): Likewise.
8605         (vpaddq_u64): Likewise.
8606
8607 2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>
8608
8609         * config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n
8610         builtin generator macros.
8611         * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_n<mode>):
8612         Define.
8613         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin
8614         instead of inline asm.
8615         (vqdmulh_n_s32): Likewise.
8616         (vqdmulhq_n_s16): Likewise.
8617         (vqdmulhq_n_s32): Likewise.
8618         (vqrdmulh_n_s16): Likewise.
8619         (vqrdmulh_n_s32): Likewise.
8620         (vqrdmulhq_n_s16): Likewise.
8621         (vqrdmulhq_n_s32): Likewise.
8622
8623 2021-04-28  Tobias Burnus  <tobias@codesourcery.com>
8624
8625         * doc/install.texi (--enable-offload-defaulted): Document.
8626
8627 2021-04-28  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
8628
8629         * config/avr/avr-dimode.md: Turn existing patterns into
8630         define_insn_and_split style patterns where the splitter
8631         adds a clobber of the condition code register.  Drop "cc"
8632         attribute.  Add new patterns to match output of
8633         the splitters.
8634         * config/avr/avr-fixed.md: Likewise.
8635         * config/avr/avr.c (cc_reg_rtx): New.
8636         (avr_parallel_insn_from_insns): Adjust insn count
8637         for removal of set of cc0.
8638         (avr_is_casesi_sequence): Likewise.
8639         (avr_casei_sequence_check_operands): Likewise.
8640         (avr_optimize_casesi): Likewise. Also insert
8641         new insns after jump_insn.
8642         (avr_pass_casesi::avr_rest_of_handle_casesi): Adjust
8643         for removal of set of cc0.
8644         (avr_init_expanders): Initialize cc_reg_rtx.
8645         (avr_regno_reg_class): Handle REG_CC.
8646         (cond_string): Remove usage of CC_OVERFLOW_UNUSABLE.
8647         (avr_notice_update_cc): Remove function.
8648         (ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE.
8649         (compare_condition): Adjust for PARALLEL with
8650         REG_CC clobber.
8651         (out_shift_with_cnt): Likewise.
8652         (ashlhi3_out): Likewise.
8653         (ashrhi3_out): Likewise.
8654         (lshrhi3_out): Likewise.
8655         (avr_class_max_nregs): Return single reg for REG_CC.
8656         (avr_compare_pattern): Check for REG_CC instead
8657         of cc0_rtx.
8658         (avr_reorg_remove_redundant_compare): Likewise.
8659         (avr_reorg):Adjust for PARALLEL with REG_CC clobber.
8660         (avr_hard_regno_nregs): Return single reg for REG_CC.
8661         (avr_hard_regno_mode_ok): Allow only CCmode for REG_CC.
8662         (avr_md_asm_adjust): Clobber REG_CC.
8663         (TARGET_HARD_REGNO_NREGS): Define.
8664         (TARGET_CLASS_MAX_NREGS): Define.
8665         (TARGET_MD_ASM_ADJUST): Define.
8666         * config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust
8667         for REG_CC.
8668         (enum reg_class): Add CC_REG class.
8669         (NOTICE_UPDATE_CC): Remove.
8670         (CC_OVERFLOW_UNUSABLE): Remove.
8671         (CC_NO_CARRY): Remove.
8672         * config/avr/avr.md: Turn existing patterns into
8673         define_insn_and_split style patterns where the splitter
8674         adds a clobber of the condition code register.  Drop "cc"
8675         attribute.  Add new patterns to match output of
8676         the splitters.
8677         (sez): Remove unused pattern.
8678
8679 2021-04-28  Richard Earnshaw  <rearnsha@arm.com>
8680
8681         PR target/100311
8682         * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be
8683         used in HImode.
8684
8685 2021-04-28  Richard Sandiford  <richard.sandiford@arm.com>
8686
8687         PR target/100305
8688         * config/aarch64/constraints.md (Utq): Require the address to
8689         be valid for both the element mode and for V2DImode.
8690
8691 2021-04-28  Jakub Jelinek  <jakub@redhat.com>
8692             Tobias Burnus  <tobias@codesourcery.com>
8693
8694         * configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted.
8695         * gcc.c (process_command): New variable.
8696         (driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED,
8697         set it if -foffload is defaulted.
8698         * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
8699         (compile_offload_image): If OFFLOAD_DEFAULTED and
8700         OFFLOAD_TARGET_DEFAULT is in the environment, don't fail
8701         if corresponding mkoffload can't be found.
8702         (compile_images_for_offload_targets): Likewise.  Free and clear
8703         offload_names if no valid offload is found.
8704         * config.in: Regenerate.
8705         * configure: Regenerate.
8706
8707 2021-04-28  Richard Biener  <rguenther@suse.de>
8708
8709         PR tree-optimization/100292
8710         * tree-vect-generic.c (expand_vector_condition): Do not fold
8711         the comparisons.
8712
8713 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
8714
8715         * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New.
8716         * config/rs6000/aix64.opt (m64): New.
8717         (m32): New.
8718
8719 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
8720
8721         * config/vax/vax.c (print_operand_address, vax_address_cost_1)
8722         (index_term_p): Handle ASHIFT too.
8723
8724 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
8725
8726         * config/vax/builtins.md (jbb<ccss>i<mode>): Remove operand #3.
8727         (sync_lock_test_and_set<mode>): Adjust accordingly.
8728         (sync_lock_release<mode>): Likewise.
8729
8730 2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>
8731
8732         * config/vax/vax-protos.h (adjacent_operands_p): Remove
8733         prototype.
8734         * config/vax/vax.c (adjacent_operands_p): Remove.
8735
8736 2021-04-27  Maciej W. Rozycki  <macro@linux-mips.org>
8737
8738         * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall
8739         through to the non-conditional execution case if getting the
8740         condition for conditional execution has failed.
8741
8742 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
8743
8744         PR middle-end/100284
8745         * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test.
8746         * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather
8747         than asserting on it.
8748
8749 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
8750
8751         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect
8752         with TARGET_AIX_OS.
8753
8754 2021-04-27  David Edelsohn  <dje.gcc@gmail.com>
8755
8756         PR target/94177
8757         * calls.c (precompute_register_parameters): Additionally test
8758         targetm.precompute_tls_p to pre-compute argument.
8759         * config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define.
8760         * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New.
8761         * target.def (precompute_tls_p): New.
8762         * doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation.
8763         * doc/tm.texi: Regenerated.
8764
8765 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8766
8767         PR target/100200
8768         * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL
8769         back to HOST_WIDE_INT.
8770
8771 2021-04-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8772
8773         PR target/100106
8774         * simplify-rtx.c (simplify_context::simplify_subreg): Check the
8775         memory alignment for the outer mode.
8776
8777 2021-04-27  H.J. Lu  <hjl.tools@gmail.com>
8778
8779         PR middle-end/90773
8780         * expr.c (op_by_pieces_d::get_usable_mode): New member function.
8781         (op_by_pieces_d::run): Cange a while loop to a do-while loop.
8782
8783 2021-04-27  Alex Coplan  <alex.coplan@arm.com>
8784
8785         PR target/99977
8786         * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen
8787         with negative immediates: ensure we expand cbranchsi4_scratch
8788         correctly and ensure we satisfy its constraints.
8789         * config/arm/sync.md
8790         (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't
8791         attempt to tie two output operands together with constraints;
8792         collapse two alternatives.
8793         (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise.
8794         * config/arm/thumb1.md (cbranchsi4_neg_late): New.
8795
8796 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8797
8798         PR target/100200
8799         * config/aarch64/predicates.md (aarch64_sub_immediate,
8800         aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL.
8801         * config/aarch64/aarch64.md (casesi, rotl<mode>3): Likewise.
8802         * config/aarch64/aarch64.c (aarch64_print_operand,
8803         aarch64_split_atomic_op, aarch64_expand_subvti): Likewise.
8804
8805 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8806
8807         PR tree-optimization/100239
8808         * tree-vect-generic.c (lower_vec_perm): Don't accept constant
8809         permutations with all indices from the first zero element as vec_shl.
8810
8811 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8812
8813         PR rtl-optimization/100254
8814         * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
8815         last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.
8816
8817 2021-04-27  Richard Biener  <rguenther@suse.de>
8818
8819         PR tree-optimization/99912
8820         * passes.def: Add comment about new TODO_remove_unused_locals.
8821         * tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals
8822         at start.
8823
8824 2021-04-27  Richard Biener  <rguenther@suse.de>
8825
8826         PR tree-optimization/99912
8827         * passes.def (pass_all_optimizations): Add pass_dse before
8828         the first pass_dce, move the first pass_dse before the
8829         pass_dce following pass_pre.
8830
8831 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8832
8833         PR tree-optimization/95527
8834         * generic-match-head.c: Include tm.h.
8835         * gimple-match-head.c: Include tm.h.
8836         * match.pd (CLZ == INTEGER_CST): Don't use
8837         #ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO
8838         if clz == CFN_CLZ.  Add missing val declaration.
8839         (CTZ cmp CST): New simplifications.
8840
8841 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8842
8843         PR tree-optimization/96696
8844         * expr.c (expand_expr_divmod): New function.
8845         (expand_expr_real_2) <case TRUNC_DIV_EXPR>: Use it for truncations and
8846         divisions.  Formatting fixes.
8847         <case MULT_EXPR>: Optimize x / y * y as x - x % y if the latter is
8848         cheaper.
8849
8850 2021-04-27  Martin Jambor  <mjambor@suse.cz>
8851
8852         PR ipa/99951
8853         * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
8854         If removing a call statement LHS SSA name, release it.
8855
8856 2021-04-27  Richard Earnshaw  <rearnsha@arm.com>
8857
8858         PR target/100236
8859         * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM
8860         is valid before including it in the mask.
8861
8862 2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>
8863
8864         PR target/100270
8865         * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle
8866         SVE attributes.
8867
8868 2021-04-27  Richard Biener  <rguenther@suse.de>
8869
8870         PR tree-optimization/100051
8871         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add
8872         disambiguator based on access size vs. decl size.
8873
8874 2021-04-27  Richard Biener  <rguenther@suse.de>
8875
8876         PR tree-optimization/100278
8877         * tree-ssa-pre.c (compute_avail): Give up when we cannot
8878         adjust TBAA beacuse of mismatching bases.
8879
8880 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
8881
8882         PR target/99405
8883         * config/i386/i386.md (*<insn><mode>3_mask, *<insn><mode>3_mask_1):
8884         For any_rotate define_insn_split and following splitters, use
8885         SWI iterator instead of SWI48.
8886
8887 2021-04-27  Richard Biener  <rguenther@suse.de>
8888
8889         PR tree-optimization/99776
8890         * match.pd (bit_field_ref (ctor)): Relax element extract
8891         type compatibility checks.
8892
8893 2021-04-27  Cui,Lili  <lili.cui@intel.com>
8894
8895         * common/config/i386/i386-common.c (processor_names):
8896         Sync processor_names with processor_type.
8897         * config/i386/i386-options.c (processor_cost_table):
8898         Sync processor_cost_table with processor_type.
8899
8900 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8901
8902         * value-range.cc (irange::irange_set_1bit_anti_range): Add assert.
8903         (irange::set): Call irange_set_1bit_anti_range for handling all
8904         1-bit ranges.  Fall through on ~[MIN,MAX].
8905
8906 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8907
8908         * value-range.cc (irange::legacy_num_pairs): Remove.
8909         (irange::invert): Change gcc_assert to gcc_checking_assert.
8910         * value-range.h (irange::num_pairs): Adjust for a cached
8911         num_pairs().  Also, rename all gcc_assert's to
8912         gcc_checking_assert's.
8913
8914 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8915
8916         * value-range.cc (irange::operator=): Set m_kind.
8917         (irange::copy_to_legacy): Handle varying and undefined sources
8918         as a legacy copy since they can be easily copied.
8919         (irange::irange_set): Set m_kind.
8920         (irange::irange_set_anti_range): Same.
8921         (irange::set): Rename normalize_min_max to normalize_kind.
8922         (irange::verify_range): Adjust for multi-ranges having the
8923         m_kind field set.
8924         (irange::irange_union): Set m_kind.
8925         (irange::irange_intersect): Same.
8926         (irange::invert): Same.
8927         * value-range.h (irange::kind): Always return m_kind.
8928         (irange::varying_p): Rename to...
8929         (irange::varying_comptaible_p): ...this.
8930         (irange::undefined_p): Only look at m_kind.
8931         (irange::irange): Always set VR_UNDEFINED if applicable.
8932         (irange::set_undefined): Always set VR_UNDEFINED.
8933         (irange::set_varying): Always set m_kind to VR_VARYING.
8934         (irange::normalize_min_max): Rename to...
8935         (irange::normalize_kind): ...this.
8936
8937 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8938
8939         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
8940         Adjust for constant_p including varying_p.
8941         * tree-vrp.c (vrp_prop::finalize): Same.
8942         (determine_value_range): Same.
8943         * vr-values.c (vr_values::range_of_expr): Same.
8944         * value-range.cc (irange::symbolic_p): Do not check varying_p.
8945         (irange::constant_p): Same.
8946
8947 2021-04-26  Aldy Hernandez  <aldyh@redhat.com>
8948
8949         * value-range.cc (irange::legacy_lower_bound): Replace
8950           !undefined_p check with num_ranges > 0.
8951         (irange::legacy_upper_bound): Same.
8952         * value-range.h (irange::type): Same.
8953         (irange::lower_bound): Same.
8954         (irange::upper_bound): Same.
8955
8956 2021-04-26  Richard Biener  <rguenther@suse.de>
8957
8958         PR tree-optimization/99956
8959         * gimple-loop-interchange.cc (compute_access_stride):
8960         Try instantiating the access in a shallower loop nest
8961         if instantiating failed.
8962         (compute_access_strides): Pass adjustable loop_nest
8963         to compute_access_stride.
8964
8965 2021-04-26  Christophe Lyon  <christophe.lyon@linaro.org>
8966
8967         * doc/sourcebuild.texi (arm_cmse_hw): Document.
8968
8969 2021-04-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8970
8971         * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF.
8972
8973 2021-04-26  Thomas Schwinge  <thomas@codesourcery.com>
8974             Nathan Sidwell  <nathan@codesourcery.com>
8975             Tom de Vries  <vries@codesourcery.com>
8976             Julian Brown  <julian@codesourcery.com>
8977             Kwok Cheung Yeung  <kcy@codesourcery.com>
8978
8979         * omp-offload.c (oacc_validate_dims): Implement
8980         '-Wopenacc-parallelism'.
8981         * doc/invoke.texi (-Wopenacc-parallelism): Document.
8982
8983 2021-04-26  Richard Biener  <rguenther@suse.de>
8984
8985         * tree-cfg.h (gimplify_build1): Remove.
8986         (gimplify_build2): Likewise.
8987         (gimplify_build3): Likewise.
8988         * tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c.
8989         (gimplify_build2): Likewise.
8990         (gimplify_build3): Likewise.
8991         * tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c.
8992         Modernize.
8993         (gimplify_build2): Likewise.
8994         (gimplify_build3): Likewise.
8995         (tree_vec_extract): Use resimplify with following SSA edges.
8996         (expand_vector_parallel): Avoid passing NULL size/bitpos
8997         to tree_vec_extract.
8998         * expr.c (store_constructor): Deal with zero-element CTORs.
8999         * match.pd (bit_field_ref <vector CTOR>): Make sure to
9000         produce vector constants when possible.
9001
9002 2021-04-26  Richard Biener  <rguenther@suse.de>
9003
9004         * tree-complex.c: Include gimple-fold.h.
9005         (expand_complex_addition): Use gimple_build.
9006         (expand_complex_multiplication_components): Likewise.
9007         (expand_complex_multiplication): Likewise.
9008         (expand_complex_div_straight): Likewise.
9009         (expand_complex_div_wide): Likewise.
9010         (expand_complex_division): Likewise.
9011         (expand_complex_conjugate): Likewise.
9012         (expand_complex_comparison): Likewise.
9013
9014 2021-04-26  Richard Biener  <rguenther@suse.de>
9015
9016         * tree-ssa-phiopt.c (two_value_replacement): Remove use
9017         of legacy gimplify_buildN API.
9018
9019 2021-04-26  Richard Biener  <rguenther@suse.de>
9020
9021         PR tree-optimization/99473
9022         * tree-ssa-phiopt.c (cond_store_replacement): Handle all
9023         stores.
9024
9025 2021-04-26  Richard Biener  <rguenther@suse.de>
9026
9027         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin):
9028         Use replace_call_with_value.
9029
9030 2021-04-26  Richard Biener  <rguenther@suse.de>
9031
9032         * tree-ssa-propagate.h (valid_gimple_rhs_p): Remove.
9033         (update_gimple_call): Likewise.
9034         (update_call_from_tree): Likewise.
9035         * tree-ssa-propagate.c (valid_gimple_rhs_p): Remove.
9036         (valid_gimple_call_p): Likewise.
9037         (move_ssa_defining_stmt_for_defs): Likewise.
9038         (finish_update_gimple_call): Likewise.
9039         (update_gimple_call): Likewise.
9040         (update_call_from_tree): Likewise.
9041         (propagate_tree_value_into_stmt): Use replace_call_with_value.
9042         * gimple-fold.h (update_gimple_call): Declare.
9043         * gimple-fold.c (valid_gimple_rhs_p): Move here from
9044         tree-ssa-propagate.c.
9045         (update_gimple_call): Likewise.
9046         (valid_gimple_call_p): Likewise.
9047         (finish_update_gimple_call): Likewise, and simplify.
9048         (gimplify_and_update_call_from_tree): Implement
9049         update_call_from_tree functionality, avoid excessive
9050         push/pop_gimplify_context.
9051         (gimple_fold_builtin): Use only gimplify_and_update_call_from_tree.
9052         (gimple_fold_call): Likewise.
9053         * gimple-ssa-sprintf.c (try_substitute_return_value): Likewise.
9054         * tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise.
9055         (pass_fold_builtins::execute): Likewise.
9056         (optimize_stack_restore): Use replace_call_with_value.
9057         * tree-cfg.c (fold_loop_internal_call): Likewise.
9058         * tree-ssa-dce.c (maybe_optimize_arith_overflow): Use
9059         only gimplify_and_update_call_from_tree.
9060         * tree-ssa-strlen.c (handle_builtin_strlen): Likewise.
9061         (handle_builtin_strchr): Likewise.
9062         * tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h.
9063
9064 2021-04-26  Jakub Jelinek  <jakub@redhat.com>
9065
9066         PR debug/100255
9067         * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
9068         vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
9069         register keywords.
9070
9071 2021-04-25  liuhongt  <hongtao.liu@intel.com>
9072
9073         PR target/98911
9074         * config/i386/i386-builtin.def (BDESC): Change the icode of
9075         the following builtins to CODE_FOR_nothing.
9076         * config/i386/i386.c (ix86_gimple_fold_builtin): Fold
9077         IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128,
9078         IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ,
9079         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
9080         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
9081         IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128,
9082         IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ,
9083         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
9084         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256.
9085         * config/i386/sse.md (avx2_eq<mode>3): Deleted.
9086         (sse2_eq<mode>3): Ditto.
9087         (sse4_1_eqv2di3): Ditto.
9088         (sse2_gt<mode>3): Rename to ..
9089         (*sse2_gt<mode>3): .. this.
9090
9091 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
9092
9093         Revert:
9094         2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
9095
9096         PR target/100152
9097         * config/darwin.c (darwin_binds_local_p): Assume that any
9098         public symbol might be interposed for PIC code. Update function
9099         header comment to reflect current Darwin capability.
9100
9101 2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>
9102
9103         PR target/100152
9104         * config/darwin.c (darwin_binds_local_p): Assume that any
9105         public symbol might be interposed for PIC code. Update function
9106         header comment to reflect current Darwin capability.
9107
9108 2021-04-24  Richard Sandiford  <richard.sandiford@arm.com>
9109
9110         * doc/sourcebuild.texi: Document no-opts and any-opts target
9111         selectors.
9112
9113 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
9114
9115         * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm.
9116
9117 2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>
9118
9119         * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.
9120
9121 2021-04-23  UroÅ¡ Bizjak  <ubizjak@gmail.com>
9122
9123         PR target/100041
9124         * config/i386/i386-options.c (ix86_option_override_internal):
9125         Error out when -m96bit-long-double is used with 64bit targets.
9126         * config/i386/i386.md (*pushxf_rounded): Remove pattern.
9127
9128 2021-04-23  Martin Liska  <mliska@suse.cz>
9129
9130         * lto-wrapper.c: Remove FIXME about usage of
9131         hardware_concurrency. The function is not on par with
9132         what we have now.
9133
9134 2021-04-23  UroÅ¡ Bizjak  <ubizjak@gmail.com>
9135
9136         PR target/100182
9137         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
9138         Copy operand 3 to operand 4.  Use sse_reg_operand
9139         as operand 3 predicate.
9140         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
9141         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
9142         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
9143         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
9144         Copy operand 1 to operand 0.
9145         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
9146         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
9147         (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.
9148
9149 2021-04-23  Alex Coplan  <alex.coplan@arm.com>
9150
9151         PR rtl-optimization/100230
9152         * early-remat.c (early_remat::sort_candidates): Use delete[]
9153         instead of delete for array allocated with new[].
9154
9155 2021-04-23  Richard Biener  <rguenther@suse.de>
9156
9157         * genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing.
9158         (capture_info::capture_info): Likewise.
9159         (capture_info::walk_match): Likewise.
9160         (expr::gen_transform): Likewise.
9161         (dt_simplify::gen_1): Likewise.
9162         * gimple-match-head.c (maybe_resimplify_conditional_op):
9163         Remove VEC_COND_EXPR special-casing.
9164         (gimple_simplify): Likewise.
9165         * gimple.c (gimple_could_trap_p_1): Adjust.
9166         * tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR
9167         to participate in PRE.
9168
9169 2021-04-23  Richard Biener  <rguenther@suse.de>
9170
9171         * cfganal.c (connect_infinite_loops_to_exit): First call
9172         add_noreturn_fake_exit_edges.
9173         * ipa-sra.c (process_scan_results): Do not call the now redundant
9174         add_noreturn_fake_exit_edges.
9175         * predict.c (tree_estimate_probability): Likewise.
9176         (rebuild_frequencies): Likewise.
9177         * store-motion.c (one_store_motion_pass): Likewise.
9178
9179 2021-04-23  Richard Biener  <rguenther@suse.de>
9180
9181         PR tree-optimization/100222
9182         * predict.c (pass_profile::execute): Remove redundant call to
9183         mark_irreducible_loops.
9184         (report_predictor_hitrates): Likewise.
9185
9186 2021-04-23  Richard Biener  <rguenther@suse.de>
9187
9188         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
9189         valid_gimple_rhs_p by instead gimplifying to one.
9190
9191 2021-04-23  Richard Biener  <rguenther@suse.de>
9192
9193         PR tree-optimization/99971
9194         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
9195         Always use TBAA for loads.
9196
9197 2021-04-23  liuhongt  <hongtao.liu@intel.com>
9198
9199         PR target/100093
9200         * config/i386/i386-options.c (ix86_option_override_internal):
9201         Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags
9202         when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled
9203         by target attribute.
9204
9205 2021-04-23  David Edelsohn  <dje.gcc@gmail.com>
9206
9207         * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to
9208         DWARF2_DEBUG.
9209         * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same.
9210
9211 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
9212
9213         * config.gcc (powerpc-ibm-aix6.*): Remove.
9214         * config/rs6000/aix61.h: Delete.
9215
9216 2021-04-22  Martin Liska  <mliska@suse.cz>
9217
9218         PR testsuite/100159
9219         PR testsuite/100192
9220         * builtins.c (expand_builtin): Fix typos and missing comments.
9221         * dwarf2out.c (gen_subprogram_die): Likewise.
9222         (gen_struct_or_union_type_die): Likewise.
9223
9224 2021-04-22  UroÅ¡ Bizjak  <ubizjak@gmail.com>
9225
9226         PR target/100119
9227         * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse):
9228         Remove the sign with FE_DOWNWARD, where x - x = -0.0.
9229
9230 2021-04-21  Iain Sandoe  <iain@sandoe.co.uk>
9231
9232         * config/i386/darwin.h (TARGET_64BIT): Remove definition
9233         based on TARGET_ISA_64BIT.
9234         (TARGET_64BIT_P): Remove definition based on
9235         TARGET_ISA_64BIT_P().
9236
9237 2021-04-21  Martin Liska  <mliska@suse.cz>
9238
9239         Revert:
9240         2021-04-21  Martin Liska  <mliska@suse.cz>
9241
9242         * lto-wrapper.c (cpuset_popcount): Remove.
9243         (init_num_threads): Remove and use hardware_concurrency.
9244
9245 2021-04-21  Martin Liska  <mliska@suse.cz>
9246
9247         PR jit/98615
9248         * main.c (main): Call toplev::finalize in CHECKING_P mode.
9249         * ipa-modref.c (ipa_modref_c_finalize): summaries are NULL
9250         when incremental LTO linking happens.
9251
9252 2021-04-21  Martin Liska  <mliska@suse.cz>
9253
9254         * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the
9255         makeserver cannot be detected, then use -flto=N fallback.
9256
9257 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
9258
9259         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling,
9260         default to yes for aarch64-linux-gnu.
9261         * configure: Regenerate.
9262
9263 2021-04-21  Martin Liska  <mliska@suse.cz>
9264
9265         * lto-wrapper.c (cpuset_popcount): Remove.
9266         (init_num_threads): Remove and use hardware_concurrency.
9267
9268 2021-04-21  Martin Liska  <mliska@suse.cz>
9269
9270         * config/i386/i386.c: Remove superfluous || TARGET_MACHO
9271         which remains to be '(... || 0)' and clang complains about it.
9272         * dwarf2out.c (AT_vms_delta): Declare conditionally.
9273         (add_AT_vms_delta): Likewise.
9274         * tree.c (fld_simplified_type): Use rather more common pattern
9275         for disabling of something (#if 0).
9276         (get_tree_code_name): Likewise.
9277         (verify_type_variant): Likewise.
9278
9279 2021-04-21  Martin Liska  <mliska@suse.cz>
9280
9281         * config/i386/i386-expand.c (decide_alignment): Use newly named
9282         macro TARGET_CPU_P.
9283         * config/i386/i386.c (ix86_decompose_address): Likewise.
9284         (ix86_address_cost): Likewise.
9285         (ix86_lea_outperforms): Likewise.
9286         (ix86_avoid_lea_for_addr): Likewise.
9287         (ix86_add_stmt_cost): Likewise.
9288         * config/i386/i386.h (TARGET_*): Remove.
9289         (TARGET_CPU_P): New macro.
9290         * config/i386/i386.md: Use newly named macro TARGET_CPU_P.
9291         * config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise.
9292         (swap_top_of_ready_list): Likewise.
9293         (ix86_atom_sched_reorder): Likewise.
9294         * config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise.
9295         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise.
9296
9297 2021-04-21  Martin Liska  <mliska@suse.cz>
9298
9299         * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P):
9300         Define.
9301         (SET_TARGET_NO_SAHF): Likewise.
9302         (TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise.
9303         (SET_TARGET_PREFETCH_SSE): Likewise.
9304         (TARGET_EXPLICIT_NO_TUNE_P): Likewise.
9305         (SET_TARGET_NO_TUNE): Likewise.
9306         (TARGET_EXPLICIT_NO_80387_P): Likewise.
9307         (SET_TARGET_NO_80387): Likewise.
9308         (DEF_PTA): New.
9309         * config/i386/i386.h (TARGET_*): Remove.
9310         * opth-gen.awk: Generate new used macros.
9311
9312 2021-04-21  Martin Liska  <mliska@suse.cz>
9313
9314         * config/i386/i386.h (PTA_*): Remove.
9315         (enum pta_flag): New.
9316         (DEF_PTA): Generate PTA_* values from i386-isa.def.
9317         * config/i386/i386-isa.def: New file.
9318
9319 2021-04-21  Alex Coplan  <alex.coplan@arm.com>
9320
9321         PR target/99988
9322         * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New.
9323         (rest_of_insert_bti): Avoid inserting duplicate bti j insns for
9324         jump table targets.
9325
9326 2021-04-21  H.J. Lu  <hjl.tools@gmail.com>
9327
9328         * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and
9329         x86_64-*-* targets.
9330         * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET):
9331         New.
9332         (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise.
9333         (ix86_handle_option): Handle -mmwait.
9334         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
9335         Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on
9336         __builtin_ia32_monitor and __builtin_ia32_mwait.
9337         * config/i386/i386-options.c (isa2_opts): Add -mmwait.
9338         (ix86_valid_target_attribute_inner_p): Likewise.
9339         (ix86_option_override_internal): Enable mwait/monitor
9340         instructions for -msse3.
9341         * config/i386/i386.h (TARGET_MWAIT): New.
9342         (TARGET_MWAIT_P): Likewise.
9343         * config/i386/i386.opt: Add -mmwait.
9344         * config/i386/mwaitintrin.h: New file.
9345         * config/i386/pmmintrin.h: Include <mwaitintrin.h>.
9346         * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with
9347         TARGET_MWAIT.
9348         (@sse3_monitor_<mode>): Likewise.
9349         * config/i386/x86gprintrin.h: Include <mwaitintrin.h>.
9350         * doc/extend.texi: Document mwait target attribute.
9351         * doc/invoke.texi: Document -mmwait.
9352
9353 2021-04-21  Martin Liska  <mliska@suse.cz>
9354
9355         * config/i386/i386-options.c (DEF_ENUM): Remove it.
9356         * config/i386/i386-opts.h (DEF_ENUM): Likewise.
9357         * config/i386/stringop.def (DEF_ENUM): Likewise.
9358
9359 2021-04-21  Martin Liska  <mliska@suse.cz>
9360
9361         * tree-cfg.c (gimple_verify_flow_info): Use qD instead
9362         of print_generic_expr.
9363
9364 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
9365
9366         PR rtl-optimization/100148
9367         * cprop.c (constprop_register): Use next_nondebug_insn instead of
9368         NEXT_INSN.
9369
9370 2021-04-21  Martin Liska  <mliska@suse.cz>
9371
9372         PR ipa/98815
9373         * cgraphunit.c (cgraph_node::analyze): Remove duplicate
9374         free_dominance_info calls.
9375
9376 2021-04-21  Richard Biener  <rguenther@suse.de>
9377
9378         * gimple-fold.c (maybe_fold_reference): Remove is_lhs
9379         parameter (and assume it to be false).
9380         (fold_gimple_assign): Adjust, remove all callers of
9381         maybe_fold_reference calling it with is_lhs true.
9382         (gimple_fold_call): Likewise.
9383         (fold_stmt_1): Likewise.
9384
9385 2021-04-21  Richard Biener  <rguenther@suse.de>
9386
9387         * fold-const.c (pedantic_non_lvalue_loc): Remove.
9388         (fold_binary_loc): Adjust.
9389         (fold_ternary_loc): Likewise.
9390
9391 2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>
9392
9393         PR middle-end/100130
9394         * varasm.c (get_block_for_decl): Make sure that any use of the
9395         retain attribute matches the section's retain flag.
9396         (switch_to_section): Check for retain mismatches even when
9397         changing sections, but do not warn if the given decl is the
9398         section's named.decl.
9399         (output_object_block): Pass the first decl in the block (if any)
9400         to switch_to_section.
9401
9402 2021-04-20  H.J. Lu  <hjl.tools@gmail.com>
9403
9404         * config/i386/i386-c.c (ix86_target_macros_internal): Define
9405         __CRC32__ for -mcrc32.
9406         * config/i386/i386-options.c (ix86_option_override_internal):
9407         Enable crc32 instruction for -msse4.2.
9408         * config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2
9409         check.
9410         (sse4_2_crc32di): Likewise.
9411         * config/i386/ia32intrin.h: Use crc32 target option for CRC32
9412         intrinsics.
9413
9414 2021-04-20  Segher Boessenkool  <segher@kernel.crashing.org>
9415
9416         PR target/100108
9417         * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
9418         OPTION_MASK_ISEL.
9419
9420 2021-04-20  Martin Liska  <mliska@suse.cz>
9421
9422         * doc/invoke.texi: Fix typo.
9423         * params.opt: Likewise.
9424
9425 2021-04-20  Martin Liska  <mliska@suse.cz>
9426
9427         * doc/invoke.texi: Document new param.
9428
9429 2021-04-19  Andrew MacLeod  <amacleod@redhat.com>
9430
9431         PR tree-optimization/100081
9432         * gimple-range-cache.h (ranger_cache): Inherit from gori_compute
9433         rather than gori_compute_cache.
9434         * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file.
9435         (range_def_chain::m_logical_depth): New member.
9436         (range_def_chain::range_def_chain): Initialize m_logical_depth.
9437         (range_def_chain::get_def_chain): Don't build defchains through more
9438         than LOGICAL_LIMIT logical expressions.
9439         * params.opt (param_ranger_logical_depth): New.
9440
9441 2021-04-19  Richard Earnshaw  <rearnsha@arm.com>
9442
9443         PR target/100067
9444         * config/arm/arm.c (arm_configure_build_target): Do not strip
9445         extended FPU/SIMD feature bits from the target ISA when -mfpu
9446         is specified (partial revert of r11-8168).
9447
9448 2021-04-19  Thomas Schwinge  <thomas@codesourcery.com>
9449
9450         * params.opt (-param=openacc-kernels=): Add.
9451         * omp-oacc-kernels-decompose.cc
9452         (pass_omp_oacc_kernels_decompose::gate): Use it.
9453         * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move...
9454         (--param): ... here, 'openacc-kernels'.
9455
9456 2021-04-19  Martin Liska  <mliska@suse.cz>
9457
9458         PR c/100143
9459         * gengtype.c (finish_root_table): Align function arguments
9460         in between declaration and definition.
9461
9462 2021-04-19  Eric Botcazou  <ebotcazou@adacore.com>
9463
9464         * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
9465         frames larger than the SEH maximum frame size.
9466
9467 2021-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
9468
9469         PR rtl-optimization/99927
9470         * combine.c (distribute_notes) [REG_UNUSED]: If the register already
9471         is dead, just drop it.
9472
9473 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
9474
9475         PR d/99914
9476         * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
9477         * doc/tm.texi: Regenerate.
9478         * doc/tm.texi.in (D language and ABI): Add @hook for
9479         TARGET_D_TEMPLATES_ALWAYS_COMDAT.
9480
9481 2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
9482
9483         * config/darwin-d.c (darwin_d_handle_target_object_format): New
9484         function.
9485         (darwin_d_register_target_info): New function.
9486         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9487         * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New
9488         function.
9489         (dragonfly_d_register_target_info): New function.
9490         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9491         * config/freebsd-d.c (freebsd_d_handle_target_object_format): New
9492         function.
9493         (freebsd_d_register_target_info): New function.
9494         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9495         * config/glibc-d.c (glibc_d_handle_target_object_format): New
9496         function.
9497         (glibc_d_register_target_info): New function.
9498         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9499         * config/i386/i386-d.c (ix86_d_handle_target_object_format): New
9500         function.
9501         (ix86_d_register_target_info): Add ix86_d_handle_target_object_format
9502         as handler for objectFormat key.
9503         * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New
9504         function.
9505         (winnt_d_register_target_info): New function.
9506         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9507         * config/netbsd-d.c (netbsd_d_handle_target_object_format): New
9508         function.
9509         (netbsd_d_register_target_info): New function.
9510         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9511         * config/openbsd-d.c (openbsd_d_handle_target_object_format): New
9512         function.
9513         (openbsd_d_register_target_info): New function.
9514         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9515         * config/pa/pa-d.c (pa_d_handle_target_object_format): New function.
9516         (pa_d_register_target_info): Add pa_d_handle_target_object_format as
9517         handler for objectFormat key.
9518         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New
9519         function.
9520         (rs6000_d_register_target_info): Add
9521         rs6000_d_handle_target_object_format as handler for objectFormat key.
9522         * config/sol2-d.c (solaris_d_handle_target_object_format): New
9523         function.
9524         (solaris_d_register_target_info): New function.
9525         (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
9526
9527 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
9528
9529         PR target/91710
9530         * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
9531         abi_break argument from bool * to unsigned *, store there the pre-GCC 9
9532         alignment.
9533         (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers.
9534         (aarch64_function_arg_regno_p): Likewise.  Only emit -Wpsabi note if
9535         the old and new alignment after applying MIN/MAX to it is different.
9536
9537 2021-04-16  Tamar Christina  <tamar.christina@arm.com>
9538
9539         PR target/100048
9540         * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
9541         * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
9542         TRN optab.
9543         * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
9544
9545 2021-04-16  Bill Schmidt  <wschmidt@linux.ibm.com>
9546
9547         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
9548         this section and its subsections.
9549
9550 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
9551
9552         PR target/100075
9553         * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New
9554         define_insn patterns.
9555
9556 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
9557
9558         PR rtl-optimization/98689
9559         * reg-notes.def (UNTYPED_CALL): New note.
9560         * combine.c (distribute_notes): Handle it.
9561         * emit-rtl.c (try_split): Likewise.
9562         * rtlanal.c (rtx_properties::try_to_add_insn): Likewise.  Assume
9563         that calls with the note implicitly set all return value registers.
9564         * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL
9565         to untyped_calls.
9566
9567 2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>
9568
9569         PR rtl-optimization/99596
9570         * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global
9571         register accesses for const calls.  Assume that pure functions
9572         can only read from global registers.  Ignore cases in which
9573         the stack pointer has been marked global.
9574
9575 2021-04-16  Jakub Jelinek  <jakub@redhat.com>
9576
9577         PR target/99767
9578         * tree-vect-loop.c (vect_transform_loop): Don't remove just
9579         dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
9580         them by their last argument.
9581
9582 2021-04-15  Martin Liska  <mliska@suse.cz>
9583
9584         * doc/invoke.texi: Other params don't use it, remove it.
9585
9586 2021-04-15  Richard Biener  <rguenther@suse.de>
9587
9588         * gimple-builder.h: Add deprecation note.
9589
9590 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
9591
9592         PR c++/98852
9593         * attribs.h (restrict_type_identity_attributes_to): Declare.
9594         * attribs.c (restrict_type_identity_attributes_to): New function.
9595
9596 2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
9597
9598         PR c/98852
9599         * attribs.h (affects_type_identity_attributes): Declare.
9600         * attribs.c (remove_attributes_matching): New function.
9601         (affects_type_identity_attributes): Likewise.
9602
9603 2021-04-15  Jakub Jelinek  <jakub@redhat.com>
9604
9605         PR target/100056
9606         * config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3):
9607         Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with
9608         ZERO_EXTEND, SIGN_EXTEND or AND.
9609
9610 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
9611
9612         PR rtl-optimization/99929
9613         * rtl.h (same_vector_encodings_p): New function.
9614         * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
9615         * cselib.c (rtx_equal_for_cselib_1): Likewise.
9616         * jump.c (rtx_renumbered_equal_p): Likewise.
9617         * lra-constraints.c (operands_match_p): Likewise.
9618         * reload.c (operands_match_p): Likewise.
9619         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.
9620
9621 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
9622
9623         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print
9624         more information about variable-length CONST_VECTORs.
9625
9626 2021-04-14  Vladimir N. Makarov  <vmakarov@redhat.com>
9627
9628         PR rtl-optimization/100066
9629         * lra-constraints.c (split_reg): Check paradoxical_subreg_p for
9630         ordered modes when choosing splitting mode for hard reg.
9631
9632 2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>
9633
9634         PR target/99246
9635         * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
9636         New function.
9637         (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
9638
9639 2021-04-14  Andreas Krebbel  <krebbel@linux.ibm.com>
9640
9641         * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros
9642         for mask operand types.
9643         (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
9644         (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate
9645         operand.
9646         (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the
9647         immediate operand.
9648         * config/s390/s390.c (s390_const_operand_ok): Check the new
9649         operand types and generate a list of valid values.
9650
9651 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
9652
9653         * doc/tm.texi: Regenerate.
9654         * doc/tm.texi.in (D language and ABI): Add @hook for
9655         TARGET_D_REGISTER_OS_TARGET_INFO.
9656
9657 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
9658
9659         * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New
9660         function.
9661         (aarch64_d_register_target_info): New function.
9662         * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info):
9663         Declare.
9664         * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO):
9665         Define.
9666         * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function.
9667         (arm_d_register_target_info): New function.
9668         * config/arm/arm-protos.h (arm_d_register_target_info): Declare.
9669         * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9670         * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function.
9671         (ix86_d_register_target_info): New function.
9672         * config/i386/i386-protos.h (ix86_d_register_target_info): Declare.
9673         * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9674         * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function.
9675         (mips_d_register_target_info): New function.
9676         * config/mips/mips-protos.h (mips_d_register_target_info): Declare.
9677         * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9678         * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function.
9679         (pa_d_register_target_info): New function.
9680         * config/pa/pa-protos.h (pa_d_register_target_info): Declare.
9681         * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9682         * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New
9683         function.
9684         (riscv_d_register_target_info): New function.
9685         * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare.
9686         * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9687         * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New
9688         function.
9689         (rs6000_d_register_target_info): New function.
9690         * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info):
9691         Declare.
9692         * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9693         * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function.
9694         (s390_d_register_target_info): New function.
9695         * config/s390/s390-protos.h (s390_d_register_target_info): Declare.
9696         * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9697         * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New
9698         function.
9699         (sparc_d_register_target_info): New function.
9700         * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare.
9701         * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
9702         * doc/tm.texi: Regenerate.
9703         * doc/tm.texi.in (D language and ABI): Add @hook for
9704         TARGET_D_REGISTER_CPU_TARGET_INFO.
9705
9706 2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
9707
9708         * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function.
9709         * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare.
9710         * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define.
9711         * doc/tm.texi: Regenerate.
9712         * doc/tm.texi.in (D language and ABI): Add @hook for
9713         TARGET_D_HAS_STDCALL_CONVENTION.
9714
9715 2021-04-14  Richard Biener  <rguenther@suse.de>
9716
9717         * tree-cfg.c (verify_gimple_assign_ternary): Verify that
9718         VEC_COND_EXPRs have a gimple_val condition.
9719         * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR
9720         can no longer have a GENERIC condition.
9721
9722 2021-04-14  Richard Earnshaw  <rearnsha@arm.com>
9723
9724         PR target/100067
9725         * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits
9726         from the isa_delta when -mfpu has been used.
9727         (arm_options_perform_arch_sanity_checks): It's the architecture that
9728         lacks an FPU not the processor.
9729
9730 2021-04-13  Richard Biener  <rguenther@suse.de>
9731
9732         PR tree-optimization/100053
9733         * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
9734         not use optimistic dominance queries for backedges to validate
9735         predicated values.
9736         (dominated_by_p_w_unex): Add parameter to ignore executable
9737         state on backedges.
9738         (rpo_elim::eliminate_avail): Adjust.
9739
9740 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
9741
9742         PR target/100028
9743         * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr,
9744         *aarch64_bfxilsi_extrdi): New define_insn patterns.
9745
9746 2021-04-13  Jakub Jelinek  <jakub@redhat.com>
9747
9748         PR target/99648
9749         * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P
9750         outermode, return NULL if the result doesn't encode back to the
9751         original byte sequence.
9752         (simplify_gen_subreg): Don't create SUBREGs from constants to
9753         MODE_COMPOSITE_P outermode.
9754
9755 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
9756
9757         PR rtl-optimization/99905
9758         * combine.c (expand_compound_operation): If pos + len > modewidth,
9759         perform the right shift by pos in inner_mode and then convert to mode,
9760         instead of trying to simplify a shift of rtx with inner_mode by pos
9761         as if it was a shift in mode.
9762
9763 2021-04-12  Jakub Jelinek  <jakub@redhat.com>
9764
9765         PR debug/99830
9766         * combine.c (simplify_and_const_int_1): Don't optimize varop
9767         away if it has side-effects.
9768
9769 2021-04-12  Martin Liska  <mliska@suse.cz>
9770
9771         * doc/extend.texi: Escape @smallexample content.
9772
9773 2021-04-12  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
9774
9775         * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add
9776           alternative in order to load a DFP zero.
9777
9778 2021-04-12  Martin Liska  <mliska@suse.cz>
9779
9780         * doc/extend.texi: Be more precise in documentation
9781         of symver attribute.
9782
9783 2021-04-12  Martin Liska  <mliska@suse.cz>
9784
9785         PR sanitizer/99877
9786         * gimplify.c (gimplify_expr): Right now, we unpoison all
9787         variables before a goto <dest>. We should not do it if we are
9788         in a omp context.
9789
9790 2021-04-12  Cui,Lili  <lili.cui@intel.com>
9791
9792         * common/config/i386/cpuinfo.h (get_intel_cpu): Handle
9793         rocketlake.
9794         * common/config/i386/i386-common.c (processor_names): Add
9795         rocketlake.
9796         (processor_alias_table): Add rocketlake.
9797         * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add
9798         INTEL_COREI7_ROCKETLAKE.
9799         * config.gcc: Add -march=rocketlake.
9800         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
9801         rocketlake.
9802         * config/i386/i386-options.c (m_ROCKETLAKE)  : Define.
9803         (processor_cost_table): Add rocketlake cost.
9804         * config/i386/i386.h (ix86_size_cost) : Define
9805         TARGET_ROCKETLAKE.
9806         (processor_type) : Add PROCESSOR_ROCKETLAKE.
9807         (PTA_ROCKETLAKE): Ditto.
9808         * doc/extend.texi: Add rocketlake.
9809         * doc/invoke.texi: Add rocketlake.
9810
9811 2021-04-12  Cui,Lili  <lili.cui@intel.com>
9812
9813         * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list.
9814         * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE.
9815         * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model.
9816         * doc/invoke.texi: Change alderlake ISA list.
9817
9818 2021-04-11  Hafiz Abid Qadeer  <abidh@codesourcery.com>
9819
9820         PR middle-end/98088
9821         * omp-expand.c (expand_oacc_collapse_init): Update condition in
9822         a gcc_assert.
9823
9824 2021-04-10  H.J. Lu  <hjl.tools@gmail.com>
9825
9826         PR target/99744
9827         * config/i386/serializeintrin.h (_serialize): Defined as macro.
9828
9829 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
9830
9831         PR lto/99849
9832         * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
9833         just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
9834
9835 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
9836
9837         PR middle-end/99989
9838         * gimple-ssa-warn-alloca.c
9839         (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to
9840         0 with integer precision unconditionally.
9841
9842 2021-04-10  Jakub Jelinek  <jakub@redhat.com>
9843
9844         PR rtl-optimization/98601
9845         * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
9846         not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
9847         unaligned_mems handle VOIDmode like BLKmode.
9848
9849 2021-04-10  Jan Hubicka  <hubicka@ucw.cz>
9850
9851         PR lto/99857
9852         * tree.c (free_lang_data_in_decl): Do not release body of
9853         declare_variant_alt.
9854
9855 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
9856
9857         * config/aarch64/aarch64.c (aarch64_option_restore): If the
9858         architecture was specified explicitly and the tuning wasn't,
9859         tune for the architecture rather than the configured default CPU.
9860
9861 2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>
9862
9863         * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
9864         as the temporary register.
9865
9866 2021-04-09  Martin Liska  <mliska@suse.cz>
9867
9868         * doc/extend.texi: Move non-target attributes on the top level.
9869
9870 2021-04-09  Martin Liska  <mliska@suse.cz>
9871
9872         * doc/invoke.texi: Document minimum and maximum value of the
9873         argument for both supported compression algorithms.
9874
9875 2021-04-08  David Edelsohn  <dje.gcc@gmail.com>
9876
9877         * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select
9878         TLS BSS before TLS data.
9879         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm.
9880
9881 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
9882
9883         * doc/sourcebuild.texi (stdint_types_mbig_endian): Document.
9884
9885 2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>
9886
9887         * match.pd: Extend vec_cond folds to handle shifts.
9888
9889 2021-04-08  Maciej W. Rozycki  <macro@orcam.me.uk>
9890
9891         * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's
9892         peephole.
9893
9894 2021-04-08  Alex Coplan  <alex.coplan@arm.com>
9895
9896         PR target/99647
9897         * config/arm/iterators.md (MVE_vecs): New.
9898         (V_elem): Also handle V2DF.
9899         * config/arm/mve.md (*mve_mov<mode>): Rename to ...
9900         (*mve_vdup<mode>): ... this. Remove second alternative since
9901         vec_duplicate of const_int is not canonical RTL, and we don't
9902         want to match symbol_refs.
9903         (*mve_vec_duplicate<mode>): Delete (pattern is redundant).
9904
9905 2021-04-08  Xionghu Luo  <luoxhu@linux.ibm.com>
9906
9907         * fold-const.c (fold_single_bit_test): Fix typo.
9908         * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single
9909         instead.
9910
9911 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
9912
9913         PR tree-optimization/97513
9914         * tree-vect-slp.c (vect_add_slp_permutation): New function,
9915         split out from...
9916         (vectorizable_slp_permutation): ...here.  Detect cases in which
9917         all VEC_PERM_EXPRs are guaranteed to have the same stepped
9918         permute vector and only generate one permute vector for that case.
9919         Extend that case to handle variable-length vectors.
9920
9921 2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>
9922
9923         PR tree-optimization/99873
9924         * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function.
9925         (vect_build_slp_instance): Don't split store groups that could
9926         use IFN_STORE_LANES.
9927
9928 2021-04-07  Jakub Jelinek  <jakub@redhat.com>
9929
9930         PR target/99872
9931         * varasm.c (output_constant_pool_contents): Don't strip name encoding
9932         from XSTR (desc->sym, 0) or from label before passing those to
9933         ASM_OUTPUT_DEF.
9934
9935 2021-04-07  Richard Biener  <rguenther@suse.de>
9936
9937         PR tree-optimization/99954
9938         * tree-loop-distribution.c: Include tree-affine.h.
9939         (generate_memcpy_builtin): Try using tree-affine to prove
9940         non-overlap.
9941         (loop_distribution::classify_builtin_ldst): Always classify
9942         as PKIND_MEMMOVE.
9943
9944 2021-04-07  Richard Biener  <rguenther@suse.de>
9945
9946         PR tree-optimization/99947
9947         * tree-vect-loop.c (vectorizable_induction): Pre-allocate
9948         steps vector to avoid pushing elements from the reallocated
9949         vector.
9950
9951 2021-04-07  Richard Biener  <rguenther@suse.de>
9952
9953         * tree-ssa-sccvn.h (print_vn_reference_ops): Declare.
9954         * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand
9955         printing...
9956         * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new
9957         function.
9958         (debug_vn_reference_ops): New.
9959
9960 2021-04-07  Bin Cheng  <bin.cheng@linux.alibaba.com>
9961
9962         PR tree-optimization/98736
9963         * tree-loop-distribution.c
9964         * (loop_distribution::bb_top_order_init):
9965         Compute RPO with programing order preserved by calling function
9966         rev_post_order_and_mark_dfs_back_seme.
9967
9968 2021-04-06  Vladimir N. Makarov  <vmakarov@redhat.com>
9969
9970         PR target/99781
9971         * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
9972         * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
9973         functions.
9974         (process_bb_lives): Don't update biggest mode of hard reg for
9975         implicit in multi-register group.  Use the new functions for
9976         updating dead_set and unused_set by register notes.
9977
9978 2021-04-06  Xianmiao Qu  <xianmiao_qu@c-sky.com>
9979
9980         * config/csky/csky_pipeline_ck802.md : Use insn reservation name
9981         instead of *.
9982
9983 2021-04-06  H.J. Lu  <hjl.tools@gmail.com>
9984
9985         * config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
9986         (skylake_memset): Likewise.
9987         (skylake_cost): Change CLEAR_RATIO to 17.
9988         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
9989         Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
9990         m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.
9991
9992 2021-04-06  Richard Biener  <rguenther@suse.de>
9993
9994         PR tree-optimization/99880
9995         * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
9996         set vectorized defs of relevant PHIs.
9997
9998 2021-04-06  Richard Biener  <rguenther@suse.de>
9999
10000         PR tree-optimization/99924
10001         * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
10002         nodes w/o scalar stmts as visited.
10003
10004 2021-04-06  Alex Coplan  <alex.coplan@arm.com>
10005
10006         PR target/99748
10007         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
10008         PCS for [su]fix_optab.
10009
10010 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
10011
10012         * config/darwin.c (machopic_legitimize_pic_address): Check
10013         that the current pic register is one of the hard reg set
10014         before setting liveness.
10015
10016 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
10017
10018         * config/darwin.c (machopic_legitimize_pic_address): Fix
10019         whitespace, remove unused code.
10020
10021 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
10022
10023         PR tree-optimization/99882
10024         * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
10025         pointer type.
10026
10027 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
10028
10029         PR rtl-optimization/99863
10030         * dse.c (replace_read): Drop regs_live argument.  Instead of
10031         regs_live, use store_insn->fixed_regs_live if non-NULL,
10032         otherwise punt if insns sequence clobbers or sets any hard
10033         registers.
10034
10035 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
10036
10037         PR testsuite/98125
10038         * targhooks.h (default_print_patchable_function_entry_1): Declare.
10039         * targhooks.c (default_print_patchable_function_entry_1): New function,
10040         copied from default_print_patchable_function_entry with an added flags
10041         argument.
10042         (default_print_patchable_function_entry): Rewritten into a small
10043         wrapper around default_print_patchable_function_entry_1.
10044         * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
10045         Redefine.
10046         (rs6000_print_patchable_function_entry): New function.
10047
10048 2021-04-02  Eric Botcazou  <ebotcazou@adacore.com>
10049
10050         * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
10051
10052 2021-04-01  Jason Merrill  <jason@redhat.com>
10053
10054         PR c++/98481
10055         * common.opt: Document v15 and v16.
10056
10057 2021-04-01  Richard Biener  <rguenther@suse.de>
10058
10059         PR tree-optimization/99863
10060         * gimplify.c (gimplify_init_constructor): Recompute vector
10061         constructor flags.
10062
10063 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
10064
10065         * doc/extend.texi (symver attribute): Fix up syntax errors
10066         in the examples.
10067
10068 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
10069
10070         PR tree-optimization/96573
10071         * gimple-ssa-store-merging.c (init_symbolic_number): Handle
10072         also pointer types.
10073
10074 2021-04-01  Richard Biener  <rguenther@suse.de>
10075
10076         PR tree-optimization/99856
10077         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
10078         precision to vector element precision.
10079
10080 2021-04-01  Martin Jambor  <mjambor@suse.cz>
10081
10082         PR tree-optimization/97009
10083         * tree-sra.c (access_or_its_child_written): New function.
10084         (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
10085         test.
10086
10087 2021-03-31  Jan Hubicka  <hubicka@ucw.cz>
10088
10089         PR ipa/98265
10090         * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
10091
10092 2021-03-31  Pat Haugen  <pthaugen@linux.ibm.com>
10093
10094         PR target/99133
10095         * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
10096         xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
10097         xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
10098         * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
10099         mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
10100         mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
10101         Likewise.
10102         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
10103         * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
10104         (define_attr "prefixed"): Update initializer.
10105
10106 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
10107
10108         PR debug/99490
10109         * dwarf2out.c (debug_ranges_dwo_section): New variable.
10110         (DW_RANGES_IDX_SKELETON): Define.
10111         (struct dw_ranges): Add begin_entry and end_entry members.
10112         (DEBUG_DWO_RNGLISTS_SECTION): Define.
10113         (add_ranges_num): Adjust r initializer for addition of *_entry
10114         members.
10115         (add_ranges_by_labels): For -gsplit-dwarf and force_direct,
10116         set idx to DW_RANGES_IDX_SKELETON.
10117         (use_distinct_base_address_for_range): New function.
10118         (index_rnglists): Don't set r->idx if it is equal to
10119         DW_RANGES_IDX_SKELETON.  Initialize r->begin_entry and
10120         r->end_entry for -gsplit-dwarf if those will be needed by
10121         output_rnglists.
10122         (output_rnglists): Add DWO argument.  If true, switch to
10123         debug_ranges_dwo_section rather than debug_ranges_section.
10124         Adjust l1/l2 label indexes.  Only output the offset table when
10125         dwo is true and don't include in there the skeleton range
10126         entry if present.  For -gsplit-dwarf, skip ranges that belong
10127         to the other rnglists section.  Change return type from void
10128         to bool and return true if there are any range entries for
10129         the other section.  For dwarf_split_debug_info use
10130         DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
10131         entries instead of DW_RLE_start_end, DW_RLE_start_length and
10132         DW_RLE_base_address.  Use use_distinct_base_address_for_range.
10133         (init_sections_and_labels): Initialize debug_ranges_dwo_section
10134         if -gsplit-dwarf and DWARF >= 5.  Adjust ranges_section_label
10135         and range_base_label indexes.
10136         (dwarf2out_finish): Call index_rnglists earlier before finalizing
10137         .debug_addr.  Never emit DW_AT_rnglists_base attribute.  For
10138         -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
10139         with different dwo arguments.
10140         (dwarf2out_c_finalize): Clear debug_ranges_dwo_section.
10141
10142 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
10143
10144         PR tree-optimization/98268
10145         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
10146         recompute_tree_invariant_for_addr_expr after successfully
10147         folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
10148
10149 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
10150
10151         PR tree-optimization/99726
10152         * tree-data-ref.c (create_intersect_range_checks_index): Bail
10153         out if there is more than one access function SCEV for the loop
10154         being versioned.
10155
10156 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
10157
10158         PR rtl-optimization/97141
10159         PR rtl-optimization/98726
10160         * emit-rtl.c (valid_for_const_vector_p): Return true for
10161         CONST_POLY_INT_P.
10162         * rtx-vector-builder.h (rtx_vector_builder::step): Return a
10163         poly_wide_int instead of a wide_int.
10164         (rtx_vector_builder::apply_set): Take a poly_wide_int instead
10165         of a wide_int.
10166         * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
10167         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
10168         false for CONST_VECTORs that cannot be forced to memory.
10169         * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
10170         is too complex to force to memory, build it up from individual
10171         elements instead.
10172
10173 2021-03-31  Jan Hubicka  <jh@suse.cz>
10174
10175         PR lto/99447
10176         * cgraph.c (cgraph_node::release_body): Fix overactive check.
10177
10178 2021-03-31  Christophe Lyon  <christophe.lyon@linaro.org>
10179
10180         PR target/99786
10181         * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
10182         for V4HI and V2SI.
10183
10184 2021-03-31  H.J. Lu  <hjl.tools@gmail.com>
10185
10186         * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
10187         For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
10188         to SImode.
10189         (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
10190         "rep movsb/stosb" only for known sizes.
10191         * config/i386/i386-options.c (processor_cost_table): Use Ice
10192         Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
10193         Rapids and Alder Lake.
10194         * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
10195         * config/i386/x86-tune-costs.h (icelake_memcpy): New.
10196         (icelake_memset): Likewise.
10197         (icelake_cost): Likewise.
10198         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
10199         New.
10200
10201 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
10202
10203         PR target/98119
10204         * config/aarch64/aarch64.c
10205         (aarch64_vectorize_preferred_vector_alignment): Query the size
10206         of the provided SVE vector; do not assume that all SVE vectors
10207         have the same size.
10208
10209 2021-03-31  Jan Hubicka  <jh@suse.cz>
10210
10211         PR lto/99447
10212         * cgraph.c (cgraph_node::release_body): Remove all callers and
10213         references.
10214         * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
10215         * cgraphunit.c (cgraph_node::expand): And here.
10216
10217 2021-03-31  Martin Liska  <mliska@suse.cz>
10218
10219         * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
10220         and one negated condition.
10221
10222 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
10223             Richard Sandiford  <richard.sandiford@arm.com>
10224
10225         PR target/99813
10226         * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
10227         constraints on operands[2] and similarly 0 and rk constraints
10228         on operands[1] corresponding to that.
10229
10230 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
10231
10232         PR bootstrap/98860
10233         * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
10234         linker doesn't support DWARF sections new in DWARF5.
10235         * config/i386/i386-options.c (ix86_option_override_internal): Default
10236         to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
10237         targets.
10238         * config.in: Regenerated.
10239         * configure: Regenerated.
10240
10241 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10242
10243         PR target/99820
10244         * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
10245         available issue_info before using it.
10246
10247 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10248
10249         PR target/99822
10250         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
10251         in operand 1.
10252
10253 2021-03-30  Xionghu Luo  <luoxhu@linux.ibm.com>
10254
10255         PR target/99718
10256         * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
10257         (altivec_lvsl_reg_<mode>): ... this.
10258         (altivec_lvsr_reg): Change to ...
10259         (altivec_lvsr_reg_<mode>): ... this.
10260         * config/rs6000/predicates.md (vec_set_index_operand): New.
10261         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10262         Enable 32bit variable vec_insert for all TARGET_VSX.
10263         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
10264         Enable 32bit variable vec_insert for p9 and above.
10265         (rs6000_expand_vector_set_var_p8): Rename to ...
10266         (rs6000_expand_vector_set_var_p7): ... this.
10267         (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
10268         position.
10269         * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
10270         * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
10271         gen_altivec_lvsr_reg_di.
10272
10273 2021-03-30  H.J. Lu  <hjl.tools@gmail.com>
10274
10275         PR target/99744
10276         * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
10277         (__rdtscp): Likewise.
10278
10279 2021-03-30  Tamar Christina  <tamar.christina@arm.com>
10280
10281         PR tree-optimization/99825
10282         * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
10283         Reject non-mult 2 lanes.
10284
10285 2021-03-30  Richard Earnshaw  <rearnsha@arm.com>
10286
10287         PR target/99773
10288         * config/arm/arm.c (arm_file_start): Fix emission of
10289         Tag_ABI_VFP_args attribute.
10290
10291 2021-03-30  Richard Biener  <rguenther@suse.de>
10292
10293         PR tree-optimization/99824
10294         * stor-layout.c (set_min_and_max_values_for_integral_type):
10295         Assert the precision is within the bounds of
10296         WIDE_INT_MAX_PRECISION.
10297         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
10298         the outermost component ref only to lower the access size
10299         and initialize that from the access type.
10300
10301 2021-03-30  Richard Sandiford  <richard.sandiford@arm.com>
10302
10303         PR target/98136
10304         * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
10305         CONST_INTs to aarch64_expand_mov_immediate when called after RA.
10306
10307 2021-03-30  Mihailo Stojanovic  <mihailo.stojanovic@typhoon-hil.com>
10308
10309         * config/aarch64/aarch64.md
10310         (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
10311         attribute to disambiguate between SIMD and FP variants of the
10312         instruction.
10313
10314 2021-03-29  Jan Hubicka  <hubicka@ucw.cz>
10315
10316         * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
10317         (analyze_ssa_name_flags): Fix typo in comment.
10318
10319 2021-03-29  Alex Coplan  <alex.coplan@arm.com>
10320
10321         PR target/99216
10322         * config/aarch64/aarch64-sve-builtins.cc
10323         (function_builder::add_function): Add placeholder_p argument, use
10324         placeholder decls if this is set.
10325         (function_builder::add_unique_function): Instead of conditionally adding
10326         direct overloads, unconditionally add either a direct overload or a
10327         placeholder.
10328         (function_builder::add_overloaded_function): Set placeholder_p if we're
10329         using C++ overloads. Use the obstack for string storage instead
10330         of relying on the tree nodes.
10331         (function_builder::add_overloaded_functions): Don't return early for
10332         m_direct_overloads: we need to add placeholders.
10333         * config/aarch64/aarch64-sve-builtins.h
10334         (function_builder::add_function): Add placeholder_p argument.
10335
10336 2021-03-29  Richard Biener  <rguenther@suse.de>
10337
10338         PR tree-optimization/99807
10339         * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
10340         assert below VEC_PERM handling.
10341
10342 2021-03-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10343
10344         PR target/99037
10345         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
10346         aarch64_simd_or_scalar_imm_zero to match zeroes.  Remove pattern
10347         matching const_int 0.
10348         (move_lo_quad_internal_be_<mode>): Likewise.
10349         (move_lo_quad_<mode>): Update for the above.
10350         * config/aarch64/iterators.md (VQ_2E): Delete.
10351
10352 2021-03-29  Jakub Jelinek  <jakub@redhat.com>
10353
10354         PR tree-optimization/99777
10355         * fold-const.c (extract_muldiv_1): For conversions, punt on casts from
10356         types other than scalar integral types.
10357
10358 2021-03-28  David Edelsohn  <dje.gcc@gmail.com>
10359
10360         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
10361         XCOFF TLS reloc decorations.
10362
10363 2021-03-28  Gerald Pfeifer  <gerald@pfeifer.com>
10364
10365         * doc/analyzer.texi (Analyzer Internals): Update link to
10366         "A Memory Model for Static Analysis of C Programs".
10367
10368 2021-03-26  David Edelsohn  <dje.gcc@gmail.com>
10369
10370         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
10371         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
10372         Declare.
10373         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
10374         (rs6000_special_round_type_align): Recursively check innermost first
10375         field.
10376
10377 2021-03-26  Jakub Jelinek  <jakub@redhat.com>
10378
10379         PR debug/99334
10380         * dwarf2out.h (struct dw_fde_node): Add rule18 member.
10381         * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
10382         assignment with drap_reg active, queue reg save for hfp with offset 0
10383         and flush queued reg saves.  When handling a push with rule18,
10384         defer queueing reg save for hfp and just assert the offset is 0.
10385         (scan_trace): Assert that fde->rule18 is false.
10386
10387 2021-03-26  Vladimir Makarov  <vmakarov@redhat.com>
10388
10389         PR target/99766
10390         * ira-costs.c (record_reg_classes): Put case with
10391         CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
10392         * ira.c (ira_setup_alts): Ditto.
10393         * lra-constraints.c (process_alt_operands): Ditto.
10394         * recog.c (asm_operand_ok): Ditto.
10395         * reload.c (find_reloads): Ditto.
10396
10397 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10398
10399         * config/aarch64/aarch64-protos.h
10400         (cpu_addrcost_table::post_modify_ld3_st3): New member variable.
10401         (cpu_addrcost_table::post_modify_ld4_st4): Likewise.
10402         * config/aarch64/aarch64.c (generic_addrcost_table): Update
10403         accordingly, using the same costs as for post_modify.
10404         (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
10405         (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
10406         (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
10407         (a64fx_addrcost_table): Likewise.
10408         (neoversev1_addrcost_table): New.
10409         (neoversev1_tunings): Use neoversev1_addrcost_table.
10410         (aarch64_address_cost): Use the new post_modify costs for CImode
10411         and XImode.
10412
10413 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10414
10415         * config/aarch64/aarch64.opt
10416         (-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
10417         * doc/invoke.texi: Document it.
10418         * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
10419         (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
10420         (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
10421         (aarch64_vec_issue_info): New structures.
10422         (cpu_vector_cost): Write comments above the variables rather
10423         than to the side.
10424         (cpu_vector_cost::issue_info): New member variable.
10425         * config/aarch64/aarch64.c: Include gimple-pretty-print.h
10426         and tree-ssa-loop-niter.h.
10427         (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
10428         (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
10429         (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
10430         (thunderx3t110_vector_cost): Initialize issue_info to null.
10431         (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
10432         (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
10433         (neoversev1_vector_cost): Use them.
10434         (aarch64_vec_op_count, aarch64_sve_op_count): New structures.
10435         (aarch64_vector_costs::saw_sve_only_op): New member variable.
10436         (aarch64_vector_costs::num_vector_iterations): Likewise.
10437         (aarch64_vector_costs::scalar_ops): Likewise.
10438         (aarch64_vector_costs::advsimd_ops): Likewise.
10439         (aarch64_vector_costs::sve_ops): Likewise.
10440         (aarch64_vector_costs::seen_loads): Likewise.
10441         (aarch64_simd_vec_costs_for_flags): New function.
10442         (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
10443         Count the number of predicate operations required by SVE WHILE
10444         instructions.
10445         (aarch64_comparison_type, aarch64_multiply_add_p): New functions.
10446         (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
10447         (aarch64_count_ops): Likewise.
10448         (aarch64_add_stmt_cost): Record whether see an SVE operation
10449         that cannot currently be implementing using Advanced SIMD.
10450         Record issue information about the scalar, Advanced SIMD
10451         and (where relevant) SVE versions of a loop.
10452         (aarch64_vec_op_count::dump): New function.
10453         (aarch64_sve_op_count::dump): Likewise.
10454         (aarch64_estimate_min_cycles_per_iter): Likewise.
10455         (aarch64_adjust_body_cost): If issue information is available,
10456         try to compare the issue rates of the various loop implementations
10457         and increase or decrease the vector body cost accordingly.
10458
10459 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10460
10461         * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
10462         Assume a zero cost for induction phis.
10463
10464 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10465
10466         * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
10467         function.
10468         (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
10469         vector comparisons.
10470
10471 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10472
10473         * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
10474         New function.
10475         (aarch64_add_stmt_cost): Call it.
10476
10477 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10478
10479         * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
10480         New tuning parameter.
10481         * config/aarch64/aarch64.c (neoversev1_tunings): Use it.
10482         (aarch64_estimated_sve_vq): New function.
10483         (aarch64_vector_costs::analyzed_vinfo): New member variable.
10484         (aarch64_vector_costs::is_loop): Likewise.
10485         (aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
10486         (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
10487         (aarch64_record_potential_advsimd_unrolling): New function.
10488         (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
10489         (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
10490         aarch64_analyze_bb_vinfo on the first use of a costs structure.
10491         Detect whether we're vectorizing a loop for SVE that might be
10492         completely unrolled if it used Advanced SIMD instead.
10493         (aarch64_adjust_body_cost_for_latency): New function.
10494         (aarch64_finish_cost): Call it.
10495
10496 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10497
10498         * config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
10499         (aarch64_init_cost): New function.
10500         (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
10501         the default unsigned[3].
10502         (aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
10503         (TARGET_VECTORIZE_INIT_COST): Override.
10504         (TARGET_VECTORIZE_FINISH_COST): Likewise.
10505         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
10506
10507 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10508
10509         * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
10510         (neoversev1_sve_vector_cost): New cost structures.
10511         (neoversev1_vector_cost): Likewise.
10512         (neoversev1_tunings): Use them.  Enable use_new_vector_costs.
10513
10514 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10515
10516         * config/aarch64/aarch64-protos.h
10517         (sve_vec_cost::scatter_store_elt_cost): New member variable.
10518         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
10519         accordingly, taking the cost from the cost of a scalar_store.
10520         (a64fx_sve_vector_cost): Likewise.
10521         (aarch64_detect_vector_stmt_subtype): Detect scatter stores.
10522
10523 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10524
10525         * config/aarch64/aarch64-protos.h
10526         (simd_vec_cost::store_elt_extra_cost): New member variable.
10527         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
10528         accordingly, using the vec_to_scalar cost for the new field.
10529         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
10530         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
10531         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
10532         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
10533         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
10534         (thunderx3t110_advsimd_vector_cost): Likewise.
10535         (aarch64_detect_vector_stmt_subtype): Detect single-element stores.
10536
10537 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10538
10539         * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
10540         (simd_vec_cost::ld3_st3_permute_cost): New member variables.
10541         (simd_vec_cost::ld4_st4_permute_cost): Likewise.
10542         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
10543         accordingly, using zero for the new costs.
10544         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
10545         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
10546         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
10547         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
10548         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
10549         (thunderx3t110_advsimd_vector_cost): Likewise.
10550         (aarch64_ld234_st234_vectors): New function.
10551         (aarch64_adjust_stmt_cost): Likewise.
10552         (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
10553         the new vector costs.
10554
10555 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10556
10557         * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
10558         derived class of simd_vec_cost.  Add information about CLAST[AB]
10559         and FADDA instructions.
10560         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
10561         accordingly, using the vec_to_scalar costs for the new fields.
10562         (a64fx_sve_vector_cost): Likewise.
10563         (aarch64_reduc_type): New function.
10564         (aarch64_sve_in_loop_reduction_latency): Likewise.
10565         (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
10566         Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
10567         that occur in the loop body.
10568         (aarch64_add_stmt_cost): Update call accordingly.
10569
10570 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
10571
10572         * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
10573         New tuning flag.
10574         * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
10575         above the fields rather than to the right.
10576         (simd_vec_cost::reduc_i8_cost): New member variable.
10577         (simd_vec_cost::reduc_i16_cost): Likewise.
10578         (simd_vec_cost::reduc_i32_cost): Likewise.
10579         (simd_vec_cost::reduc_i64_cost): Likewise.
10580         (simd_vec_cost::reduc_f16_cost): Likewise.
10581         (simd_vec_cost::reduc_f32_cost): Likewise.
10582         (simd_vec_cost::reduc_f64_cost): Likewise.
10583         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
10584         accordingly, using the vec_to_scalar_cost for the new fields.
10585         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
10586         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
10587         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
10588         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
10589         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
10590         (thunderx3t110_advsimd_vector_cost): Likewise.
10591         (aarch64_use_new_vector_costs_p): New function.
10592         (aarch64_simd_vec_costs): New function, split out from...
10593         (aarch64_builtin_vectorization_cost): ...here.
10594         (aarch64_is_reduction): New function.
10595         (aarch64_detect_vector_stmt_subtype): Likewise.
10596         (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
10597         using the new vector costs.
10598
10599 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10600
10601         PR ipa/99466
10602         * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
10603         TLS declarations as public.
10604
10605 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10606
10607         * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
10608         * config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
10609         * config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
10610         * config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
10611         * config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
10612         * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
10613         * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
10614         * config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
10615         * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.
10616
10617 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10618
10619         PR d/91595
10620         * config.gcc (*-*-cygwin*): Add winnt-d.o
10621         (*-*-mingw*): Likewise.
10622         * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
10623         * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
10624         * config/i386/t-cygming: Add winnt-d.o.
10625         * config/i386/winnt-d.c: New file.
10626
10627 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10628
10629         * config/freebsd-d.c: Include memmodel.h.
10630
10631 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
10632
10633         PR d/99691
10634         * config.gcc (*-*-openbsd*): Add openbsd-d.o.
10635         * config/t-openbsd: Add openbsd-d.o.
10636         * config/openbsd-d.c: New file.
10637
10638 2021-03-25  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
10639
10640         PR tree-optimization/96974
10641         * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
10642         with graceful exit.
10643
10644 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
10645
10646         Revert:
10647         2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
10648
10649         PR target/98209
10650         PR target/99744
10651         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
10652         always_inline in system headers.
10653
10654 2021-03-25  Kewen Lin  <linkw@linux.ibm.com>
10655
10656         * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
10657
10658 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
10659
10660         PR c++/99565
10661         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
10662         * fold-const.c (operand_compare::operand_equal_p): Don't compare
10663         field offsets if OEP_ADDRESS_OF_SAME_FIELD.
10664
10665 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
10666
10667         PR target/98209
10668         PR target/99744
10669         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
10670         always_inline in system headers.
10671
10672 2021-03-25  Richard Biener  <rguenther@suse.de>
10673
10674         PR tree-optimization/99746
10675         * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
10676         the scalar stmt as patterned.  Instead set up required things
10677         manually.
10678
10679 2021-03-25  Xionghu Luo  <luoxhu@linux.ibm.com>
10680
10681         * config/rs6000/rs6000.c (power8_costs): Change l2 cache
10682         from 256 to 512.
10683
10684 2021-03-24  Martin Liska  <mliska@suse.cz>
10685
10686         PR target/99753
10687         * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
10688         error.
10689         * config/i386/i386-options.c (ix86_option_override_internal):
10690         Add run-time assert.
10691
10692 2021-03-24  Martin Jambor  <mjambor@suse.cz>
10693
10694         PR ipa/99122
10695         * ipa-cp.c (initialize_node_lattices): Mark as bottom all
10696         parameters with unknown type.
10697         (ipacp_value_safe_for_type): New function.
10698         (propagate_vals_across_arith_jfunc): Verify that the constant type
10699         can be used for a type of the formal parameter.
10700         (propagate_vals_across_ancestor): Likewise.
10701         (propagate_scalar_across_jump_function): Likewise.  Pass the type
10702         also to propagate_vals_across_ancestor.
10703
10704 2021-03-24  Christophe Lyon  <christophe.lyon@linaro.org>
10705
10706         PR target/99727
10707         * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
10708         constraint.
10709         (movmisalign<mode>_mve_load): Likewise.
10710
10711 2021-03-24  Jakub Jelinek  <jakub@redhat.com>
10712
10713         PR target/99724
10714         * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
10715         movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
10716
10717 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
10718
10719         * doc/sourcebuild.texi (sysconf): New effective target.
10720
10721 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
10722
10723         * config/i386/predicates.md (reg_or_const_vec_operand): New.
10724         * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
10725         the now *-prefixed insn_and_split, turn the splitter const vec
10726         into an input for the insn, making it an ignored immediate for
10727         non-split cases, and loaded into the scratch register
10728         otherwise.
10729
10730 2021-03-23  Vladimir N. Makarov  <vmakarov@redhat.com>
10731
10732         PR target/99581
10733         * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
10734         Use define_relaxed_memory_constraint for them.
10735
10736 2021-03-23  Iain Sandoe  <iain@sandoe.co.uk>
10737
10738         PR target/99733
10739         * config/host-darwin.c (darwin_gt_pch_use_address): Add a
10740         colon to the diagnostic message.
10741
10742 2021-03-23  Ilya Leoshkevich  <iii@linux.ibm.com>
10743
10744         * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
10745         set_info's uses.
10746         (try_fwprop_subst_note): Use set_info instead of insn_info.
10747         (try_fwprop_subst_pattern): Likewise.
10748         (try_fwprop_subst_notes): Likewise.
10749         (try_fwprop_subst): Likewise.
10750         (forward_propagate_subreg): Likewise.
10751         (forward_propagate_and_simplify): Likewise.
10752         (forward_propagate_into): Likewise.
10753         * rtl-ssa/accesses.h (set_info::single_nondebug_use) New
10754         method.
10755         (set_info::single_nondebug_insn_use): Likewise.
10756         (set_info::single_phi_use): Likewise.
10757         * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
10758         method.
10759         (set_info::single_nondebug_insn_use): Likewise.
10760         (set_info::single_phi_use): Likewise.
10761
10762 2021-03-23  Christophe Lyon  <christophe.lyon@linaro.org>
10763
10764         * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
10765
10766 2021-03-23  Jakub Jelinek  <jakub@redhat.com>
10767
10768         PR target/99540
10769         * config/aarch64/aarch64.c (aarch64_add_offset): Tell
10770         expand_mult to perform an unsigned rather than a signed
10771         multiplication.
10772
10773 2021-03-23  H.J. Lu  <hjl.tools@gmail.com>
10774
10775         PR target/99704
10776         * config/i386/cpuid.h (__cpuid): Add __volatile__.
10777         (__cpuid_count): Likewise.
10778
10779 2021-03-23  Richard Biener  <rguenther@suse.de>
10780
10781         PR tree-optimization/99721
10782         * tree-vect-slp.c (vect_slp_analyze_node_operations):
10783         Make sure we can schedule the node.
10784
10785 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10786
10787         * config/riscv/riscv.c (riscv_subword): Take endianness into
10788         account when calculating the byte offset.
10789
10790 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10791
10792         * config/riscv/predicates.md (subreg_lowpart_operator): New predicate
10793         * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
10794         (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
10795         (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
10796         (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
10797         new predicate "subreg_lowpart_operator"
10798
10799 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10800
10801         * config/riscv/riscv.c (riscv_swap_instruction): New function
10802         to byteswap an SImode rtx containing an instruction.
10803         (riscv_trampoline_init): Byteswap the generated instructions
10804         when needed.
10805
10806 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10807
10808         * common/config/riscv/riscv-common.c
10809         (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
10810         * config.gcc (riscv32be-*, riscv64be-*): Set
10811         TARGET_BIG_ENDIAN_DEFAULT to 1.
10812         * config/riscv/elf.h (LINK_SPEC): Change -melf* value
10813         depending on default endianness.
10814         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
10815         * config/riscv/linux.h (LINK_SPEC): Likewise.
10816         * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
10817         default endianness.
10818         * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.
10819
10820 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
10821
10822         * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
10823         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
10824         * config/riscv/linux.h (LINK_SPEC): Likewise.
10825         * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
10826         -mlittle-endian.
10827         (BYTES_BIG_ENDIAN): Handle big endian.
10828         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
10829         * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
10830         options.
10831         * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
10832
10833 2021-03-23  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
10834
10835         * regcprop.c (find_oldest_value_reg): Ask target whether
10836           different mode is fine for replacement register.
10837
10838 2021-03-23  Aldy Hernandez  <aldyh@redhat.com>
10839
10840         PR tree-optimization/99296
10841         * value-range.cc (irange::irange_set_1bit_anti_range): New.
10842         (irange::irange_set_anti_range): Call irange_set_1bit_anti_range
10843         * value-range.h (irange::irange_set_1bit_anti_range): New.
10844
10845 2021-03-22  Vladimir N. Makarov  <vmakarov@redhat.com>
10846
10847         PR target/99581
10848         * config/aarch64/constraints.md (UtQ): Use
10849         define_relaxed_memory_constraint for it.
10850         * doc/md.texi (define_relaxed_memory_constraint): Describe it.
10851         * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
10852         * genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
10853         (have_relaxed_memory_constraints): New static var.
10854         (relaxed_memory_start, relaxed_memory_end): Ditto.
10855         (add_constraint): Add arg is_relaxed_memory.  Check name for
10856         relaxed memory.  Set up is_relaxed_memory in constraint_data and
10857         have_relaxed_memory_constraints.  Adjust calls.
10858         (choose_enum_order): Process relaxed memory.
10859         (write_tm_preds_h): Ditto.
10860         (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
10861         * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
10862         * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
10863         * ira-lives.c (single_reg_class): Use
10864         insn_extra_relaxed_memory_constraint.
10865         * ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
10866         * lra-constraints.c (valid_address_p): Use
10867         insn_extra_relaxed_memory_constraint instead of other memory
10868         constraints.
10869         (process_alt_operands): Process CT_RELAXED_MEMORY.
10870         (curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
10871         * recog.c (asm_operand_ok, preprocess_constraints): Process
10872         CT_RELAXED_MEMORY.
10873         * reload.c (find_reloads): Ditto.
10874         * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
10875         * stmt.c (parse_input_constraint): Use
10876         insn_extra_relaxed_memory_constraint.
10877
10878 2021-03-22  Segher Boessenkool  <segher@kernel.crashing.org>
10879
10880         PR target/97926
10881         * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
10882         there are no NaNs.
10883
10884 2021-03-22  Alex Coplan  <alex.coplan@arm.com>
10885
10886         PR target/97252
10887         * config/arm/arm-protos.h (neon_make_constant): Add generate
10888         argument to guard emitting insns, default to true.
10889         * config/arm/arm.c (arm_legitimate_constant_p_1): Reject
10890         CONST_VECTORs which neon_make_constant can't handle.
10891         (neon_vdup_constant): Add generate argument, avoid emitting
10892         insns if it's not set.
10893         (neon_make_constant): Plumb new generate argument through.
10894         * config/arm/constraints.md (Ui): New. Use it...
10895         * config/arm/mve.md (*mve_mov<mode>): ... here.
10896         * config/arm/vec-common.md (movv8hf): Use neon_make_constant to
10897         synthesize constants.
10898
10899 2021-03-22  Richard Biener  <rguenther@suse.de>
10900
10901         * debug.h: Add deprecation warning.
10902
10903 2021-03-22  Richard Biener  <rguenther@suse.de>
10904
10905         PR tree-optimization/99694
10906         * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
10907         PHI result.
10908
10909 2021-03-22  Kito Cheng  <kito.cheng@sifive.com>
10910
10911         PR target/99702
10912         * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
10913         after type checking.
10914
10915 2021-03-22  Jakub Jelinek  <jakub@redhat.com>
10916
10917         PR debug/99562
10918         PR debug/66728
10919         * dwarf2out.c (get_full_len): Use get_precision rather than
10920         min_precision.
10921         (add_const_value_attribute): Make sure add_AT_wide argument has
10922         precision prec rather than some very wide one.
10923
10924 2021-03-22  Kewen Lin  <linkw@linux.ibm.com>
10925
10926         * config/rs6000/rs6000.md (*rotldi3_insert_sf,
10927         *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
10928         floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
10929         floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
10930         *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
10931         fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
10932         *round32<mode>2_fprs, *roundu32<mode>2_fprs,
10933         *fix_trunc<mode>si2_internal): Fix empty split condition.
10934         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
10935         vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
10936         *vsx_reduc_<VEC_reduc_name>_v2df_scalar,
10937         *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
10938
10939 2021-03-22  Xionghu Luo  <luoxhu@linux.ibm.com>
10940
10941         PR target/98914
10942         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
10943         Convert idx to DImode.
10944         (rs6000_expand_vector_set_var_p8): Likewise.
10945
10946 2021-03-21  Jakub Jelinek  <jakub@redhat.com>
10947
10948         PR debug/99388
10949         * dwarf2out.c (insert_float): Change return type from void to
10950         unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
10951         (mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
10952         Adjust callers.
10953
10954 2021-03-20  H.J. Lu  <hjl.tools@gmail.com>
10955
10956         PR target/99679
10957         * config/i386/i386.c (construct_container): Check cfun != NULL
10958         before accessing silent_p.
10959
10960 2021-03-20  Ahamed Husni  <ahamedhusni73@gmail.com>
10961
10962         * asan.c: Fix typos in comments.
10963
10964 2021-03-20  Vladimir N. Makarov  <vmakarov@redhat.com>
10965
10966         PR rtl-optimization/99680
10967         * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
10968         (process_address_1): Check empty constraint before using
10969         CONSTRAINT_LEN.
10970
10971 2021-03-19  Pat Haugen  <pthaugen@linux.ibm.com>
10972
10973         * config/rs6000/rs6000.c (power10_cost): New.
10974         (rs6000_option_override_internal): Set Power10 costs.
10975         (rs6000_issue_rate): Set Power10 issue rate.
10976         * config/rs6000/power10.md: Rewrite for Power10.
10977
10978 2021-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
10979
10980         PR target/99663
10981         * lra-constraints.c (process_address_1): Don't use unknown
10982         constraint for address constraint.
10983
10984 2021-03-19  Iain Sandoe  <iain@sandoe.co.uk>
10985
10986         PR target/99661
10987         * config.gcc (powerpc-*-darwin8): Delete the reference to
10988         the now removed darwin8.h.
10989
10990 2021-03-19  Olivier Hainque  <hainque@adacore.com>
10991
10992         PR target/99660
10993         * config/vxworksae.h (VX_CPU_PREFIX): Define.
10994
10995 2021-03-19  John David Anglin  <danglin@gcc.gnu.org>
10996
10997         * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
10998
10999 2021-03-19  Tamar Christina  <tamar.christina@arm.com>
11000
11001         PR tree-optimization/99656
11002         * tree-vect-slp-patterns.c (linear_loads_p,
11003         complex_add_pattern::matches, is_eq_or_top,
11004         vect_validate_multiplication, complex_mul_pattern::matches,
11005         complex_fms_pattern::matches): Remove complex_perm_kinds_t.
11006         * tree-vectorizer.h: (complex_load_perm_t): Removed.
11007         (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
11008         complex_load_perm_t.
11009
11010 2021-03-19  H.J. Lu  <hjl.tools@gmail.com>
11011
11012         PR target/99652
11013         * config/i386/i386-options.c (ix86_init_machine_status): Set
11014         silent_p to true.
11015         * config/i386/i386.c (init_cumulative_args): Set silent_p to
11016         false.
11017         (construct_container): Return early for return and argument
11018         errors if silent_p is true.
11019         * config/i386/i386.h (machine_function): Add silent_p.
11020
11021 2021-03-19  Jakub Jelinek  <jakub@redhat.com>
11022
11023         PR target/99593
11024         * config/arm/constraints.md (Ds): New constraint.
11025         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
11026         constraint instead of w,Dm.
11027
11028 2021-03-19  Andrew Stubbs  <ams@codesourcery.com>
11029
11030         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
11031         in error message.
11032
11033 2021-03-19  Eric Botcazou  <ebotcazou@adacore.com>
11034
11035         PR middle-end/99641
11036         * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
11037         array type, do the computation of the current position in sizetype.
11038
11039 2021-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>
11040
11041         PR target/99422
11042         * lra-constraints.c (process_address_1): Use lookup_constraint
11043         only for a single constraint.
11044
11045 2021-03-18  Martin Sebor  <msebor@redhat.com>
11046
11047         PR middle-end/99502
11048         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
11049         (inbounds_memaccess_p): ...to this.  Check the ending offset of
11050         the accessed member.
11051
11052 2021-03-18  Andrew Stubbs  <ams@codesourcery.com>
11053
11054         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
11055           %> quote markers to error messages.
11056         (gcn_goacc_validate_dims): Likewise.
11057         (gcn_conditional_register_usage): Remove exclaimation mark from error
11058         message.
11059         (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
11060
11061 2021-03-18  Jan Hubicka  <hubicka@ucw.cz>
11062
11063         * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
11064         integer divides1.
11065
11066 2021-03-18  Sinan Lin  <sinan@isrc.iscas.ac.cn>
11067             Kito Cheng  <kito.cheng@sifive.com>
11068
11069         * config/riscv/riscv.c (riscv_block_move_straight): Change type
11070         to unsigned HOST_WIDE_INT for parameter and local variable with
11071         HOST_WIDE_INT type.
11072         (riscv_adjust_block_mem): Ditto.
11073         (riscv_block_move_loop): Ditto.
11074         (riscv_expand_block_move): Ditto.
11075
11076 2021-03-18  Nick Clifton  <nickc@redhat.com>
11077
11078         * config/v850/v850.c (construct_restore_jr): Increase static
11079          buffer size.
11080         (construct_save_jarl): Likewise.
11081         * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
11082
11083 2021-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11084
11085         * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
11086         (aarch64_override_options_internal): Use it.
11087         (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
11088         tune_flags.
11089
11090 2021-03-17  Sandra Loosemore  <sandra@codesourcery.com>
11091
11092         * config/nios2/nios2.c (nios2_custom_check_insns): Clean up
11093         error message format issues.
11094         (nios2_option_override): Likewise.
11095         (nios2_expand_fpu_builtin): Likewise.
11096         (nios2_init_custom_builtins): Adjust to avoid bogus strncpy
11097         truncation warning.
11098         (nios2_expand_custom_builtin): More error message format fixes.
11099         (nios2_expand_rdwrctl_builtin): Likewise.
11100         (nios2_expand_rdprs_builtin): Likewise.
11101         (nios2_expand_eni_builtin): Likewise.
11102         (nios2_expand_builtin): Likewise.
11103         (nios2_register_custom_code): Likewise.
11104         (nios2_valid_target_attribute_rec): Likewise.
11105         (nios2_add_insn_asm): Fix uninitialized variable warning.
11106
11107 2021-03-17  Jan Hubicka  <jh@suse.cz>
11108
11109         * config/i386/x86-tune-costs.h (struct processor_costs): Update costs
11110         of gather to match reality.
11111         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.
11112
11113 2021-03-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11114
11115         * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
11116         to compare against CC_REG rather than NE.
11117
11118 2021-03-17  H.J. Lu  <hjl.tools@gmail.com>
11119
11120         PR target/99504
11121         * config/i386/i386.c (ix86_force_load_from_GOT_p): Support
11122         inline assembly statements.
11123         (ix86_print_operand): Update 'P' handling for -fno-plt.
11124
11125 2021-03-17  Tamar Christina  <tamar.christina@arm.com>
11126
11127         PR target/99542
11128         * config/aarch64/aarch64.c
11129         (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
11130
11131 2021-03-16  Segher Boessenkool  <segher@kernel.crashing.org>
11132
11133         PR target/98092
11134         * config/rs6000/predicates.md (branch_comparison_operator): Allow
11135         ordered and unordered for CCFPmode, if flag_finite_math_only.
11136
11137 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
11138
11139         PR target/99600
11140         * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
11141         rather than ASHIFT.
11142         * config/i386/i386.md (mult by 1248 into ashift): New splitter.
11143
11144 2021-03-16  Martin Liska  <mliska@suse.cz>
11145
11146         PR target/99592
11147         * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
11148         cl_optimization_compare function.
11149
11150 2021-03-16  Ilya Leoshkevich  <iii@linux.ibm.com>
11151
11152         * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
11153         as "v".
11154
11155 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
11156
11157         PR target/99563
11158         * config/i386/i386.h (struct machine_function): Add
11159         has_explicit_vzeroupper bitfield.
11160         * config/i386/i386-expand.c (ix86_expand_builtin): Set
11161         cfun->machine->has_explicit_vzeroupper when expanding
11162         IX86_BUILTIN_VZEROUPPER.
11163         * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
11164         Do the mode switching only when TARGET_VZEROUPPER, expensive
11165         optimizations turned on and not optimizing for size.
11166         (pass_insert_vzeroupper::gate): Enable even when
11167         cfun->machine->has_explicit_vzeroupper is set.
11168
11169 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
11170
11171         PR target/99542
11172         * config/aarch64/aarch64.c
11173         (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
11174         definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
11175         instead of DECL_ARGUMENTS.  Ignore types for uniform arguments.
11176
11177 2021-03-15  Richard Biener  <rguenther@suse.de>
11178
11179         PR tree-optimization/98834
11180         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
11181         subsetting by truncating the access size.
11182
11183 2021-03-15  Jan Hubicka  <hubicka@ucw.cz>
11184
11185         * config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
11186         * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
11187         of znver2_cost.
11188
11189 2021-03-15  Martin Liska  <mliska@suse.cz>
11190
11191         * spellcheck.c: Add missing comma in initialization.
11192
11193 2021-03-14  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11194
11195         * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
11196         alternative 2 and alternative 1 with alternative 3 using
11197         YW register constraint.
11198         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
11199         using YW register constraint.
11200         (*vec_extractv16qi_zext): Ditto.
11201         (*vec_extractv4si): Merge alternatives 4 and 5
11202         using Yw register constraint.
11203         (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.
11204
11205 2021-03-13  Martin Sebor  <msebor@redhat.com>
11206
11207         PR tree-optimization/99489
11208         * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
11209         is not a call statement.
11210
11211 2021-03-13  Jakub Jelinek  <jakub@redhat.com>
11212
11213         PR tree-optimization/99544
11214         * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
11215         if for vector types multiplication can't be done in type's mode.
11216
11217 2021-03-12  Eric Botcazou  <ebotcazou@adacore.com>
11218
11219         PR target/99422
11220         * config/sparc/constraints.md (w): Rename to...
11221         (W): ... this and ditch previous implementation.
11222         * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
11223         (*movdf_insn_sp64): Likewise.
11224         (*mov<VM64:mode>_insn_sp64): Likewise.
11225         * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
11226         w with W.
11227         (atomic_compare_and_swap_leon3_1): Likewise.
11228         (*atomic_compare_and_swapdi_v8plus): Likewise.
11229         * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
11230         architecture and add missing address validity check during LRA.
11231
11232 2021-03-12  Tobias Burnus  <tobias@codesourcery.com>
11233
11234         PR fortran/98858
11235         * gimplify.c (omp_add_variable): Handle NULL_TREE as size
11236         occuring for assumed-size arrays in use_device_{ptr,addr}.
11237
11238 2021-03-12  Jakub Jelinek  <jakub@redhat.com>
11239
11240         PR target/99321
11241         * config/i386/constraints.md (YW): New internal constraint.
11242         * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
11243         (*<sse2_avx2>_<insn><mode>3<mask_name>,
11244         *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
11245         *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
11246         constraints.
11247         (<sse2_avx2>_psadbw): Use YW instead of v in constraints.
11248         (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
11249         avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
11250         into one, use Yw instead of former x,v.
11251         (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
11252         the last alternative.
11253         (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
11254         <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
11255         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
11256         <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
11257         into one, use <v_Yw> instead of former x,v.
11258         (avx2_interleave_highv32qi<mask_name>,
11259         vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
11260         constraints.  Add && <mask_avx512bw_condition> to condition.
11261         (avx2_interleave_lowv32qi<mask_name>,
11262         vec_interleave_lowv16qi<mask_name>,
11263         avx2_interleave_highv16hi<mask_name>,
11264         vec_interleave_highv8hi<mask_name>,
11265         avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
11266         avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
11267         avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
11268         avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
11269         *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
11270         Yw instead of v in constraints.
11271         * config/i386/mmx.md (Yv_Yw): New define_mode_attr.
11272         (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
11273         instead of Yv in constraints.
11274         (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
11275         *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
11276         *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
11277         mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
11278         *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
11279         constraints.
11280         (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
11281         *mmx_pextrb_zext): Use YW instead of Yv in constraints.
11282         (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
11283         (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
11284         two, one with just x, another isa avx512vl with v.
11285
11286 2021-03-12  Martin Liska  <mliska@suse.cz>
11287
11288         * doc/invoke.texi: Add missing param documentation.
11289
11290 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
11291
11292         PR analyzer/96374
11293         * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
11294         analyzer/trimmed-graph.o.
11295         * doc/analyzer.texi (Analyzer Paths): Rewrite description of
11296         feasibility checking to reflect new implementation.
11297         * doc/invoke.texi (-fdump-analyzer-feasibility): Document new
11298         option.
11299         * shortest-paths.h (shortest_paths::get_shortest_distance): New.
11300
11301 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
11302
11303         * digraph.cc (selftest::test_shortest_paths): Update
11304         shortest_paths init for new param.  Add test of
11305         SPS_TO_GIVEN_TARGET.
11306         * shortest-paths.h (enum shortest_path_sense): New.
11307         (shortest_paths::shortest_paths): Add "sense" param.
11308         Update for renamings.  Generalize to use "sense" param.
11309         (shortest_paths::get_shortest_path): Rename param.
11310         (shortest_paths::m_sense): New field.
11311         (shortest_paths::m_prev): Rename...
11312         (shortest_paths::m_best_edge): ...to this.
11313         (shortest_paths::get_shortest_path): Update for renamings.
11314         Conditionalize flipping of path on sense of traversal.
11315
11316 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
11317
11318         * digraph.cc (selftest::test_shortest_paths): Add test coverage
11319         for paths from B and C.
11320         * shortest-paths.h (shortest_paths::shortest_paths): Handle
11321         unreachable nodes, rather than asserting.
11322
11323 2021-03-11  David Edelsohn  <dje.gcc@gmail.com>
11324
11325         PR target/99094
11326         * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
11327         xcoff_tbss_section_name.
11328         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
11329         * xcoffout.c (xcoff_tbss_section_name): Delete.
11330         * xcoffout.h (xcoff_tbss_section_name): Delete.
11331
11332 2021-03-11  Richard Biener  <rguenther@suse.de>
11333
11334         PR tree-optimization/99523
11335         * tree-cfg.c (dump_function_to_file): Dump SSA names
11336         w/o identifier to the decls section as well, not only those
11337         without a VAR_DECL.
11338
11339 2021-03-11  Jakub Jelinek  <jakub@redhat.com>
11340
11341         PR ipa/99517
11342         * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
11343         function calls with lhs fail if the lhs don't have compatible types.
11344
11345 2021-03-11  Hans-Peter Nilsson  <hp@axis.com>
11346
11347         * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
11348         Change FRAME_POINTER_REGNUM to correspond to a new faked
11349         register faked_fp, part of GENNONACR_REGS like faked_ap.
11350         (CRIS_FAKED_REGS_CONTENTS): New helper macro.
11351         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
11352         (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
11353         (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
11354         * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
11355         register.
11356         (CRIS_REAL_FP_REGNUM): New constant.
11357         * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
11358         for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
11359         (cris_initial_elimination_offset): Handle elimination changes
11360         to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
11361         and add one from FRAME_POINTER_REGNUM to
11362         HARD_FRAME_POINTER_REGNUM.
11363         (cris_expand_prologue, cris_expand_epilogue): Emit code for
11364         hard_frame_pointer_rtx instead of frame_pointer_rtx.
11365
11366 2021-03-10  David Edelsohn  <dje.gcc@gmail.com>
11367
11368         PR target/99492
11369         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
11370         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
11371
11372 2021-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>
11373
11374         PR target/99422
11375         * lra-constraints.c (process_address_1): Don't check unknown
11376         constraint, use X for empty constraint.
11377
11378 2021-03-10  Alex Coplan  <alex.coplan@arm.com>
11379
11380         * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
11381         Fix typo in comment describing "is_ha" argument.
11382
11383 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
11384
11385         * doc/sourcebuild.texi: Document LRA target selector.
11386
11387 2021-03-10  David Malcolm  <dmalcolm@redhat.com>
11388
11389         * doc/ux.texi: Add subsection contrasting interactive versus
11390         batch usage of GCC.
11391
11392 2021-03-10  Joel Hutton  <joel.hutton@arm.com>
11393
11394         PR target/99102
11395         * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
11396         check condition.
11397         (vectorizable_load): Fix gather load mask check condition.
11398
11399 2021-03-10  Richard Biener  <rguenther@suse.de>
11400
11401         PR tree-optimization/99510
11402         * tree.c (check_aligned_type): Check that the candidate
11403         has TYPE_USER_ALIGN set instead of matching with the
11404         original type.
11405
11406 2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>
11407
11408         * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
11409         float and vector integer modes only if the mode is not larger.
11410
11411 2021-03-10  Hans-Peter Nilsson  <hp@axis.com>
11412
11413         * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
11414
11415 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
11416
11417         * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
11418         constraints > 9.
11419         * ira-lives.c (single_reg_class): Ditto.
11420
11421 2021-03-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11422
11423         * config.gcc (aarch64-*-rtems*): Include general rtems.h after
11424         the architecture-specific rtems.h.
11425         (aarch64-*-rtems*): Likewise.
11426         (arm*-*-rtems*): Likewise.
11427         (epiphany-*-rtems*): Likewise.
11428         (riscv*-*-rtems*): Likewise.
11429
11430 2021-03-09  Jakub Jelinek  <jakub@redhat.com>
11431
11432         PR tree-optimization/99305
11433         * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
11434         before integer_all_onesp instead of vice versa.
11435
11436 2021-03-09  Richard Earnshaw  <rearnsha@arm.com>
11437
11438         * common/config/arm/arm-common.c (arm_config_default): Change type
11439         of 'i' to unsigned.
11440
11441 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
11442
11443         PR target/99454
11444         * lra-constraints.c (process_address_1): Process constraint 'g'
11445         separately and digital constraints containing more one digit.
11446
11447 2021-03-09  Nick Clifton  <nickc@redhat.com>
11448
11449         * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
11450         (DWARF"_DEBUGGING_INFO): Define.
11451
11452 2021-03-09  Eric Botcazou  <ebotcazou@adacore.com>
11453
11454         PR c++/90448
11455         * calls.c (initialize_argument_information): When the argument
11456         is passed by reference, do not make a copy in a thunk only if
11457         the argument is already in memory.  Remove redundant test for
11458         the case of callee copy.
11459
11460 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
11461
11462         PR target/99454
11463         * lra-constraints.c (process_address_1): Process 0..9 constraints
11464         in process_address_1.
11465
11466 2021-03-09  Andreas Krebbel  <krebbel@linux.ibm.com>
11467
11468         * config/s390/s390.c (struct s390_processor processor_table):
11469         Binutils name string must not be empty.
11470
11471 2021-03-09  Claudiu Zissulescu  <claziss@synopsys.com>
11472
11473         * config/arc/arc.c (arc_attr_type): Remove function.
11474
11475 2021-03-09  Martin Liska  <mliska@suse.cz>
11476
11477         PR target/99464
11478         * config/i386/i386-options.c (ix86_option_override_internal):
11479         Set isa_flags for OPTS argument and not for the global
11480         global_options.
11481
11482 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
11483
11484         * config/rs6000/predicates.md (ds_form_mem_operand): Check
11485         in correct code.
11486
11487 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
11488
11489         PR target/99070
11490         * config/rs6000/predicates.md (ds_form_mem_operand) New
11491         predicate.
11492         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
11493         ds_form_mem_operand in ld/lwa patterns.
11494         * config/rs6000/fusion.md: Regenerate file.
11495
11496 2021-03-08  Martin Sebor  <msebor@redhat.com>
11497
11498         PR middle-end/98266
11499         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
11500         (array_bounds_checker::check_array_bounds): Call it.
11501
11502 2021-03-08  Martin Sebor  <msebor@redhat.com>
11503
11504         PR middle-end/97631
11505         * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
11506         (handle_builtin_stxncpy_strncat): Rename locals.  Determine
11507         destination size from allocation calls.  Issue a more appropriate
11508         kind of warning.
11509         (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
11510         (handle_builtin_memset): Same.
11511
11512 2021-03-08  Peter Bergner  <bergner@linux.ibm.com>
11513
11514         PR target/98959
11515         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
11516         to ensure we do not have an Altivec style address.
11517         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
11518         an Altivec style address.
11519         (*vsx_le_perm_store_<mode>): Likewise.
11520         (splitters after *vsx_le_perm_store_<mode>): Likewise.
11521         (vsx_load_<mode>): Disable special expander if passed an Altivec
11522         style address.
11523         (vsx_store_<mode>): Likewise.
11524
11525 2021-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11526
11527         PR target/99437
11528         * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
11529         (aarch64_simd_shift_imm_vec_hi): Likewise.
11530         (aarch64_simd_shift_imm_vec_si): Likewise.
11531         (aarch64_simd_shift_imm_vec_di): Likewise.
11532         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
11533         predicate from above.
11534         (aarch64_shrn<mode>_insn_be): Likewise.
11535         (aarch64_rshrn<mode>_insn_le): Likewise.
11536         (aarch64_rshrn<mode>_insn_be): Likewise.
11537         (aarch64_shrn2<mode>_insn_le): Likewise.
11538         (aarch64_shrn2<mode>_insn_be): Likewise.
11539         (aarch64_rshrn2<mode>_insn_le): Likewise.
11540         (aarch64_rshrn2<mode>_insn_be): Likewise.
11541
11542 2021-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
11543
11544         PR target/99422
11545         * lra-constraints.c (skip_contraint_modifiers): New function.
11546         (process_address_1): Use it before lookup_constraint call.
11547
11548 2021-03-08  Martin Liska  <mliska@suse.cz>
11549
11550         PR target/99463
11551         * config/i386/i386-options.c (ix86_option_override_internal):
11552         Enable UINTR and HRESET for -march that supports it.
11553
11554 2021-03-08  Ilya Leoshkevich  <iii@linux.ibm.com>
11555
11556         * config/s390/s390.c (f_constraint_p): New function.
11557         (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
11558         (TARGET_MD_ASM_ADJUST): Likewise.
11559
11560 2021-03-08  Tobias Burnus  <tobias@codesourcery.com>
11561
11562         PR fortran/97927
11563         * tree-nested.c (convert_local_reference_stmt): Avoid calling
11564         lookup_field_for_decl for Fortran module (= namespace context).
11565
11566 2021-03-08  Andreas Krebbel  <krebbel@linux.ibm.com>
11567
11568         * config/s390/s390.c (s390_expand_vec_compare): Implement <0
11569         comparison with arithmetic right shift.
11570         (s390_expand_vcond): No need for a force_reg anymore.
11571         s390_vec_compare will do it.
11572         * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
11573         immediate operands.
11574
11575 2021-03-07  Jakub Jelinek  <jakub@redhat.com>
11576
11577         PR target/99321
11578         * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
11579         but TARGET_AVX512BW or TARGET_AVX512VL is not set.  Adjust description
11580         and comment.
11581         * config/i386/sse.md (v_Yw): New define_mode_attr.
11582         (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
11583         *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
11584         in constraints.
11585         * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
11586         xYw in constraints.
11587
11588 2021-03-06  Julian Brown  <julian@codesourcery.com>
11589
11590         * tree-pretty-print.c (dump_generic_node): Emit non-generic
11591         address space info for aggregates.
11592
11593 2021-03-06  Hans-Peter Nilsson  <hp@axis.com>
11594
11595         * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
11596
11597 2021-03-05  Jakub Jelinek  <jakub@redhat.com>
11598
11599         PR middle-end/99322
11600         * tree-cfg.c (bb_to_omp_idx): New variable.
11601         (execute_build_cfg): Release the bb_to_omp_idx vector after
11602         cleanup_tree_cfg returns.
11603         (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
11604         for bb_to_omp_idx being a vec<int> instead of pointer to array
11605         of ints.
11606         (make_edges): Remove bb_to_omp_idx local variable, don't pass
11607         it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
11608         vec<int> instead of pointer to array of ints and don't free/release
11609         it at the end.
11610         (remove_bb): When removing a bb and placing forced label somewhere
11611         else, ensure it is put into the same OpenMP region during cfg
11612         pass if possible or to entry successor as fallback.  Unregister
11613         bb from bb_to_omp_idx.
11614
11615 2021-03-05  Vladimir N. Makarov  <vmakarov@redhat.com>
11616
11617         PR target/99378
11618         * lra-constraints.c (process_address_1): Skip decomposing address
11619         for asm insn operand with unknown constraint.
11620
11621 2021-03-05  Martin Jambor  <mjambor@suse.cz>
11622
11623         PR ipa/98078
11624         * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
11625         corresponding speculative edges if we are about to resolve
11626         sepculation.  Make edge direct (and so resolve speculations) before
11627         removing it from call_site_hash.
11628         (cgraph_edge::make_direct): Relax the initial assert to allow calling
11629         the function on speculative direct edges.
11630
11631 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
11632
11633         PR rtl-optimization/99376
11634         * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
11635         of low-order zero bits is too large, set the result to 0 directly.
11636
11637 2021-03-04  Jakub Jelinek  <jakub@redhat.com>
11638
11639         PR middle-end/93235
11640         * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
11641         SUBREG and a SUBREG to op_mode can't be created.
11642
11643 2021-03-04  Alex Coplan  <alex.coplan@arm.com>
11644
11645         PR target/99381
11646         * config/aarch64/aarch64-sve-builtins.cc
11647         (function_resolver::require_vector_type): Handle error_mark_node.
11648
11649 2021-03-04  Ilya Leoshkevich  <iii@linux.ibm.com>
11650
11651         * cfgexpand.c (expand_asm_loc): Pass new parameter.
11652         (expand_asm_stmt): Likewise.
11653         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
11654         parameter.
11655         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
11656         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
11657         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
11658         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
11659         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
11660         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
11661         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
11662         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
11663         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
11664         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
11665         * doc/tm.texi (md_asm_adjust): Likewise.
11666         * target.def (md_asm_adjust): Likewise.
11667
11668 2021-03-04  Richard Biener  <rguenther@suse.de>
11669
11670         PR middle-end/97855
11671         * tree-pretty-print.c: Poison pp_printf.
11672         (dump_decl_name): Avoid use of pp_printf.
11673         (dump_block_node): Likewise.
11674         (dump_generic_node): Likewise.
11675
11676 2021-03-04  Martin Sebor  <msebor@redhat.com>
11677
11678         PR middle-end/96963
11679         PR middle-end/94655
11680         * builtins.c (handle_array_ref): New helper.
11681         (handle_mem_ref): New helper.
11682         (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
11683         into new helper functions.  Correct a workaround for vectorized
11684         assignments.
11685
11686 2021-03-03  Pat Haugen  <pthaugen@linux.ibm.com>
11687
11688         * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
11689         floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
11690         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
11691         *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
11692         attribute for Power10.
11693         * config/rs6000/mma.md (*movoo): Likewise.
11694         * config/rs6000/rs6000.md (define_attr "size"): Add 256.
11695         (define_mode_attr bits): Add DD/TD modes.
11696         * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
11697         store_conditionalpti): Update size attribute for Power10.
11698
11699 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11700
11701         PR bootstrap/92002
11702         * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
11703         -Wuninitialized, -Wmaybe-uninitialized.
11704         (wide-int.o-warn): Likewise.
11705
11706 2021-03-03  Richard Earnshaw  <rearnsha@arm.com>
11707
11708         * common/config/arm/arm-common.c: Include configargs.h.
11709         (arm_config_default): New function.
11710         (arm_target_mode): Renamed from arm_target_thumb_only.  Handle
11711         processors that do not support Thumb.  Take into account the
11712         --with-mode configuration setting for selecting the default.
11713         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
11714         (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
11715
11716 2021-03-03  Martin Liska  <mliska@suse.cz>
11717
11718         PR gcov-profile/97461
11719         * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
11720
11721 2021-03-03  Eric Botcazou  <ebotcazou@adacore.com>
11722
11723         PR target/99234
11724         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
11725         point back the hard frame pointer to its default location when the
11726         frame is larger than SEH_MAX_FRAME_SIZE.
11727
11728 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
11729
11730         PR target/99321
11731         * config/i386/predicates.md (logic_operator): New define_predicate.
11732         * config/i386/i386.md (mov + mem using comm arith peephole2):
11733         Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
11734         and the inner mode is [QH]Imode.
11735
11736 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
11737
11738         PR debug/99090
11739         * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
11740         (new_loc_list): Clear end_entry.
11741         (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
11742         if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx.  Fix comment
11743         typo.
11744         (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
11745         initialize also end_entry.
11746
11747 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
11748
11749         PR target/99085
11750         * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
11751         partitions, if in non-layout mode after reorder_blocks also move
11752         affected blocks to ensure a single partition transition.
11753
11754 2021-03-03  Jason Merrill  <jason@redhat.com>
11755
11756         PR c++/96078
11757         * cgraphunit.c (process_function_and_variable_attributes): Don't
11758         warn about flatten on an alias if the target also has it.
11759         * cgraph.h (symtab_node::get_alias_target_tree): New.
11760
11761 2021-03-02  David Edelsohn  <dje.gcc@gmail.com>
11762
11763         * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
11764         period to symbol name.
11765         (tls_get_addr_internal<mode>): Same.
11766
11767 2021-03-02  David Malcolm  <dmalcolm@redhat.com>
11768
11769         PR c/99323
11770         * diagnostic-show-locus.c
11771         (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
11772         column 0.
11773
11774 2021-03-02  Martin Sebor  <msebor@redhat.com>
11775
11776         PR middle-end/99276
11777         * builtins.c (warn_for_access): Remove stray warning text.
11778
11779 2021-03-02  Martin Sebor  <msebor@redhat.com>
11780
11781         PR middle-end/99295
11782         * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
11783         property.
11784
11785 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
11786
11787         PR debug/99319
11788         * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
11789         -gdwarf-5 -gstrict-dwarf.  For -gsplit-dwarf -gdwarf-5 use
11790         DW_MACRO_*_strx instead of DW_MACRO_*_strp.  Handle
11791         DW_MACRO_define_strx and DW_MACRO_undef_strx.
11792         (save_macinfo_strings): Use DW_MACRO_*_str* even with
11793         -gdwarf-5 -gstrict-dwarf.  Handle DW_MACRO_define_strx and
11794         DW_MACRO_undef_strx.
11795
11796 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
11797
11798         * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
11799         builtin signature.
11800         (BT_FN_V8HI_V8HI_UINT): Likewise.
11801         (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
11802         * config/s390/s390-builtins.def (B_NNPA): New macro definition.
11803         (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
11804         New builtin definitions.
11805         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
11806         vector extension version.
11807         * config/s390/s390.c (s390_expand_builtin): Check if builtins are
11808         available with current -march level.
11809         * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
11810         (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
11811         (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
11812         * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
11813         (vec_extend_to_fp32_lo): Likewise.
11814         (vec_round_from_fp32): Likewise.
11815         (vec_convert_to_fp16): Likewise.
11816         (vec_convert_from_fp16): Likewise.
11817         * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
11818         (vclfnls_v8hi): Likewise.
11819         (vcrnfs_v8hi): Likewise.
11820         (vcfn_v8hi): Likewise.
11821         (vcnf_v8hi): Likewise.
11822
11823 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
11824
11825         * common/config/s390/s390-common.c (processor_flags_table): New entry.
11826         * config.gcc: Enable arch14 for --with-arch and --with-tune.
11827         * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
11828         arch14 for unknown CPU models.
11829         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
11830         * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
11831         (s390_get_sched_attrmask): Likewise.
11832         (s390_get_unit_mask): Likewise.
11833         * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
11834         (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
11835         (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
11836         (TARGET_NNPA_P): New macro definitions.
11837         * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
11838         * config/s390/s390.opt: Add PROCESSOR_ARCH14.
11839
11840 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
11841
11842         PR middle-end/95757
11843         * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
11844         condition.  Call register_edge_assert_for_1 for == 0, != 0, == 1 and
11845         != 1 comparisons if name is lhs of a comparison.
11846
11847 2021-03-01  Iain Sandoe  <iain@sandoe.co.uk>
11848
11849         PR target/44107
11850         PR target/48097
11851         * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
11852         * config/darwin.c (darwin_should_restore_cfa_state): New.
11853         * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
11854         * doc/tm.texi: Regenerated.
11855         * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
11856         * dwarf2cfi.c (connect_traces): If the target requests, restore
11857         the CFA expression after a DW_CFA_restore.
11858         * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
11859
11860 2021-03-01  Martin Liska  <mliska@suse.cz>
11861
11862         PR target/99313
11863         * optc-save-gen.awk: Add 4 more exceptions.
11864
11865 2021-03-01  Nathan Sidwell  <nathan@acm.org>
11866
11867         PR c++/99294
11868         * tree.h (TYPE_ALIGN_RAW): New accessor.
11869         (TYPE_ALIGN): Use it.
11870
11871 2021-03-01  Jan Hubicka  <jh@suse.cz>
11872
11873         PR ipa/98338
11874         * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
11875
11876 2021-03-01  Eric Botcazou  <ebotcazou@adacore.com>
11877
11878         PR target/99234
11879         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
11880         point the hard frame pointer to the SSE register save area instead
11881         of the general register save area.  Perform only minimal adjustment
11882         for small frames if it is initially not correctly aligned.
11883         (ix86_expand_prologue): Remove early saves for a SEH target.
11884         * config/i386/winnt.c (struct seh_frame_state): Document constraint.
11885
11886 2021-02-28  Jakub Jelinek  <jakub@redhat.com>
11887
11888         PR c/99304
11889         * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
11890         typo - referneced -> referenced.
11891         * tree.c (component_ref_size): Fix comment typo -
11892         refernce -> reference.
11893         * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
11894         traling -> trailing.
11895         (aliasing_component_refs_p): Fix comment typos -
11896         refernce -> reference and refernece -> reference and
11897         traling -> trailing.
11898         (nonoverlapping_refs_since_match_p): Fix comment typo -
11899         referneces -> references.
11900         * doc/invoke.texi (--param modref-max-bases): Fix a typo -
11901         referneces -> references.
11902
11903 2021-02-27  Iain Sandoe  <iain@sandoe.co.uk>
11904
11905         * config/host-darwin.c (darwin_gt_pch_use_address): Modify
11906         diagnostic message to avoid use of a contraction and format
11907         warning.
11908
11909 2021-02-27  Jakub Jelinek  <jakub@redhat.com>
11910
11911         PR other/99288
11912         * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
11913         HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
11914         * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
11915         HOST_WIDE_INT_PRINT_DEC in inform format string.  Fix comment
11916         typos.
11917
11918 2021-02-26  Richard Biener  <rguenther@suse.de>
11919
11920         PR middle-end/99281
11921         * expr.c (store_field): For calls with return-slot optimization
11922         and addressable return type expand the store directly.
11923
11924 2021-02-26  Richard Biener  <rguenther@suse.de>
11925
11926         PR c/99275
11927         * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
11928
11929 2021-02-26  Peter Bergner  <bergner@linux.ibm.com>
11930
11931         PR target/99279
11932         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
11933         with an "if" test.
11934
11935 2021-02-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
11936
11937         * config.gcc: Add rs6000-pcrel-opt.o.
11938         * config/rs6000/rs6000-pcrel-opt.c: New file.
11939         * config/rs6000/pcrel-opt.md: New file.
11940         * config/rs6000/predicates.md: Add d_form_memory predicate.
11941         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
11942         * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
11943         * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
11944         pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
11945         and make_pass_pcrel_opt().
11946         * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
11947         (rs6000_option_override_internal): Add pcrel-opt.
11948         (rs6000_delegitimize_address): Support pcrel-opt.
11949         (rs6000_opt_masks): Add pcrel-opt.
11950         (pcrel_opt_valid_mem_p): New function.
11951         (reg_to_non_prefixed): Make global.
11952         (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
11953         (output_pcrel_opt_reloc): New function.
11954         * config/rs6000/rs6000.md (loads_extern_addr): New attr.
11955         (pcrel_extern_addr): Set loads_extern_addr.
11956         Add include for pcrel-opt.md.
11957         * config/rs6000/rs6000.opt: Add -mpcrel-opt.
11958         * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
11959         pcrel-opt.md.
11960
11961 2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
11962
11963         PR target/98996
11964         * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
11965         If TARGET_64BIT and dest is SUBREG, we check the width, if it
11966         equal to SImode, we use SImode operation, just like what we are
11967         doing for REG one.
11968
11969 2021-02-26  Marek Polacek  <polacek@redhat.com>
11970
11971         * builtins.c (warn_for_access): Fix typos.
11972
11973 2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
11974
11975         * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
11976         mark in front of the immediate quantity.
11977         (<optab>_rolsi3_uxtw): Likewise.
11978
11979 2021-02-25  Richard Earnshaw  <rearnsha@arm.com>
11980
11981         PR target/99271
11982         * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
11983         (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
11984         (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
11985         address and disable when the FPCXT is not available.
11986         (nonsecure_call_value_reg_thumb2): Likewise.
11987
11988 2021-02-25  Nathan Sidwell  <nathan@acm.org>
11989
11990         PR c++/99166
11991         * doc/invoke.texi (flang-info-module-cmi): Renamed option.
11992
11993 2021-02-25  Tamar Christina  <tamar.christina@arm.com>
11994
11995         * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
11996
11997 2021-02-25  Richard Biener  <rguenther@suse.de>
11998
11999         PR tree-optimization/99253
12000         * tree-vect-loop.c (check_reduction_path): First compute
12001         code, then verify out-of-loop uses.
12002
12003 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
12004
12005         PR target/95798
12006         * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
12007
12008 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
12009
12010         PR tree-optimization/80635
12011         * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
12012         VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
12013         has mode precision.
12014
12015 2021-02-25  Richard Biener  <rguenther@suse.de>
12016
12017         * tree-vect-slp.c (optimize_load_redistribution_1): Delay
12018         load_map population.
12019         (vect_match_slp_patterns_2): Revert part of last change.
12020         (vect_analyze_slp): Do not interleave optimize_load_redistribution
12021         with pattern detection but do it afterwards.  Dump the
12022         whole SLP graph after pattern recognition and load
12023         redistribution optimization finished.
12024
12025 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
12026
12027         PR fortran/99226
12028         * omp-low.c (struct omp_context): Add teams_nested_p and
12029         nonteams_nested_p members.
12030         (scan_omp_target): Diagnose teams nested inside of target with other
12031         directives strictly nested inside of the same target.
12032         (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
12033         ctx->nonteams_nested_p as needed.
12034
12035 2021-02-24  Vladimir N. Makarov  <vmakarov@redhat.com>
12036
12037         PR inline-asm/99123
12038         * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
12039
12040 2021-02-24  Hans-Peter Nilsson  <hp@axis.com>
12041
12042         * config/cris/cris.c (cris_expand_prologue): Set
12043         current_function_static_stack_size, if flag_stack_usage_info.
12044
12045 2021-02-24  Pat Haugen  <pthaugen@linux.ibm.com>
12046
12047         * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
12048         (rs6000_final_prescan_insn): Adjust.
12049         (rs6000_asm_output_opcode): Likewise.
12050
12051 2021-02-24  Martin Sebor  <msebor@redhat.com>
12052
12053         PR middle-end/97172
12054         * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
12055         from function arguments.
12056
12057 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
12058
12059         PR tree-optimization/99220
12060         * tree-vect-slp.c (optimize_load_redistribution_1): Remove
12061         node from cache when it's about to be deleted.
12062
12063 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
12064
12065         PR tree-optimization/99225
12066         * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
12067         to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
12068         build_int_cst (..., 1).  Formatting fixes.
12069
12070 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
12071
12072         PR tree-optimization/99149
12073         * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
12074         buffer.
12075         (vect_slp_reset_pattern): Remove.
12076         (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
12077         (complex_mul_pattern::build, complex_fma_pattern::build,
12078         complex_fms_pattern::build): Fix ref counts.
12079         * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
12080         when node is being deleted.
12081         (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
12082         (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
12083         stores.
12084         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
12085
12086 2021-02-24  Matthias Klose  <doko@ubuntu.com>
12087
12088         Revert:
12089         2020-12-07  Matthias Klose  <doko@ubuntu.com>
12090
12091         * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
12092         and ENABLE_RTL_FLAG_CHECKING.
12093
12094 2021-02-24  Richard Biener  <rguenther@suse.de>
12095
12096         PR c/99224
12097         * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
12098
12099 2021-02-23  Peter Bergner  <bergner@linux.ibm.com>
12100
12101         * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
12102         (vsx_assemble_pair): ...to this.
12103         (*mma_assemble_pair): Rename from this...
12104         (*vsx_assemble_pair): ...to this.
12105         (mma_disassemble_pair): Rename from this...
12106         (vsx_disassemble_pair): ...to this.
12107         (*mma_disassemble_pair): Rename from this...
12108         (*vsx_disassemble_pair): ...to this.
12109         * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
12110         BU_COMPAT): New macros.
12111         (mma_assemble_pair): Rename from this...
12112         (vsx_assemble_pair): ...to this.
12113         (mma_disassemble_pair): Rename from this...
12114         (vsx_disassemble_pair): ...to this.
12115         (mma_assemble_pair): New compatibility built-in.
12116         (mma_disassemble_pair): Likewise.
12117         * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
12118         (RS6000_BUILTIN_COMPAT): Define.
12119         (bdesc_compat): New.
12120         (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
12121         (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
12122         and VSX_BUILTIN_ASSEMBLE_PAIR.
12123         (rs6000_init_builtins): Register compatibility built-ins.
12124         (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
12125         VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
12126         VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
12127         * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
12128         (__builtin_vsx_assemble_pair): ...to this.
12129         (__builtin_mma_disassemble_pair): Rename from this...
12130         (__builtin_vsx_disassemble_pair): ...to this.
12131
12132 2021-02-23  Martin Liska  <mliska@suse.cz>
12133
12134         PR sanitizer/99168
12135         * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
12136         with different alignment. That leads to an invalid red zone
12137         size allocated in runtime.
12138
12139 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
12140
12141         PR tree-optimization/99204
12142         * fold-const.c (fold_read_from_constant_string): Check that
12143         tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
12144
12145 2021-02-23  Segher Boessenkool  <segher@kernel.crashing.org>
12146             Kewen Lin  <linkw@gcc.gnu.org>
12147
12148         * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
12149         (rotl<mode>3_insert_3): ...this.
12150         (plus_ior_xor): New code_iterator.
12151         (define_split for GPR rl*imi): New splitter.
12152         * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
12153         for integer merging.
12154
12155 2021-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12156
12157         * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
12158         Define.
12159         * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
12160         into a register when the above is enabled.
12161         * config/aarch64/aarch64.c (neoversev1_tunings):
12162         AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
12163         (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
12164
12165 2021-02-22  Hans-Peter Nilsson  <hp@axis.com>
12166
12167         * config/cris/cris.c (cris_print_operand) <'T'>: Change
12168         valid operand from is now an addi mult-value to shift-value.
12169         * config/cris/cris.md (*addi): Change expression of scaled
12170         operand from mult to ashift.
12171         * config/cris/cris.md (*addi_reload): New insn_and_split.
12172
12173 2021-02-22  John David Anglin  <danglin@gcc.gnu.org>
12174
12175         PR target/85074
12176         * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
12177         hook_bool_const_tree_hwi_hwi_const_tree_true.
12178         (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
12179
12180 2021-02-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12181
12182         PR rtl-optimization/98791
12183         * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
12184         for unordered modes.
12185
12186 2021-02-22  Martin Liska  <mliska@suse.cz>
12187
12188         * tree-inline.c (inline_forbidden_p): Set
12189         inline_forbidden_reason.
12190
12191 2021-02-22  Richard Biener  <rguenther@suse.de>
12192
12193         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
12194         costed subgraph.
12195
12196 2021-02-22  Richard Biener  <rguenther@suse.de>
12197
12198         PR tree-optimization/99165
12199         * gimple-ssa-store-merging.c (pass_store_merging::process_store):
12200         Accumulate changed to ret.
12201
12202 2021-02-21  Uros Bizjak  <ubizjak@gmail.com>
12203
12204         Revert:
12205         2020-12-09  UroÅ¡ Bizjak  <ubizjak@gmail.com>
12206
12207         * config/i386/i386.h (REG_ALLOC_ORDER): Remove
12208
12209 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
12210
12211         PR target/99134
12212         * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
12213         pattern.
12214         (trunctf<DFP_ALL:mode>2): Likewise.
12215         (trunctdtf2_vr): Likewise.
12216         (trunctdtf2): Likewise.
12217         (extend<DFP_ALL:mode>tf2_vr): Likewise.
12218         (extend<DFP_ALL:mode>tf2): Likewise.
12219         (extendtftd2_vr): Likewise.
12220         (extendtftd2): Likewise.
12221
12222 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
12223
12224         * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
12225         add memory alternative.
12226         (tf_to_fprx2): New pattern.
12227
12228 2021-02-19  Martin Sebor  <msebor@redhat.com>
12229
12230         PR c/97172
12231         * attribs.c (init_attr_rdwr_indices): Guard vblist use.
12232         (attr_access::free_lang_data): Remove a spurious test.
12233
12234 2021-02-19  Nathan Sidwell  <nathan@acm.org>
12235
12236         * doc/invoke.texi (flang-info-module-read): Document.
12237
12238 2021-02-19  Martin Liska  <mliska@suse.cz>
12239
12240         PR translation/99167
12241         * params.opt: Fix typo.
12242
12243 2021-02-19  Richard Biener  <rguenther@suse.de>
12244
12245         PR middle-end/99122
12246         * tree-inline.c (inline_forbidden_p): Do not inline functions
12247         with VLA arguments or return value.
12248
12249 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
12250
12251         PR target/98998
12252         * config/arm/arm.md (*stack_protect_combined_set_insn,
12253         *stack_protect_combined_test_insn): If force_const_mem result
12254         is not valid general operand, force its address into the destination
12255         register first.
12256
12257 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
12258
12259         PR ipa/99034
12260         * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
12261         pad or non-local label, put FORCED_LABELs from bb b after that label
12262         rather than before it.
12263
12264 2021-02-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12265
12266         PR target/98657
12267         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
12268         expand_vector_broadcast' to emit the vec_duplicate operand.
12269
12270 2021-02-18  Vladimir N. Makarov  <vmakarov@redhat.com>
12271
12272         PR rtl-optimization/96264
12273         * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
12274         hard regs.
12275
12276 2021-02-18  H.J. Lu  <hjl.tools@gmail.com>
12277
12278         PR target/99113
12279         * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
12280         looking up the retain attribute.
12281         (resolve_unique_section): Likewise.
12282         (get_variable_section): Likewise.
12283         (switch_to_section): Likewise.  Warn when a symbol without the
12284         retain attribute and a symbol with the retain attribute are
12285         placed in the section with the same name, instead of the used
12286         attribute.
12287         * doc/extend.texi: Document the "retain" attribute.
12288
12289 2021-02-18  Nathan Sidwell  <nathan@acm.org>
12290
12291         PR c++/99023
12292         * doc/invoke.texi (flang-info-include-translate): Document header
12293         lookup behaviour.
12294
12295 2021-02-18  Richard Biener  <rguenther@suse.de>
12296
12297         PR middle-end/99122
12298         * ipa-fnsummary.c (analyze_function_body): Set
12299         CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
12300         * tree-inline.c (insert_init_debug_bind): Pass NULL for
12301         error_mark_node values.
12302         (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
12303         values.
12304         (setup_one_parameter): Delay force_value_to_type until when
12305         it's needed.
12306
12307 2021-02-18  Hans-Peter Nilsson  <hp@axis.com>
12308
12309         PR tree-optimization/99142
12310         * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
12311
12312 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
12313
12314         * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
12315         wide_int_bitmask::wide_int_bitmask (uint64_t),
12316         wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
12317         wide_int_bitmask::operator ~ () const,
12318         wide_int_bitmask::operator | (wide_int_bitmask) const,
12319         wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
12320         instead of inline.
12321         * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
12322         PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
12323         PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
12324         PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
12325         PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
12326         PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
12327         PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
12328         PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
12329         PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
12330         PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
12331         PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
12332         PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
12333         PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
12334         PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
12335         PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
12336         PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
12337         PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
12338         PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
12339         PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
12340         PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
12341         PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
12342         PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
12343         PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
12344         PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
12345
12346 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
12347
12348         PR middle-end/99109
12349         * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
12350         (build_printable_array_type): ... this.  Add nelts argument.  For
12351         overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead.  If
12352         nelts, call build_array_type_nelts.
12353         (array_bounds_checker::check_mem_ref): Use build_printable_array_type
12354         instead of build_zero_elt_array_type and build_array_type_nelts.
12355
12356 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
12357
12358         PR target/99104
12359         * config/i386/i386.c (distance_non_agu_define): Don't call
12360         extract_insn_cached here.
12361         (ix86_lea_outperforms): Save and restore recog_data around call
12362         to distance_non_agu_define and distance_agu_use.
12363         (ix86_ok_to_clobber_flags): Remove.
12364         (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
12365         (ix86_avoid_lea_for_addr): Likewise.  Adjust function comment.
12366         * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
12367         into define_insn.  Move the splitting to define_peephole2 and
12368         check there using peep2_regno_dead_p if FLAGS_REG is dead.
12369
12370 2021-02-17  Julian Brown  <julian@codesourcery.com>
12371
12372         * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
12373         for non-decls.
12374
12375 2021-02-17  Xi Ruoyao  <xry111@mengyan1223.wang>
12376
12377         PR target/98491
12378         * config/mips/mips.c (mips_symbol_insns): Do not use
12379         MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
12380
12381 2021-02-16  Vladimir N. Makarov  <vmakarov@redhat.com>
12382
12383         PR inline-asm/98096
12384         * stmt.c (resolve_operand_name_1): Take inout operands into account
12385         for access to labels by names.
12386         * doc/extend.texi: Describe counting operands for accessing labels.
12387
12388 2021-02-16  Richard Biener  <rguenther@suse.de>
12389
12390         PR tree-optimization/38474
12391         * tree-ssa-structalias.c (variable_info::address_taken): New.
12392         (new_var_info): Initialize address_taken.
12393         (process_constraint): Set address_taken.
12394         (solve_constraints): Use the new address_taken flag rather
12395         than is_reg_var for sorting variables.
12396         (dump_constraint): Dump the variable number if the name
12397         is just NULL.
12398
12399 2021-02-16  Jakub Jelinek  <jakub@redhat.com>
12400
12401         PR target/99100
12402         * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
12403         multiply by 4096 and for inbranch by 8192.
12404         * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
12405         return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
12406
12407 2021-02-15  Maya Rashish  <coypu@sdf.org>
12408
12409         * config/aarch64/aarch64.c (aarch64_init_builtins):
12410         Call SUBTARGET_INIT_BUILTINS.
12411
12412 2021-02-15  Peter Bergner  <bergner@linux.ibm.com>
12413
12414         PR rtl-optimization/98872
12415         * init-regs.c (initialize_uninitialized_regs): Skip initialization
12416         if CONST0_RTX is NULL.
12417
12418 2021-02-15  Richard Sandiford  <richard.sandiford@arm.com>
12419
12420         PR rtl-optimization/98863
12421         * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
12422         (function_info::build_info): Turn into a declaration, moving the
12423         definition to internals.h.
12424         (function_info::bb_walker): Declare.
12425         (function_info::create_reg_use): Likewise.
12426         (function_info::calculate_potential_phi_regs): Take a build_info
12427         parameter.
12428         (function_info::place_phis, function_info::create_ebbs): Declare.
12429         (function_info::calculate_ebb_live_in_for_debug): Likewise.
12430         (function_info::populate_backedge_phis): Delete.
12431         (function_info::start_block, function_info::end_block): Declare.
12432         (function_info::populate_phi_inputs): Delete.
12433         (function_info::m_potential_phi_regs): Move information to build_info.
12434         * rtl-ssa/internals.h: New file.
12435         (function_info::bb_phi_info): New class.
12436         (function_info::build_info): Moved from functions.h.
12437         Add a constructor and destructor.
12438         (function_info::build_info::ebb_use): Delete.
12439         (function_info::build_info::ebb_def): Likewise.
12440         (function_info::build_info::bb_live_out): Likewise.
12441         (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
12442         (function_info::build_info::potential_phi_regs): Likewise.
12443         (function_info::build_info::potential_phi_regs_for_debug): Likewise.
12444         (function_info::build_info::ebb_def_regs): Likewise.
12445         (function_info::build_info::bb_phis): Likewise.
12446         (function_info::build_info::bb_mem_live_out): Likewise.
12447         (function_info::build_info::bb_to_rpo): Likewise.
12448         (function_info::build_info::def_stack): Likewise.
12449         (function_info::build_info::old_def_stack_limit): Likewise.
12450         * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
12451         Remove the regno argument.  Push the previous definition onto the
12452         definition stack where necessary.
12453         * rtl-ssa/accesses.cc: Include internals.h.
12454         * rtl-ssa/changes.cc: Likewise.
12455         * rtl-ssa/blocks.cc: Likewise.
12456         (function_info::build_info::build_info): Define.
12457         (function_info::build_info::~build_info): Likewise.
12458         (function_info::bb_walker): New class.
12459         (function_info::bb_walker::bb_walker): Define.
12460         (function_info::add_live_out_use): Convert a logarithmic-complexity
12461         test into a linear one.  Allow the same definition to be passed
12462         multiple times.
12463         (function_info::calculate_potential_phi_regs): Moved from
12464         functions.cc.  Take a build_info parameter and store the
12465         information there instead.
12466         (function_info::place_phis): New function.
12467         (function_info::add_entry_block_defs): Update call to record_reg_def.
12468         (function_info::calculate_ebb_live_in_for_debug): New function.
12469         (function_info::add_phi_nodes): Use bb_phis to decide which
12470         registers need phi nodes and initialize ebb_def_regs accordingly.
12471         Do not add degenerate phis here.
12472         (function_info::add_artificial_accesses): Use create_reg_use.
12473         Assert that all definitions are listed in the DF LR sets.
12474         Update call to record_reg_def.
12475         (function_info::record_block_live_out): Record live-out register
12476         values in the phis of successor blocks.  Use the live-out set
12477         when processing the last block in an EBB, instead of always
12478         using the live-in sets of successor blocks.  AND the live sets
12479         with the set of registers that have been defined in the EBB,
12480         rather than with all potential phi registers.  Cope correctly
12481         with branches back to the start of the current EBB.
12482         (function_info::start_block): New function.
12483         (function_info::end_block): Likewise.
12484         (function_info::populate_phi_inputs): Likewise.
12485         (function_info::create_ebbs): Likewise.
12486         (function_info::process_all_blocks): Rewrite into a multi-phase
12487         process.
12488         * rtl-ssa/functions.cc: Include internals.h.
12489         (function_info::calculate_potential_phi_regs): Move to blocks.cc.
12490         (function_info::init_function_data): Remove caller.
12491         * rtl-ssa/insns.cc: Include internals.h
12492         (function_info::create_reg_use): New function.  Lazily any
12493         degenerate phis needed by the linear RPO view.
12494         (function_info::record_use): Use create_reg_use.  When processing
12495         debug uses, use potential_phi_regs and test it before checking
12496         whether the register is live on entry to the current EBB.  Lazily
12497         calculate ebb_live_in_for_debug.
12498         (function_info::record_call_clobbers): Update call to record_reg_def.
12499         (function_info::record_def): Likewise.
12500
12501 2021-02-15  Martin Liska  <mliska@suse.cz>
12502
12503         * toplev.c (init_asm_output): Free output of
12504         gen_command_line_string function.
12505         (process_options): Likewise.
12506
12507 2021-02-15  Martin Liska  <mliska@suse.cz>
12508
12509         * params.opt: Add 2 missing Param keywords.
12510
12511 2021-02-15  Eric Botcazou  <ebotcazou@adacore.com>
12512
12513         * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
12514
12515 2021-02-15  Jakub Jelinek  <jakub@redhat.com>
12516
12517         PR tree-optimization/99079
12518         * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
12519         useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check.  Instead
12520         require both type and TREE_TYPE (@1) to be integral types and either
12521         type having smaller or equal precision, or TREE_TYPE (@1) being
12522         unsigned type, or type being signed type.  If TREE_TYPE (@1)
12523         doesn't have wrapping overflow, perform the subtraction of one in
12524         unsigned type.
12525
12526 2021-02-14  Jan Hubicka  <hubicka@ucw.cz>
12527             Richard Biener  <rguether@suse.de>
12528
12529         PR ipa/97346
12530         * ipa-reference.c (ipa_init): Only conditinally initialize
12531         reference_vars_to_consider.
12532         (propagate): Conditionally deninitialize reference_vars_to_consider.
12533         (ipa_reference_write_optimization_summary): Sanity check that
12534         reference_vars_to_consider is not allocated.
12535
12536 2021-02-13  Levy Hsu  <admin@levyhsu.com>
12537
12538         PR target/97417
12539         * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
12540         extend parameter to get_si_mem_base_reg declaration.
12541         (get_si_mem_base_reg): Add extend parameter.  Set it.
12542         (analyze): Pass extend arg to get_si_mem_base_reg.
12543         (transform): Likewise.  Use it when rewriting mems.
12544         * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
12545         loads and emit sign/zero extending load followed by subreg move.
12546
12547 2021-02-13  Jim Wilson  <jimw@sifive.com>
12548
12549         PR target/97417
12550         * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
12551         exit when !reload_completed.  Only perform check for compressed reg
12552         if reload_completed.
12553         (riscv_rtx_costs): In MEM case, when optimizing for size and
12554         shorten memrefs, if not compressible, then increase cost.
12555
12556 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
12557
12558         PR rtl-optimization/98439
12559         * recog.c (pass_split_before_regstack::gate): Enable even when
12560         pass_split_before_sched2 is enabled if -fselective-scheduling2 is
12561         on.
12562
12563 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
12564
12565         PR target/96166
12566         * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
12567         swap of V2SImode elements in memory into DImode memory rotate by 32.
12568
12569 2021-02-12  Martin Sebor  <msebor@redhat.com>
12570
12571         * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
12572
12573 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
12574
12575         * rtl-ssa/accesses.cc (function_info::make_use_available): Use
12576         m_temp_obstack rather than m_obstack to allocate the temporary use.
12577
12578 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
12579
12580         * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
12581         as read-modify operations.
12582
12583 2021-02-12  Richard Biener  <rguenther@suse.de>
12584
12585         PR middle-end/38474
12586         * ipa-fnsummary.c (unmodified_parm_1): Only walk when
12587         fbi->aa_walk_budget is bigger than zero.  Update
12588         fbi->aa_walk_budget.
12589         (param_change_prob): Likewise.
12590         * ipa-prop.c (detect_type_change_from_memory_writes):
12591         Properly account walk_aliased_vdefs.
12592         (parm_preserved_before_stmt_p): Canonicalize updates.
12593         (parm_ref_data_preserved_p): Likewise.
12594         (parm_ref_data_pass_through_p): Likewise.
12595         (determine_known_aggregate_parts): Account own alias queries.
12596
12597 2021-02-12  Martin Liska  <mliska@suse.cz>
12598
12599         * opts-common.c (decode_cmdline_option): Release werror_arg.
12600         * opts.c (gen_producer_string): Release output of
12601         gen_command_line_string.
12602
12603 2021-02-12  Richard Biener  <rguenther@suse.de>
12604
12605         PR tree-optimization/38474
12606         * params.opt (-param=max-store-chains-to-track=): New param.
12607         (-param=max-stores-to-track=): Likewise.
12608         * doc/invoke.texi (max-store-chains-to-track): Document.
12609         (max-stores-to-track): Likewise.
12610         * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
12611         New.
12612         (pass_store_merging::m_n_stores): Likewise.
12613         (pass_store_merging::terminate_and_process_chain): Update
12614         m_n_stores and m_n_chains.
12615         (pass_store_merging::process_store): Likewise.   Terminate
12616         oldest chains if the number of stores or chains get too large.
12617         (imm_store_chain_info::terminate_and_process_chain): Dump
12618         chain length.
12619
12620 2021-02-11  Eric Botcazou  <ebotcazou@adacore.com>
12621
12622         * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
12623         the cold section, emit a nop before the directive if the previous
12624         active instruction can throw.
12625
12626 2021-02-11  Peter Bergner  <bergner@linux.ibm.com>
12627
12628         PR target/99041
12629         * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
12630         memory addresses that are legal for quad word accesses.
12631
12632 2021-02-11  Andrea Corallo  <andrea.corallo@arm.com>
12633
12634         PR target/98931
12635         * config/arm/thumb2.md (*doloop_end_internal): Generate
12636         alternative sequence to handle long range branches.
12637
12638 2021-02-11  Joel Hutton  <joel.hutton@arm.com>
12639
12640         PR tree-optimization/98772
12641         * optabs-tree.c (supportable_half_widening_operation): New function
12642         to check for supportable V8QI->V8HI widening patterns.
12643         * optabs-tree.h (supportable_half_widening_operation): New function.
12644         * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
12645         to create promotion stmts for V8QI->V8HI widening patterns.
12646         (vectorizable_conversion): Add case for V8QI->V8HI.
12647
12648 2021-02-11  Richard Biener  <rguenther@suse.de>
12649
12650         * sparseset.h (SPARSESET_ELT_BITS): Remove.
12651         (SPARSESET_ELT_TYPE): Use unsigned int.
12652         * fwprop.c: Do not include sparseset.h.
12653
12654 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
12655
12656         PR c++/99035
12657         * varasm.c (declare_weak): For -fsyntax-only, allow even
12658         TREE_ASM_WRITTEN function decls.
12659
12660 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
12661
12662         PR target/99025
12663         * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
12664         <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
12665         <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
12666         <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
12667         calling simplify_gen_subreg on it.
12668
12669 2021-02-10  Martin Liska  <mliska@suse.cz>
12670
12671         * config/nvptx/nvptx.c (nvptx_option_override): Use
12672         flag_patchable_function_entry instead of the removed
12673         function_entry_patch_area_size.
12674
12675 2021-02-10  Martin Liska  <mliska@suse.cz>
12676
12677         PR tree-optimization/99002
12678         PR tree-optimization/99026
12679         * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
12680         leak when adjacent cases are merged.
12681         * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
12682         release_clusters.
12683         (make_pass_lower_switch): Remove trailing whitespace.
12684         * tree-switch-conversion.h (release_clusters): New.
12685
12686 2021-02-10  Richard Biener  <rguenther@suse.de>
12687
12688         PR rtl-optimization/99054
12689         * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
12690         (fixup_partitions): Adjust.
12691         (rtl_verify_edges): Likewise.
12692
12693 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
12694
12695         PR middle-end/99007
12696         * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
12697         temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
12698         calls.
12699
12700 2021-02-10  Richard Biener  <rguenther@suse.de>
12701
12702         PR ipa/99029
12703         * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
12704         for callees.
12705
12706 2021-02-10  Richard Biener  <rguenther@suse.de>
12707
12708         PR tree-optimization/99024
12709         * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
12710         clear loop->aux if it is associated with the destroyed loop_vinfo.
12711
12712 2021-02-10  Martin Liska  <mliska@suse.cz>
12713
12714         PR tree-optimization/99002
12715         * gimple-if-to-switch.cc (find_conditions): Fix memory leak
12716         in the function.
12717
12718 2021-02-10  Martin Liska  <mliska@suse.cz>
12719
12720         PR ipa/99003
12721         * ipa-icf.c (sem_item::add_reference): Fix memory leak when
12722         a reference exists.
12723
12724 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
12725
12726         PR debug/98755
12727         * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
12728         at class scope for DWARF5+.
12729
12730 2021-02-09  Eric Botcazou  <ebotcazou@adacore.com>
12731
12732         PR rtl-optimization/96015
12733         * reorg.c (skip_consecutive_labels): Minor comment tweaks.
12734         (relax_delay_slots): When deleting a jump to the next active
12735         instruction over a barrier, first delete the barrier if the
12736         jump is the only way to reach the target label.
12737
12738 2021-02-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12739
12740         * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
12741         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
12742         vector multiplies and vect.alu for SSRA.
12743         * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
12744         vect.mul cost field.
12745         * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
12746         * config/arm/arm.c: Likewise.
12747
12748 2021-02-09  Richard Biener  <rguenther@suse.de>
12749
12750         PR tree-optimization/98863
12751         * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
12752         * tree-ssa-sccvn.c (last_pushed_avail): New global.
12753         (rpo_elim::eliminate_push_avail): Chain pushed avails.
12754         (unwind_state::avail_top): Add.
12755         (do_unwind): Rewrite unwinding of avail entries.
12756         (do_rpo_vn): Initialize last_pushed_avail and
12757         avail_top of the undo state.
12758
12759 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
12760
12761         PR middle-end/99004
12762         * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
12763         const char * to char * and free those pointers after use.
12764
12765 2021-02-09  Richard Biener  <rguenther@suse.de>
12766
12767         PR tree-optimization/99017
12768         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
12769         zero vector cost entries.
12770
12771 2021-02-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12772
12773         PR middle-end/98974
12774         * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
12775         parameter in vectorizable_condition.
12776
12777 2021-02-08  Richard Biener  <rguenther@suse.de>
12778
12779         PR lto/96591
12780         * tree.c (walk_tree_1): Walk VECTOR_CST elements.
12781
12782 2021-02-08  Martin Liska  <mliska@suse.cz>
12783
12784         PR lto/98971
12785         * cfgexpand.c (pass_expand::execute): Parse per-function option
12786         flag_patchable_function_entry and use it.
12787         * common.opt: Remove function_entry_patch_area_size and
12788         function_entry_patch_area_start global variables.
12789         * opts.c (parse_and_check_patch_area): New function.
12790         (common_handle_option): Use it.
12791         * opts.h (parse_and_check_patch_area): New function.
12792         * toplev.c (process_options): Parse and use
12793         function_entry_patch_area_size.
12794
12795 2021-02-08  Martin Sebor  <msebor@redhat.com>
12796
12797         * doc/extend.texi (attribute malloc): Correct typos.
12798
12799 2021-02-05  Nathan Sidwell  <nathan@acm.org>
12800
12801         PR driver/98943
12802         * gcc.c (driver::maybe_run_linker): Check for input file
12803         accessibility if not linking.
12804
12805 2021-02-05  Richard Biener  <rguenther@suse.de>
12806
12807         PR tree-optimization/98855
12808         * tree-vectorizer.h (add_stmt_cost): New overload.
12809         * tree-vect-slp.c (li_cost_vec_cmp): New.
12810         (vect_bb_slp_scalar_cost): Cost individual loop regions
12811         separately.  Account for the scalar instance root stmt.
12812
12813 2021-02-05  Tom de Vries  <tdevries@suse.de>
12814
12815         PR debug/98656
12816         * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
12817         argument.
12818         (bit_test_cluster::emit): Reuse location_t for newly created
12819         gswitch statement.
12820         (switch_decision_tree::try_switch_expansion): Preserve
12821         location_t.
12822         * tree-switch-conversion.h: Change function signatures.
12823
12824 2021-02-05  Jakub Jelinek  <jakub@redhat.com>
12825
12826         PR target/98957
12827         * config/i386/i386-options.c (m_NONE, m_ALL): Define.
12828         * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
12829         X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
12830         (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
12831
12832 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12833
12834         * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
12835         * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
12836         * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
12837         (vget_high_f16): Reimplement using new builtin.
12838         (vget_high_f32): Likewise.
12839         (vget_high_f64): Likewise.
12840         (vget_high_p8): Likewise.
12841         (vget_high_p16): Likewise.
12842         (vget_high_p64): Likewise.
12843         (vget_high_s8): Likewise.
12844         (vget_high_s16): Likewise.
12845         (vget_high_s32): Likewise.
12846         (vget_high_s64): Likewise.
12847         (vget_high_u8): Likewise.
12848         (vget_high_u16): Likewise.
12849         (vget_high_u32): Likewise.
12850         (vget_high_u64): Likewise.
12851
12852 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12853
12854         * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
12855         * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
12856         * config/aarch64/arm_neon.h (__GET_LOW): Delete.
12857         (vget_low_f16): Reimplement using new builtin.
12858         (vget_low_f32): Likewise.
12859         (vget_low_f64): Likewise.
12860         (vget_low_p8): Likewise.
12861         (vget_low_p16): Likewise.
12862         (vget_low_p64): Likewise.
12863         (vget_low_s8): Likewise.
12864         (vget_low_s16): Likewise.
12865         (vget_low_s32): Likewise.
12866         (vget_low_s64): Likewise.
12867         (vget_low_u8): Likewise.
12868         (vget_low_u16): Likewise.
12869         (vget_low_u32): Likewise.
12870         (vget_low_u64): Likewise.
12871
12872 2021-02-05  Kito Cheng  <kito.cheng@sifive.com>
12873
12874         * gcc.c (print_multilib_info): Check all required argument is provided
12875         by default arg.
12876
12877 2021-02-05  liuhongt  <hongtao.liu@intel.com>
12878
12879         PR target/98537
12880         * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
12881         generate integer mask comparison for 128/256-bits vector when
12882         op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
12883         delete redundant !maskcmp condition.
12884         (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
12885         here.
12886         (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
12887         condition directly to if (maskcmp), add extra check for
12888         cmpmode, it should be MODE_INT.
12889         (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
12890         parameters op_true/op_false.
12891         (ix86_use_mask_cmp_p): New.
12892
12893 2021-02-05  liuhongt  <hongtao.liu@intel.com>
12894
12895         PR target/98172
12896         * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
12897         Remove m_GENERIC from ~list.
12898         (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
12899
12900 2021-02-04  David Malcolm  <dmalcolm@redhat.com>
12901
12902         PR c/97932
12903         * diagnostic-show-locus.c (compatible_locations_p): Require
12904         locations in the same macro map to be either both from the
12905         macro definition, or both from the macro arguments.
12906
12907 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
12908
12909         * config/aarch64/aarch64-simd-builtins.def: Add
12910         [su]mull_hi_lane[q] builtin generator macros.
12911         * config/aarch64/aarch64-simd.md
12912         (aarch64_<su>mull_hi_lane<mode>_insn): Define.
12913         (aarch64_<su>mull_hi_lane<mode>): Define.
12914         (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
12915         (aarch64_<su>mull_hi_laneq<mode>): Define.
12916         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
12917         builtin instead of inline asm.
12918         (vmull_high_lane_s32): Likewise.
12919         (vmull_high_lane_u16): Likewise.
12920         (vmull_high_lane_u32): Likewise.
12921         (vmull_high_laneq_s16): Likewise.
12922         (vmull_high_laneq_s32): Likewise.
12923         (vmull_high_laneq_u16): Likewise.
12924         (vmull_high_laneq_u32): Liekwise.
12925
12926 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
12927
12928         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
12929         builtin generator macros.
12930         * config/aarch64/aarch64-simd.md
12931         (aarch64_<su>mull_hi_n<mode>_insn): Define.
12932         (aarch64_<su>mull_hi_n<mode>): Define.
12933         * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
12934         instead of inline asm.
12935         (vmull_high_n_s32): Likewise.
12936         (vmull_high_n_u16): Likewise.
12937         (vmull_high_n_u32): Likewise.
12938
12939 2021-02-04  Richard Biener  <rguenther@suse.de>
12940
12941         PR tree-optimization/98855
12942         * tree-vect-loop.c (vectorizable_phi): Do not cost
12943         single-argument PHIs.
12944         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
12945         * tree-vect-stmts.c (vectorizable_bswap): Also perform
12946         costing for SLP operation.
12947
12948 2021-02-04  Martin Liska  <mliska@suse.cz>
12949
12950         * doc/extend.texi: Mention -mprefer-vector-width in target
12951         attributes.
12952
12953 2021-02-03  Martin Sebor  <msebor@redhat.com>
12954
12955         PR tree-optimization/98937
12956         * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
12957         Flush pointer_query cache.
12958
12959 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
12960
12961         * config/rs6000/genfusion.pl (gen_2logical): Add missing
12962         fixes based on patch review.
12963         * config/rs6000/fusion.md: Regenerate file.
12964
12965 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
12966
12967         * config/rs6000/t-rs6000: Comment out auto generation of
12968         fusion.md for now.
12969
12970 2021-02-03  Andrew Stubbs  <ams@codesourcery.com>
12971
12972         * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
12973         * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
12974         (output_file_start): Add gfx908.
12975         * config/gcn/gcn.opt (gpu_type): Add gfx908.
12976         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
12977         (MULTILIB_DIRNAMES): Add gfx908.
12978         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
12979         (main): Recognize gfx908.
12980         * config/gcn/t-omp-device: Add gfx908.
12981
12982 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
12983
12984         * config/aarch64/aarch64-simd-builtins.def: Add
12985         [su]mlsl_hi_lane[q] builtin macro generators.
12986         * config/aarch64/aarch64-simd.md
12987         (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
12988         (aarch64_<su>mlsl_hi_lane<mode>): Define.
12989         (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
12990         (aarch64_<su>mlsl_hi_laneq<mode>): Define.
12991         * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
12992         builtin instead of inline asm.
12993         (vmlsl_high_lane_s32): Likewise.
12994         (vmlsl_high_lane_u16): Likewise.
12995         (vmlsl_high_lane_u32): Likewise.
12996         (vmlsl_high_laneq_s16): Likewise.
12997         (vmlsl_high_laneq_s32): Likewise.
12998         (vmlsl_high_laneq_u16): Likewise.
12999         (vmlsl_high_laneq_u32): Likewise.
13000         (vmlal_high_laneq_u32): Likewise.
13001
13002 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13003
13004         * config/aarch64/aarch64-simd-builtins.def: Add
13005         [su]mlal_hi_lane[q] builtin generator macros.
13006         * config/aarch64/aarch64-simd.md
13007         (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
13008         (aarch64_<su>mlal_hi_lane<mode>): Define.
13009         (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
13010         (aarch64_<su>mlal_hi_laneq<mode>): Define.
13011         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
13012         builtin instead of inline asm.
13013         (vmlal_high_lane_s32): Likewise.
13014         (vmlal_high_lane_u16): Likewise.
13015         (vmlal_high_lane_u32): Likewise.
13016         (vmlal_high_laneq_s16): Likewise.
13017         (vmlal_high_laneq_s32): Likewise.
13018         (vmlal_high_laneq_u16): Likewise.
13019         (vmlal_high_laneq_u32): Likewise.
13020
13021 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13022
13023         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
13024         builtin generator macros.
13025         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
13026         Define.
13027         (aarch64_<su>mlsl_hi_n<mode>): Define.
13028         * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
13029         instead of inline asm.
13030         (vmlsl_high_n_s32): Likewise.
13031         (vmlsl_high_n_u16): Likewise.
13032         (vmlsl_high_n_u32): Likewise.
13033
13034 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13035
13036         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
13037         builtin generator macros.
13038         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
13039         Define.
13040         (aarch64_<su>mlal_hi_n<mode>): Define.
13041         * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
13042         instead of inline asm.
13043         (vmlal_high_n_s32): Likewise.
13044         (vmlal_high_n_u16): Likewise.
13045         (vmlal_high_n_u32): Likewise.
13046
13047 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
13048
13049         * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
13050         generator macros.
13051         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
13052         Rename to...
13053         (aarch64_<su>mlal_hi<mode>_insn): This.
13054         (aarch64_<su>mlal_hi<mode>): Define.
13055         * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
13056         instead of inline asm.
13057         (vmlal_high_s16): Likewise.
13058         (vmlal_high_s32): Likewise.
13059         (vmlal_high_u8): Likewise.
13060         (vmlal_high_u16): Likewise.
13061         (vmlal_high_u32): Likewise.
13062
13063 2021-02-03  Ilya Leoshkevich  <iii@linux.ibm.com>
13064
13065         * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
13066         after calling alter_subreg() on a (mem).
13067
13068 2021-02-03  Martin Liska  <mliska@suse.cz>
13069
13070         PR lto/98912
13071         * lto-streamer-out.c (produce_lto_section): Fill up missing
13072         padding.
13073         * lto-streamer.h (struct lto_section): Add _padding field.
13074
13075 2021-02-03  Richard Biener  <rguenther@suse.de>
13076
13077         * lto-streamer.c (lto_get_section_name): Free temporary
13078         buffer.
13079         * tree-loop-distribution.c
13080         (loop_distribution::merge_dep_scc_partitions): Free edge data.
13081
13082 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
13083
13084         PR middle-end/97487
13085         * ifcvt.c (noce_can_force_operand): New function.
13086         (noce_emit_move_insn): Use it.
13087         (noce_try_sign_mask): Likewise.  Formatting fix.
13088
13089 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
13090
13091         PR middle-end/97971
13092         * lra-constraints.c (process_alt_operands): For inline asm, don't call
13093         fatal_insn, but instead return false.
13094
13095 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
13096
13097         PR tree-optimization/98287
13098         * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
13099         for V1DImode.
13100
13101 2021-02-03  Tamar Christina  <tamar.christina@arm.com>
13102
13103         PR tree-optimization/98928
13104         * tree-vect-loop.c (vect_analyze_loop_2): Change
13105         STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
13106         * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
13107         * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
13108         (class _stmt_vec_info): Add slp_vect_pattern_only_p.
13109
13110 2021-02-02  Richard Biener  <rguenther@suse.de>
13111
13112         * gimple-loop-interchange.cc (prepare_data_references):
13113         Release vectors.
13114         * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
13115         * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
13116         * tree-vect-stmts.c (vectorizable_condition): Do not
13117         allocate vectors.
13118         (vectorizable_comparison): Likewise.
13119
13120 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13121
13122         * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
13123         * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
13124         * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
13125         (vrsqrteq_u32): Likewise.
13126
13127 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13128
13129         * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
13130         * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
13131         (aarch64_sqxtun2<mode>_be): Likewise.
13132         (aarch64_sqxtun2<mode>): Likewise.
13133         * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
13134         (vqmovun_high_s32): Likewise.
13135         (vqmovun_high_s64): Likewise.
13136         * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
13137
13138 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13139
13140         * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
13141         AUTO_FP flags.
13142         (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
13143
13144 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13145
13146         * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
13147         fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
13148         fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
13149         ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
13150         fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
13151         fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
13152         fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
13153         fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
13154
13155 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13156
13157         * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
13158         * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
13159         ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
13160
13161 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13162
13163         * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
13164         uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
13165
13166 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13167
13168         * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
13169         vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
13170         vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
13171         ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
13172         udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
13173         ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
13174         ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
13175         ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
13176         NONE builtin flags.
13177
13178 2021-02-02  Jakub Jelinek  <jakub@redhat.com>
13179
13180         PR tree-optimization/98848
13181         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
13182         STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
13183
13184 2021-02-02  Kito Cheng  <kito.cheng@sifive.com>
13185
13186         PR target/98743
13187         * expr.c: Check mode before calling store_expr.
13188
13189 2021-02-02  Christophe Lyon  <christophe.lyon@linaro.org>
13190
13191         * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
13192         (VORNQ): Remove.
13193         * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
13194         instruction using expression ior.
13195         (mve_vornq_u<mode>): New expander.
13196         (mve_vornq_f<mode>): Use ior code instead of unspec.
13197         * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
13198
13199 2021-02-02  Alexandre Oliva  <oliva@adacore.com>
13200
13201         * tree-nested.c (convert_nonlocal_reference_op): Move
13202         current_function_decl restore after re-gimplification.
13203         (convert_local_reference_op): Likewise.
13204
13205 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13206
13207         * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
13208         Define builtins.
13209         * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
13210         Define.
13211         (aarch64_rshrn<mode>_insn_be): Likewise.
13212         (aarch64_rshrn<mode>): Likewise.
13213         (aarch64_rshrn2<mode>_insn_le): Likewise.
13214         (aarch64_rshrn2<mode>_insn_be): Likewise.
13215         (aarch64_rshrn2<mode>): Likewise.
13216         * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
13217         * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
13218         using builtin.
13219         (vrshrn_high_n_s32): Likewise.
13220         (vrshrn_high_n_s64): Likewise.
13221         (vrshrn_high_n_u16): Likewise.
13222         (vrshrn_high_n_u32): Likewise.
13223         (vrshrn_high_n_u64): Likewise.
13224         (vrshrn_n_s16): Likewise.
13225         (vrshrn_n_s32): Likewise.
13226         (vrshrn_n_s64): Likewise.
13227         (vrshrn_n_u16): Likewise.
13228         (vrshrn_n_u32): Likewise.
13229         (vrshrn_n_u64): Likewise.
13230
13231 2021-02-01  Sergei Trofimovich  <siarheit@google.com>
13232
13233         PR tree-optimization/98499
13234         * ipa-modref.c (analyze_ssa_name_flags): treat RVO
13235         conservatively and assume all possible side-effects.
13236
13237 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13238
13239         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
13240         vec_unpacku_hi_): Define builtins.
13241         * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
13242         builtin.
13243         (vmovl_high_s16): Likewise.
13244         (vmovl_high_s32): Likewise.
13245         (vmovl_high_u8): Likewise.
13246         (vmovl_high_u16): Likewise.
13247         (vmovl_high_u32): Likewise.
13248
13249 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13250
13251         * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
13252         Define builtins.
13253         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
13254         pattern.
13255         * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
13256         UNSPEC_UABDL.
13257         * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
13258         builtin.
13259         (vabdl_s16): Likewise.
13260         (vabdl_s32): Likewise.
13261         (vabdl_u8): Likewise.
13262         (vabdl_u16): Likewise.
13263         (vabdl_u32): Likewise.
13264         * config/aarch64/iterators.md (ABDL): New int iterator.
13265         (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
13266
13267 2021-02-01  Martin Sebor  <msebor@redhat.com>
13268
13269         * tree.h (BLOCK_VARS): Add comment.
13270         (BLOCK_SUBBLOCKS): Same.
13271         (BLOCK_SUPERCONTEXT): Same.
13272         (BLOCK_ABSTRACT_ORIGIN): Same.
13273         (inlined_function_outer_scope_p): Same.
13274
13275 2021-02-01  Martin Sebor  <msebor@redhat.com>
13276
13277         PR middle-end/97172
13278         * attribs.c (attr_access::free_lang_data): Define new function.
13279         * attribs.h (attr_access::free_lang_data): Declare new function.
13280
13281 2021-02-01  Richard Biener  <rguenther@suse.de>
13282
13283         * vec.h (auto_vec::auto_vec): Add memory stat parameters
13284         and pass them on.
13285         * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
13286
13287 2021-02-01  Tamar Christina  <tamar.christina@arm.com>
13288
13289         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
13290         aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
13291
13292 2021-02-01  Richard Biener  <rguenther@suse.de>
13293
13294         PR rtl-optimization/98863
13295         * config/i386/i386-features.c (convert_scalars_to_vector):
13296         Set DF_RD_PRUNE_DEAD_DEFS.
13297
13298 2021-01-31  Eric Botcazou  <ebotcazou@adacore.com>
13299
13300         * system.h (SIZE_MAX): Define if not already defined.
13301
13302 2021-01-30  Aaron Sawdey  <acsawdey@linux.ibm.com>
13303
13304         * config/rs6000/genfusion.pl (gen_2logical): New function to
13305         generate patterns for logical-logical fusion.
13306         * config/rs6000/fusion.md: Regenerated patterns.
13307         * config/rs6000/rs6000-cpus.def: Add
13308         OPTION_MASK_P10_FUSION_2LOGICAL.
13309         * config/rs6000/rs6000.c (rs6000_option_override_internal):
13310         Enable logical-logical fusion for p10.
13311         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
13312
13313 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
13314
13315         * config/rs6000/rs6000.opt: Add periods to new AIX options.
13316
13317 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
13318
13319         * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
13320         (mabi=vec-default): New.
13321         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
13322         __EXTABI__ for AIX Vector extended ABI.
13323         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
13324         extabi info.
13325         (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
13326         are non-volatile.
13327         * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
13328
13329 2021-01-30  Jakub Jelinek  <jakub@redhat.com>
13330
13331         * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
13332         DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
13333
13334 2021-01-29  Vladimir N. Makarov  <vmakarov@redhat.com>
13335
13336         PR target/97701
13337         * lra-constraints.c (in_class_p): Don't narrow class only for REG
13338         or MEM.
13339
13340 2021-01-29  Will Schmidt  <will_schmidt@vnet.ibm.com>
13341
13342         * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
13343         clauses for CODE_FOR_vsx_xvcvuxddp_scale and
13344         CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
13345
13346 2021-01-29  Andrew MacLeod  <amacleod@redhat.com>
13347
13348         PR tree-optimization/98866
13349         * gimple-range-gori.h (gori_compute:set_range_invariant): New.
13350         * gimple-range-gori.cc (gori_map::set_range_invariant): New.
13351         (gori_map::m_maybe_invariant): Rename from all_outgoing.
13352         (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
13353         (gori_map::is_export_p): Ditto.
13354         (gori_map::calculate_gori): Ditto.
13355         (gori_compute::set_range_invariant): New.
13356         * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
13357         invariant for pointers evaluating to [1, +INF].
13358
13359 2021-01-29  Richard Biener  <rguenther@suse.de>
13360
13361         PR rtl-optimization/98863
13362         * config/i386/i386-features.c (remove_partial_avx_dependency):
13363         Do not perform DF analysis.
13364         (pass_data_remove_partial_avx_dependency): Remove
13365         TODO_df_finish.
13366
13367 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
13368
13369         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
13370         builtin generator macros.
13371         * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
13372         Define.
13373         * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
13374         instead of inline asm.
13375         (vmull_n_s32): Likewise.
13376         (vmull_n_u16): Likewise.
13377         (vmull_n_u32): Likewise.
13378
13379 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13380
13381         * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
13382         Define builtins.
13383         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
13384         Rename to...
13385         (aarch64_<sur>abdl2<mode>): ... This.
13386         (<sur>sadv16qi): Adjust use of above.
13387         * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
13388         builtin.
13389         (vabdl_high_s16): Likewise.
13390         (vabdl_high_s32): Likewise.
13391         (vabdl_high_u8): Likewise.
13392         (vabdl_high_u16): Likewise.
13393         (vabdl_high_u32): Likewise.
13394
13395 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13396
13397         * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
13398         builtin.
13399         (uabal2): Likewise.
13400         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
13401         pattern.
13402         * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
13403         UNSPEC_UABAL2.
13404         * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
13405         builtin.
13406         (vabal_high_s16): Likewise.
13407         (vabal_high_s32): Likewise.
13408         (vabal_high_u8): Likewise.
13409         (vabal_high_u16): Likewise.
13410         (vabal_high_u32): Likewise.
13411         * config/aarch64/iterators.md (ABAL2): New mode iterator.
13412         (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
13413
13414 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13415
13416         * config/aarch64/aarch64-simd-builtins.def (sabal): Define
13417         builtin.
13418         (uabal): Likewise.
13419         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
13420         Rename to...
13421         (aarch64_<sur>abal<mode>): ... This
13422         (<sur>sadv16qi): Adust use of the above.
13423         * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
13424         builtin.
13425         (vabal_s16): Likewise.
13426         (vabal_s32): Likewise.
13427         (vabal_u8): Likewise.
13428         (vabal_u16): Likewise.
13429         (vabal_u32): Likewise.
13430
13431 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13432
13433         * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
13434         Define builtins.
13435         * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
13436         Define.
13437         * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
13438         builtin.
13439         (vaddlv_s16): Likewise.
13440         (vaddlv_u8): Likewise.
13441         (vaddlv_u16): Likewise.
13442         (vaddlvq_s8): Likewise.
13443         (vaddlvq_s16): Likewise.
13444         (vaddlvq_s32): Likewise.
13445         (vaddlvq_u8): Likewise.
13446         (vaddlvq_u16): Likewise.
13447         (vaddlvq_u32): Likewise.
13448         (vaddlv_s32): Likewise.
13449         (vaddlv_u32): Likewise.
13450         * config/aarch64/iterators.md (VDQV_L): New mode iterator.
13451         (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
13452         (Vwstype): New mode attribute.
13453         (Vwsuf): Likewise.
13454         (VWIDE_S): Likewise.
13455         (USADDLV): New int iterator.
13456         (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
13457
13458 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
13459
13460         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
13461         builtin generator macros.
13462         * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
13463         Define.
13464         * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
13465         instead of inline asm.
13466         (vmlsl_lane_s32): Likewise.
13467         (vmlsl_lane_u16): Likewise.
13468         (vmlsl_lane_u32): Likewise.
13469         (vmlsl_laneq_s16): Likewise.
13470         (vmlsl_laneq_s32): Likewise.
13471         (vmlsl_laneq_u16): Likewise.
13472         (vmlsl_laneq_u32): Likewise.
13473
13474 2021-01-29  Richard Biener  <rguenther@suse.de>
13475
13476         * doc/invoke.texi (--param max-gcse-memory): Document unit
13477         of size.
13478         * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
13479         * params.opt (--param max-gcse-memory): Adjust default and
13480         document unit of size.
13481
13482 2021-01-29  Richard Biener  <rguenther@suse.de>
13483
13484         PR rtl-optimization/98863
13485         * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
13486         HOST_WIDE_INT for the memory estimate.
13487
13488 2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
13489             Richard Biener  <rguenther@suse.de>
13490
13491         PR tree-optimization/97627
13492         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
13493         Do not analyze fake edges.
13494
13495 2021-01-29  Richard Biener  <rguenther@suse.de>
13496
13497         PR rtl-optimization/98144
13498         * df.h (df_mir_bb_info): Add con_visited member.
13499         * df-problems.c (df_mir_alloc): Initialize con_visited,
13500         do not fully populate IN and OUT.
13501         (df_mir_reset): Likewise.
13502         (df_mir_confluence_0): Set con_visited.
13503         (df_mir_confluence_n): Properly handle implicitely
13504         fully populated IN and OUT as designated by con_visited
13505         and update con_visited accordingly.
13506
13507 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
13508
13509         PR target/98849
13510         * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
13511         vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
13512         && !TARGET_REALLY_IWMMXT to conditions.
13513
13514 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
13515
13516         PR debug/98331
13517         * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
13518         a BARRIER.
13519
13520 2021-01-28  Marek Polacek  <polacek@redhat.com>
13521
13522         PR c++/94775
13523         * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
13524         the main variant, maybe reset it in its variants too.
13525         * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
13526         (check_aligned_type): Check if TYPE_USER_ALIGN match.
13527
13528 2021-01-28  Christophe Lyon  <christophe.lyon@linaro.org>
13529
13530         PR target/98730
13531         * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
13532         of constant zero for comparisons.
13533
13534 2021-01-28  Michael Meissner  <meissner@linux.ibm.com>
13535
13536         * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
13537         support for mapping built-in function names for long double
13538         built-in functions if long double is IEEE 128-bit.
13539
13540 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
13541
13542         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
13543         builtin generator macros.
13544         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
13545         Define.
13546         * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
13547         instead of inline asm.
13548         (vmlsl_n_s32): Likewise.
13549         (vmlsl_n_u16): Likewise.
13550         (vmlsl_n_u32): Likewise.
13551
13552 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
13553
13554         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
13555         builtin generator macros.
13556         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
13557         Define.
13558         * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
13559         instead of inline asm.
13560         (vmlal_n_s32): Likewise.
13561         (vmlal_n_u16): Likewise.
13562         (vmlal_n_u32): Likewise.
13563
13564 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13565
13566         * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
13567         builtin.
13568         * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
13569         Define.
13570         (aarch64_shrn2<mode>_insn_be): Likewise.
13571         (aarch64_shrn2<mode>): Likewise.
13572         * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
13573         using builtins.
13574         (vshrn_high_n_s32): Likewise.
13575         (vshrn_high_n_s64): Likewise.
13576         (vshrn_high_n_u16): Likewise.
13577         (vshrn_high_n_u32): Likewise.
13578         (vshrn_high_n_u64): Likewise.
13579
13580 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13581
13582         * config/aarch64/aarch64-simd-builtins.def (shrn): Define
13583         builtin.
13584         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
13585         Define.
13586         (aarch64_shrn<mode>_insn_be): Likewise.
13587         (aarch64_shrn<mode>): Likewise.
13588         * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
13589         builtins.
13590         (vshrn_n_s32): Likewise.
13591         (vshrn_n_s64): Likewise.
13592         (vshrn_n_u16): Likewise.
13593         (vshrn_n_u32): Likewise.
13594         (vshrn_n_u64): Likewise.
13595         * config/aarch64/iterators.md (vn_mode): New mode attribute.
13596
13597 2021-01-28  Richard Biener  <rguenther@suse.de>
13598
13599         PR rtl-optimization/80960
13600         * dse.c (check_mem_read_rtx): Call get_addr on the
13601         offsetted address.
13602
13603 2021-01-28  Xionghu Luo  <luoxhu@linux.ibm.com>
13604             David Edelsohn  <dje.gcc@gmail.com>
13605
13606         PR target/98799
13607         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13608         Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
13609         when -m32.
13610         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
13611         Delete.
13612         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
13613         wrapper call rs6000_expand_vector_set_var for cleanup.  Call
13614         rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
13615         directly.
13616         (rs6000_expand_vector_set_var): Delete.
13617         (rs6000_expand_vector_set_var_p9): Make static.
13618         (rs6000_expand_vector_set_var_p8): Make static.
13619
13620 2021-01-28  Xing GUO  <higuoxing@gmail.com>
13621
13622         * common/config/riscv/riscv-common.c
13623         (riscv_subset_list::parsing_subset_version): Fix -march option parsing
13624         when `p` extension exists.
13625
13626 2021-01-27  Vladimir N. Makarov  <vmakarov@redhat.com>
13627
13628         PR rtl-optimization/97684
13629         * ira.c (ira): Call ira_set_pseudo_classes before
13630         update_equiv_regs when it is necessary.
13631
13632 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
13633
13634         PR target/98853
13635         * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
13636         %w0, %w1 and %2 instead of %0, %1 and %2.
13637
13638 2021-01-27  Aaron Sawdey  <acsawdey@linux.ibm.com>
13639
13640         * config/rs6000/genfusion.pl: New script to generate
13641         define_insn_and_split patterns so combine can arrange fused
13642         instructions next to each other.
13643         * config/rs6000/fusion.md: New file, generated fused instruction
13644         patterns for combine.
13645         * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
13646         (non_update_memory_operand): New predicate.
13647         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
13648         OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
13649         POWERPC_MASKS.
13650         * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
13651         prototype.
13652         * config/rs6000/rs6000.c (rs6000_option_override_internal):
13653         Automatically set OPTION_MASK_P10_FUSION and
13654         OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
13655         (rs600_opt_masks): Allow -mpower10-fusion
13656         in function attributes.
13657         (address_is_non_pfx_d_or_x): New function.
13658         * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
13659         * config/rs6000/rs6000.md: Include fusion.md.
13660         * config/rs6000/rs6000.opt: Add -mpower10-fusion
13661         and -mpower10-fusion-ld-cmpi.
13662         * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
13663
13664 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
13665
13666         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
13667         builtin generator macros.
13668         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
13669         Rename to...
13670         (aarch64_<su>mlal<mode>): This.
13671         * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
13672         instead of inline asm.
13673         (vmlal_s16): Likewise.
13674         (vmlal_s32): Likewise.
13675         (vmlal_u8): Likewise.
13676         (vmlal_u16): Likewise.
13677         (vmlal_u32): Likewise.
13678
13679 2021-01-27  Richard Biener  <rguenther@suse.de>
13680
13681         PR tree-optimization/98854
13682         * tree-vect-slp.c (vect_build_slp_tree_2): Also build
13683         PHIs from scalars when the number of CTORs matches the
13684         number of children.
13685
13686 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
13687
13688         * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
13689         generator macro.
13690         * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
13691         Rename to...
13692         (aarch64_mls_n<mode>): This.
13693         * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
13694         instead of asm.
13695         (vmls_n_s32): Likewise.
13696         (vmls_n_u16): Likewise.
13697         (vmls_n_u32): Likewise.
13698         (vmlsq_n_s16): Likewise.
13699         (vmlsq_n_s32): Likewise.
13700         (vmlsq_n_u16): Likewise.
13701         (vmlsq_n_u32): Likewise.
13702
13703 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
13704
13705         * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
13706         generator macro.
13707         * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
13708         than asm.
13709         (vmls_s16): Likewise.
13710         (vmls_s32): Likewise.
13711         (vmls_u8): Likewise.
13712         (vmls_u16): Likewise.
13713         (vmls_u32): Likewise.
13714         (vmlsq_s8): Likewise.
13715         (vmlsq_s16): Likewise.
13716         (vmlsq_s32): Likewise.
13717         (vmlsq_u8): Likewise.
13718         (vmlsq_u16): Likewise.
13719         (vmlsq_u32): Likewise.
13720
13721 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
13722
13723         * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
13724         generator macro.
13725         * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
13726         Rename to...
13727         (aarch64_mla_n<mode>): This.
13728         * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
13729         instead of asm.
13730         (vmla_n_s32): Likewise.
13731         (vmla_n_u16): Likewise.
13732         (vmla_n_u32): Likewise.
13733         (vmlaq_n_s16): Likewise.
13734         (vmlaq_n_s32): Likewise.
13735         (vmlaq_n_u16): Likewise.
13736         (vmlaq_n_u32): Likewise.
13737
13738 2021-01-27  liuhongt  <hongtao.liu@intel.com>
13739
13740         PR target/98833
13741         * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
13742         (*sse2_eq<mode>3): Ditto.
13743
13744 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
13745
13746         * tree-pass.h (PROP_trees): Rename to ...
13747         (PROP_gimple): ... this.
13748         * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
13749         * passes.c (execute_function_dump, execute_function_todo,
13750         execute_one_ipa_transform_pass, execute_one_pass): Likewise.
13751         * varpool.c (ctor_for_folding): Likewise.
13752
13753 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
13754
13755         PR tree-optimization/97260
13756         * varpool.c: Include tree-pass.h.
13757         (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
13758         non-TREE_SIDE_EFFECTS automatic variables.
13759
13760 2021-01-26  Paul Fee  <paul.f.fee@gmail.com>
13761
13762         * doc/cpp.texi (__cplusplus): Document value for -std=c++23
13763         or -std=gnu++23.
13764         * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
13765         * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
13766         (gen_compile_unit_die): Recognise C++23.
13767
13768 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
13769
13770         PR bootstrap/98839
13771         * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
13772         in comparison.
13773
13774 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
13775
13776         PR target/98681
13777         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
13778         Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
13779         and INTVAL (mask).  Add && INTVAL (mask) > 0 condition.
13780
13781 2021-01-26  Richard Biener  <rguenther@suse.de>
13782
13783         * gimple-pretty-print.c (dump_binary_rhs): Handle
13784         VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
13785
13786 2021-01-26  Richard Biener  <rguenther@suse.de>
13787
13788         PR middle-end/98726
13789         * tree.h (vector_cst_int_elt): Remove.
13790         * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
13791         make static.
13792
13793 2021-01-26  Andrew Stubbs  <ams@codesourcery.com>
13794
13795         * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
13796         for V64DFmode min/max reductions.
13797
13798 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
13799
13800         * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
13801         as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
13802         two halves, one with x and the other with const0_rtx, ordered
13803         depending on endianity.
13804
13805 2021-01-26  Alexandre Oliva  <oliva@adacore.com>
13806
13807         * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
13808         temporaries not seen in binding block, and not about to be
13809         added as gimple variables.
13810
13811 2021-01-25  Martin Sebor  <msebor@redhat.com>
13812
13813         PR c++/98646
13814         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
13815
13816 2021-01-25  Martin Liska  <mliska@suse.cz>
13817
13818         * value-prof.c (get_nth_most_common_value): Use %s instead
13819         of %qs string.
13820
13821 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
13822
13823         PR debug/98811
13824         * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
13825         readelf -wi is able to read the emitted .debug_info back.
13826         * configure: Regenerated.
13827
13828 2021-01-25  Martin Liska  <mliska@suse.cz>
13829
13830         PR gcov-profile/98739
13831         * common.opt: Add missing sign symbol.
13832         * value-prof.c (get_nth_most_common_value): Restore handling
13833         of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
13834         PROFILE_REPRODUCIBILITY_MULTITHREADED.
13835
13836 2021-01-25  Richard Biener  <rguenther@suse.de>
13837
13838         PR middle-end/98807
13839         * tree.c (vector_element_bits): Always use precision of
13840         the element type for boolean vectors.
13841
13842 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13843
13844         * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
13845         (ENDFILE_SPEC): Evaluate qnolinkcmds.
13846
13847 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13848
13849         * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
13850         nostartfiles handling since this is already done by
13851         LINK_COMMAND_SPEC.  Evaluate qnolinkcmds.
13852         (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
13853         is already done by LINK_COMMAND_SPEC.
13854         (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
13855         this is already done by LINK_COMMAND_SPEC.  Remove qnolinkcmds
13856         evaluation.
13857
13858 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
13859
13860         PR testsuite/98771
13861         * fold-const-call.c (host_size_t_cst_p): Renamed to ...
13862         (size_t_cst_p): ... this.  Check and store unsigned HOST_WIDE_INT
13863         value rather than host size_t.
13864         (fold_const_call): Change type of s2 from size_t to
13865         unsigned HOST_WIDE_INT.  Use size_t_cst_p instead of
13866         host_size_t_cst_p.  For strncmp calls, pass MIN (s2, SIZE_MAX)
13867         instead of s2 as last argument.
13868
13869 2021-01-25  Tamar Christina  <tamar.christina@arm.com>
13870
13871         * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
13872         VCMLA_OP, VCMUL_OP): New.
13873         * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
13874         * config/arm/neon.md (cmul<conj_op><mode>3): New.
13875         * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
13876         UNSPEC_VCMUL_CONJ): New.
13877         * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
13878         cml<fcmac1><conj_op><mode>4): New.
13879
13880 2021-01-23  Jakub Jelinek  <jakub@redhat.com>
13881
13882         PR testsuite/97301
13883         * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
13884
13885 2021-01-22  Jonathan Wright  <jonathan.wright@arm.com>
13886
13887         * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
13888         generator macro.
13889         * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
13890         than asm.
13891         (vmla_s16): Likewise.
13892         (vmla_s32): Likewise.
13893         (vmla_u8): Likewise.
13894         (vmla_u16): Likewise.
13895         (vmla_u32): Likewise.
13896         (vmlaq_s8): Likewise.
13897         (vmlaq_s16): Likewise.
13898         (vmlaq_s32): Likewise.
13899         (vmlaq_u8): Likewise.
13900         (vmlaq_u16): Likewise.
13901         (vmlaq_u32): Likewise.
13902
13903 2021-01-22  David Malcolm  <dmalcolm@redhat.com>
13904
13905         * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
13906         directive.
13907
13908 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
13909
13910         PR debug/98796
13911         * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
13912         filenames to emit, still emit the required 0 index directory and
13913         filename entries that match DW_AT_comp_dir and DW_AT_name of the
13914         compilation unit.
13915
13916 2021-01-22  Marek Polacek  <polacek@redhat.com>
13917
13918         PR c++/98545
13919         * doc/invoke.texi: Update C++ ABI Version 15 description.
13920
13921 2021-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13922
13923         PR tree-optimization/98766
13924         * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
13925         comparing against type size with param_avoid_fma_max_bits.
13926
13927 2021-01-22  Richard Biener  <rguenther@suse.de>
13928
13929         PR middle-end/98793
13930         * tree.c (vector_element_bits): Key single-bit bool vector on
13931         integer mode rather than not vector mode.
13932
13933 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
13934
13935         PR target/98093
13936         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13937         Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
13938         platforms.
13939         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
13940         to call different path for P8 and P9.
13941         (rs6000_expand_vector_set_var_p9): New function.
13942         (rs6000_expand_vector_set_var_p8): New function.
13943
13944 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
13945
13946         PR target/79251
13947         PR target/98065
13948         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13949         Ajdust variable index vec_insert from address dereference to
13950         ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
13951         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
13952         New declaration.
13953         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
13954
13955 2021-01-22  Martin Liska  <mliska@suse.cz>
13956
13957         PR gcov-profile/98739
13958         * profile.c (compute_value_histograms): Drop time profile for
13959         -fprofile-reproducible=multithreaded.
13960
13961 2021-01-22  Nathan Sidwell  <nathan@acm.org>
13962
13963         * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
13964         existence here.
13965
13966 2021-01-22  Richard Biener  <rguenther@suse.de>
13967
13968         PR middle-end/98773
13969         * tree-data-ref.c (initalize_matrix_A): Revert previous
13970         change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
13971
13972 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
13973
13974         PR tree-optimization/90248
13975         * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
13976         X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
13977         simplifications.
13978         (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
13979         X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
13980
13981 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
13982
13983         PR tree-optimization/98255
13984         * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
13985         extend index - low_bound from sizetype's precision rather than index
13986         precision.
13987         (get_addr_base_and_unit_offset_1): Likewise.
13988         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
13989         * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
13990
13991 2021-01-22  Richard Biener  <rguenther@suse.de>
13992
13993         PR tree-optimization/98786
13994         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
13995         adding new uses of abnormals.  Verify we deal with a conditional
13996         conversion.
13997
13998 2021-01-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
13999
14000         PR target/98636
14001         * optc-save-gen.awk: Add arm_fp16_format to checked_options.
14002
14003 2021-01-22  liuhongt  <hongtao.liu@intel.com>
14004
14005         PR target/96891
14006         PR target/98348
14007         * config/i386/sse.md (VI_128_256): New mode iterator.
14008         (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
14009          *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
14010          *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
14011         define_insn_and_split to lower avx512 vector comparison to avx
14012         version when dest is vector.
14013         (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
14014         define_insn_and_split for negating the comparison result.
14015         * config/i386/predicates.md (float_vector_all_ones_operand):
14016         New predicate.
14017         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
14018         general NOT operator without UNSPEC_MASKOP.
14019
14020 2021-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>
14021
14022         PR rtl-optimization/98777
14023         * lra-int.h (lra_pmode_pseudo): New extern.
14024         * lra.c (lra_pmode_pseudo): New global.
14025         (lra): Set it up.
14026         * lra-eliminations.c (eliminate_regs_in_insn): Use it.
14027
14028 2021-01-21  Ilya Leoshkevich  <iii@linux.ibm.com>
14029
14030         * fwprop.c (fwprop_propagation::classify_result): Allow
14031         (subreg (mem)) simplifications.
14032
14033 2021-01-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14034
14035         * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
14036         Split into...
14037         (aarch64_sqdmlal<mode>): ... This...
14038         (aarch64_sqdmlsl<mode>): ... And this.
14039         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
14040         (aarch64_sqdmlal_lane<mode>): ... This...
14041         (aarch64_sqdmlsl_lane<mode>): ... And this.
14042         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
14043         (aarch64_sqdmlsl_laneq<mode>): ... This...
14044         (aarch64_sqdmlal_laneq<mode>):  ... And this.
14045         (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
14046         (aarch64_sqdmlsl_n<mode>): ... This...
14047         (aarch64_sqdmlal_n<mode>): ... And this.
14048         (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
14049         (aarch64_sqdmlal2<mode>_internal): ... This...
14050         (aarch64_sqdmlsl2<mode>_internal): ... And this.
14051
14052 2021-01-21  Christophe Lyon  <christophe.lyon@linaro.org>
14053
14054         * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
14055
14056 2021-01-21  Andrea Corallo  <andrea.corallo@arm.com>
14057
14058         PR target/96372
14059         * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
14060
14061 2021-01-21  liuhongt  <hongtao.liu@intel.com>
14062
14063         PR rtl-optimization/98694
14064         * regcprop.c (copy_value): If SRC had been assigned a mode
14065         narrower than the copy, we can't link DEST into the chain even
14066         they have same hard_regno_nregs(i.e. HImode/SImode in i386
14067         backend).
14068
14069 2021-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14070
14071         * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
14072         Convert to define_insn_and_split.  Split into simple move when moving
14073         bottom element.
14074
14075 2021-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
14076
14077         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
14078         Adjust comment.  Simplify code.
14079
14080 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
14081
14082         PR debug/98765
14083         * dwarf2out.c (reset_indirect_string): Also reset indirect strings
14084         with DW_FORM_line_strp form.
14085         (prune_unused_types_update_strings): Don't add into debug_str_hash
14086         indirect strings with DW_FORM_line_strp form.
14087         (adjust_name_comp_dir): New function.
14088         (dwarf2out_finish): Call it on CU DIEs after resetting
14089         debug_line_str_hash.
14090
14091 2021-01-20  Vladimir N. Makarov  <vmakarov@redhat.com>
14092
14093         PR rtl-optimization/98722
14094         * lra-eliminations.c (eliminate_regs_in_insn): Check that target
14095         has no 3-op add insn to transform insns containing two pluses.
14096
14097 2021-01-20  Richard Biener  <rguenther@suse.de>
14098
14099         * hwint.h (add_hwi): New function.
14100         (mul_hwi): Likewise.
14101         * tree-data-ref.c (initialize_matrix_A): Properly translate
14102         tree constants and avoid HOST_WIDE_INT_MIN.
14103         (lambda_matrix_row_add): Avoid undefined integer overflow
14104         and return true on such overflow.
14105         (lambda_matrix_right_hermite): Handle overflow from
14106         lambda_matrix_row_add gracefully.  Simplify previous fix.
14107         (analyze_subscript_affine_affine): Likewise.
14108
14109 2021-01-20  Eugene Rozenfeld  <erozen@microsoft.com>
14110
14111         PR tree-optimization/96674
14112         * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
14113         x >= y && y != XXX_MIN --> x > y - 1
14114
14115 2021-01-20  Richard Sandiford  <richard.sandiford@arm.com>
14116
14117         PR tree-optimization/98535
14118         * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
14119         If the high and low permutes are the same, remove the high permutes
14120         from the working set and only continue with the low ones.
14121
14122 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
14123
14124         PR tree-optimization/98721
14125         * builtins.c (access_ref::inform_access): Don't assume
14126         SSA_NAME_IDENTIFIER must be non-NULL.  Print messages about
14127         object whenever allocfn is NULL, rather than only when DECL_P
14128         is true.  Use %qE instead of %qD for that.  Formatting fixes.
14129
14130 2021-01-20  Richard Biener  <rguenther@suse.de>
14131
14132         PR tree-optimization/98758
14133         * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
14134         (lambda_matrix_right_hermite): Avoid undefinedness with
14135         signed integer abs and multiplication.
14136         (analyze_subscript_affine_affine): Use lambda_int.
14137
14138 2021-01-20  David Malcolm  <dmalcolm@redhat.com>
14139
14140         PR debug/98751
14141         * dwarf2out.c (output_line_info): Rename static variable
14142         "generation", moving it out of the function to...
14143         (output_line_info_generation): New.
14144         (init_sections_and_labels): Likewise, renaming the variable to...
14145         (init_sections_and_labels_generation): New.
14146         (dwarf2out_c_finalize): Reset the new variables.
14147
14148 2021-01-19  Martin Sebor  <msebor@redhat.com>
14149
14150         PR middle-end/98664
14151         * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
14152         all functions, even if they're not declared artificial or inline.
14153         * tree.c (tree_inlined_location): Use macro expansion location
14154         only if scope traversal fails to expose one.
14155
14156 2021-01-19  Richard Sandiford  <richard.sandiford@arm.com>
14157
14158         PR rtl-optimization/92294
14159         * alias.c (compare_base_symbol_refs): Take an extra parameter
14160         and add the distance between two symbols to it.  Enshrine in
14161         comments that -1 means "either 0 or 1, but we can't tell
14162         which at compile time".
14163         (memrefs_conflict_p): Update call accordingly.
14164         (rtx_equal_for_memref_p): Likewise.  Take the distance between symbols
14165         into account.
14166
14167 2021-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14168
14169         * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
14170         sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
14171         uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
14172         sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
14173         sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
14174         sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
14175         sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
14176         sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
14177         sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
14178         uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
14179         sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
14180         sqmovun): Use NONE flags.
14181
14182 2021-01-19  Richard Biener  <rguenther@suse.de>
14183
14184         PR ipa/98330
14185         * ipa-modref.c (analyze_stmt): Only record a summary for a
14186         direct call.
14187
14188 2021-01-19  Richard Biener  <rguenther@suse.de>
14189
14190         PR middle-end/98638
14191         * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
14192
14193 2021-01-19  Daniel Hellstrom  <daniel@gaisler.com>
14194
14195         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
14196         built-in define __FIX_LEON3FT_TN0018.
14197
14198 2021-01-19  Richard Biener  <rguenther@suse.de>
14199
14200         PR ipa/97673
14201         * tree-inline.c (tree_function_versioning): Set input_location
14202         to UNKNOWN_LOCATION throughout the function.
14203
14204 2021-01-19  Tobias Burnus  <tobias@codesourcery.com>
14205
14206         PR fortran/98476
14207         * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
14208
14209 2021-01-19  Martin Jambor  <mjambor@suse.cz>
14210
14211         PR ipa/98690
14212         * ipa-sra.c (ssa_name_only_returned_p): New parameter fun.  Check
14213         whether non-call exceptions allow removal of a statement.
14214         (isra_analyze_call): Pass the appropriate function to
14215         ssa_name_only_returned_p.
14216
14217 2021-01-19  Geng Qi  <gengqi@linux.alibaba.com>
14218
14219         * config/riscv/arch-canonicalize (longext_sort): New function for
14220          sorting 'multi-letter'.
14221         * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
14222         'alts'. The 'arch' may not be the first of 'alts'.
14223         (_expand_combination): Add underline for the 'ext' without '*'.
14224         This is because, a single-letter extension can always be treated well
14225         with a '_' prefix, but it cannot be separated out if it is appended
14226         to a multi-letter.
14227
14228 2021-01-18  Vladimir N. Makarov  <vmakarov@redhat.com>
14229
14230         PR target/97847
14231         * ira.c (ira): Skip abnormal critical edge splitting.
14232
14233 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
14234
14235         PR tree-optimization/98727
14236         * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
14237         second .MUL_OVERFLOW operand for signed multiplication with overflow
14238         checking if the second operand of multiplication is not constant.
14239
14240 2021-01-18  David Edelsohn  <dje.gcc@gmail.com>
14241
14242         * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
14243         defaults to version 4.
14244
14245 2021-01-18  David Malcolm  <dmalcolm@redhat.com>
14246
14247         * attribs.h (fndecl_dealloc_argno): New decl.
14248         * builtins.c (call_dealloc_argno): Split out second half of
14249         function into...
14250         (fndecl_dealloc_argno): New.
14251         * doc/extend.texi (Common Function Attributes): Document the
14252         interaction between the analyzer and the malloc attribute.
14253         * doc/invoke.texi (Static Analyzer Options): Likewise.
14254
14255 2021-01-17  David Edelsohn  <dje.gcc@gmail.com>
14256
14257         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
14258         dwarf_version to 4.
14259         * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
14260
14261 2021-01-17  Martin Jambor  <mjambor@suse.cz>
14262
14263         PR ipa/98222
14264         * cgraph.c (clone_of_p): Check also former_clone_of as we climb
14265         the clone tree.
14266
14267 2021-01-17  Mark Wielaard  <mark@klomp.org>
14268
14269         * common.opt (gdwarf-): Init(5).
14270         * doc/invoke.texi (-gdwarf): Document default to 5.
14271
14272 2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
14273
14274         * builtin-types.def
14275         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
14276         to...
14277         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
14278         ...this.  Add extra argument.
14279         * gimplify.c (omp_default_clause): Ensure that event handle is
14280         firstprivate in a task region.
14281         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
14282         (gimplify_adjust_omp_clauses): Likewise.
14283         * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
14284         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
14285         * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
14286         if detach clause specified.  Add detach argument when generating
14287         call to GOMP_task.
14288         * omp-low.c (scan_sharing_clauses): Setup data environment for detach
14289         clause.
14290         (finish_taskreg_scan): Move field for variable containing the event
14291         handle to the front of the struct.
14292         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH.  Fix
14293         ordering.
14294         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
14295         OMP_CLAUSE_DETACH clause.
14296         (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
14297         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
14298         * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
14299         Fix ordering.
14300         (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH.  Fix
14301         ordering.
14302         (walk_tree_1): Handle OMP_CLAUSE_DETACH.
14303
14304 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14305
14306         * config/nios2/t-rtems: Reset all MULTILIB_* variables.  Shorten
14307         multilib directory names.  Use MULTILIB_REQUIRED instead of
14308         MULTILIB_EXCEPTIONS.  Add -mhw-mul -mhw-mulx -mhw-div
14309         -mcustom-fpu-cfg=fph2 multilib.
14310
14311 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14312
14313         * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
14314         (nios2_init_fpu_configs): Provide register values for new
14315         -mcustom-fpu-cfg=fph2 option variant.
14316         * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
14317         variant.
14318
14319 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14320
14321         * config/nios2/nios2.c (nios2_custom_check_insns): Remove
14322         custom instruction warnings.
14323
14324 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
14325
14326         PR tree-optimization/96669
14327         * match.pd ((CST << x) & 1 -> x == 0): New simplification.
14328
14329 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
14330
14331         PR tree-optimization/96271
14332         * passes.def: Pass false argument to first two pass_cd_dce
14333         instances and true to last instance.  Add comment that
14334         last instance rewrites no longer addressed locals.
14335         * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
14336         initialize it.
14337         (pass_cd_dce::set_pass_param): New method.
14338         (pass_cd_dce::execute): Return TODO_update_address_taken from
14339         last cd_dce instance.
14340
14341 2021-01-15  Carl Love  <cel@us.ibm.com>
14342
14343         * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
14344         New defines.
14345         * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
14346         * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
14347         DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
14348         DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
14349         MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
14350         Add builtin define.
14351         (MULH, DIVE, MOD):  Add new BU_P10_OVERLOAD_2 definitions.
14352         * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
14353         VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
14354         New overloaded definitions.
14355         (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
14356         P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
14357         P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
14358         P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
14359         P10V_BUILTIN_MULHU_V4SI]: Add case
14360         statement for builtins.
14361         * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
14362         * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
14363         (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
14364         (vsx_mul_v2di): Add if TARGET_POWER10 statement.
14365         (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
14366         (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
14367         mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
14368         Add define_insn, mode is VIlong.
14369         * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
14370         Add builtin descriptions.
14371
14372 2021-01-15  Eric Botcazou  <ebotcazou@adacore.com>
14373
14374         * final.c (final_start_function_1): Reset force_source_line.
14375
14376 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
14377
14378         PR tree-optimization/96669
14379         * match.pd (((1 << A) & 1) != 0 -> A == 0,
14380         ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
14381         possibly different power of two constants and to right shift too.
14382
14383 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
14384
14385         PR tree-optimization/96681
14386         * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
14387         ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
14388         ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
14389         ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
14390
14391 2021-01-15  Alexandre Oliva  <oliva@adacore.com>
14392
14393         * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
14394
14395 2021-01-15  Tamar Christina  <tamar.christina@arm.com>
14396
14397         * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
14398         cmul<conj_op><mode>3): New.
14399         * config/aarch64/iterators.md (UNSPEC_FCMUL,
14400         UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
14401         UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
14402         FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
14403         sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
14404         (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
14405         (rot_op): Renamed to conj_op.
14406         * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
14407         cmul<conj_op><mode>3): New.
14408         * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
14409         cmul<conj_op><mode>3): New.
14410
14411 2021-01-15  David Malcolm  <dmalcolm@redhat.com>
14412
14413         PR bootstrap/98696
14414         * diagnostic.c
14415         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
14416         Escape the tempfile name when constructing the expected output.
14417
14418 2021-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14419
14420         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
14421         Rename to...
14422         (aarch64_<su>mlsl_hi<mode>): ... This.
14423         (aarch64_<su>mlsl_hi<mode>): Define.
14424         (*aarch64_<su>mlsl<mode): Rename to...
14425         (aarch64_<su>mlsl<mode): ... This.
14426         * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
14427         smlsl_hi, umlsl_hi): Define builtins.
14428         * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
14429         vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
14430         vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
14431         vmlsl_u16, vmlsl_u32): Reimplement with builtins.
14432
14433 2021-01-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14434
14435         * config/i386/i386-c.c (ix86_target_macros):
14436         Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
14437
14438 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
14439
14440         PR target/88836
14441         * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
14442         * Makefile.in (RTL_SSA_H): New variable.
14443         * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
14444         * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
14445         * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
14446         pass_combine.
14447         * config/aarch64/aarch64-cc-fusion.cc: New file.
14448
14449 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
14450
14451         * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
14452         calling cancel_changes for changes that no longer exist.
14453
14454 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
14455
14456         * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
14457         (function_info::reg_defs): ...this.
14458         * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
14459         (function_info::reg_defs): ...this.
14460
14461 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14462
14463         PR target/71233
14464         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
14465
14466 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14467
14468         Revert:
14469         2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14470
14471         PR target/71233
14472         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
14473
14474 2021-01-15  Richard Biener  <rguenther@suse.de>
14475
14476         PR tree-optimization/96376
14477         * tree-vect-stmts.c (get_load_store_type): Disregard alignment
14478         for VMAT_INVARIANT.
14479
14480 2021-01-15  Martin Liska  <mliska@suse.cz>
14481
14482         * doc/install.texi: Document that some tests need pytest module.
14483         * doc/sourcebuild.texi: Likewise.
14484
14485 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14486
14487         PR target/71233
14488         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
14489
14490 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14491
14492         * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
14493         (mve_vshrq_n_u<mode>_imm): Likewise.
14494         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
14495         * config/arm/vec-common.md: ... here.
14496
14497 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
14498
14499         * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
14500         vec-commond.md.
14501         * config/arm/neon.md (vashl<mode>3): Delete.
14502         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
14503         (vasl<mode>3): New expander.
14504
14505 2021-01-15  Richard Biener  <rguenther@suse.de>
14506
14507         PR tree-optimization/98685
14508         * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
14509         of vector extern defs.
14510
14511 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
14512
14513         PR jit/98586
14514         * diagnostic.c (diagnostic_kind_text): Break out this array
14515         from...
14516         (diagnostic_build_prefix): ...here.
14517         (fancy_abort): Detect when diagnostic_initialize has not yet been
14518         called and fall back to a minimal implementation of printing the
14519         ICE, rather than segfaulting in internal_error.
14520
14521 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
14522
14523         * diagnostic.c (diagnostic_initialize): Eliminate
14524         parseable_fixits_p in favor of initializing extra_output_kind from
14525         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
14526         (convert_column_unit): New function, split out from...
14527         (diagnostic_converted_column): ...this.
14528         (print_parseable_fixits): Add "column_unit" and "tabstop" params.
14529         Use them to call convert_column_unit on the column values.
14530         (diagnostic_report_diagnostic): Eliminate conditional on
14531         parseable_fixits_p in favor of a switch statement on
14532         extra_output_kind, passing the appropriate values to the new
14533         params of print_parseable_fixits.
14534         (selftest::test_print_parseable_fixits_none): Update for new
14535         params of print_parseable_fixits.
14536         (selftest::test_print_parseable_fixits_insert): Likewise.
14537         (selftest::test_print_parseable_fixits_remove): Likewise.
14538         (selftest::test_print_parseable_fixits_replace): Likewise.
14539         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
14540         New.
14541         (selftest::diagnostic_c_tests): Call it.
14542         * diagnostic.h (enum diagnostics_extra_output_kind): New.
14543         (diagnostic_context::parseable_fixits_p): Delete field in favor
14544         of...
14545         (diagnostic_context::extra_output_kind): ...this new field.
14546         * doc/invoke.texi (Environment Variables): Add
14547         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
14548         * opts.c (common_handle_option): Update handling of
14549         OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
14550         fields.
14551
14552 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14553
14554         * tree-vect-slp-patterns.c (class complex_operations_pattern,
14555         complex_operations_pattern::matches,
14556         complex_operations_pattern::recognize,
14557         complex_operations_pattern::build): New.
14558         (slp_patterns): Use it.
14559
14560 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14561
14562         * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
14563         * optabs.def (cmls_optab, cmls_conj_optab): New.
14564         * doc/md.texi: Document them.
14565         * tree-vect-slp-patterns.c (class complex_fms_pattern,
14566         complex_fms_pattern::matches, complex_fms_pattern::recognize,
14567         complex_fms_pattern::build): New.
14568
14569 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14570
14571         * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
14572         * optabs.def (cmla_optab, cmla_conj_optab): New.
14573         * doc/md.texi: Document them.
14574         * tree-vect-slp-patterns.c (vect_match_call_p,
14575         class complex_fma_pattern, vect_slp_reset_pattern,
14576         complex_fma_pattern::matches, complex_fma_pattern::recognize,
14577         complex_fma_pattern::build): New.
14578
14579 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14580
14581         * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
14582         * optabs.def (cmul_optab, cmul_conj_optab): New.
14583         * doc/md.texi: Document them.
14584         * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
14585         vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
14586         vect_build_combine_node, class complex_mul_pattern,
14587         complex_mul_pattern::matches, complex_mul_pattern::recognize,
14588         complex_mul_pattern::build): New.
14589
14590 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14591
14592         * tree-vect-slp.c (optimize_load_redistribution_1): New.
14593         (optimize_load_redistribution, vect_is_slp_load_node): New.
14594         (vect_match_slp_patterns): Use it.
14595
14596 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
14597
14598         * tree-vect-slp-patterns.c (complex_add_pattern::build):
14599         Elide nodes.
14600
14601 2021-01-14  Thomas Schwinge  <thomas@codesourcery.com>
14602
14603         * config/gcn/mkoffload.c (main): Create an offload image only in
14604         64-bit configurations.
14605
14606 2021-01-14  H.J. Lu  <hjl.tools@gmail.com>
14607
14608         PR target/98667
14609         * config/i386/i386-options.c (ix86_option_override_internal):
14610         Issue an error for -fcf-protection with CF_BRANCH when compiling
14611         for 32-bit non-TARGET_CMOV targets.
14612
14613 2021-01-14  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14614
14615         PR target/98671
14616         * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
14617         Remove declaration and initialization of shadow variable "ret".
14618         (ix86_option_override_internal): Remove delcaration of
14619         shadow variable "i".  Redeclare shadowed variable to unsigned.
14620         * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
14621         * config/i386/i386-builtins.c (get_builtin_code_for_version):
14622         Update for redeclaration.
14623         * config/i386/i386.h (pta_size): Ditto.
14624
14625 2021-01-14  Richard Biener  <rguenther@suse.de>
14626
14627         PR tree-optimization/98674
14628         * tree-data-ref.c (base_supports_access_fn_components_p): New.
14629         (initialize_data_dependence_relation): For two bases without
14630         possible access fns resort to type size equality when determining
14631         shape compatibility.
14632
14633 2021-01-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14634
14635         PR target/66791
14636         * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
14637         <=, >= operators in vcle and vcge intrinsics respectively.
14638         * config/arm/arm_neon_builtins.def: Remove entry for
14639         vcge and vcgeu.
14640
14641 2021-01-14  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14642
14643         PR target/98671
14644         * config/i386/i386-options.c (ix86_function_specific_save):
14645         Remove redundant assignment to opts->x_ix86_branch_cost.
14646         * config/i386/i386.c (ix86_prefetch_sse):
14647         Rename from x86_prefetch_sse.  Update all uses.
14648         * config/i386/i386.h: Update for rename.
14649         * config/i386/i386-options.h: Ditto.
14650
14651 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
14652
14653         PR target/98670
14654         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
14655         *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
14656         Use Bm instead of m for non-avx.  Add isa attribute.
14657
14658 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
14659
14660         PR tree-optimization/96688
14661         * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
14662         ~X can be simplified.
14663
14664 2021-01-14  Richard Sandiford  <richard.sandiford@arm.com>
14665
14666         * tree-vect-stmts.c (vect_model_load_cost): Account for unused
14667         IFN_LOAD_LANES results.
14668
14669 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14670
14671         * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
14672         Define.
14673         (aarch64_xtn<mode>): Likewise.
14674         * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
14675         Define
14676         builtins.
14677         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
14678         builtin.
14679         (vmovl_s16): Likewise.
14680         (vmovl_s32): Likewise.
14681         (vmovl_u8): Likewise.
14682         (vmovl_u16): Likewise.
14683         (vmovl_u32): Likewise.
14684         (vmovn_s16): Likewise.
14685         (vmovn_s32): Likewise.
14686         (vmovn_s64): Likewise.
14687         (vmovn_u16): Likewise.
14688         (vmovn_u32): Likewise.
14689         (vmovn_u64): Likewise.
14690
14691 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14692
14693         * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
14694         Define.
14695         (aarch64_<su>qxtn2<mode>_be): Likewise.
14696         (aarch64_<su>qxtn2<mode>): Likewise.
14697         * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
14698         Define builtins.
14699         * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
14700         (su): Handle ss_truncate and us_truncate.
14701         * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
14702         builtin.
14703         (vqmovn_high_s32): Likewise.
14704         (vqmovn_high_s64): Likewise.
14705         (vqmovn_high_u16): Likewise.
14706         (vqmovn_high_u32): Likewise.
14707         (vqmovn_high_u64): Likewise.
14708
14709 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14710
14711         * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
14712         Define.
14713         (aarch64_xtn2<mode>_be): Likewise.
14714         (aarch64_xtn2<mode>): Likewise.
14715         * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
14716         builtins.
14717         * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
14718         builtins.
14719         (vmovn_high_s32): Likewise.
14720         (vmovn_high_s64): Likewise.
14721         (vmovn_high_u16): Likewise.
14722         (vmovn_high_u32): Likewise.
14723         (vmovn_high_u64): Likewise.
14724
14725 2021-01-13  Stafford Horne  <shorne@gmail.com>
14726
14727         * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
14728
14729 2021-01-13  Stafford Horne  <shorne@gmail.com>
14730
14731         * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
14732
14733 2021-01-13  Stafford Horne  <shorne@gmail.com>
14734
14735         * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
14736           define for __or1k_hard_float__.
14737
14738 2021-01-13  Stafford Horne  <shorne@gmail.com>
14739
14740         * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
14741         (PROFILE_HOOK): Define to call _mcount.
14742         (FUNCTION_PROFILER): Change from abort to no-op.
14743
14744 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
14745
14746         PR tree-optimization/96691
14747         * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
14748         (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
14749         (~D ^ C) or (D ^ C) can be simplified.
14750
14751 2021-01-13  Richard Biener  <rguenther@suse.de>
14752
14753         PR tree-optimization/92645
14754         * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
14755         until after vector lowering.
14756
14757 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
14758
14759         * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
14760         to SVE_I.
14761         (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
14762         (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
14763
14764 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
14765
14766         * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
14767         to SVE_I.
14768         (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
14769         (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
14770
14771 2021-01-13  Richard Biener  <rguenther@suse.de>
14772
14773         PR tree-optimization/92645
14774         * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
14775         BIT_FIELD_REF argument.
14776         (vect_build_slp_tree_2): Record the desired vector type
14777         on the external vector def.
14778         (vectorizable_slp_permutation): Handle required punning
14779         of existing vector defs.
14780
14781 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
14782
14783         * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
14784
14785 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
14786
14787         * config/sh/sh.md (movsf_ie): Remove operands[2] test.
14788
14789 2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>
14790
14791         * config.gcc [$target == *-*-gnu*]: Enable
14792         'default_gnu_indirect_function'.
14793
14794 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
14795
14796         PR target/95905
14797         * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
14798         registers before calling targetm.vectorize.vec_perm_const, only after
14799         that.
14800         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
14801         two argument permutation when one operand is zero vector and only
14802         after that force operands into registers.
14803         * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
14804         define_insn_and_split pattern.
14805         (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
14806         (*avx512f_zero_extendv16hiv16si2_1): Likewise.
14807         (*avx2_zero_extendv8hiv8si2_1): Likewise.
14808         (*avx512f_zero_extendv8siv8di2_1): Likewise.
14809         (*avx2_zero_extendv4siv4di2_1): Likewise.
14810         * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
14811         into registers.
14812         * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
14813         * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
14814         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
14815         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
14816         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
14817         * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise.  Use std::swap.
14818
14819 2021-01-13  Martin Liska  <mliska@suse.cz>
14820
14821         PR tree-optimization/98455
14822         * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
14823         Record also virtual PHIs.
14824         (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
14825         conditionally.
14826
14827 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
14828
14829         * doc/invoke.texi (C++ Modules): Fix typos.
14830
14831 2021-01-13  Richard Biener  <rguenther@suse.de>
14832
14833         PR tree-optimization/98640
14834         * tree-ssa-sccvn.c (visit_nary_op): Do not try to
14835         handle plus or minus from a truncated operand to be
14836         sign-extended.
14837
14838 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
14839
14840         PR target/96938
14841         * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
14842         define_insn_and_split patterns.
14843         (splitter after *btr<mode>_2): New splitter.
14844
14845 2021-01-13  Martin Liska  <mliska@suse.cz>
14846
14847         PR ipa/98652
14848         * cgraphunit.c (analyze_functions): Remove dead code.
14849
14850 2021-01-13  Qian Jianhua  <qianjh@cn.fujitsu.com>
14851
14852         * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
14853         * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
14854         (a64fx_regmove_cost, a64fx_vector_cost): New.
14855         (a64fx_tunings): Use the new added cost tables.
14856
14857 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
14858
14859         PR target/95905
14860         * config/i386/predicates.md (pmovzx_parallel): New predicate.
14861         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
14862         define_insn_and_split pattern.
14863         (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
14864         (*sse4_1_zero_extendv2siv2di2_3): Likewise.
14865
14866 2021-01-13  Julian Brown  <julian@codesourcery.com>
14867
14868         * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
14869         to fix v0 register.
14870
14871 2021-01-13  Julian Brown  <julian@codesourcery.com>
14872
14873         * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
14874         on entry to a BB.
14875
14876 2021-01-13  Julian Brown  <julian@codesourcery.com>
14877
14878         * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
14879         for reciprocal-approximation instructions.
14880         (div<mode>3): Use fused multiply-accumulate operations for reciprocal
14881         refinement and division result.
14882         * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
14883
14884 2021-01-13  Julian Brown  <julian@codesourcery.com>
14885
14886         * config/gcn/gcn-valu.md (subdf): Rename to...
14887         (subdf3): This.
14888
14889 2021-01-12  Martin Liska  <mliska@suse.cz>
14890
14891         * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
14892
14893 2021-01-12  Andrea Corallo  <andrea.corallo@arm.com>
14894
14895         * function-abi.h: Fix typo.
14896
14897 2021-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
14898
14899         PR target/97875
14900         PR target/97875
14901         * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
14902         (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
14903         (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
14904         (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
14905         (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
14906         (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
14907         (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
14908         (ARM_HAVE_NEON_V2DI_LDST): Likewise.
14909         (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
14910         (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
14911         (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
14912         (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
14913         (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
14914         (ARM_HAVE_V2DI_LDST): Likewise.
14915         * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
14916         (*movmisalign<mode>_mve_load): New pattern.
14917         * config/arm/neon.md (movmisalign<mode>): Move to ...
14918         * config/arm/vec-common.md: ... here.
14919
14920 2021-01-12  Vladimir N. Makarov  <vmakarov@redhat.com>
14921
14922         PR target/97969
14923         * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
14924         of pattern 'plus (plus (hard reg, const), pseudo)'.
14925
14926 2021-01-12  Richard Biener  <rguenther@suse.de>
14927
14928         PR tree-optimization/98550
14929         * tree-vect-slp.c (vect_record_max_nunits): Check whether
14930         the group size is a multiple of the vector element count.
14931         (vect_build_slp_tree_1): When we need to fail because
14932         the vector type choosen causes unrolling do so lazily
14933         without affecting matches only at the end to guide group splitting.
14934
14935 2021-01-12  Martin Liska  <mliska@suse.cz>
14936
14937         PR c++/97284
14938         * optc-save-gen.awk: Compare also n_target_save vars with
14939         strcmp.
14940
14941 2021-01-12  Martin Liska  <mliska@suse.cz>
14942
14943         * gcov.c (source_info::debug): New.
14944         (print_usage): Add --debug (-D) option.
14945         (process_args): Likewise.
14946         (generate_results): Call src->debug after
14947         accumulate_line_counts.
14948         (read_graph_file): Properly assign id for EXIT_BLOCK.
14949         * profile.c (branch_prob): Dump function body before it is
14950         instrumented.
14951
14952 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
14953
14954         PR tree-optimization/98629
14955         * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
14956         unless returning non-zero.
14957
14958 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
14959
14960         PR tree-optimization/95731
14961         * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
14962         x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
14963         (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
14964         only after optimize_range_tests_var_bound.
14965
14966 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
14967
14968         * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
14969         * configure: Regenerated.
14970
14971 2021-01-12  liuhongt  <hongtao.liu@intel.com>
14972
14973         PR target/98612
14974         * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
14975         Deleted.
14976         * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
14977         dead code.
14978
14979 2021-01-12  Alexandre Oliva  <oliva@adacore.com>
14980
14981         * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
14982         declare.
14983         (auto_end_imm_use_stmt_traverse): New struct.
14984         (FOR_EACH_IMM_USE_STMT): Use it.
14985         (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
14986         along with uses...
14987         * gimple-ssa-strength-reduction.c: ... here, ...
14988         * graphite-scop-detection.c: ... here, ...
14989         * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
14990         * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
14991         * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
14992         * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
14993         * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
14994         * tree-vect-slp.c: ... and here, ...
14995         * doc/tree-ssa.texi: ... and the example here.
14996
14997 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
14998
14999         * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
15000         SVE_FULL_I to SVE_I.  Generate an UNSPEC_PRED_X.
15001         (*sdiv_pow2<mode>3): New pattern.
15002         (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
15003         Wrap the ASRD in an UNSPEC_PRED_X.
15004         (*cond_<sve_int_op><mode>_2): Likewise.  Replace the UNSPEC_PRED_X
15005         predicate with a constant PTRUE, if it isn't already.
15006         (*cond_<sve_int_op><mode>_z): Replace with...
15007         (*cond_<sve_int_op><mode>_any): ...this new pattern.
15008
15009 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15010
15011         * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
15012         SVE_FULL_I to SVE_I.
15013         (*cond_bic<mode>_any): Likewise.
15014
15015 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15016
15017         * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
15018         (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
15019         to SVE_I.
15020
15021 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15022
15023         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
15024         SVE_FULL_I to SVE_I.
15025         (*aarch64_cond_<su>abd<mode>_2): Likewise.
15026         (*aarch64_cond_<su>abd<mode>_any): Likewise.
15027         (@aarch64_pred_<su>abd<mode>): Likewise.  Use UNSPEC_PRED_X
15028         for the max and min but not for the minus.
15029         (*aarch64_cond_<su>abd<mode>_3): New pattern.
15030
15031 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15032
15033         * config/aarch64/iterators.md (SVE_24I): New iterator.
15034         * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
15035         SVE_FULL_SDI to SVE_24I.  Use containers rather than elements.
15036
15037 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15038
15039         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
15040         (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
15041         to SVE_I.
15042         (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
15043         (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
15044         (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
15045         (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
15046
15047 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15048
15049         * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
15050         (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
15051         (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
15052         to SVE_I.
15053
15054 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
15055
15056         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
15057         (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
15058         (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
15059
15060 2021-01-11  Martin Liska  <mliska@suse.cz>
15061
15062         PR jit/98615
15063         * symtab-clones.h (clone_info::release): Release
15064         symtab::m_clones with ggc_delete as it's a GGC memory.
15065
15066 2021-01-11  Matthias Klose  <doko@ubuntu.com>
15067
15068         * Makefile.in (LINK_PROGRESS): Show the link target.
15069
15070 2021-01-11  Richard Biener  <rguenther@suse.de>
15071
15072         PR tree-optimization/91403
15073         * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
15074         single-element interleaving group size at 4096 elements.
15075
15076 2021-01-11  Richard Biener  <rguenther@suse.de>
15077
15078         PR tree-optimization/98526
15079         * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
15080         of the actual reduction op for the regular case.
15081         (vectorizable_reduction): Cost the stmts
15082         vect_transform_reduction produces here.
15083
15084 2021-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>
15085
15086         * tree-ssa-forwprop.c (simplify_vector_constructor): For
15087         big-endian, use UNPACK[_FLOAT]_HI.
15088
15089 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
15090
15091         * tree-vect-slp-patterns.c (class complex_pattern,
15092         class complex_add_pattern): Add parameters to matches.
15093         (complex_add_pattern::build): Free memory.
15094         (complex_add_pattern::matches): Move validation end of match.
15095         (complex_add_pattern::recognize): Likewise.
15096
15097 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
15098
15099         * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
15100
15101 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
15102
15103         * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
15104
15105 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
15106
15107         PR tree-optimization/95867
15108         * tree-ssa-math-opts.h: New header.
15109         * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
15110         (powi_as_mults): No longer static.  Use build_one_cst instead of
15111         build_real.  Formatting fix.
15112         * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
15113         (attempt_builtin_powi): Handle multiplication reassociation without
15114         powi_fndecl using powi_as_mults.
15115         (reassociate_bb): For integral types don't require
15116         -funsafe-math-optimizations to call attempt_builtin_powi.
15117
15118 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
15119
15120         PR tree-optimization/95852
15121         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
15122         mul_stmts parameter type to vec<gimple *> &.  Before cond_stmt
15123         allow in the bb any of the stmts in that vector, div_stmt and
15124         up to 3 cast stmts.
15125         (arith_cast_equal_p): New function.
15126         (arith_overflow_check_p): Add cast_stmt argument, handle signed
15127         multiply overflow checks.
15128         (match_arith_overflow): Adjust caller.  Handle signed multiply
15129         overflow checks.
15130
15131 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
15132
15133         PR tree-optimization/95852
15134         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
15135         (uaddsub_overflow_check_p): Renamed to ...
15136         (arith_overflow_check_p): ... this.  Handle also multiplication
15137         with overflow check.
15138         (match_uaddsub_overflow): Renamed to ...
15139         (match_arith_overflow): ... this.  Add cfg_changed argument.  Handle
15140         also multiplication with overflow check.  Adjust function comment.
15141         (math_opts_dom_walker::after_dom_children): Adjust callers.  Call
15142         match_arith_overflow also for MULT_EXPR.
15143
15144 2021-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15145
15146         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
15147         __builtin_convertvector.
15148         (vmovl_s16): Likewise.
15149         (vmovl_s32): Likewise.
15150         (vmovl_u8): Likewise.
15151         (vmovl_u16): Likewise.
15152         (vmovl_u32): Likewise.
15153         (vmovn_s16): Likewise.
15154         (vmovn_s32): Likewise.
15155         (vmovn_s64): Likewise.
15156         (vmovn_u16): Likewise.
15157         (vmovn_u32): Likewise.
15158         (vmovn_u64): Likewise.
15159
15160 2021-01-11  Martin Liska  <mliska@suse.cz>
15161
15162         * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
15163         (if_chain::is_beneficial): Delete clusters
15164         (find_conditions): Make second argument of conditions_in_bbs a
15165         pointer so that we control over it's lifetime.
15166         (pass_if_to_switch::execute): Delete them.
15167
15168 2021-01-11  Kewen Lin  <linkw@linux.ibm.com>
15169
15170         * ira.c (move_unallocated_pseudos): Check other_reg and skip if
15171         it isn't set.
15172
15173 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
15174
15175         * config/vax/vax.md (cc): Remove mode attribute.
15176         (subst_<cc>, subst_f<cc>): Rename to...
15177         (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
15178         (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
15179         (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
15180         (*branch_<mode>, *branch_<mode>_reversed): Likewise.
15181
15182 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
15183
15184         * config/vax/vax.md (subst_f<cc>): Add mode to operands and
15185         `const_double_zero'.
15186
15187 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
15188
15189         * config/pdp11/pdp11.md (PDPfp): New mode iterator.
15190         (fcc_cc, fcc_ccnz): Use it.  Add mode to `const_double_zero' and
15191         operands.
15192
15193 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
15194
15195         * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
15196         rtx.
15197         * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
15198         with `const_double_zero'.
15199         * doc/rtl.texi (Constant Expression Types): Document it.
15200
15201 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
15202
15203         PR c++/98556
15204         * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
15205         POINTER_DIFF_EXPR to be any integral type.
15206
15207 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
15208
15209         PR rtl-optimization/98603
15210         * function.c (instantiate_virtual_regs_in_insn): For asm goto
15211         with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
15212         if any, set ASM_OPERANDS mode to VOIDmode and change
15213         ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
15214
15215 2021-01-09  Alexandre Oliva  <oliva@gnu.org>
15216
15217         PR debug/97714
15218         * final.c (notice_source_line): Narrow down the condition to
15219         skip a line-0 marker.
15220
15221 2021-01-08  Sergei Trofimovich  <siarheit@google.com>
15222
15223         * ipa-modref.c (merge_call_side_effects): Fix
15224         linebreak split by reordering two print calls.
15225
15226 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
15227
15228         * config/s390/vector.md (*tf_to_fprx2_0): Rename from
15229         "*mov_tf_to_fprx2_0" for consistency, fix constraint.
15230         (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
15231         consistency, fix constraint.
15232
15233 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
15234
15235         * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
15236         callables instead of mask values.
15237         (struct target_flag_set_p): New predicate.
15238         (s390_cpu_cpp_builtins_internal): Define or undefine
15239         __LONG_DOUBLE_VX__ macro.
15240
15241 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
15242
15243         PR target/98482
15244         * config/i386/i386.c (x86_function_profiler): Use R10 and R11
15245         to call mcount in large model with PIC for NO_PROFILE_COUNTERS
15246         targets.
15247
15248 2021-01-08  Richard Biener  <rguenther@suse.de>
15249
15250         * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
15251
15252 2021-01-08  Richard Biener  <rguenther@suse.de>
15253
15254         * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
15255         (vect_build_slp_tree): On cache hit release the matched
15256         scalar stmts vector.
15257         * tree-vect-stmts.c (vectorizable_store): Properly free
15258         vec_oprnds before possibly gathering them again.
15259
15260 2021-01-08  Richard Biener  <rguenther@suse.de>
15261
15262         PR tree-optimization/98544
15263         * tree-vect-slp.c (vect_optimize_slp): Always materialize
15264         permutes at a permute node.
15265
15266 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
15267
15268         PR target/98482
15269         * config/i386/i386.c (x86_function_profiler): Use R10 to call
15270         mcount in large model.  Sorry for large model with PIC.
15271
15272 2021-01-08  Jakub Jelinek  <jakub@redhat.com>
15273
15274         PR target/98585
15275         * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
15276         ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
15277         ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
15278         TargetSave and initialize for variables with enum types.
15279         (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
15280         mstack-protector-guard-symbol=): Add Save.
15281         * config/i386/i386-options.c (ix86_function_specific_save,
15282         ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
15283         x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
15284         x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
15285         x_ix86_veclibabi_type.
15286
15287 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
15288
15289         * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
15290         SVE_FULL_I to SVE_I.
15291         (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
15292
15293 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
15294
15295         * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
15296         SVE_FULL_I to SVE_I.
15297         (*cond_uxt<mode>_any): Likewise.
15298
15299 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15300
15301         * config/aarch64/iterators.md (Vwhalf): New iterator.
15302         * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
15303         Rename to...
15304         (aarch64_<sur>adalp<mode>): ... This.  Make more
15305         builtin-friendly.
15306         (<sur>sadv16qi): Adjust callsite of the above.
15307         * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
15308         builtins.
15309         * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
15310         builtins.
15311         (vpadal_s16): Likewise.
15312         (vpadal_u8): Likewise.
15313         (vpadal_u16): Likewise.
15314         (vpadalq_s8): Likewise.
15315         (vpadalq_s16): Likewise.
15316         (vpadalq_s32): Likewise.
15317         (vpadalq_u8): Likewise.
15318         (vpadalq_u16): Likewise.
15319         (vpadalq_u32): Likewise.
15320
15321 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15322
15323         * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
15324         Rename to...
15325         (aarch64_<su>abd<mode>): ... This.
15326         (<sur>sadv16qi): Adjust callsite of the above.
15327         * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
15328         builtins.
15329         * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
15330         builtin.
15331         (vabd_s16): Likewise.
15332         (vabd_s32): Likewise.
15333         (vabd_u8): Likewise.
15334         (vabd_u16): Likewise.
15335         (vabd_u32): Likewise.
15336         (vabdq_s8): Likewise.
15337         (vabdq_s16): Likewise.
15338         (vabdq_s32): Likewise.
15339         (vabdq_u8): Likewise.
15340         (vabdq_u16): Likewise.
15341         (vabdq_u32): Likewise.
15342
15343 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15344
15345         * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
15346         builtins.
15347         * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
15348         (vaba_s16): Likewise.
15349         (vaba_s32): Likewise.
15350         (vaba_u8): Likewise.
15351         (vaba_u16): Likewise.
15352         (vaba_u32): Likewise.
15353         (vabaq_s8): Likewise.
15354         (vabaq_s16): Likewise.
15355         (vabaq_s32): Likewise.
15356         (vabaq_u8): Likewise.
15357         (vabaq_u16): Likewise.
15358         (vabaq_u32): Likewise.
15359
15360 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15361
15362         * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
15363         (aarch64_<su>aba<mode>): ... This.  Handle uaba as well.
15364         Change RTL pattern to match.
15365
15366 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
15367
15368         * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
15369         * config/riscv/riscv-c.c (riscv-subset.h): New.
15370         (INCLUDE_STRING): Define.
15371         (riscv_cpu_cpp_builtins): Add new style architecture extension
15372         test macros.
15373         * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
15374         (riscv_subset_list::end): New.
15375         (riscv_current_subset_list): New.
15376
15377 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
15378
15379         * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
15380         Move to riscv-subset.h.
15381         (struct riscv_subset_t): Ditto.
15382         (class riscv_subset_list): Ditto.
15383         * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
15384         from riscv-common.c.
15385         (struct riscv_subset_t): Ditto.
15386         (class riscv_subset_list): Ditto.
15387         * config/riscv/t-riscv ($(common_out_file)): Add file
15388         dependency.
15389
15390 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
15391
15392         PR target/98567
15393         * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
15394         New define_insn patterns.
15395
15396 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
15397
15398         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
15399         (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
15400         (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
15401
15402 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
15403
15404         PR tree-optimization/98560
15405         * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
15406         * internal-fn.c (vec_cond_mask_direct): Get the data mode from
15407         argument 1.
15408         (vec_cond_direct): Likewise argument 2.
15409         (vec_condu_direct, vec_condeq_direct): Delete.
15410         (expand_vect_cond_optab_fn): Rename to...
15411         (expand_vec_cond_optab_fn): ...this, replacing old macro.
15412         (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
15413         (expand_vect_cond_mask_optab_fn): Rename to...
15414         (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
15415         (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
15416         convert optab.
15417         (direct_vec_cond_optab_supported_p): Likewise.
15418         (direct_vec_condu_optab_supported_p): Delete.
15419         (direct_vec_condeq_optab_supported_p): Delete.
15420         * gimple-isel.cc: Include internal-fn.h.
15421         (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
15422         before using it.
15423
15424 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
15425
15426         PR tree-optimization/98560
15427         * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
15428         IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
15429
15430 2021-01-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
15431
15432         * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
15433         rotate_insn and optab code attributes.
15434         Update all uses to merged code attribute.
15435         * config/i386/sse.md: Update all uses to merged code attribute.
15436         * config/i386/mmx.md: Update all uses to merged code attribute.
15437
15438 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
15439
15440         PR tree-optimization/98568
15441         * gimple-ssa-store-merging.c (bswap_view_convert): New function.
15442         (bswap_replace): Use it.
15443
15444 2021-01-06  Vladimir N. Makarov  <vmakarov@redhat.com>
15445
15446         PR rtl-optimization/97978
15447         * lra-int.h (lra_hard_reg_split_p): New external.
15448         * lra.c (lra_hard_reg_split_p): New global.
15449         (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
15450         * lra-assigns.c (lra_assign): Don't check allocation correctness
15451         after hard reg splitting.
15452
15453 2021-01-06  Martin Sebor  <msebor@redhat.com>
15454
15455         PR c++/98305
15456         * builtins.c (new_delete_mismatch_p): New overload.
15457         (new_delete_mismatch_p (tree, tree)): Call it.
15458
15459 2021-01-06  Alexandre Oliva  <oliva@adacore.com>
15460
15461         * Makefile.in (T_GLIMITS_H): New.
15462         (stmp-int-hdrs): Depend on it, use it.
15463         * config/t-vxworks (T_GLIMITS_H): Override it.
15464         (vxw-glimits.h): New.
15465
15466 2021-01-06  Richard Biener  <rguenther@suse.de>
15467
15468         PR tree-optimization/98513
15469         * value-range.cc (intersect_ranges): Compare the upper bounds
15470         for the expected relation.
15471
15472 2021-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
15473
15474         Revert:
15475         2020-12-28  Gerald Pfeifer  <gerald@pfeifer.com>
15476
15477         * doc/standards.texi (HSAIL): Remove section.
15478
15479 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
15480
15481         * configure: Re-generate.
15482
15483 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15484
15485         * doc/invoke.texi (-std=c++20): Adjust for the publication of
15486         ISO 14882:2020 standard.
15487         * doc/standards.texi: Likewise.
15488
15489 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15490
15491         PR tree-optimization/94802
15492         * expr.h (maybe_optimize_sub_cmp_0): Declare.
15493         * expr.c: Include tree-pretty-print.h and flags.h.
15494         (maybe_optimize_sub_cmp_0): New function.
15495         (do_store_flag): Use it.
15496         * cfgexpand.c (expand_gimple_cond): Likewise.
15497
15498 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15499
15500         * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
15501         * rtlanal.c (simple_regno_set): Tweak description to clarify the
15502         RMW condition.
15503
15504 2021-01-05  Richard Biener  <rguenther@suse.de>
15505
15506         PR tree-optimization/98516
15507         * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
15508         lanes when materializing on a VEC_PERM node.
15509         (vectorizable_slp_permutation): Dump the permute properly.
15510
15511 2021-01-05  Richard Biener  <rguenther@suse.de>
15512
15513         * tree-vect-slp.c (vect_slp_region): Move debug counter
15514         to cover individual subgraphs.
15515
15516 2021-01-05  Richard Biener  <rguenther@suse.de>
15517
15518         PR tree-optimization/98428
15519         * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
15520         vector lane extracts for loop vectorization.
15521
15522 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15523
15524         PR tree-optimization/98514
15525         * tree-ssa-reassoc.c (bb_rank): Change type from long * to
15526         int64_t *.
15527         (operand_rank): Change type from hash_map<tree, long> to
15528         hash_map<tree, int64_t>.
15529         (phi_rank): Change return type from long to int64_t.
15530         (loop_carried_phi): Change block_rank variable type from long to
15531         int64_t.
15532         (propagate_rank): Change return type, rank parameter type and
15533         op_rank variable type from long to int64_t.
15534         (find_operand_rank): Change return type from long to int64_t
15535         and change slot variable type from long * to int64_t *.
15536         (insert_operand_rank): Change rank parameter type from long to
15537         int64_t.
15538         (get_rank): Change return type and rank variable type from long to
15539         int64_t.  Use PRId64 instead of ld to print the rank.
15540         (init_reassoc): Change rank variable type from long to int64_t
15541         and adjust correspondingly bb_rank and operand_rank initialization.
15542
15543 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15544
15545         PR tree-optimization/96928
15546         * tree-ssa-phiopt.c (xor_replacement): New function.
15547         (tree_ssa_phiopt_worker): Call it.
15548
15549 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15550
15551         PR tree-optimization/96930
15552         * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
15553         from narrower value which has the same type as 1 << B, perform
15554         the right shift on the narrower value followed by extension.
15555
15556 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15557
15558         PR tree-optimization/96239
15559         * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
15560         function.
15561         (get_status_for_store_merging): Don't return BB_INVALID for blocks
15562         with potential bswap optimizable CONSTRUCTORs.
15563         (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
15564         if possible.
15565
15566 2021-01-05  Richard Biener  <rguenther@suse.de>
15567
15568         PR tree-optimization/98381
15569         * tree.c (vector_element_bits): Properly compute bool vector
15570         element size.
15571         * tree-vect-loop.c (vectorizable_live_operation): Properly
15572         compute the last lane bit offset.
15573
15574 2021-01-05  UroÅ¡ Bizjak  <ubizjak@gmail.com>
15575
15576         PR target/98522
15577         * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
15578         Clear the top 64 bytes of the input XMM register.
15579         (sse_cvttps2pi): Ditto.
15580
15581 2021-01-05  UroÅ¡ Bizjak  <ubizjak@gmail.com>
15582
15583         PR target/98521
15584         * config/i386/xopintrin.h (_mm256_cmov_si256): New.
15585
15586 2021-01-05  H.J. Lu  <hjl.tools@gmail.com>
15587
15588         PR target/98495
15589         * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
15590         short first.
15591
15592 2021-01-05  Claudiu Zissulescu  <claziss@synopsys.com>
15593
15594         * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
15595         (umaddsidi4_split): Likewise.
15596
15597 2021-01-05  liuhongt  <hongtao.liu@intel.com>
15598
15599         PR target/98461
15600         * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
15601         define_insn_and_split for zero_extend of subreg HI of pmovskb
15602         result.
15603         (*sse2_pmovskb_zexthisi): Add new combine splitters for
15604         zero_extend of not of subreg HI of pmovskb result.
15605
15606 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15607
15608         PR target/97269
15609         * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
15610         nested in CONSTs.
15611         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
15612         convert_memory_address to convert symbolic immediates to ptr_mode
15613         before forcing them to memory.
15614
15615 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15616
15617         PR rtl-optimization/97144
15618         * recog.c (constrain_operands): Initialize matching_operand
15619         for each alternative, rather than only doing it once.
15620
15621 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15622
15623         PR rtl-optimization/98403
15624         * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
15625         why we don't remove call clobbers.
15626         (function_info::apply_changes_to_insn): Don't attempt to add
15627         call clobbers here.
15628
15629 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
15630
15631         PR tree-optimization/98371
15632         * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
15633         (vect_analyze_loop): If an epilogue loop appears to be cheaper
15634         than the main loop, re-analyze it as a main loop before adopting
15635         it as a main loop.
15636
15637 2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15638
15639         PR c++/98316
15640         * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
15641         * aclocal.m4, configure: Regenerate.
15642         * Makefile.in (NETLIBS): Define.
15643         (BACKEND): Remove $(CODYLIB).
15644
15645 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
15646
15647         PR rtl-optimization/98334
15648         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
15649         Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
15650
15651 2021-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15652
15653         * tree-inline.c (expand_call_inline): Restore input_location.
15654         Return result from recursive call.
15655
15656 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
15657
15658         PR tree-optimization/95401
15659         * config/aarch64/aarch64-sve-builtins.cc
15660         (gimple_folder::load_store_cookie): Use bits rather than bytes
15661         for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
15662         * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
15663         * tree-vect-stmts.c (vectorizable_store): Likewise.
15664         (vectorizable_load): Likewise.
15665
15666 2021-01-04  Richard Biener  <rguenther@suse.de>
15667
15668         PR tree-optimization/98308
15669         * tree-vect-stmts.c (vectorizable_load): Set invariant mask
15670         SLP vectype.
15671
15672 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
15673
15674         PR tree-optimization/95771
15675         * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
15676         with precision smaller than int's precision and types with precision
15677         twice as large as long long.  Formatting fixes.
15678
15679 2021-01-04  Richard Biener  <rguenther@suse.de>
15680
15681         PR tree-optimization/98464
15682         * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
15683         (vn_valueize_wrapper): ... this.  Temporarily adjust vn_context_bb.
15684         (process_bb): Adjust.
15685
15686 2021-01-04  Matthew Malcomson  <matthew.malcomson@arm.com>
15687
15688         PR other/98437
15689         * doc/invoke.texi (-fsanitize=address): Fix wording describing
15690         clash with -fsanitize=hwaddress.
15691
15692 2021-01-04  Richard Biener  <rguenther@suse.de>
15693
15694         PR tree-optimization/98282
15695         * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
15696         invariants as VN_NARY.
15697
15698 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
15699
15700         PR target/89057
15701         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
15702         aarch64_simd_reg_or_zero for operand 2.  Use the combinez patterns
15703         to handle zero operands.
15704
15705 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
15706
15707         * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
15708         (offset_6bit_unsigned_scaled_p): Fix typo in comment.
15709         (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
15710         [-32, 31].
15711
15712 2021-01-04  Richard Biener  <rguenther@suse.de>
15713
15714         PR tree-optimization/98393
15715         * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
15716         when hitting the limit.
15717
15718 2021-01-04  Richard Biener  <rguenther@suse.de>
15719
15720         PR tree-optimization/98291
15721         * tree-vect-loop.c (vectorizable_reduction): Bypass
15722         associativity check for SLP reductions with VF 1.
15723
15724 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
15725
15726         PR tree-optimization/96782
15727         * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
15728
15729 2021-01-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15730
15731         * collect-utils.c (collect_execute): Check dumppfx.
15732         * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
15733         to collect_execute.
15734         (do_link): Add new parameter atsuffix.
15735         (main): Handle -dumpdir option.  Skip one argument for
15736         -o, -isystem and -B options.
15737         * gcc.c (make_at_file): New helper function.
15738         (close_at_file): Use it.
15739
15740 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15741
15742         * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
15743         Amend handling for LD64_VERSION fallback defaults.
15744
15745 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15746
15747         * config.gcc: Compute default version information
15748         from the configured target.  Likewise defaults for
15749         ld64.
15750         * config/darwin10.h: Removed.
15751         * config/darwin12.h: Removed.
15752         * config/darwin9.h: Removed.
15753         * config/rs6000/darwin8.h: Removed.
15754
15755 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15756
15757         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
15758
15759 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15760
15761         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
15762         * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
15763
15764 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15765
15766         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
15767         here...
15768         * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
15769
15770 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15771
15772         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
15773         for the Darwin10 unwinder stub from here ...
15774         * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
15775
15776 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
15777
15778         * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
15779         (ASM_DEBUG_SPEC):Only define if the assembler supports
15780         stabs.
15781         (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
15782         (DARWIN_PREFER_DWARF): Define.
15783         * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
15784         (DARWIN_PREFER_DWARF): Likewise
15785         (DSYMUTIL_SPEC): Likewise.
15786         (COLLECT_RUN_DSYMUTIL): Likewise.
15787         (ASM_DEBUG_SPEC): Likewise.
15788         (ASM_DEBUG_OPTION_SPEC): Likewise.
15789
15790 2021-01-02  Jan Hubicka  <jh@suse.cz>
15791
15792         * cfg.c (free_block): ggc_free bb.
15793
15794 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
15795
15796         * gcc.c (process_command): Update copyright notice dates.
15797         * gcov-dump.c (print_version): Ditto.
15798         * gcov.c (print_version): Ditto.
15799         * gcov-tool.c (print_version): Ditto.
15800         * gengtype.c (create_file): Ditto.
15801         * doc/cpp.texi: Bump @copying's copyright year.
15802         * doc/cppinternals.texi: Ditto.
15803         * doc/gcc.texi: Ditto.
15804         * doc/gccint.texi: Ditto.
15805         * doc/gcov.texi: Ditto.
15806         * doc/install.texi: Ditto.
15807         * doc/invoke.texi: Ditto.
15808
15809 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
15810
15811         * ChangeLog-2020: Rotate ChangeLog.  New file.
15812
15813 \f
15814 Copyright (C) 2021 Free Software Foundation, Inc.
15815
15816 Copying and distribution of this file, with or without modification,
15817 are permitted in any medium without royalty provided the copyright
15818 notice and this notice are preserved.